비트코인 지갑의 잔고개념과 UTXO

  • 비트코인 네트워크는 잔액이라는 개념이 존재하지 않는다.
  • 대신에 각 UTXO(미사용 트랜잭션 출력값)를 합산해서 잔고를 확인한다.
  • 비트코인은 지갑에 보낼 때마다 UTXO라는 각각의 주소로 기록된다.
  • 그렇지만, 하나의 공개키로 주소는 무한히 생성되기 때문에 주소는 다르지만 한 사람 본인 것이다.

목차

UTXO란 무엇인가?

  • Unspent Transaction Outputs : 미사용(미소비) 트랜잭션 출력값
  • 비트코인은 계정이나 잔고가 없고 블록체인에 기록된 “소비되지 않은 출력값”을 통해 거래의 유효성을 검사하여 코인의 존재 여부를 확인한다.
  • 거래 처리 검증하는 기법
  • 예를 들어보면, 누군가 A지갑에서 1BTC와 5BTC를 각각 따로 입금하여 보관하고 있었다고 하자.
  • 그러면 A의 지갑에는 6BTC (1BTC + 5BTC)로 합쳐서 기록되는 것이 아니라, 각각 따로 UTXO값으로 기록 보관 상태로 있게 된다.
  • 나중에, A지갑에서 B지갑으로 2BTC를 보낼 경우, 전송 숫자 보다 큰 2번 5BTC에서 2BTC를 B지갑으로 보내고, A지갑에는 1번 UTXO 1BTC와 새로운 3번 UTXO 3BTC가 남게 된다.
  • 대신에 A지갑에서는 한 번 사용된 2번 UTXO는 사라지게 된다.

UTXO의 장단점

  • 장점 :
    • 거래시 마다 새로운 UTXO가 생성되므로 익명성과 보안성이 높다
    • 인출(사용)시 사라지므로 정확한 잔고 및 지출금액을 파악하기 어려워 익명성이 좋다
    • 이것이 탈중앙화를 표방하는 비트코인의 가장 중요한 요소 가운데 하나
  • 단점 :
    • UTXO마다 수수료가 부과되므로 다량의 비트코인 인출시 다량의 UTXO가 사용되어 많은 수수료가 부과된다는 점

비트코인의 잔고개념 이해하기

  • 존이라는 사람이 나에게 1BTC를 보내고, 나는 다시 수지에게 0.2BTC를 보낸 경우
  • 주의할 점 : 남은 0.8개는 기존 주소에 남는 것이 아니라, 새로운 주소(change addresses/잔고주소)에 기록이 된다는 점
  • 이 점은 아래 일렉트럼 지갑을 보면 이해하기 쉽다.