[블록체인] 3. Transaction

GisangLee·2022년 4월 13일
0

블록체인

목록 보기
3/5

1. 거래 (transaction ,tx) 생성 과정

  • 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이 사용할 수 있는 잔고가 있을 수 있음. -> 총 잔고

profile
포폴 및 이력서 : https://gisanglee.github.io/web-porfolio/

0개의 댓글