본문으로 건너뛰기
buybitcoinsmart

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

멤풀

별칭은 Mempool, 메모리 풀입니다.

멤풀이란 무엇입니까?
멤풀은 노드가 전달받았지만 아직 블록에서 확인하지 못한 유효한 트랜잭션의 집합으로, 채굴업자가 해당 트랜잭션을 가져갈 때까지 메모리에 보관됩니다.

단일한 멤풀은 존재하지 않습니다. 모든 노드는 자체 멤풀을 유지하며, Bitcoin Core에서는 기본적으로 300메가바이트로 상한이 설정되어 있고, 그 상한에 도달하면 가장 저렴한 트랜잭션을 버립니다. 멤풀 웹사이트가 보여 주는 것은 대기열에 대한 한 노드의 시야이며, 수수료를 고르는 데에는 충분히 근접하지만 결코 권위 있는 정보는 아닙니다.

작동 방식

도착은 대기표가 아니라 여과 과정입니다. 트랜잭션이 노드에 도달하면 합의 규칙과 그 노드 자체의 중계 정책에 대해 차례로 검사되며, 두 검사를 모두 통과해야만 노드가 이를 저장하고 피어에게 전달합니다. 거부된 트랜잭션은 그저 전달되지 않으며, 충분히 많은 피어가 거부하면 채굴업자에게는 아예 도달하지 않습니다.

저장 공간에는 한계가 있으며, 이는 대기실이 무한하다고 기대하는 사람들을 놀라게 합니다. -maxmempool 설정의 기본값은 300메가바이트이고, 저장 공간이 가득 차면 노드는 수수료율이 가장 낮은 트랜잭션을 축출하고 자체 수용 하한을 평소 최저치보다 높입니다. -mempoolexpiry에 설정된 시간이 지나도 여전히 대기 중인 트랜잭션 역시 폐기되며, 그 기본값은 336시간, 즉 정확히 14일입니다. Bitcoin Core 0.14.0부터는 내용이 mempool.dat 파일에 기록되어 재시작 후에도 유지되므로, 노드를 종료해도 더 이상 알고 있던 내용이 지워지지 않습니다.

순서는 크기 단위당 가격으로 정해집니다. 후보 블록을 구성하는 채굴업자는 수수료율로 정렬하여 4,000,000 가중치 단위 예산을 위에서부터 채우며, 트랜잭션을 그 트랜잭션이 의존하는 미확인 부모 트랜잭션과 함께 판단합니다. Bitcoin Core 31.0은 바로 그 발상을 중심으로 멤풀을 재구축했으며, 연결된 트랜잭션을 최대 64개 구성원의 클러스터로 묶고 실제로 채굴될 수수료율에 따라 순위를 매깁니다. 도착 시각은 전혀 중요하지 않으며, 그래서 오늘 아침에 브로드캐스트된 트랜잭션이 오후 내내 더 많은 수수료를 내는 이후 트랜잭션들에 의해 앞지를 수 있습니다.

각 노드가 자체 설정을 적용하므로 내용은 컴퓨터마다 다릅니다. 한 시간 전에 재시작한 노드는 한 달째 실행 중인 노드보다 아는 것이 적고, Bitcoin Knots를 실행하는 노드는 Bitcoin Core를 실행하는 노드와 다르게 여과하며, 채굴업자에게는 네트워크를 전혀 거치지 않은 트랜잭션이 직접 전달될 수도 있습니다.

비트코인을 구매할 때 이것이 중요한 이유

코인을 옮기기 전에 대기열을 확인하는 것은 비트코인에서 가장 저렴한 습관입니다. 같은 출금이 한가한 주말에는 수백 사토시가 들고 혼잡할 때는 수만 사토시가 들 수 있으며, 지갑은 지금이 어느 상황인지 알려 주지 않습니다. 출금 버튼을 누르기 전에 현재의 다음 블록 수수료율을 한번 보는 것이 지갑이 제공하는 어떤 수수료 설정보다 가치 있습니다.

어느 거래소를 이용하는지에 따라 그것이 얼마나 중요한지가 달라집니다. Binance, Kraken, Coinbase는 모두 비트코인 출금 가격을 네트워크에 따라 책정하므로, 이들이 제시하는 금액은 대기열이 길 때 오르고 해소될 때 다시 내려가며, 한가한 시간을 기다리는 것은 실제 금전적 가치가 있습니다. 반대로 고정 출금 수수료를 공시하는 플랫폼은 대기열이 어떤 상태든 같은 금액을 받으므로, 한가한 날에는 가혹하고 혼잡할 때는 이득이 됩니다. 자신이 어느 모델에 있는지 알면 기다리는 것이 무언가를 벌어 주는지 알 수 있습니다.

