UXTO
Unspent transaction output
blockchain bitcoin
Unspent transaction output
UXTO(Unspent transaction output) 는 미사용 거래 출력으로 "아직 소비되지 않은 거래의 결과물" 이다.
- 은행(Account Model): 내 장부에 10,000원이라는 숫자가 있고, 3,000원을 쓰면 숫자가 7,000원으로 업데이트된다. (Update 방식)
- UTXO: 내 지갑에 10,000원짜리 지폐 한 장이 있다. 3,000원을 쓰려면, 10,000원 지폐를 내고(Input), 3,000원은 가게에 주고, 7,000원을 거스름돈(Change) 으로 돌려받는다(Output). 이때 돌려받은 7,000원이 바로 새로운 UTXO 가 된다.
UTXO 모델에서 모든 거래는 입력(Input) 과 출력(Output) 으로 구성된다.
- 입력(Input): 과거에 내가 받아서 가지고 있던 UTXO를 잠금 해제하여 사용합니다. (지폐를 꺼냄)
- 출력(Output): 새로운 주인에게 갈 UTXO와, 나에게 돌아올 거스름돈 UTXO를 생성합니다. (새 지폐를 발행함)
핵심 규칙:
- UTXO는 쪼개질 수 없다. 1 BTC짜리 UTXO가 있다면, 0.1 BTC만 보내더라도 1 BTC 전체를 입력으로 넣어야 한다. 남은 0.9 BTC는 나에게 다시 '새로운 UTXO'로 돌아온다.
UTXO는 공개키 암호화를 통해 소유권을 관리한다. 기술적으로 이를 잠금(Locking)과 해제(Unlocking) 라고 표현한다.
- 잠금 (Locking Script): 누군가 나에게 비트코인을 보낼 때, 그 UTXO에 내 공개키(Public Key) 를 기반으로 자물쇠를 채운다. "이 돈은 A의 공개키에 대응하는 서명이 있어야만 쓸 수 있다" 고 명시하는 것이다.
- 해제 (Unlocking Script): 내가 이 UTXO를 사용하려면, 내 개인키(Private Key) 로 만든 디지털 서명을 제시해야 한다. 네트워크는 서명을 검증하고, 맞다면 자물쇠를 열어 해당 UTXO를 '소비(Spent)' 상태로 만든다.
이 과정이 반복되면서 코인의 탄생(채굴)부터 현재까지 이어지는 '소유권의 체인(Chain of Ownership)' 이 형성된다.