용어집 / 트랜잭션과 수수료
비트코인 트랜잭션
별칭은 트랜잭션입니다.
- 비트코인 트랜잭션이란 무엇입니까?
- 비트코인 트랜잭션은 기존 코인 일부를 소멸시키고 그 자리에 새로운 코인을 생성하는 서명된 지시문이며, 네트워크에서 가치가 이동하는 유일한 방식입니다.
비트코인에는 잔액을 보관하는 것이 없습니다. 원장은 미사용 출력의 집합이고, 결제는 출력 전체를 소비하고 그 대체물을 새로 발행하며, 남는 것은 모두 수수료로 채굴업자에게 돌아갑니다. 역사상 첫 트랜잭션은 2009년 1월 12일 블록 170에서 Satoshi Nakamoto에서 Hal Finney로 10 BTC를 이동시켰고, 그 이후의 모든 트랜잭션과 마찬가지로 취소할 수 없었습니다.
작동 방식
비트코인 트랜잭션은 여섯 부분으로 이루어진 짧은 이진 구조이며, 지갑은 무엇이든 전송되기 전에 이 모든 부분을 조립합니다.
버전은 4바이트입니다. 버전 1이 원래 버전이었습니다. 버전 2가 존재하는 것은 BIP68이 상대적 타임락을 위해 시퀀스 번호에 새로운 의미를 부여했기 때문이며, 최신 지갑은 이를 기본값으로 설정합니다. 다음은 입력이며, 각 입력은 이전에 생성된 출력 하나를 지목하고 그것을 소비할 권리의 증거를 담고 있습니다. 그다음은 출력이며, 각 출력은 사토시 단위의 금액과 다음에 누가 그것을 소비할 수 있는지를 명시한 잠금 스크립트를 담고 있습니다. SegWit 트랜잭션은 서명을 담은 위트니스 섹션을 추가하며, 이 섹션은 트랜잭션 ID를 결정하는 부분의 바깥에 위치합니다. 마지막은 락타임으로 4바이트이며, 보통 현재 블록 높이로 설정되어 트랜잭션이 이전 블록으로 끌어들여질 수 없게 합니다.
그 구조 어디에도 수수료 필드는 없습니다. 수수료는 산술입니다. 즉 입력 가치의 합에서 출력 가치의 합을 뺀 것이며, 출력에 배정하지 못한 것은 무엇이든 그 블록을 채굴하는 사람에게 넘어갑니다. 이것이 거스름돈을 잘못 계산하는 지갑 버그가 실제 돈을 버릴 수 있는 이유이며, 모든 지갑이 잔액을 남기지 않고 자기 자신으로 돌아오는 거스름돈 출력을 만드는 이유입니다.
서명은 이 모든 것을 하나로 묶습니다. 기본 SIGHASH_ALL 규칙에서는 각 서명이 모든 입력과 모든 출력에 확정적으로 묶이므로, 출력 하나의 사토시 하나만 바꿔도 트랜잭션의 모든 서명이 무효가 됩니다. 이것이 전송된 트랜잭션의 내용을 확정적으로 만드는 이유이며, 아직 확인되지 않았더라도 그렇습니다.
크기는 원시 바이트가 아니라 가상 바이트로 측정됩니다. SegWit이 위트니스 데이터를 가중치의 4분의 1로 할인하고, 블록은 400만 가중치 단위의 예산으로 상한이 정해지기 때문입니다. 입력 하나와 출력 둘로 구성된 네이티브 SegWit 소비는 대략 141 가상 바이트가 됩니다.
비트코인을 구매할 때 이것이 중요한 이유
거래소에서 “비트코인 보내기”라고 불리는 것은 완전히 다른 두 가지이며, 그중 트랜잭션인 것은 하나뿐입니다.
같은 플랫폼 안에서 계좌 간에 코인을 옮기는 것은 데이터베이스 갱신입니다. 즉시 이루어지고 보통 무료이며 블록체인에 흔적을 남기지 않습니다. 트랜잭션이 만들어지지 않았기 때문입니다. 자신이 관리하는 주소로 출금하면 실제 트랜잭션이 만들어지고, 실제 수수료를 지불하며, 실제 블록을 기다리게 되며, 회사에 대한 청구권이 아니라 비트코인을 소유하는 것으로 끝나는 유일한 방식입니다.
출금하면 세 가지 실제 결과가 따릅니다.
취소할 수 없습니다. Replace-by-fee는 트랜잭션이 미확인 상태일 때 송신자가 수수료를 올릴 수 있게 하지만, 이를 만든 지갑만이 그렇게 할 수 있으며 거래소는 이용자를 대신해 하지 않습니다. 승인한 뒤가 아니라 승인하기 전에 주소를 확인하십시오.
받는 입금 하나하나가 나중에 소비할 때 비용을 지불하게 될 코인이 됩니다. 작은 구매 10건은 출력 10개를 남기며, 그 10개를 모두 소비해야 하는 미래의 결제는 큰 출력 하나보다 몇 배의 비용이 듭니다. 더 적은 횟수로 더 큰 금액을 출금하는 것이 비트코인에서 가장 저렴한 습관이며, 들이는 데 드는 비용은 없습니다.
거래소가 부과하는 수수료는 정책상의 숫자이며 네트워크 수수료가 아닙니다. 이는 미리 정해지고 멤풀을 거의 따라가지 않으므로, 한산한 날에는 실제 비용의 몇 배를 낼 수 있고 붐비는 날에는 상당히 적게 낼 수 있습니다. 이 사이트의 거래소 리뷰는 각 거래소가 출금을 어떻게 처리하는지 기록하며, 이용자가 직접 수수료율을 선택할 수 있게 하는 거래소를 선호할 만합니다.
실제 출금을 항목별로 읽는 방법
0.05 BTC를 구매해 출금한다고 가정합니다. 블록 탐색기에 나타나는 내용은 아마 혼란스러울 것입니다. 트랜잭션이 이용자 것만은 아니기 때문입니다.
대형 거래소는 일괄 처리합니다. 출금 트랜잭션 하나가 핫월렛의 입력 3개를 소비해 총 2.41 BTC의 가치를 옮기고, 출력 42개를 만들 수 있으며, 그중 하나가 이용자의 0.05 BTC이고 하나가 거래소로 돌아가는 거스름돈입니다. 입력당 대략 68 가상 바이트, 출력당 31바이트, 약 11바이트의 오버헤드로 계산하면, 그 트랜잭션은 1,517 가상 바이트에 가깝습니다. 수수료율 6 sat/vB에서 채굴업자는 약 9,102 사토시를 받으며, 이는 묶음에 포함된 고객 한 명당 대략 217 사토시에 해당합니다. 단독으로 전송했다면 이용자의 출금은 약 141 가상 바이트였을 것이고 약 846 사토시가 들었을 것입니다.
따라서 탐색기에는 이용자가 출금한 것보다 훨씬 많은 비트코인을 옮기며 한 번도 들어본 적 없는 수십 명의 수취인이 포함된 트랜잭션이 표시됩니다. 잘못된 것은 없습니다. 금액과 주소로 자신의 출력을 찾고, 트랜잭션 ID를 기록한 뒤 나머지는 무시하십시오.
비트코인 트랜잭션 vs txid
트랜잭션은 객체이고 txid는 그 지문입니다. ID는 위트니스 데이터를 제외한 직렬화된 트랜잭션에 대한 이중 SHA-256 해시이며, 64개의 16진수 문자로 표기되고, 트랜잭션을 반복하지 않고 참조할 수 있게 하기 위해 존재합니다. 지원 데스크는 txid를 요청하고, 탐색기는 txid로 색인하며, 이후 트랜잭션은 txid를 가리킵니다. 다만 이것은 영수증이 아닙니다. txid는 정확히 그 내용을 가진 트랜잭션이 존재함을 증명할 뿐이며, 누가 보냈는지 또는 왜 보냈는지에 관해서는 아무것도 말하지 않습니다.
비트코인 트랜잭션 vs PSBT
PSBT는 아직 완성되지 않은 트랜잭션입니다. BIP174에 정의된 이 형식은 입력과 출력에 더해 서명자에게 필요한 추가 정보, 예를 들어 소비되는 각 입력의 가치와 스크립트를 담고 있으며, 네트워크를 통해 전달되지 않고 기기 간에 이동합니다. 에어갭 및 다중 서명 구성이 이에 의존합니다. 오프라인 서명자가 PSBT를 읽고 서명을 추가해 돌려주는 방식입니다. 모든 입력에 서명이 완료되어야만 파일이 네트워크가 받아들일 트랜잭션으로 확정되며, 그 순간까지는 아무것도 전송되지 않은 것입니다.