UTXO (Unspent Transaction Output)

CHOYEAH·2023년 10월 23일
0
post-thumbnail
post-custom-banner

UTXO란 ?


Unspent Transaction Output의 약자로, 아직 쓰지않은 잔액 이라는 의미함.

비트코인 네트워크에서는 잔액이라는 개념은 존재하지 않고, 트랜잭션에 의한 블록체인에 기록된 소비되지 않은 출력값들의 합을 잔액이라는 개념으로 사용하는데 이때 UTXO 데이터를 사용함.

퀀텀, 레이븐 코인에서도 UTXO 방식을 사용하고 이더리움은 “계좌 잔고 모델 (Account Balance Model)” 방식을 사용함.

UTXO를 사용하는 이유


비트코인의 현재 블록에는 n-1 번째 블록의 정보가 있지만 이전 블록의 정보는 Hash화 되어있다.
과거의 내역을 검증할 수는 있지만 과거의 내역들을 확인할 수는 없는것이다.
또한 모든 Address에 대한 잔액을 갱신 시키며 블록을 생성하는것은 비효율적일 것이다.
이런 이유로 비트코인에서는 특정 Address에 대한 잔액 조회는 Genesis Block 부터 현재 Block 까지의 검사가 필요하다.

UTXO 개념 이해


비트코인 네트워크의 UTXO(미사용 출력값)는 현실의 5만원, 만원, 천원, 오백원, 백원 각각의 지폐 또는 동전과 대응된다. UTXO는 화폐와 다르게 일정한 기준의 금액 값을 가지지 않고 이전 소유주가 보낸 단위에 따라 무수한 단위로 형성될 수 있다.

최하 단위로는 1사토시(0.000000001BTC)이고 발행량이 2,100만개 이므로 이론상으로 UTXO의 가장 큰 단위는 2,100만 비트코인이다.

UTXO의 소유권 이동


  1. A가 B에게 UTXO를 전송하려고 한다.
  2. A의 UXTO는 자신의 공개키(지갑주소)로 암호화 되어있다. 따라서 자신의 개인키로만 복호화 할 수 있다.
  3. 소유권을 이동하려면 A 자신의 개인키로 복호화 하고 B의 공개키(주소)를 사용하여 소유권을 넘겨준다.
  4. 소유권을 갖게된 B 또한 같은 원리로 자신의 개인키만을 사용하여 소유권을 이동 할 수 있다.

UTXO의 생성과 소멸


비트코인 플랫폼에서는 거래가 이루어질때 마다 UTXO의 소멸과 생성이 반복된다.
한번 소비된 거래 정보는 두 번 다시 사용할 수 없으며, 이렇게 소비된 거래 정보를 Spent Transaction이라고 표현한다.

A, B가 F에게 각 1BTC, 2BTC를 송금해주면 F는 2개의 UTXO가 생성되고
A, B는 송금에 사용된 UTXO가 소멸될 것이다.

C, D, E가 G에게 3BTC, 4BTC, 10BTC를 송금을 하면 G는 3개의 UTXO가 생성되고
C, D, E 각각 송금에 사용된 UTXO는 소멸될 것이다.

장점과 단점


장점

  • 인출이 일어날 때 UTXO는 바로 사라지므로 정확한 사용 내역을 파악하기 어려워 프라이버시가 보장되는 장점이 있다.
  • 거래를 저장하는 필드에 거래를 진행한 사람의 지갑 번호가 적혀있기 때문에 유효성을 확인하는데 장점이 있다고 한다.
  • Tx Pool을 통해 검증을 하기에 거래에서의 이중 지불과 같은 문제를 효율적으로 방지할 수 있다고 한다.

단점

  • UTXO 마다 수수료가 부과되기 때문에 다량의 비트코인 인출 시 다량의 UTXO가 사용되는 경우 많은 수수료가 부과되는 단점이 있다.
  • 사용자 간 거래 뿐 아니라 채굴로 생기는 코인베이스 거래와 같은 형태의 다양한 거래 형태가 저장이 되기 때문에 불필요한 공간을 소비한다.
  • 위와 같은 이유로 데이터를 처리하는 속도를 감소시키는 등 성능 저하를 일으킬 수 있다.

todo: 추후 잘 이해가된 후 다시 정리

상황별 송금 시 UTXO


상황.1

G는 총 3개의 UTXO로 17비트가 있다.

9BTC를 H에 보내려고한다.

이때 G가 소유한 UTXO 중에 9BTC 이상인 UTXO를 찾아 선택하게 된다.

상황.2

7BTC를 보내려고 하는 상황에서도 3BTC, 4BTC를 합쳐서 쓰지 않고 10BTC의 UTXO를 사용한다.

이유는 3BTC, 4BTC를 합쳐서 쓸 경우 2개의 UTXO를 사용하므로 수수료 증가되기 때문이다.

(작성중..)

참고한 컨텐츠
- https://brownbears.tistory.com/382
- https://m.blog.naver.com/mage7th/221439829511
- https://roy-jang.tistory.com/13
- https://brunch.co.kr/@skkrypto/13

profile
Move fast & break things
post-custom-banner

0개의 댓글