← 비트코인 기술 심화 코스
6/10
비트코인기술 중급
UTXO 모델 (Unspent Transaction Output)
비트코인은 계좌 잔액이 아닌 미사용 트랜잭션 출력(UTXO)의 합으로 잔액을 관리한다. 동전 모델의 원리와 프라이버시·보안상 이점.
· 2분
**UTXO(Unspent Transaction Output, 미사용 트랜잭션 출력)**는 비트코인이 잔액을 관리하는 근본적인 방식이다. 은행처럼 “계좌 잔액”을 기록하는 것이 아니라, 아직 사용하지 않은 개별 출력값들의 합으로 잔액을 계산한다.
동전 모델
현금 거래를 떠올리면 이해하기 쉽다. 지갑에 1만 원짜리 2장과 5천 원짜리 1장이 있으면, 잔액은 “25,000원”이라는 숫자가 아니라 3개의 개별 지폐의 합이다. 비트코인도 마찬가지다.
비트코인 트랜잭션이 발생하면:
- 입력(Input): 이전에 받은 UTXO 중 하나 이상을 “소비”한다
- 출력(Output): 새로운 UTXO를 생성한다 — 수신자에게 보내는 금액과 자신에게 돌아오는 거스름돈
- 소비된 UTXO는 영구히 사라지고, 새 UTXO가 탄생한다
예를 들어, 0.7 BTC짜리 UTXO 하나를 가진 사람이 0.3 BTC를 보내면:
- 0.7 BTC UTXO가 소비되고
- 0.3 BTC UTXO가 수신자에게 생성되고
- 약 0.3999 BTC UTXO가 거스름돈으로 자신에게 돌아온다
- 나머지 0.0001 BTC는 채굴자에게 수수료로 지급된다
graph LR
subgraph 입력
U1["UTXO A
0.5 BTC"]
U2["UTXO B
0.3 BTC"]
end
subgraph 트랜잭션
TX["트랜잭션"]
end
subgraph 출력
O1["수신자
0.7 BTC"]
O2["잔돈
0.0999 BTC"]
end
U1 --> TX
U2 --> TX
TX --> O1
TX --> O2
FEE["수수료: 0.0001 BTC"]
TX -.-> FEE
style TX fill:#f7931a,stroke:#f7931a,color:#000
style FEE fill:none,stroke:none,color:#8b949e 왜 계좌 모델이 아닌가
이더리움은 은행처럼 계좌 잔액 모델을 사용한다. 비트코인이 굳이 복잡해 보이는 UTXO 모델을 선택한 이유:
- 병렬 검증: 각 UTXO는 독립적이므로 트랜잭션을 동시에 검증할 수 있다. 계좌 모델은 순서 의존성이 생긴다
- 이중 지불 방지: UTXO는 “소비됨” 또는 “미소비” 두 상태만 존재한다. 부분적 사용이 불가능하므로 이중 지불 감지가 단순하다
- 프라이버시: 거래마다 새 주소(새 UTXO)를 생성하면 거래 추적이 어려워진다
UTXO 관리의 실전
UTXO의 개수와 크기는 수수료에 직접 영향을 미친다:
- 먼지 UTXO(Dust): 극소액 UTXO가 많으면, 이를 소비하는 데 드는 수수료가 금액보다 클 수 있다
- UTXO 통합(Consolidation): 수수료가 낮은 시기에 여러 소액 UTXO를 하나로 합치는 전략
- 코인 컨트롤(Coin Control): 어떤 UTXO를 입력으로 사용할지 수동으로 선택하여 프라이버시와 수수료를 최적화
Sparrow Wallet 같은 데스크탑 지갑은 UTXO를 개별적으로 확인하고 관리할 수 있는 기능을 제공한다.
연결되는 개념
- 비트코인 지갑 완벽 가이드 — UTXO를 실제로 관리하는 도구
- 멀티시그 — 다중 서명으로 UTXO의 보안을 강화
- 세그윗 — 서명 데이터를 분리하여 UTXO 처리 효율을 개선
- 라이트닝 네트워크 — UTXO를 기반으로 한 오프체인 결제 채널