본문으로 건너뛰기
buybitcoinsmart

용어집 / 트랜잭션과 수수료

멤풀 정책

별칭은 Mempool policy입니다.

멤풀 정책이란 무엇입니까?
멤풀 정책은 노드가 트랜잭션을 받아들이고 릴레이하기 전에 적용하는 추가 규칙 집합으로, 합의 규칙보다 엄격하며 노드를 운영하는 사람이 조정할 수 있습니다.

합의는 블록이 유효하게 담을 수 있는 내용을 정합니다. 정책은 그 전에 무엇이 전달되는지를 정합니다. Bitcoin Core는 표준 트랜잭션의 무게를 400,000 무게 단위로 제한하고 릴레이 하한보다 낮게 지불하는 트랜잭션은 거부하며, 두 한도 모두 합의 규칙에는 없습니다. 트랜잭션은 완벽하게 유효하면서도 어디로도 전달되지 않을 수 있습니다.

작동 방식

정책은 합의 검사 앞에 서 있는 두 번째 관문입니다. 노드에 도착한 트랜잭션은 유효해야 하며, 동시에 운영자가 보관하고 전달할 의사가 있는 종류의 트랜잭션처럼 보여야 합니다. 첫 번째 검사에서 실패하면 그 트랜잭션은 어디에서나 무효입니다. 두 번째 검사에서 실패하면 여기서는 환영받지 못할 뿐이며, 옆 노드에는 충분히 받아들여질 수 있습니다.

Bitcoin Core의 기본값은 여러 종류의 한도를 다룹니다. 표준성 규칙은 어떤 스크립트 유형이 릴레이되는지를 제한하므로, 새롭거나 잘못된 지출 조건이 네트워크가 이해하기 전에 퍼지지 않습니다. 크기 한도는 표준 트랜잭션을 블록의 4분의 1인 400,000 무게 단위로 제한합니다. 수수료 한도는 릴레이 하한을 정하며, 버전 30.0에서 1 sat/vB에서 0.1 sat/vB로 낮아졌고, 개별 출력의 더스트 기준값은 3 sat/vB라는 예전 가격에 머물렀습니다. 위상 한도는 서로 연결된 미확인 트랜잭션 그룹을 64개 구성원과 101킬로바이트 가상 크기로 제한하며, 이는 버전 31.0에서 예전의 조상 25개 및 자손 25개 수를 대체한 클러스터 규칙입니다.

그 수치 하나하나는 법이 아니라 설정입니다. 운영자는 -minrelaytxfee로 릴레이 하한을 올릴 수 있고, -datacarriersize로 OP_RETURN 출력이 담을 수 있는 데이터량을 바꿀 수 있으며, 의도적으로 더 엄격한 기본값을 제공하는 Bitcoin Knots를 실행할 수도 있습니다. 데이터 운반 출력에 대한 83바이트 상한은 수년 만에 가장 큰 정책 논쟁이 되었고, Bitcoin Core 30.0이 기본값을 100,000바이트로 올리면서 사실상 상한을 없애는 것으로 끝났으며, 예전 동작을 원하는 사람은 -datacarriersize=83을 사용할 수 있습니다.

정책은 합의보다 빠르게 움직이기도 합니다. 완전한 replace-by-fee는 2024년 10월에 Bitcoin Core 28.0에서 기본값이 되었으며, 같은 릴리스는 부모와 자식을 함께 기회주의적으로 릴레이하는 기능을 추가했습니다. 두 변경 모두 운영자가 업그레이드하는 즉시 적용되었고, 어떤 종류의 포크도 없었습니다.

확인할 수 있는 곳

정책은 채굴업자가 관여하기 훨씬 전에 사용자 지갑의 오류 메시지로 나타납니다. 릴레이 수수료, 더스트 출력, 미확인 지출의 과대한 클러스터, 비표준 스크립트를 언급하는 거부는 모두 정책이 말하는 것이며, 각각은 그 트랜잭션이 단 하나의 피어에게도 전달되지 않았음을 뜻합니다.

또한 어떤 트랜잭션이 한 블록 탐색기에는 있고 다른 곳에는 없는 이유도 설명합니다. 탐색기는 자체 노드의 멤풀을 보고하므로, 그 노드의 정책으로 걸러진 트랜잭션은 그곳에서는 보이지 않으면서 다른 곳에서는 정상적으로 확인됩니다. 채굴업자는 제출 엔드포인트를 통해 트랜잭션을 직접 받을 수 있어 릴레이를 완전히 우회하며, 비표준 트랜잭션이 대기 중인 모습으로 한 번도 보이지 않았는데도 가끔 블록에 나타나는 방식이 이렇습니다.

구매하고 보유하는 사람에게 실질적인 결론은 좁지만 유용합니다. 정책은 지갑이 300사토시 출력 생성을 거부하는 이유이고, 미확인 지출의 연쇄가 결국 또 다른 자식을 받지 않는 이유이며, 막힌 트랜잭션에 수수료를 올리는 대신 다시 브로드캐스트해야 할 때가 있는 이유입니다.

멤풀 정책 vs 합의 규칙

합의 규칙을 깨면 블록이 무효가 되어 네트워크 전체가 영구적으로 거부합니다. 정책 규칙을 깨면 트랜잭션이 기다리거나 전혀 전달되지 않을 뿐이며, 채굴하는 것은 여전히 완전히 허용됩니다. 정책은 소프트 포크를 예행하는 곳이기도 합니다. 새로운 지출 유형은 보통 활성화 전이나 활성화와 함께 릴레이를 위해 표준이 되므로, 네트워크가 이를 안전하게 운반할 수 있습니다. 합의는 헌법이고, 정책은 각 노드의 하우스 스타일입니다.

혼동하기 쉬운 용어

자주 묻는 질문

트랜잭션이 유효하면서도 거부될 수 있습니까?

그렇습니다. 그리고 매일 일어납니다. 정책은 합의 앞에 있으므로, 어떤 합의 규칙도 깨지 않는 트랜잭션도 하한보다 낮게 지불하거나, 더스트 출력을 만들거나, 미확인 클러스터를 한도 너머로 확장하면 릴레이를 거부당할 수 있습니다.

멤풀 정책은 누가 정합니까?

소프트웨어와 설정을 선택하는 각 노드 운영자입니다. Bitcoin Core는 한 가지 기본값 집합을 제공하고 Bitcoin Knots는 더 엄격한 집합을 제공하며, 어느 쪽이든 노드가 어떤 블록을 받아들이는지는 바꾸지 않고 명령줄 옵션으로 조정할 수 있습니다.

관련 용어

트랜잭션과 수수료 분야의 다른 용어

이 페이지를 영어로 읽기