이전 기사 중 하나에서 “이중 지출”공격에 대해 이야기했습니다. 이러한 공격을 방지하는 중요한 역할은 소유권 증명 회계 모델 인 UTXO에 의해 수행됩니다. 이러한 트랜잭션 구축 구조로 인해 비트 코인 프로토콜을 사용하면 언제든지 코인의 위치를 ​​추적 할 수 있습니다..

오늘의 기사에서는 UTXO의 개념에 초점을 맞추고이 회계 모델과 관련된 문제를 고려하고 이러한 문제에 대한 가능한 해결책을 살펴볼 것입니다..

UTXO의 마법

UTXO 란??

UTXO는 “사용되지 않은 거래 산출물”, 즉 일부 자금을 지출 한 후받은 잔여 물 또는 “변경”을 의미합니다..

비트 코인 네트워크의 노드는 지출 가능한 모든 UTXO 세트를 저장하는 블록 체인을 유지합니다. 각 노드는 모든 UTXO를 추적하여 블록 체인을 형성 할 때 각 블록의 각 트랜잭션을 확인합니다. 사용하지 않은 코인을 추적하는 것이 각 거래를 개별적으로 추적하는 것보다 훨씬 편리합니다..

모든 거래는 입력과 출력으로 구성됩니다. 새 트랜잭션의 입력은 이전 트랜잭션의 출력에 대한 참조입니다. 이러한 링크의 값을 합산하여 새로 생성 된 트랜잭션의 출력에 사용할 수 있습니다. 출력은 동전과 소비 지침이 저장되는 곳입니다..

비트 코인 지갑의 잔액을 확인할 때 저장된 전체 금액을 볼 수 있습니다. 그러나 실제로 이전 거래 내역을 기반으로 잔액은 다른 금액을 나타내는 많은 출력으로 구성 될 수 있습니다. 지갑에있는 수많은 지폐로 생각하십시오. 주어진 시간에 주소의 잔액은 주소가 현재 사용할 수있는 모든 UTXO의 합계입니다. 출력 세트는 UTXO, 즉 잔액을 설명하는 양이 다른 출력 세트를 나타냅니다..

UTXO 원칙을 더 잘 이해하기 위해 예제를 사용하겠습니다. 

UTXO의 마법

계정에 50BTC를 보유하고 있고 0.5BTC를 지불하려면 거래가 형성되어야하며, 여기에는 최소한 하나의 입력과 하나의 출력이 있어야합니다. 50 BTC의 UTXO가 하나만 있다고 가정 해 보겠습니다. UTXO를 분할 할 수 없습니다. 따라서 50 BTC가 입력으로 사용됩니다. 서명을 제출함으로써 우리는 해당 입력의 소유권을 확인합니다. 결과적으로 0.5 및 49.5 BTC의 단위로 두 개의 출력이 생성됩니다. 49.5 BTC의 변경 사항은 소유자의 지갑으로 다시 전송되고 새로운 UTXO가되며 0.5 BTC는 수신자의 주소로 전송됩니다. UTXO의 변경에서 거래 수수료가 공제된다는 점은 주목할 가치가 있습니다..

트랜잭션 출력 모델 사용의 중요한 기능 :

  • 거래는 기존 UTXO를 “소비”하고 그 자리에 새로운 UTXO를 생성하여 이루어집니다.
  • 새로운 UTXO는 트랜잭션을 통해서만 생성 할 수 있습니다.
  • 사용 된 UTXO는 “사용”되고 한 번만 소비됩니다..

UTXO는 블록 체인의 상태를 기록하고 저장하는 방법 중 하나이며 네트워크상의 누군가의 코인 소유권 증거를 기록합니다. UTXO 기반 블록 체인은 일종의 블록 체인 프로토콜입니다. 사용되지 않은 출력의 원칙은 모든 비트 코인 포크의 블록 체인뿐만 아니라 Monero, Cardano 및 Komodo와 같은 수많은 다른 코인의 블록 체인에서 사용됩니다. Hyperledger Fabric은 수정 된 UTXO 모델을 사용합니다..

블록 체인을 구성하는 또 다른 방법은 이더 리움 블록 체인에서 사용되는 “계정 모델”입니다. 이 접근 방식은 트랜잭션 자체가 아닌 노드에서 토큰의 로컬 회계를 통해 구현됩니다..

UTXO 모델의 문제점 및 솔루션

암호 화폐 먼지

Cryptocurrency dust는 거래 수수료를 초과하지 않는 BTC 금액을 나타내는 용어입니다..

암호 화폐 먼지의 문제는 비트 코인이 2017 년 역사적인 ATH에 랠리를하는 동안 관련이있었습니다. 상당한 수의 수익성없는 UTXO를 저장하는 것은 가치가있는 것보다 지출하는 데 비용이 들지 않기 때문에 무의미합니다..

