멤풀 (Mempool) - 비트코인 트랜잭션 대기실
멤풀은 아직 블록에 포함되지 않은 미확인 트랜잭션들이 대기하는 공간입니다.
**멤풀 (Mempool, Memory Pool)**은 아직 블록에 포함되지 않은 미확인 트랜잭션들이 대기하는 공간입니다. 각 비트코인 노드는 자신만의 독립적인 멤풀을 유지하므로, 엄밀히 말해 "하나의 멤풀"이 아니라 네트워크에 분산된 수만 개의 개별 멤풀이 존재합니다.
graph LR USER["👤 사용자"] -->|"트랜잭션 생성"| NODE["📡 노드"] NODE -->|"전파"| MEMPOOL["🔄 멤풀
(미확인 트랜잭션 대기)"] MEMPOOL -->|"채굴자가 선택
(높은 수수료 우선)"| BLOCK["⛏️ 블록"] BLOCK -->|"검증 후 추가"| CHAIN["⛓️ 블록체인"] style MEMPOOL fill:#f7931a,stroke:#f7931a,color:#000 style CHAIN fill:#3fb950,stroke:#3fb950,color:#000
트랜잭션의 라이프사이클
비트코인 트랜잭션은 생성부터 최종 확인까지 명확한 단계를 거칩니다.
생성 단계: 사용자가 지갑 소프트웨어를 통해 트랜잭션을 구성합니다. 소비할 UTXO를 입력으로 선택하고, 수신 주소와 금액을 출력으로 지정하며, 개인키로 서명합니다. 이 시점에서 트랜잭션은 아직 네트워크에 전파되지 않은 상태입니다.
전파 단계: 서명된 트랜잭션이 연결된 피어 노드에게 전송됩니다. 수신 노드는 inv 메시지로 다른 피어들에게 새 트랜잭션의 존재를 알리고, 관심 있는 피어가 getdata로 요청하면 실제 트랜잭션 데이터를 전달합니다. 이 가십 방식으로 트랜잭션은 수 초 내에 네트워크 전체로 확산됩니다.
검증 단계: 각 노드는 수신한 트랜잭션에 대해 독립적으로 검증을 수행합니다. 서명의 유효성, 참조된 UTXO의 존재 여부, 이중 지불 시도 여부, 스크립트 실행 결과, 수수료의 적정성 등을 확인합니다. 검증에 실패한 트랜잭션은 즉시 폐기됩니다.
멤풀 대기 단계: 검증을 통과한 트랜잭션은 노드의 멤풀에 추가됩니다. 여기서 채굴자가 블록에 포함시켜줄 때까지 대기합니다. 수수료가 높은 트랜잭션일수록 빠르게 채굴될 확률이 높습니다.
채굴 및 확인 단계: 채굴자가 멤풀에서 수수료율(sat/vB)이 높은 순으로 트랜잭션을 선택하여 후보 블록을 구성하고, 유효한 작업증명을 찾으면 블록이 네트워크에 전파됩니다. 해당 블록에 포함된 트랜잭션은 멤풀에서 제거되고, 1-확인(confirmation) 상태가 됩니다.
멤풀 정책: 최소 릴레이 수수료와 만료
노드는 멤풀 관리를 위한 정책 규칙을 적용합니다. **최소 릴레이 수수료(minRelayTxFee)**는 기본적으로 1 sat/vB로 설정되어 있으며, 이보다 낮은 수수료의 트랜잭션은 멤풀에 추가되지도 않고 다른 노드에 중계되지도 않습니다. 이는 스팸 트랜잭션으로 멤풀이 넘치는 것을 방지하는 첫 번째 방어선입니다.
멤풀 만료 시간은 기본적으로 336시간(2주)으로 설정되어 있습니다. 이 기간 동안 채굴되지 않은 트랜잭션은 멤풀에서 자동 제거됩니다. 또한 멤풀 크기에 상한(기본 300MB)이 설정되어 있으며, 이를 초과하면 수수료가 가장 낮은 트랜잭션부터 퇴출됩니다.
수수료 조정: RBF와 CPFP
멤풀에 들어간 트랜잭션의 수수료가 너무 낮으면, 두 가지 메커니즘으로 대기열에서 순위를 끌어올릴 수 있습니다. 각각 전용 항목으로 정리되어 있습니다.
- RBF(Replace-by-Fee) — 송신자가 같은 입력을 사용하는 더 높은 수수료의 트랜잭션으로 갇힌 트랜잭션을 교체합니다.
- CPFP(Child-Pays-for-Parent) — 수신자를 포함해 소비 가능한 출력을 가진 누구든지 높은 수수료의 자식 트랜잭션을 붙여 채굴자가 패키지를 함께 확인하도록 만듭니다.
멤풀 상태 읽기, 수수료 추정, full-RBF 논쟁, 0-확인 결제의 위험까지 실전 단계로 다루는 내용은 실용 글 **내 비트코인 거래가 10분째 안 되는 이유**에서 확인하세요.
연결되는 개념
- 노드 - 멤풀을 유지하며 트랜잭션을 검증하고 전파하는 비트코인 네트워크 참여자
- 작업증명 - 채굴자가 멤풀에서 트랜잭션을 선택하여 블록을 생성하는 합의 메커니즘
- 세그윗 - 수수료 구조에 영향을 준 비트코인 프로토콜 업그레이드
- 라이트닝 네트워크 - 멤풀 혼잡을 우회하는 오프체인 결제 솔루션
- 비트코인이란? - 비트코인의 기본 개념과 작동 원리를 소개하는 출발점
- 내 거래가 10분째 안 되는 이유 - 멤풀 때문에 거래가 멈추는 상황
- 수수료가 갑자기 폭등하는 진짜 이유 - 멤풀 혼잡과 수수료 급등의 원인
- 비트코인 수수료 계산법 - sat/vByte로 적정 수수료 정하기