Alice가 Bob에게 2.0 BTC를 보낸 상태 (A)
Bob이 Canday에게 0.3 BTC를 보내는 거래(B)는 Input과 Output으로 구성함.
(A)의 UTXO는 오직 Bob 만이 사용할 수 있도록 Bob의 공개키 (해시)로 잠가 놓았음. Bob은 (B) input에 이 잠금 장치를 풀 수 있는 키를 제시해야 함.
잠금 장치 해제는 개인키로 전자 서명 (Digital Signature)을 하고, 서명과 함께 공개키를 input에 제시함. 전자 서명은 개인키를 가지고 있는 Bob만 할 수 있음.
Output은 Candy에게 0.3 BTC를 보낸다는 내용과 나머지는 다시 자신에게 보낸다는 내용을 기록함.
Input의 총액은 2.0이고, Output의 총액은 1.95 BTC임. Input 총액과 Output 총액의 차이인 0.05는 수수료 (Fee)로 Miner가 거래 승인의 대가로 가져감.
만약 Output에 다시 자신에게 보내는 항목이 없다면 수수료는 1.7 BTC가 되어 Miner가 모두 가져감. 지갑 프로그램을 만들 때 주의 사항임.
수수료가 없다면 (Fee = 0) Miner는 이 거래를 블록에 포함시키지 않을 것이므로, 이 거래는 블록체인에 추가되지 못함. -> 거래가 승인되지 않음.
향후 Candy가 0.3 BTC를 사용하려면 Bob이 Candy에게 보낸 거래 (B)의 Output을 참조해야 함.
Bob이 Candy에게 0.3 BTC를 보낼 때 (B) 부분만 비트코인 네트워크로 전송됨.
(B)의 Input 부분에는 Bob의 실제 잔고가 기록되어 있지 않고, Output에 수수료도 기록되어 있지 않음. 따라서 (B)만 가지고는 수수료를 계산할 수 없음.
Miner가 (B)를 수신하면 Input이 가리키는 거래 (A)를 참조하여 Bob의 잔고를 알아 내서 수수료를 계산함.
Alice가 Bob에게 보낸 2.0 BTC 이외에 다른 사람이 Bob에게 보낸 다른 거래 내역의 Output에도 Bob이 사용할 수 있는 잔고가 있을 수 있음. -> 총 잔고