Unspent Transaction Output (UTXO)
**미사용 트랜잭션 출력(UTXO)**은 특정 트랜잭션, 즉 새로운 트랜잭션에서 입력으로 사용될 수 있는 트랜잭션 출력 후 남은 암호화폐 금액을 의미합니다. [1][2]
개요
미사용 트랜잭션 출력(UTXO)은 블록체인 기술, 특히 비트코인과 같은 암호화폐에서 기본적인 개념입니다. 이는 사용되지 않은 트랜잭션의 출력을 나타내며 향후 트랜잭션의 입력으로 사용할 수 있습니다. 모든 암호화폐 트랜잭션은 입력과 출력으로 구성됩니다. 트랜잭션이 실행될 때마다 입력은 삭제되고 출력이 생성됩니다. 남겨진 출력 중 즉시 사용되지 않은 출력은 미사용 트랜잭션 출력이 되며 나중에 새로운 트랜잭션에서 사용할 수 있습니다. [1]
UTXO 모델은 주어진 네트워크에서 토큰 공급을 추적하고 트랜잭션을 검증하는 데 중요한 부분입니다. 소유자 확인 없이는 실행할 수 없으므로 사기나 부정행위를 방지하는 데 도움이 됩니다. 모든 UTXO 트랜잭션은 개인 디지털 서명과 연결되어 있으며 소유자는 새로운 트랜잭션의 입력으로 사용할 때 UTXO 소유권을 확인하기 위해 서명을 제공해야 합니다. [1][3]
비트코인 백서에는 UTXO에 대한 언급이 없지만 UTXO 모델은 비트코인 블록체인이 처음 게시되었을 때 사토시 나카모토에 의해 처음 개발되었습니다. 원래 비트코인 스크립트는 특정 지갑에 요청된 트랜잭션을 실행하기에 충분한 자금이 있는지 확인하기 위해 UTXO에 크게 의존합니다. [3]
UTXO(미사용 트랜잭션 출력) 모델은 트랜잭션이 유효하려면 모든 입력의 합이 모든 출력의 합보다 크거나 같아야 한다는 원칙에 따라 작동합니다. 이는 검증자가 트랜잭션의 유효성을 확인하기 위해 수행하는 기본 검사 중 하나입니다. UTXO 모델은 자금의 이중 지출을 감지하고 방지하는 간단한 방법을 제공하므로 분산 시스템에서 특히 유용합니다. [4]
트랜잭션 출력
트랜잭션 출력은 주소와 해당 값으로 구성됩니다. 이 비유에서 주소의 서명은 출력을 잠금 해제하는 키 역할을 하여 입력으로 사용할 수 있습니다. 후속 트랜잭션은 이전 트랜잭션의 출력을 사용하고 향후 트랜잭션에서 사용할 수 있도록 새로운 출력을 생성합니다. 특히 각 UTXO는 한 번만 그리고 완전한 단위로 사용할 수 있습니다. 또한 각 출력은 정확히 하나의 입력으로 사용할 수 있으므로 출력과 입력 간에 일대일 관계가 보장됩니다. [7]
트랜잭션 입력
트랜잭션 입력은 포인터와 잠금 해제 키 역할을 하는 암호화 서명으로 구성된 이전 트랜잭션의 출력을 나타냅니다. 포인터는 이전 트랜잭션 출력을 가리키고 키는 이 특정 출력의 잠금 해제를 용이하게 합니다. 잠금 해제 시 블록체인은 출력을 '사용됨'으로 지정합니다. 이후 트랜잭션에서 새로 생성된 출력은 새로운 입력에서 참조할 수 있어 체인이 영구화됩니다. [7]
아직 사용되지 않은 이러한 새로 생성된 출력을 미사용 트랜잭션 출력(UTXO)이라고 합니다. 미사용 출력은 후속 트랜잭션에서 사용되거나 소비되지 않은 출력입니다. [7]
UTXO 특징
불가분성
UTXO는 불가분적입니다. 즉, 트랜잭션 출력이 완전히 사용되지 않으면 나머지 금액은 새롭고 별도의 UTXO로 처리됩니다. 이 특성은 트랜잭션 프로세스에 세분성 계층을 추가하여 사용자가 자금을 보다 정확하게 관리할 수 있도록 합니다. [2]
보안
UTXO 모델은 블록체인 트랜잭션의 보안을 강화합니다. 각 UTXO는 암호화 키와 연결되어 있으며 이를 사용하려면 유효한 디지털 서명을 제공해야 합니다. 이를 통해 UTXO와 연결된 개인 키의 정당한 소유자만이 새로운 트랜잭션에서 UTXO 사용을 승인할 수 있습니다. [2]
개인 정보 보호
UTXO를 사용하면 블록체인에서 개인 정보 보호에 기여합니다. 각 UTXO가 분리되어 있으므로 특정 사용자의 전체 트랜잭션 내역을 추적하기가 어렵습니다. 이 기능은 많은 블록체인 시스템의 가명 특성과 일치합니다. [2]
UTXO 수명 주기
UTXO의 수명 주기는 사용자가 트랜잭션을 통해 암호화폐를 받을 때 UTXO가 생성되면서 시작되며, 미사용 출력은 사용자의 지갑 잔액에 기여합니다. 이후 사용자가 트랜잭션을 시작하면 지갑의 UTXO가 입력으로 사용되어 수신자의 미사용 잔액을 반영하는 출력으로 새로운 UTXO를 생성합니다. 사용자가 UTXO의 일부만 사용하는 경우 나머지 금액은 동일한 지갑 주소에 연결된 새로운 UTXO로 변환됩니다. 또한 사용자는 더 작은 UTXO를 더 큰 엔터티로 병합하여 UTXO를 통합하여 트랜잭션의 입력 수를 줄이고 관련 트랜잭션 수수료를 최적화할 수 있습니다. [3]
UTXO 세트
블록체인의 UTXO 세트는 특정 시점에 암호화폐 시스템 내의 모든 코인으로 구성됩니다. 출력은 UTXO를 포함하며 UTXO는 하위 집합입니다. 유효한 트랜잭션에서는 미사용 출력(UTXO)만 후속 트랜잭션에 자금을 지원하는 데 사용되어 이중 지출 및 사기를 방지합니다. [5]
암호화폐 지갑 사용자와 같은 개인 키 보유자는 이러한 UTXO를 향후 트랜잭션에 사용할 수 있습니다. 이 프로세스에는 트랜잭션 출력이 있는 새로운 UTXO를 추가하는 동안 UTXO 세트에서 트랜잭션 입력을 제거하는 작업이 포함됩니다. 이 메커니즘은 블록체인 트랜잭션의 무결성과 보안을 보장합니다. [5]
확장 UTXO 모델(EUTXO)
확장 UTXO(EUTXO) 모델은 기존 미사용 트랜잭션 출력(UTXO) 모델의 고급 버전을 나타내며 보안, 예측 가능성 및 병렬 처리 가능성의 고유한 장점을 유지하면서 향상된 유연성과 유틸리티를 위한 추가 기능을 도입합니다. [6]
이 모델에서 UTXO는 임의의 데이터 및 스마트 계약 로직에 연결될 수 있으므로 병렬 트랜잭션 처리와 호환되는 상태 저장 요소를 통합할 수 있습니다. 이는 기본 UTXO 모델에 비해 더 표현력이 풍부하고 복잡한 계약을 제공하여 EUTXO 모델을 풍부하게 합니다. 각 UTXO는 변경 가능한 데이터 값과 연결되어 계약이 트랜잭션 전반에 걸쳐 상태를 유지할 수 있도록 합니다. [6][7]
복잡성에도 불구하고 카르다노 블록체인과 같은 암호화폐에서 사용되는 EUTXO 모델은 스마트 계약 개발을 위한 Plutus와 같은 플랫폼을 지원하여 지속적인 보안 및 예측 가능성을 갖춘 복잡한 상태 저장 계약을 지원합니다. UTXO 모델의 중요한 장점을 유지하여 예측 가능한 리소스 소비를 보장하고 확장 가능한 블록체인 트랜잭션을 위한 높은 수준의 병렬 처리를 지원합니다. [7]