Fee Rate는 트랜잭션 수수료를 가상 크기 vsize로 나눈 값입니다. 보통 가상 바이트당 사토시인 sat/vB로 표시합니다. 사토시(sat)는 비트코인 기본 네트워크에서 기록하는 가장 작은 단위입니다. 전체 수수료는 입력 금액과 출력 금액의 차이입니다. 높은 요율은 빠른 확인에 도움이 될 수 있지만 대기 순번이나 시간을 보장하지는 않습니다.
트랜잭션 입력은 이전에 받은 금액 중 지금 지출하려는 출력들을 참조합니다. 아직 지출되지 않은 출력을 UTXO라고 합니다. 새 출력은 금액과 나중에 이를 지출할 조건을 정합니다. 수신인에게 보내는 출력이나 자신의 지갑으로 잔돈을 돌려보내는 출력이 그 예입니다. 구조가 같은 두 트랜잭션은 전송 금액이 크게 달라도 크기와 수수료가 같을 수 있습니다. 주로 중요한 것은 입력과 출력의 수와 유형입니다. 그래서 작은 UTXO 여러 개를 지출하는 것이 적절한 출력 하나에서 더 큰 금액을 보내는 것보다 비쌀 수 있습니다. 원화 환산액이 아니라 트랜잭션 구조가 중요합니다. [2] [3]
완성된 트랜잭션이 150 vB이고 20 sat/vB를 지불한다면 수수료는 3000 sat입니다. 같은 요율에서도 큰 트랜잭션은 더 비쌉니다. 서명 전에 요율과 전체 수수료를 모두 확인하세요. 서명이 끝나기 전에는 지갑이 크기를 추정할 수 있으므로 최종 결과가 처음 제안과 정확히 일치하지 않을 수도 있습니다. [3]
SegWit은 서명 등 거래 검증 데이터의 일부를 witness라는 별도 영역으로 분리한 비트코인 업그레이드입니다. SegWit은 데이터에 다른 가중치를 줍니다. 기본 바이트는 weight 4단위, witness 데이터 바이트는 1단위로 계산합니다. BIP141은 vsize를 weight를 4로 나눈 뒤 정수로 올림한 값으로 정의합니다. 따라서 가상 크기는 파일의 바이트 수와 다를 수 있습니다. 지갑과 노드는 각자의 트랜잭션 수용 규칙에서 추가 제한을 고려하기도 하므로 다운로드한 파일 길이만으로 요율을 계산하지 마세요. [2] [6]
노드는 비트코인 데이터를 검증하고 전달하는 프로그램입니다. Mempool에는 노드가 받아들인 미확인 트랜잭션이 저장됩니다. 어떤 트랜잭션이 다른 트랜잭션의 출력을 지출하면 지출하는 쪽을 자식, 출력을 만든 쪽을 부모라고 부릅니다. 채굴자는 유효한 트랜잭션 중 무엇을 넣을지 선택합니다. 한정된 공간에 대한 수수료는 중요한 유인이지만 요율 자체가 대기표 번호는 아닙니다. 종속된 트랜잭션은 조상과 후손의 수익을 함께 평가할 수 있어, 수수료가 높은 자식 트랜잭션이 수수료가 낮은 부모 트랜잭션에 도움이 될 수 있습니다. 서로 다른 노드가 보는 Mempool도 완전히 같을 필요는 없습니다. [8]
노드는 낮은 요율의 트랜잭션을 중계하지 않거나 가득 찼을 때 제거할 수 있습니다. 이는 로컬 정책이지 비트코인 전체의 통일된 요금표가 아닙니다. 수수료가 낮다는 이유만으로 블록 안의 트랜잭션이 무효가 되지는 않습니다. getmempoolinfo의 mempoolminfee는 현재 로컬 기준값이며, 다른 노드의 수용이나 채굴자의 포함을 보장하지 않습니다. [5] [2] [9]
추정은 관측된 트랜잭션과 확인 결과를 목표 블록 수와 연결합니다. Bitcoin Core의 estimatesmartfee는 서로 다른 기간을 보는 economical 및 conservative 모드를 제공합니다. 앞으로 들어올 지급과 블록 발견은 여전히 불확실합니다. 관측이 부족하면 노드가 추정 대신 오류를 반환할 수 있습니다. 값이 없다는 것은 무료라는 뜻이 아니며, 몇 블록이라는 목표도 분 단위의 고정 기한은 아닙니다. [4]
Bitcoin Core 29.0의 estimatesmartfee는 BTC/kvB를 반환하지만 많은 지갑은 sat/vB를 표시합니다. 0.00020 BTC/kvB는 20 sat/vB입니다. 숫자는 그대로 두고 단위만 바꾸면 안 됩니다. decoderawtransaction은 size, vsize, weight를 보여주며, 수수료를 계산하려면 지출하는 이전 출력의 금액도 필요합니다. 서비스를 연결할 때는 필드의 단위와 인터페이스 버전을 확인하세요. [4] [6]
RBF (Replace-by-Fee)는 지갑과 수신 정책이 지원하면 적합한 미확인 트랜잭션을 충돌하는 더 높은 수수료의 버전으로 교체할 수 있습니다. CPFP (Child Pays for Parent)는 대기 중인 트랜잭션의 사용 가능한 출력을 지출해 부모와 자식의 합산 요율을 올립니다. 어느 쪽도 만능 버튼은 아닙니다. 통제할 수 있는 출력, 종속 관계, 노드 규칙이 중요합니다. 서명할 때 늘어난 전체 수수료도 미리 알고 있어야 합니다. [7] [8]
먼저 언제 확인이 필요한지 정하세요. 그런 다음 현재 추정치, 전체 수수료, 나중에 올릴 수 있는 방법을 비교합니다. 많은 UTXO로 이루어진 비정상적으로 큰 트랜잭션도 살펴보세요. 시간이 있으면 나은 조건을 기다릴 수 있지만 요율 하락이 보장되지는 않습니다. 실제 상태를 확인하고, 첫 전송이 아직 대기 중이라는 이유만으로 새 독립 전송을 보내지 마세요. [1] [4] [7]
더 정확히 이해하려면 이 항목과 함께 다음도 읽어 보세요 Transaction Fees, Mempool, Replace-by-Fee (RBF), CPFP (Child Pays for Parent). 다음 항목에서도 이 글을 참조합니다 Change Address, 확인, Replace-by-Fee (RBF), CPFP (Child Pays for Parent).