쉽게 설명하는 블록체인, 비트코인 거래의 원리와 과정 - 2 [거래의 입력값과 출력값]

우리는 최근 스마트폰을 이용해 Toss, 카카오 페이, 그리고 여러 금융기관들의 앱 등을 이용해 손쉽게 송금하고 있다.

그래서 누군가에게 돈을 보낼때 우리는 스마트폰에 보낼 금액 란에 얼마를 입력하고 계좌비밀번호, 인증서 비밀번호를 치고 스마트폰으로 아주 쉽게 거래하는 방식이 자리잡혀가고 있다.

비트코인 거래도 마찬가지인데 보낼금액에 몇 BTC를 보낼지 입력하는 입력값(input)을 넣으면, 해당 입력값에 대응하는 지갑주소에서 몇 BTC를 나타내는 출력값(output)이 생긴다. 그리고 이 출력값(output)은 블록에 기록된다. 즉 이 출력값(output)이 지갑에 찍히는 '잔액 덩어리'인 것이다.

거래입력값출력값.jpg

좀 더 자세히 말하면 블록에 있는 비트코인 거래들의 구성은 '소비되지 않은 거래 출력값(Unspent Transaction Output, UTXO)'로 이루어 진다. 이전 용어설명 포스팅에서 개념만 간단히 설명했었는데 UTXO는 비트코인 거래에 있어서 정말 중요한 개념이기에 조금더 자세히 다뤄보자.

거래입력값출력값1.jpg

비트코인 지갑상에서는 계좌라는 개념, 잔액이라는 개념을 UTXO 데이터로 대체한다. 각 지갑의 UTXO들은 해당 지갑 주인에 대해 암호로 잠겨있고 블록체인상에서 해당 UTXO의 주인을 기록하고 있는 전체 블록체인 네트워크에서 유통되는 화폐 덩어리이다.

이게 무슨말인가. 그림으로 한번 보자.

UTXO설명1.jpg

유재석, 김구라는 박명수에게 각각 5BTC, 1BTC를 송금했고 이 내역은 블록에 기록이 되었다고 가정하자. 그러면 박명수에게 생기는 UTXO는 유재석이 입력한 5BTC 입력값(input)에 대한 출력값(output) 하나와, 김구라가 입력한 1BTC 입력값(input)에 대한 출력값 하나를 합해 총 2개의 출력값(output)이 생성 되었다. 이 5BTC와 1BTC를 각각 서로 다른 UTXO라고 한다.

그렇다면 아래의 거래를 보면 김국진이 강호동, 이경규, 신동엽으로부터 각각 2BTC, 9BTC, 1BTC를 받은 김국진의 UTXO는 3개가 된다.

UTXO설명2.jpg

여기서 김국진이 노홍철에게 8BTC를 보내려고 하면

UTXO설명3.jpg

김국진이 가진 UTXO중 8BTC이상의 데이터를 찾아 입력값으로 8BTC를 넣으면 9BTC의 UTXO가 들어가서 노홍철 지갑주소에 8BTC가 출력값으로 찍히고, 또 잔액으로 김국진의 주소에 1BTC가 출력값으로 찍힌다.

UTXO설명4.jpg

그렇게 되면 총 UTXO의 수는 5개에서 6개로 늘어난다. 이것이 UTXO의 개념인데 다시한번 간략히 말하자면 비트코인 거래를 할 수 있는 데이터이자 잔액의 데이터 덩어리라고 할 수 있다.

만원의 지폐를 찢어서 사용할 수 없는 것처럼 UTXO 또한 쪼개서 사용할 수 없고 비트코인 지갑이 사용할 수 있는 UTXO를 찾아 데이터를 전송하는 역할을 해준다.

이때 참고할 것은 위 그림의 김국진과 노홍철의 거래처럼 하나의 입력값(input)에 대하여 두개의 출력값(output)이 생성되어도 수수료는 한번밖에 나오지 않는다는 것을 알아두자.

만일 박명수가 8BTC를 노홍철에게 전송하려고하면 가진 UTXO 데이터중 8BTC를 전송할 수 있는 데이터가 없기 때문에 입력값에 대하여 ERROR값을 리턴하게 된다.

이러한 방식으로 입력값과 출력값으로 인해 비트코인 거래가 성사된다.

최대한 쉽게 설명하려고 하지만 모르시는 분들을 위해 언제든지 어떤 내용이든 댓글로 질문을 받습니다.
질문의 내용이 길 경우는 jsralphh@gmail.com으로 보내주시면 감사하겠습니다.

H2
H3
H4
3 columns
2 columns
1 column
Join the conversation now