짹뚜 스튜디오

[암호화폐] UTXO 본문

개발 공부/블록체인

[암호화폐] UTXO

짹뚜 2022. 3. 3. 21:33

거래에서 가장 중요한 것이 이중 지불이 되지 않아야 한다. A가 백만 원을 가지고 있는데 B와 C 동시에 백만 원을 입금할 수 없어야 한다. 중앙에서 관리를 하면 순차적으로 진행해서 B에게 백만 원을 입금하고 나서 C에게 백만 원을 입금할 때 잔액부족으로 이중 지불을 쉽게 방지할 수 있지만 비트코인과 같은 탈중앙화 시스템에서는 이것을 관리해주는 중앙이 없다. 그래서 비트코인은 이중 지불을 막기 위해서 UTXO를 사용한다.

UTXO

UTXO는 Unspent Transaction Outputs의 줄임말로 거래 내역 중 아직 소비하지 않은 거래 정보를 얘기한다. 비트코인은 이더리움과는 다르게 계정이나 잔고가 없고 UTXO의 합으로 비트코인을 얼마나 소유하고 있는지를 알 수 있다. UTXO는 각각의 코인들이 저장되어있는 공간으로 그 공간의 소유권을 가짐으로써 비트코인을 소유하게 되는 것이다. 비트코인의 Transaction은 해당 비트코인의 소유권을 이전하는 것이라고 할 수 있다. 

 

UTXO란 단순히 얘기해서 지폐나 동전과 같다. 만약 1 BTC를 받으면 1 BTC를 담고 있는 UTXO가 자기 자신의 지갑에 생성이 된다. 이렇듯 비트코인을 받을 때마다 해당 비트코인을 담고 있는 UTXO가 생성이 된다.

 

UTXO가 사라지는 경우는 소비가 될 때이다. 즉, 비트코인을 다른 사람에게 전송할 때 UTXO는 소멸된다. 예를 들어 3 BTC와 6 BTC의 UTXO를 가지고 있다고 가정해보자. 만약 B라는 사람에게 2 BTC를 전송한다고 하면 일단은 3 BTC가 있는 UTXO를 선택해서 2 BTC와 1 BTC가 들어있는 UTXO를 각각 생성한다. 이 과정에서 3 BTC가 있던 UTXO는 소멸된다. 그다음에 2 BTC가 들어있는 UTXO를 B에게 보내주고 1 BTC가 들어있는 UTXO를 나에게 보낸다. 이렇듯 3 BTC가 있는 UTXO에서 단순히 2를 빼는 것이 아닌 새로운 UTXO를 생성한다. (5만 원을 건네주고 2만 원을 거스름돈으로 받을 때 5만 원 지폐를 찢어서 주는 것이 아닌 2만 원을 주는 것과 비슷한 개념이다.) 

 

따라서 한번 사용된 UTXO는 바로 소멸되기 때문에 이중 지불 문제를 해결할 수 있다.

 

Comments