RBF는 아직 블록에 포함되지 않은 거래를 같은 입력을 소비하는 새 거래로 교체해 수수료를 높일 수 있게 하는 멤풀 정책입니다. 교체 거래가 원래 거래보다 충분한 총수수료와 추가 중계 비용을 내야 하며, 노드 정책과 지갑 상태에 따라 수용 여부가 달라집니다. 확정된 거래를 되돌리는 기능은 아닙니다.
RBF는 확정 전 거래를 교체하는 멤풀 정책이다
비트코인 거래를 방송하면 곧바로 되돌릴 수 없는 확정 상태가 되는 것이 아니라, 먼저 여러 노드의 멤풀에 들어가 채굴 후보가 됩니다. 수수료율이 낮아 오래 기다리는 경우 Replace-by-Fee, 줄여서 RBF를 이용하면 원래 거래와 같은 입력을 소비하는 새 거래를 더 높은 수수료로 제안할 수 있습니다. 노드가 새 거래를 받아들이면 원본을 멤풀에서 제거하고 교체본을 보관합니다.
RBF는 이미 블록에 포함된 거래를 취소하는 기능이 아닙니다. 원본이 확정되면 그 입력은 소비됐으므로 경쟁 교체본은 유효한 지출이 될 수 없습니다. 또한 멤풀은 전 세계 하나의 중앙 대기실이 아닙니다. 각 노드는 자신의 정책과 관측 시점에 따라 원본 또는 교체본을 볼 수 있어, 교체 직후 탐색기마다 상태가 다르게 보일 수 있습니다.
| 항목 | 원본 거래 | 교체 거래 |
|---|---|---|
| 입력 | 특정 UTXO 소비 | 원본과 겹치는 입력 소비 |
| 수수료 | 처음 제시한 값 | 정책 기준을 충족하도록 증가 |
| TXID | 원본 고유 값 | 내용 변화로 새 값 생성 |
| 확정 가능성 | 교체 전 후보 | 노드가 수용하면 새 후보 |
BIP 125 신호는 교체 가능성을 알린다
BIP 125의 opt-in 방식에서는 거래 입력의 nSequence 값으로 교체 의사를 명시할 수 있습니다. 입력 하나라도 기준보다 낮은 sequence를 사용하면 명시적으로 replaceable한 거래로 취급될 수 있습니다. 아직 확정되지 않은 replaceable 조상을 쓰는 자손 거래도 조상이 멤풀에 있는 동안 교체 가능성을 이어받을 수 있습니다.
다만 신호가 없다고 해서 현실에서 어떤 노드도 교체하지 않는다고 단정할 수는 없습니다. 노드 소프트웨어와 운영 정책은 달라질 수 있고 full-RBF 정책을 선택한 노드도 있을 수 있습니다. 수취인은 'RBF 비활성' 표시를 확정과 같은 보장으로 받아들이지 말고, 중요한 지급은 필요한 블록 확인 수를 기다려야 합니다.
RBF 표시는 교체 가능성을 보여 주지만, 확정만이 입력 소비를 블록에 고정한다.
JOBCOIN 해설
높은 수수료를 붙였다고 무조건 교체되지는 않는다
BIP 125의 초기 정책은 교체 거래가 원본이 지불한 절대 수수료 이상을 내고, 자신의 중계에 필요한 추가 비용도 부담하도록 요구합니다. 단순히 sat/vB가 약간 높다는 이유만으로 충분하지 않을 수 있습니다. 원본과 그 자손 여러 건을 멤풀에서 제거해야 한다면 교체가 영향을 주는 거래 집합과 총수수료 조건도 고려됩니다.
Bitcoin Core의 bumpfee RPC는 지갑 안의 미확인 거래를 새 거래로 교체하고 추가 수수료를 거스름돈 감소 또는 필요시 입력 추가로 마련합니다. 원본 출력을 이미 다른 멤풀 거래가 소비했다면 명령이 실패할 수 있습니다. 지갑 앱의 '속도 높이기' 버튼도 내부에서는 새 거래를 만드는 것이므로, 새 TXID와 변경된 거스름돈을 확인해야 합니다.
- 원본 거래가 아직 미확인인지 확인한다.
- 지갑이 해당 거래의 입력과 키를 보유하는지 확인한다.
- 새 총수수료와 수수료율을 모두 확인한다.
- 교체 후 새 TXID를 수취인에게 전달한다.
교체 과정에서 받는 금액이 바뀌는지 본다
일반적인 수수료 올리기에서는 수취인 금액을 유지하고 본인에게 돌아올 거스름돈을 줄여 추가 수수료를 냅니다. 거스름돈이 부족하면 지갑이 새 입력을 더하거나 사용자가 출력을 조정해야 할 수 있습니다. 앱이 어떤 방식을 택했는지 모르고 승인하면 예상보다 많은 UTXO가 합쳐지거나 개인정보 연결 범위가 넓어질 수 있습니다.
교체 거래 서명 화면에서는 수취 주소와 금액, 새 수수료, 거스름돈 주소를 원본과 비교합니다. '취소' 기능이 제공되는 지갑은 대개 같은 입력을 본인 주소로 보내는 경쟁 거래를 만드는 방식입니다. 이것도 네트워크에서 보장된 철회가 아니라 어느 경쟁 거래가 먼저 확정되는지에 달린 시도이므로, 잘못 보낸 거래를 확실히 회수하는 장치로 설명해서는 안 됩니다.
수취인은 미확인 RBF 거래를 완료 결제로 보지 않는다
RBF 거래는 교체될 수 있으므로 상품 인도나 서비스 제공 전에 확정을 요구할 이유가 더 분명합니다. BIP 125도 수취 지갑이 replaceable 미확인 거래를 더 의심스럽게 표시하거나 확정 전에는 지급으로 취급하지 않는 방안을 제시합니다. 자손 거래가 교체 가능성을 이어받을 수 있다는 점도 함께 고려해야 합니다.
그렇다고 RBF 자체가 사기 기능인 것은 아닙니다. 혼잡이 예상과 달라졌을 때 발신자가 수수료를 조정할 수 있게 하고 블록 공간 가격에 대응하도록 돕습니다. 위험은 미확인 거래를 최종 결제로 오해할 때 생깁니다. 수취 정책은 금액, 상품 회수 가능성, 상대 신뢰, 필요한 확인 수를 기준으로 정하고 RBF 아이콘 하나에만 의존하지 않습니다.
교체가 안 될 때는 원인을 나눠 확인한다
지갑이 RBF 버튼을 비활성화했다면 원본이 명시적으로 replaceable하지 않거나, 이미 확정됐거나, 지갑이 키 또는 거래 정보를 충분히 갖고 있지 않을 수 있습니다. 교체 수수료가 노드 기준에 못 미치거나 원본의 출력이 자손 거래에 쓰인 경우도 있습니다. 오류 메시지와 원본의 mempool 상태를 확인한 뒤 같은 버튼을 반복해서 누르지 않습니다.
다른 방법으로 CPFP가 언급될 수 있지만 작동 주체와 계산이 다릅니다. CPFP는 미확인 출력의 수취인이 높은 수수료의 자식 거래를 만들어 부모와 함께 처리될 유인을 높이는 방식입니다. RBF와 CPFP 중 무엇이 가능한지는 누가 소비 가능한 출력을 보유하는지와 지갑 지원에 달려 있습니다. 어떤 방법이든 확정 보장은 아니며 최신 멤풀 상황과 노드 정책을 함께 봐야 합니다.
자주 묻는 질문
RBF로 확정된 거래를 되돌릴 수 있나요?
아닙니다. RBF는 멤풀의 미확인 거래 교체 정책입니다. 원본이 블록에 확정되면 같은 입력을 쓰는 교체본은 유효하게 확정될 수 없습니다.
교체하면 수취 금액도 줄어드나요?
보통 지갑은 수취 금액을 유지하고 거스름돈에서 추가 수수료를 냅니다. 승인 전 출력과 거스름돈을 원본과 비교해야 합니다.
RBF를 켜지 않은 거래는 절대 교체되지 않나요?
그렇게 보장할 수 없습니다. 노드 정책이 다를 수 있으므로 중요한 지급은 replaceable 표시와 관계없이 필요한 확인을 기다려야 합니다.