혼잡은 예고 없이, 그리고 결제와 무관한 이유로도 찾아옵니다. 2023년의 토큰 발행 물결과 2024년 4월의 Runes 출시는 모두 블록을 데이터로 채워, 평범한 저축자들을 참여할 의향도 없던 입찰 경쟁으로 몰아넣었습니다. Swan 또는 River를 통해 자동 출금과 함께 정기 구매를 한다면, 합리적인 대응은 대기열 상태를 무시하는 고정된 주간 일정이 아니라 코인을 더 적고 더 큰 트랜잭션으로 옮기는 기준 금액입니다.

출금 버튼을 누르기 전에 대기열 읽기

아무 멤풀 대시보드나 열면 세 가지를 보게 됩니다: 대기 중인 트랜잭션, 그들이 속한 수수료율 구간, 그리고 그 구간들이 채울 것으로 예상되는 블록입니다. 다음 블록으로 표시된 구간은 약 10분 안에 채굴되기 위해 지불하는 금액이고, 더 낮은 구간은 기다리는 대가로 지불하는 금액입니다.

코인 하나를 출력 하나로 보내는 스윕으로 숫자를 붙여 보겠습니다. 그 트랜잭션은 네이티브 SegWit 입력 기준으로 약 110 가상 바이트이므로, 2 sat/vB에서는 220사토시가 들고 90 sat/vB에서는 9,900사토시가 듭니다. 트랜잭션은 두 경우에 바이트 단위로 동일합니다. 다른 것은 여러분이 고른 시점뿐이며, 그것이 이 교훈의 전부입니다.

하한도 알아 둘 가치가 있습니다. 너무 낮게 입찰하면 여러분의 트랜잭션이 피어에게 아예 수용되지 않을 수 있어, 탐색기에 나타나지 않고 수수료를 올릴 수도 없습니다. 일부러 조금 낮게 입찰한다면, 대기열이 14일 안에 비워져 그 후 노드가 트랜잭션을 버리고 지갑의 코인이 다시 사용 가능해지리라는 데 거는 것입니다.

멤풀 vs 멤풀 정책

멤풀은 용기이고, 정책은 문지기입니다. 용기는 검사를 통과한 모든 것을 담으며, 그 크기와 만료는 정책과 같은 방식으로 설정할 수 있지만, 둘은 서로 다른 질문에 답합니다. 정책은 트랜잭션이 들어와 앞으로 중계될 수 있는지를 결정하고, 멤풀은 그 후에 트랜잭션에 일어나는 일, 즉 공간이 부족할 때 어떤 트랜잭션이 축출되는지를 포함해 결정합니다.

멤풀 vs 블록

블록은 4,000,000 가중치 단위라는 엄격한 한도가 있는, 확정되어 영구적인 기록이고, 멤풀은 앞으로 몇 개의 블록이 무엇을 담을 수 있는지에 대한 일시적이고 사적이며 원칙상 무한한 추측입니다. 트랜잭션은 채굴될 때 멤풀을 떠나며, 자신을 포함한 분기가 포기되면 다시 떠나는데, 이 경우 대기 상태로 돌아갑니다. 멤풀에 있다는 사실 자체가 누군가의 확약인 것은 아닙니다.

혼동하기 쉬운 용어

자주 묻는 질문

전 세계에 하나의 멤풀이 있습니까?

아닙니다. 각 노드는 피어가 중계한 내용으로 구축하고 자체 설정으로 필터링한 자체 사본을 유지하므로, 두 노드가 정확히 같은 트랜잭션을 보유하는 경우는 드뭅니다. 멤풀 웹사이트는 하나의 노드가 보는 관점을 유용한 근사치로 게시합니다.

트랜잭션은 멤풀에 얼마나 오래 남습니까?

채굴되거나, 대체되거나, 만료될 때까지입니다. Bitcoin Core는 336시간, 즉 14일이 지나도 계속 대기 중인 항목을 모두 폐기하며, 300메가바이트 한도가 가득 찬 노드는 그보다 훨씬 전에 가장 저렴한 트랜잭션을 축출합니다.

제 트랜잭션이 멤풀에서 사라졌습니다. 어디로 간 것입니까?

만료되었거나, 수수료를 너무 적게 지불하여 축출되었거나, 더 높은 수수료를 낸 대체 트랜잭션이 그 자리를 차지했을 수 있습니다. 코인은 결코 사용되지 않았으므로, 지갑에서 결제를 다시 구성하여 더 높은 수수료율로 다시 전송할 수 있습니다.

다음에 읽을 글

관련 용어

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

이 페이지를 영어로 읽기