CPFP는 미확인 부모 거래의 출력을 소비하는 자식 거래에 높은 수수료를 붙여, 채굴자가 두 거래를 함께 포함할 경제적 유인을 높이는 방법입니다. 부모와 자식의 수수료·가상 크기를 합친 패키지 수수료율이 판단의 핵심입니다. 자식이 부모 없이 유효하지 않으므로 독립적인 확정 가속 보장은 아닙니다.
자식 거래는 부모 출력이 있어야 유효하다
비트코인에서 아직 확정되지 않은 거래의 출력도 노드의 멤풀에 보이면 새 거래의 입력으로 사용할 수 있습니다. 이 새 거래가 자식이고, 그 출력을 만든 거래가 부모입니다. 자식은 부모의 TXID와 출력 번호를 참조하므로 부모가 없는 상태에서는 입력이 존재하지 않습니다. 채굴자가 자식을 블록에 넣으려면 부모를 그보다 앞에 함께 넣어야 합니다.
CPFP는 이 의존성을 수수료 조정에 이용합니다. 부모가 낮은 수수료율 때문에 선택되지 않을 때, 소비 가능한 출력의 소유자가 자식에 높은 수수료를 붙입니다. 채굴자는 부모만 보면 매력이 낮아도 두 거래를 한 묶음으로 보았을 때 충분한 수수료를 얻는다면 함께 포함할 수 있습니다. 자식이 부모 수수료를 직접 수정하는 것은 아닙니다.
| 거래 | 가상 크기 | 수수료 |
|---|---|---|
| 부모 | 200 vB | 200 sat |
| 자식 | 100 vB | 2,800 sat |
| 합계 | 300 vB | 3,000 sat |
| 패키지 수수료율 | 300 vB 기준 | 10 sat/vB |
합산 수수료율이 실제 판단 기준이다
자식에 20 sat/vB를 붙였다는 숫자만으로 충분한지 알 수 없습니다. 부모가 크고 수수료가 매우 낮다면 자식의 높은 요율이 합산 평균에서 희석됩니다. 계산은 부모와 함께 포함되어야 하는 미확인 조상의 수수료를 모두 더하고, 그 거래들의 가상 크기도 모두 더한 뒤 나눕니다. 지갑이 보여 주는 '가속 수수료'가 패키지 전체 목표를 반영하는지 확인해야 합니다.
예시에서는 부모 200 vB와 자식 100 vB의 합이 300 vB이고 총수수료는 3,000사토시이므로 패키지 수수료율은 10 sat/vB입니다. 실제로는 다른 미확인 조상이 있거나 멤풀 최소 수수료, 조상·자손 제한, 채굴 템플릿 정책이 영향을 줍니다. 목표 수수료율을 정했다고 특정 블록에 포함된다고 보장할 수는 없습니다.
CPFP는 부모 수수료를 바꾸지 않고 부모와 자식의 묶음 가치를 높인다.
JOBCOIN 해설
누가 자식 거래를 만들 수 있는가
부모 거래의 미확인 출력 중 하나를 지출할 키를 가진 사람이 자식을 만들 수 있습니다. 발신자는 자신에게 돌아오는 거스름돈 출력을 사용할 수 있고, 수취인은 자신이 받은 출력을 사용할 수 있습니다. 어느 쪽이 가능한지는 부모의 출력 구성과 지갑이 미확인 출금 사용을 지원하는지에 달려 있습니다. 거래소 입금처럼 사용자가 출력 키를 직접 통제하지 않으면 사용자가 CPFP를 만들기 어렵습니다.
자식 거래는 입력 금액에서 새 출력과 수수료를 뺀 실제 지출입니다. 너무 작은 출력을 쓰면 목표 수수료를 내고 남는 값이 경제적으로 의미 없거나 dust 정책에 걸릴 수 있습니다. 수취인이 받은 금액 일부를 다시 보내야 하므로 회계상 새 거래가 생기고, 주소 군집 분석에 연결 정보가 늘어날 수 있다는 점도 고려합니다.
- 부모 거래와 해당 미확인 출력이 지갑에 보이는지 확인한다.
- 그 출력을 쓸 개인키를 실제로 보유하는지 확인한다.
- 부모·조상 전체를 포함한 목표 수수료를 계산한다.
- 자식의 새 출력과 남는 금액, 개인정보 영향을 확인한다.
패키지 정책과 전파는 같은 말이 아니다
Bitcoin Core의 submitpackage 문서는 자식과 모든 미확인 부모로 구성된 패키지를 로컬 노드에 제출하고 합의 규칙과 멤풀 정책으로 검증한다고 설명합니다. 결과에 effective-feerate와 어떤 거래들이 계산에 포함됐는지가 나타날 수 있습니다. 그러나 로컬 제출 성공이 네트워크 전체 전파를 뜻하지 않는다는 경고도 명시합니다.
BIP 331은 낮은 수수료 조상과 높은 수수료 자손을 패키지로 요청·전달하는 피어 프로토콜을 제안하지만 상태가 Draft입니다. 따라서 모든 노드가 동일한 패키지 중계 기능을 쓴다고 가정해서는 안 됩니다. 지갑에서 CPFP 거래가 방송됐다는 표시와 여러 노드로 전파됐다는 사실, 채굴자가 패키지로 선택한다는 결과는 각각 다른 단계입니다.
RBF와는 바꾸는 대상이 다르다
RBF는 원래 거래와 겹치는 입력을 쓰는 교체 거래를 만들어 원본을 대체합니다. 반면 CPFP는 원본 출력을 쓰는 자식 거래를 추가해 둘을 함께 확정하도록 유도합니다. 발신자가 원본을 교체할 수 있으면 RBF가 단순할 수 있고, 수취인이 미확인 출력을 통제하지만 원본 입력은 통제하지 못하면 CPFP가 가능한 선택지가 될 수 있습니다.
두 방법을 동시에 또는 연속으로 시도할 때는 의존 관계를 주의해야 합니다. 부모가 RBF로 교체되며 자식이 쓰던 출력이 사라지거나 TXID가 바뀌면 기존 자식은 유효하지 않을 수 있습니다. 지갑이 자동으로 처리하지 않는다면 원본·교체본·자식의 입력과 출력을 직접 확인하고, 중복 수수료를 내지 않도록 현재 멤풀 상태를 먼저 봅니다.
실행 뒤에는 부모와 자식을 함께 추적한다
블록 탐색기나 본인 노드에서 자식만 검색하면 '미확인' 이유를 놓칠 수 있습니다. 부모 TXID, 자식 TXID, 각 수수료와 vsize, ancestor 정보가 보이는지 확인합니다. 탐색기가 계산한 effective fee rate가 어떤 조상을 포함하는지도 봅니다. 서로 다른 탐색기는 각자 연결된 노드의 멤풀 상태가 달라 결과가 잠시 다를 수 있습니다.
CPFP는 시간이 지나면 반드시 처리되는 예약 기능이 아닙니다. 경쟁 수수료가 오르거나 패키지가 충분히 전파되지 않으면 계속 기다릴 수 있습니다. 같은 출력을 쓰는 자식을 반복 생성하기 전에 지갑 지원 문서와 오류를 확인하고, 큰 금액이나 복잡한 조상 체인은 신뢰할 수 있는 지갑 지원 또는 본인 노드의 정책 정보로 검증합니다.
자주 묻는 질문
자식 거래가 부모보다 먼저 확정될 수 있나요?
아닙니다. 자식 입력은 부모 출력을 참조하므로 같은 블록이라면 부모가 앞에 포함되어야 하고, 부모 없이 자식만 확정될 수 없습니다.
수취인도 CPFP를 할 수 있나요?
수취인이 받은 미확인 출력을 직접 통제하고 지갑이 해당 출금 사용을 지원하면 가능합니다. 거래소 입금처럼 키를 통제하지 않으면 어렵습니다.
CPFP 거래를 방송하면 확정이 보장되나요?
보장되지 않습니다. 합산 수수료율, 멤풀·패키지 정책, 전파와 당시 블록 공간 경쟁에 따라 결과가 달라집니다.