개발자는 다양한 수준에서 암호화 먼지 문제를 해결하려고 노력하고 있습니다. 바이 낸스는 BNB 토큰에 대한 암호 화폐 더스트를 변환 할 수있는 최초의 거래소가되었습니다..

암호 화폐 먼지는 단일 소유자에게 속한 여러 주소를 일치시키는데도 사용할 수 있습니다. 거래를 할 때 입력이 결합되지 않기 때문에 공격자는 암호화 먼지를 다른 UTXO와 혼합하여 다른 피해자 주소와 일치시킬 수 있습니다..

UTXO 저장

블록 체인은 네트워크에 존재하는 모든 UTXO 세트를 저장하기 때문에 그러한 세트의 수가 많을수록 더 많은 공간을 차지합니다..

전체 노드는 사용되지 않은 트랜잭션의 데이터베이스를 RAM에 저장하며, 저장된 데이터 양이 증가하면 노드 유지 비용 만 증가합니다. 사용되지 않은 트랜잭션 저장 문제를 해결하기 위해 논의 된 옵션 중 하나는 저장된 데이터의 일부를 HDD 또는 SSD 장치로 전송하는 것입니다..

UTXO의 마법

분리 된 증인 구현

UTXO 데이터베이스는 트랜잭션의 유효성을 확인하기 위해 네트워크의 모든 노드에 의해 유지되고 확인됩니다. 더 빠른 네트워크 운영을 위해 이러한 점검은 가능한 한 빨리 수행되어야합니다. 이러한 이유로 데이터베이스가 RAM에 보관됩니다. 사용자 수와 지갑 수가 증가함에 따라 UTXO 데이터 볼륨이 증가하여 네트워크 확장 문제가 발생합니다. 개인 정보 보호를 강화하거나 Lightning Network 결제 채널을 지원하기 위해 사용자는 여러 UTXO 레코드를 생성합니다..

세그 윗 도입 이후 개선 된 사항 중 하나는 볼륨에 영향을주지 않는 UTXO 레코드를 생성하여 UTXO의 성장을 줄이는 것이 었습니다. 이 접근 방식을 사용하면 수수료가 낮아 UTXO에 미치는 영향이 적은 거래를 사용하는 것이 좋습니다..

UTreeXo 솔루션

전체 노드를 유지하는 데 필요한 리소스가 증가함에 따라 사용자는 네트워크를 모니터링하기 위해 소위 “라이트 클라이언트”및 타사 노드로 점차 전환하고 있습니다. 라이트 클라이언트는 UTXO 데이터베이스를 저장하지 않고 트랜잭션을 확인하지 않지만 “Simplified Payment Verification”을 의미하는 SPV를 사용합니다. 이 검증 방법은 나카 모토 사토시가 직접 비트 코인 백서에 설명했습니다. 여러 가지 중요한 개인 정보 보호 결함으로 인해 SPV 클라이언트를 사용하는 것은 전체 노드와 비교할 때 안전하지 않습니다. 전체 노드를 유지하는 문제는 uTreeXo 프로토콜을 구현하여 해결할 수 있습니다.

uTreeXo 프로토콜은 블록 체인에서 UTXO의 크기를 수 킬로바이트로 줄이는 동적 누산기입니다. uTreeXo 솔루션을 사용하면 전체 노드가 모든 블록 체인 데이터를 저장하지 않고 모든 UTXO 집합을 추적 할 수 있습니다. 대신 누산기는 데이터가 정확하다는 증거를 제공합니다..

uTreeXo 프로토콜의 도입으로 모바일 장치에서 전체 노드를 실행할 수 있습니다..

결론

비트 코인과 함께 등장한 UTXO 모델은 자금 회계 방법을 단순화하고 거래의 개인 정보 보호 분야에서 솔루션 개발에 박차를가했습니다. 서로 다른 UTXO를 혼합함으로써 사용자는 서로 다른 주소를 사용하여 거래를 수행 할 수 있으며, 이는 주소 간 링크를 설정하는 방법을 복잡하게합니다..

전통적인 UTXO 모델은 스마트 계약에 사용될 때 많은 제한이 있지만 Cardano 개발자는 확장 UTXO (EUTXO) 개념, 즉 스마트 계약을 네트워크에 도입하기위한 확장 UTXO 모델을 설명했습니다..

기존의 단점에도 불구하고이 접근 방식은 다른 암호 화폐의 블록 체인에서 가장 많이 사용되는 방법 중 하나이며 이러한 단점을 해결하기위한 집중적 인 작업은 다른 블록 체인 시스템에서 UTXO 모델의 인기를 높일뿐입니다..