비트코인의 가격이 올라가고 거래량이 많아짐에 따라, 송금자가 낮은 수수료 책정 시 채굴자에 의해 승인이 되지 않거나 시간이 오래 걸리는 문제가 자주 발생하고 있습니다.
이는 기본적으로 블럭 당 처리 가능한 파일 용량 제한의 문제 때문에 발생하고 있는데, 오늘 2017년 8월 1일 예정된 SegWit2는 이에 대한 임시방편의 대안이라고 할 수 있습니다. 이에 비트코인은 어떻게 수수료가 결정되는지 알아보는 것은 유의미하다 할 수 있겠습니다.
아래 내용은 2013년에 작성된 글이며, 구체적인 수수료 계산 프로토콜에서 지금과는 일부 내용이 다를 수 있습니다.
★ 수수료에 대한 중요 알림
2017년 6월 지금 현재는 0.001 이상을 책정하는 것이 안전합니다.
비트코인 모바일 앱을 예로 들면, 각 앱마다 조금씩 다르긴 하지만 bitcoin wallet 앱이나 coinomi, electrum 등의 앱에서 기본 설정값을 사용하면 무리 없이 거래 승인이 됩니다.
물론 아주 중요한 거래이고 최대한 빨리 송금되어야 한다면, 현재 비트코인 가격 및 사용 환경에서는 0.002 btc 이상 책정하시는 것이 좋습니다.
이처럼 비트코인의 가격이 상승하고 거래 수가 많아짐에 따라 덩달아 인증 수수료가 폭등함으로써 SewWit2 프로토콜로의 하드포크와 같은 필요성이 제기되고 있습니다.
★ 낮은 수수료 책정으로 오랫동안 거래 승인이 안되더라도, Child Pay for parent bitcoin 과 같은 방법을 통해 거래 승인이 되도록 만드는 좀 더 고난이도의 방법이 있는데, 다음에 한 번 다뤄보겠습니다.
■ 비트코인의 수수료 정책
일반적으로 은행 계좌의 경우, 송금 혹은 상품 거래 시 보내는 쪽이나 받는 쪽 환경에 따라 일정량의 수수료가 책정되고 관리 기관이 수수료를 가져가게 되는데, 비트코인의 경우는 그 궤를 달리한다.
예컨대 비트코인의 수수료는 기본적으로는 송금자의 자발적인 수수료 납부 정책에 의해 결정된다.
이는 자신의 거래 인증을 해주는 상대방(비트코인 채굴자)이 네트워크 상에 반드시 존재해야 한다는 이유 때문이다.
이외에 사용자가 이용하는 전자지갑에 따라 좀더 다양한 수수료 결정 형태를 가지고 있다.
실제로 가장 (범용적인) 비트코인 전자지갑 중의 하나인 bitcoin-QT 전자지갑을 사용할 경우, 거래 시 수수료는 다음과 같다.
- bitcoin-QT : 비트코인 핵심 코어 클라이언트로 2009년 비트코인 탄생부터 현재까지 모든 블럭체인을 다운로드받고 동기화하기 때문에, 동기화에 아주 오랜 시간이 걸리며 많은 하드웨어 자원이 필요하다.
일반 사용자는 모바일 앱을 사용하는 것을 추천하며, 굳이 데스크톱 환경의 지갑을 사용해야 한다면 모든 블럭체인을 다운로드받는 것이 아닌 신뢰하는 피어로부터 가장 최근 몇 개의 블럭만 다운로드받아 동기화하는, Electrum이나 MultiBit 지갑을 사용하는 것이 좋다.
- 받는 사람 수수료 없음
- 먼저 자신의 계좌로 비트코인을 받는 경우 수수료가 없다.
- 보내는 사람 수수료 0.0005BTC (2017년 현재 변동사항 있음)
비트코인을 보낼 경우, 거래 인증 속도 및 인증 처리 우선순위 등 좀 더 복잡한 변수가 존재하고 많은 정책적인 의미가 있는데, 간단히 말하자면 다음과 같다.
한번에 수십 개의 계좌로 송금하는 특별한 거래 건이 아니라면 최저 수수료가 0.0005 BTC가 부과된다. (2013년 4월 10일 기준 한화 75원. 지금 2017년 6월 기준으로 1500원이지만 현재 이 금액으로도 거래 승인이 안 되거나 늦어지는 경우가 많음)
- 비트코인 전자지갑은 한번에 여러 계좌로 동시에 송금하는 것이 가능하다(Mass Payment).
- 송금자가 책정한 수수료가 많을수록 인증 속도가 빨라질 수 있는데, 통상 기본 수수료(0.0005BTC)가 부과된 거래는 10 분 이내에 승인이 완료된다.
일단 여기까지만 이해하고 비트코인 수수료 정책이 갖는 여러 정책적, 기술적 의미에 대해 알고 싶다면 계속 읽어보자.
■ 비트코인 거래 인증 절차
비트코인 네트워크에서 신규 거래의 의미는, 나로부터 발생한 신규 거래가 현재 비트코인의 가장 긴 블럭 체인에 접근한 채굴자의 해쉬 정보에 덧씌워져서 다음 체인으로 전달될 때, 비로소 1번의 인증이 완료된다.
그리고 이 인증 절차가 여러 번 이상 완료될때 완전무결한 유효한 거래로 인정되는데, 통상적으로 10분 이내에 1번의 인증이 완료된다.
신규 트랜잭션의 승인 절차를 순수하게 비용적인 측면에서 본다면, 비트코인 사용자간 트랜잭션 발생 당시 인증 역할을 수행하는 인증 주체( 채굴자)가 비트코인 네트워크 상에 존재하고, 이들이 인터넷 망 사용료와 전기, 하드웨어 등 부가적인 비용을 부담한다라고 볼 수 있다.
따라서 해당 채굴자의 해쉬 인증 비용(Hash Verification Cost)에 대한 일정 금액의 보전이 이루어져야 인증 속도가 빨라지는 등 전체 비트코인 트랜잭션 네트워크가 활성화될 수 있다고 하겠다.
수수료가 바로 이 역할을 담당하는 것이다.
수수료 책정에 있어서 트랜잭션 데이터 량(Transaction Data Size)의 많고 적음, 해당 거래의 우선 순위 판단이 중요한 근거가 되는데, 실제 그 데이터 파일의 크기와 우선 순위 점수에 연동해서 수수료 및 인증속도가 결정된다.
우선 기본적인 수수료 정책인 수수료 0(Zero)가 발생하기 위한 조건을 알아보자
ⓛ 트랜잭션 금액이 0.01BTC를 초과할 것
단일 거래에서 타인의 비트코인 계좌(단일 혹은 다중계좌)로 보내는 총액이 0.01 BTC를 넘어야 한다.
2013년 4월 10일 기준 0.01BTC는 한화 1500원 정도에 해당하므로, 대부분의 거래 당사자에게 문제가 없는 수준이라 하겠다.
② 트랜잭션의 우선 순위 점수가 충분히 높을 것
트랜잭션(Transaction) 인증 네트워크는 거래 우선 순위(Transaction Priority) 점수가 높을수록 빨리 처리한다. 우선 순위 점수는 금액이 크고, 데이터 크기가 적고, 오래된 비트코인(쉽게 설명하자면 새로 발행된 화폐가 아닌 오래된 구권 화폐가 더 안전)일수록 높아진다.
이 우선 순위의 충족 요건은 다음에 의해 결정된다.
input_value_in_base_units = 비트코인 금액
input_age = 비트코인의 나이(즉 인증 횟수)
size_in_bytes = 블럭 데이터 크기
priority(우선 순위) = sum(input_value_in_base_units * input_age)/size_in_bytes
즉, 트랜잭션 파일 크기가 적어야 하며, 거래 금액이 크고 오래된 비트코인일수록 우선 순위가 높은 것이다.
그리고 비트코인 채굴자는, 이 우선순위 점수에 더해 수수료가 많을수록 중요한 거래라고 간주하고(혹은 더 많은 수익을 위해), 승인을 좀더 빨리 처리하게 된다.
트랜잭션의 송금자가 자발적으로 책정한 수수료가 많다라는 것이 의미하는 바는, 이 건이 금액의 많고 적음에 상관없이 중요한 거래라고 판단하거나, 이 금액을 수령하는 하위 계층에 많은 수신자가 존재, 데이터 크기가 큼에도 불구하고 빠른 인증 처리를 위해 인증 수수료를 많이 할당한 것이라고 할 수 있다.
③ 트랜잭션 데이터의 크기가 10,000bytes보다 적을 것
먼저 트랜잭션 데이터의 크기에 따른 수수료 책정이 중요한 이유를 짚고 넘어가자.
이 정책이 의미하는 것 중의 하나는 악의적인 목적하에 네트워크 인증시스템에 공격을 하는 것을 막기 위한 것이다.
예를 들어 비트코인 유저 중 누군가가 0.001 BTC(2013년 현재 한국 원화 150원)를 한번에 1,000군데의 계좌로 나누어서 여러 번 송금하는 경우, 비트코인 인증 네트워크가 의미없는 가비지 트랜잭션(Garbage Transaction 가치없는 거래) 데이터를 무차별적으로 수신함으로써, 결국 인증 프로토콜의 지연과 거부를 초래할 수 있다.
트랜잭션의 우선 순위 판단과 수수료는 이러한 공격성 목적의 거래를 미연에 차단하기 위한 것이다.
돌아와서, 일반적으로 개인간 1대1 통상적인 송금 거래의 경우 그 데이터 사이즈가 500bytes에 불과하므로 이 자체로는 별다른 해당 사항이 없다.
실제로는 위에서 언급했던 바, 트랜잭션 프로토콜과 송금자 1인 및 해당 시기에 발생한 모든 신규 트랜잭션 정보가 채굴자가 도달한 블럭 체인의 해쉬 정보길이에 덧씌워지는 형태로 인증 절차가 진행된다는 것이다.
더불어 자신이 거래하는 시점에 채굴자가 도달한 블럭의 심도(Depth)가 어느 정도의 깊이냐에 따라 신규 블럭 체인의 해쉬 크기가 달라지고 인증 속도 또한 변화하게 되는 것이다.
전자지갑에 따라 상이하기는 한데, 위 모든 조건을 충족한다면 0(zero) 수수료가 발생할 수 있으나, 채굴자로부터 인증을 받는 것에 많은 시간이 걸릴 것이다.
이처럼 인증 속도의 과도한 편차와 네트워크의 지연 또는 거부 등 부정적인 상황의 발생 가능성을 최소화하고, 채굴자의 인증 속도를 최저 한도 이상으로 유지하기 위한 정책의 일환으로, Bitcoin -QT 지갑은 모든 기본 데이터 사이즈가 1,000bytes에 가깝다고 보고 최저 수수료 0.0005 BTC를 기본값으로 부과하고 있다.
■ 수수료가 곧 인증 네트워크의 활성화
비트코인은 중앙 통제 기관이 존재하지 않으므로, 이 수수료를 가져가는 주체는 다름 아닌 채굴자인데, 결국 이 수수료가 채굴자들에게 인증 시스템 역할로서의 동기를 부여하게 되고, 비트코인의 유동성 확대를 불러오는 등 전체 비트코인 경제의 동맥 역할을 수행하게 되는 것이다.
더불어 추후 채굴로 인한 수익이 아주 적어졌을 때(2017년 6월 현재 채굴자는 신규 블럭을 발견할 때마다 12.5 BTC를 보상으로 받음) 트랜잭션 당사자가 지불한 수수료 수입이 채굴을 의미있게 만드는 동력이 될 수 있는데, 이 자발적인 수수료 시스템은 비트코인 인증 네트워크의 핵심적인 촉매 중 하나라고 할 수 있다.
번역 참조 : 영문 위키피디아 https://en.bitcoin.it/wiki/Transaction_fees
좋은글 잘보고 갑니다ㅎㅎ 57분 뉴스도 자주 해주세요~
대문 사진은 @maa님과 함께 찾아 보겠습니다 ㅎㅎ tag는 최대 5개까지 가능 합니다 ㅎㅎ
https://steemit.com/guide/@woo7739/6qmlna
한번 읽어보시길 바랍니다 스팀 가이드 입니다 ㅎㅎ 우님이 잘 정리 해주셨어요
감사합니다. dubi님.
빨리 배우도록 하겠습니다.
도움이 많이 됐습니다.
Congratulations @disbi! You received a personal award!
You can view your badges on your Steem Board and compare to others on the Steem Ranking
Vote for @Steemitboard as a witness to get one more award and increased upvotes!