용어집 / 트랜잭션과 수수료
패키지 중계
- 패키지 중계란 무엇입니까?
- 패키지 중계는 노드가 서로 연관된 미확인 트랜잭션 묶음을 함께 받아들일 수 있게 해 주는 방식으로, 수수료가 높은 자식 트랜잭션이 네트워크가 거부했을 부모 트랜잭션을 함께 실어 나를 수 있게 합니다.
BIP-331에 명시되어 있습니다.
패키지 중계는 수년간 이어져 온 불일치를 해결한 것입니다. 채굴업자들은 묶음 단위로 가격을 매겼지만, 트랜잭션을 채굴업자에게 전달하던 네트워크는 트랜잭션마다 가격을 매겼습니다. 2024년 10월에 출시된 Bitcoin Core 28.0은 부모 하나와 자식 하나의 경우를 위한 기회주의적 중계를 포함했고, BIP 331은 일반적인 버전을 규정합니다. 막힌 입금 건의 수수료를 올렸는데 그 올린 수수료가 사라지는 것을 본 적이 있다면, 그 이유가 여기에 있습니다.
작동 방식
노드는 트랜잭션이 도착하는 즉시 보관할지를 결정하며, 비트코인 역사의 대부분에서 그 트랜잭션이 무엇에 연결되어 있는지는 전혀 모른 채 그 판단을 내렸습니다.
실패 사례를 그려 보겠습니다. 부모 트랜잭션이 노드가 현재 요구하는 것보다 낮은 수수료를 지급하며 도착하고, 저장되지 않고 버려집니다. 잠시 후 그 부모 트랜잭션의 출력을 소비하는 자식 트랜잭션이 도착하는데, 부모 트랜잭션의 기록이 없으므로 노드는 자식 트랜잭션도 검증할 수 없어서, 자식은 기본값으로 약 100건 규모의 작은 고아 트랜잭션 풀에 들어갔다가 잊힙니다. 자식 트랜잭션이 지닌 수수료는 결코 계산되지 않습니다. 2016년부터 Bitcoin Core에 있던 조상 인식 채굴도 도움이 되지 못했는데, 채굴업자에게 도달하는 것이 아무것도 없었기 때문입니다.
기회주의적 부모 하나·자식 하나 중계는 그 구멍의 흔한 경우를 막습니다. 누락된 부모 트랜잭션이 수수료를 너무 적게 지급해 최근 거부된 고아 트랜잭션이 나타나면, 노드는 둘을 하나의 단위로 다시 검토하여 합산 수수료를 합산 크기로 나누어 판단하고, 두 트랜잭션이 함께 기준을 넘으면 둘 다 받아들입니다. 범위는 의도적으로 좁습니다. 부모 하나, 자식 하나입니다. 수수료가 낮은 부모가 여러 개인 묶음은 여전히 범위 밖입니다.
BIP 331은 일반적인 메커니즘을 정의합니다. 피어들은 핸드셰이크 중에 sendpackages 메시지로 지원을 알리고, 그다음 ancpkginfo, getpkgtxns, pkgtxns를 사용해 어떤 부분을 판단하기 전에 트랜잭션의 전체 조상 집합을 요청합니다. 이미 submitpackage RPC로 자신의 노드에 묶음을 넘길 수 있으며, 최대 25건의 트랜잭션과 101킬로vbyte로 제한됩니다.
이 기능이 가장 필요한 프로토콜들은 트랜잭션을 방송하기 훨씬 전에 서명합니다. 라이트닝 커밋먼트 트랜잭션은 사용될지도 모르는 날보다 몇 달 앞서 합의되는데, 그때는 수수료가 얼마일지 아무도 모르므로 현대적인 설계는 수수료를 최소한으로 하거나 거의 없이 서명하고, 그것이 필요한 쪽이 앵커 출력을 통해 수수료를 붙이게 합니다. 이는 커밋먼트와 그 수수료를 지급하는 자식 트랜잭션이 하나로 함께 이동할 때만 작동합니다. 같은 릴리스에는 BIP 431에 규정된 TRUC 트랜잭션도 추가되었는데, 이는 공격자가 두 트랜잭션을 쓰레기 트랜잭션 아래 묻을 수 없도록 토폴로지를 제한합니다.
확인할 수 있는 곳
패키지 중계는 작동할 때는 보이지 않으며, 눈에 띄는 것은 그것이 없다는 사실입니다. 선택지를 결정하는 질문은 막힌 부모 트랜잭션이 어딘가에 존재하는지입니다.
부모 트랜잭션이 멤풀에 남아 천천히 확인되고 있다면 일반적인 수수료 인상으로 충분하며 패키지는 관여하지 않습니다. 패키지 중계는 더 어려운 경우를 위한 것입니다. 거래소가 출금 묶음을 당시 하한보다 낮게 구성했고, 어떤 노드도 사본을 보관하지 않았으며, 보내는 쪽에서 지급하는 어떤 것으로도 네트워크가 애초에 받아들이지 않은 트랜잭션을 구제할 수 없는 경우입니다.
트랜잭션 ID를 독립적인 블록 탐색기 두세 곳에서 조회하십시오. 각 탐색기는 자신의 노드 멤풀을 보고하기 때문입니다. 어디에도 없다면 수수료를 올릴 대상이 없으며, 해결은 보내는 쪽에 달려 있습니다. 라이트닝 사용자는 강제 폐쇄에서 같은 구조를 만나는데, 수수료가 없는 커밋먼트에 앵커 지출을 더하는 것이 이제 채널에서 빠져나오는 표준 방식입니다.
한 가지 솔직한 단서가 있습니다. 중계 개선은 그것을 실행하는 피어 사이에서만 효력을 가지므로, 전파는 자신의 노드 버전이 아니라 네트워크 전반의 도입에 달려 있습니다.
패키지 중계 vs child pays for parent
child pays for parent는 전략이고, 패키지 중계는 그것을 전달하는 기반 구조입니다. 전자는 채굴업자가 둘 다 가져가도록 수수료가 충분한 자식 트랜잭션을 붙이는 방법을 설명하고, 후자는 그 두 트랜잭션을 하나의 객체로 이동시키고 판단하는 네트워크의 능력입니다. 부모 트랜잭션이 이미 멤풀에 있는 경우에는 패키지 중계 없이도 그 전략을 쓸 수 있으며, 이는 막힌 입금의 대부분을 포괄합니다. 패키지 중계는 부모 트랜잭션이 네트워크가 전달할 수 있는 수준보다 낮게 가격이 매겨졌을 때 그 기법이 작동하게 만드는 것입니다.