이번 포스팅에서는 비트코인의 Transaction fee에 대해 알아보겠습니다.
선수지식으로는 비트코인의 UTXO에 대해 알고 있어야 합니다. 만약 모르신다면 다음 글을 먼저 읽어보세요.
up-to-date-items.tistory.com/91
비트코인에서 상대방에게 비트코인을 전송하기 위해서는 수수료가 필요합니다. 많이들 착각하는 사실중 하나는 이 수수료가 transaction의 가격이 높을 수록 많이 든다는 것입니다. Mastering Bitcoin에 다음과 같이 나와있습니다.
Transaction fees are calculated based on the size of the transaction in kilobytes, not the value of the transaction in bitcoin.
즉, 수수료는 transaction의 크기와 상관이 있지 transaction의 value와는 상관이 없습니다.
그럼 이런 생각이 들 수 있습니다. transaction이란 한 사람이 다른 사람에게 보내는 거래내역인데 그 크기는 다 비슷하지 않나요?
저도 처음에 위와 같은 생각을 했습니다. 하지만 이 역시 책에 잘 설명이 되어있는데 제가 내용을 조금 바꿔서 설명해보겠습니다.
Mary라는 사람이 50BTC를 가지고 있다고 가정해봅시다. 또, Mary는 50BTC를 정말 많은 사람으로부터 받았다고 가정해봅시다.
많은 사람들로부터 받았다는 뜻은 Mary는 많은 UTXO를 가지고 있다는 뜻입니다. (지금 이 문장이 이해가 안된다면 위의 링크로 들어가서 UTXO에 대해 읽어보세요.)
이제 Mary가 50BTC로 슈퍼컴퓨터를 산다고 가정해봅시다. 그럼 Mary는 슈퍼컴퓨터를 파는 판매자의 지갑 주소로 50BTC를 보내는 transaction을 만들 것입니다. 이 transaction을 만드는 과정에 있어 Mary의 50BTC는 수많은 UTXO들로 이루어져 있습니다. 즉, 이 transaction의 크기는 다른 transaction들의 크기보다 클 것입니다.
transaction의 크기가 커지면 채굴자들이 더 많은 노력을 해야하므로 Mary가 만약 적은 수수료를 낸다면 채굴자들은 Mary의 transaction에 대한 검증을 안할 것이고 우선순위에서 밀리게 될 것입니다.
그럼 다시 사용자가 전송하려는 비트코인의 가격이 높을 수록 수수료가 비싸지냐는 질문에 정확한 대답을 한다면
항상 그런건 아니지만 대부분 그렇다 입니다.
왜냐하면 예를들어 10BTC를 누군가에게 보내려고할때 아마 대부분은 10BTC를 만들기위해 1~2개의 UTXO가 아닌 몇십개 또는 그 이상의 UTXO로 10BTC를 만들 것이고 그럼 transaction의 크기가 커지기 때문입니다.
'Bitcoin' 카테고리의 다른 글
비트코인의 블록구조와 체이닝 (0) | 2021.03.17 |
---|---|
비트코인의 Bloom Filters (0) | 2021.03.16 |
비트코인의 SPV Nodes (0) | 2021.03.16 |
비트코인의 네트워크(새로운 노드가 추가되는 원리) (0) | 2021.03.15 |
비트코인의 UTXO란? (0) | 2021.03.14 |