
밑바닥부터 시작하는 비트코인
156
result += tx_out.serialize()
result += int_to_little_endian(self.locktime, 4)
return result
Tx
를 직렬화하기 위해
TxIn
과
TxOut
의
serialize
()
메서드를 이용했습니다.
그런데 지금까지 트랜잭션 설명에서 어디에도 트랜잭션 수수료는 없다는 점이 이상합니다. 수
수료는 다음 절에서 설명하겠지만 입력과 출력으로 유추할 수 있습니다.
5.7
트랜잭션 수수료
비트코인 합의 규칙 중 하나는 코인베이스 트랜잭션
7
이 아닌 모든 트랜잭션의 입력 합은 출력
의 합보다 같거나 커야 한다는 것입니다. 그러나 입력과 출력이 같은 경우는 거의 없습니다. 그
이유는 그 차이가 수수료인데, 트랜잭션의 수수료가
0
이라면 채굴자가 트랜잭션을 블록에 포
함시킬 동기가 사라지기 때문입니다 (
9
장 참고 ). 수수료는 채굴자가 트랜잭션을 블록에 포함시
키도록 하는 인센티브입니다. 블록에 포함되지 않고 있는 트랜잭션 (멤풀 트랜잭션 )은 블록체
인의 부분이 아니고 따라서 확정되지 않은 상태입니다.
수수료는 단순히 입력의 합에서 출력의 합을 뺀 값입니다. 이 차이를 채굴자가 가져갑니다. 입
력은 금액 필드를 갖고 있지 않기 때문에 금액은 입력이 가리키는 이전 트랜잭션의 출력에서
찾아야 합니다. ...