본문으로 건너뛰기

멤풀

멤풀은 아직 블록에 포함되지 않은 거래가 잠시 머무는 대기 공간입니다. 거래를 받은 노드는 먼저 규칙에 맞는지 확인한 뒤 자신의 멤풀에 보관할 수 있고, 채굴자는 그곳에서 블록에 담을 거래를 선택합니다.

멤풀은 전 세계에 하나만 있는 공용 대기열이 아닙니다. 노드마다 멤풀이 따로 있으며, 거래를 받은 시점과 최소 수수료 설정, 저장할 수 있는 크기가 다를 수 있습니다. 따라서 노드별 멤풀의 내용은 조금씩 다르고, 인터넷에서 보는 멤풀 통계도 특정 노드의 상태를 보여 주는 경우가 많습니다.

블록을 기다리는 거래​

비트코인의 장부에는 평균적으로 약 10분마다 새로운 블록이 추가됩니다. 한 블록에 담을 수 있는 거래의 양은 제한되어 있으므로, 그 사이에 도착한 모든 거래를 즉시 기록할 수는 없습니다. 거래가 잠시 머물 공간이 필요한 이유입니다.

이를 평균 10분 간격으로 출발하는 기차에 비유할 수 있습니다. 기차의 좌석 수는 정해져 있는데 승객이 더 많다면 일부 승객은 대합실에서 다음 기차를 기다려야 합니다. 멤풀은 블록에 아직 실리지 않은 거래가 대기하는 자리입니다.

다만 거래가 도착한 순서대로 처리되는 것은 아닙니다. 채굴자는 한정된 블록 공간 안에서 거래의 크기와 수수료율을 함께 고려합니다. 일반적으로 가상 바이트당 사토시(sat/vB)로 표시하는 수수료율이 높은 거래가 먼저 선택될 가능성이 커집니다. 가상 바이트는 증인 데이터 할인 등을 반영해 거래의 무게를 나타내는 크기 단위입니다. 늦게 도착한 거래가 먼저 온 거래를 앞지를 수도 있습니다. (Bitcoin Developer Guide)

수수료율과 대기 시간​

급한 이용자는 높은 수수료율을 설정해 먼저 선택될 가능성을 높이려 하고, 여유가 있는 이용자는 낮은 수수료율을 설정하고 기다릴 수 있습니다. 멤풀이 붐비면 경쟁이 커져 수수료율이 올라가는 경향이 있고, 한산할 때는 비교적 낮은 수수료율도 선택될 수 있습니다.

개인키로 거래에 서명하는 도구인 서명 장치와 함께 쓰는 앱은 최근 멤풀 상태를 참고해 수수료를 추천할 수 있습니다. 하지만 멤풀은 노드마다 다르고 상황도 계속 변하므로, 추천값이 특정 처리 시간을 보장하는 것은 아닙니다.

거래가 멤풀에 들어갔다고 해서 수취인에게 최종적으로 도착한 것은 아닙니다. 거래는 아직 블록에 기록되지 않았고, 멤풀에서 언제든 사라질 수 있습니다. 블록에 포함된 뒤부터 확인 횟수를 세기 시작합니다.

오디널스와 인스크립션 혼잡​

영상은 오디널스와 인스크립션을 소개하는 글을 읽으며 설명합니다. 이 글은 발언자가 예전에 정리한 자료를 LLM으로 번역·정리한 것이고, 발언자도 그 자료의 역사적 사실을 직접 검증하지 못했다고 밝힙니다.

영상에 따르면, 오디널스는 사토시 하나하나에 고유한 일련 번호를 부여해 추적하고 식별할 수 있게 하는 개념입니다. 원래 비트코인 시스템에서는 개별 사토시를 식별할 수 없지만, 거래의 입력과 출력, 네트워크가 제공하는 추가 데이터를 활용해 번호를 붙이는 것이 오디널스의 방식입니다. 인스크립션은 오디널스의 일련 번호와 결합해, 거래 데이터뿐 아니라 이미지를 포함한 데이터를 전체장부에 영구적으로 기록하는 것을 뜻합니다.

영상은 이처럼 비금융 거래가 늘어 블록 공간을 채우는 현상을 문제로 다룹니다. 인스크립션을 만드는 패턴의 거래가 계속 생성되어 그 공간을 채우면, 실제 송금 거래가 밀리고 확인 시간이 뒤로 밀리며, 빠르게 보내려면 수수료를 크게 올려야 하는 상황이 생긴다고 설명합니다. 영상은 동일한 주소에 소량의 비트코인을 반복해 보내거나 의미 없는 데이터를 포함한 거래도 스팸으로 간주한다고 설명합니다.

영상에 따르면, 발언자는 오디널스와 인스크립션에 반대하는 입장을 밝히고, 비트코인 네트워크가 금융 네트워크로서의 역할만 하는 것이 바람직하다고 주장합니다. 인스크립션 데이터가 쌓이면 노드의 저장 공간과 동기화 부담이 커지는데, 발언자는 이런 데이터 증가가 장기적으로 탈중앙성에 부정적일 수 있다고 우려합니다. 한편 오디널스와 인스크립션을 긍정적으로 보는 사람들에 대해서는, 자산 추적과 관리가 가능해졌다는 점, 비트코인 블록에 디지털 아트나 NFT를 넣을 수 있는 활용성이 생겼다는 점, 창의적으로 활용할 사례가 늘었다는 점을 장점으로 든다고 영상은 소개합니다. 발언자는 자신은 단점이 훨씬 더 많다고 봅니다.

영상에 따르면, 이처럼 블록 공간이 혼잡해지는 이벤트는 처음 발생한 뒤에도 주기적으로 반복되었고, 짧은 기간에 진행됐다가 사라지곤 했습니다. 블록 용량 확대나 스팸 방지 메커니즘 강화 같은 해결 방향이 거론되지만, 기술·경제·합의 측면의 논란이 커 쉽게 정리되기는 어렵다고 영상은 설명합니다. 발언자는 현재 이런 이벤트가 생기면 피하고, 어쩔 수 없이 보내야 할 때는 수수료를 조금 더 내는 쪽으로 정리가 되어 가고 있다고 관찰합니다.

멤풀에 들어오고 나가는 조건​

거래가 멤풀에 들어오려면 서명이 유효해야 하고, 현재 체인에서 이미 소비된 출력이 아닌 입력을 지목해야 합니다. 현재 체인에서 이미 소비된 출력을 다시 사용하는 거래는 유효하지 않으므로 거부됩니다.

한편 아직 블록에 포함되지 않은 멤풀 거래와 같은 입력을 사용하는 거래는 서로 충돌할 수 있습니다. 이 경우 노드는 대체 정책과 거래 조건에 따라 기존 거래를 더 높은 수수료의 거래로 대체하도록 허용할 수 있습니다. 따라서 멤풀에 있는 거래의 입력을 다시 사용하려는 시도가 언제나 같은 방식으로 거부된다고 단정할 수는 없습니다.

멤풀을 떠나는 가장 흔한 경로는 블록에 포함되는 것입니다. 거래가 블록에 실리면 해당 노드의 멤풀에서 제거됩니다. 반대로 한동안 블록에 포함되지 않은 거래는 노드의 정책에 따라 자동으로 제거될 수 있습니다. 예를 들어 Bitcoin Core 28.0의 멤풀 만료 시간 기본값은 336시간(2주)입니다. 실제 기간은 노드 설정과 운영 정책에 따라 달라지며, 용량 제한이나 거래 대체 등의 이유로 그보다 일찍 제거될 수도 있습니다.

수수료가 너무 낮아 거래가 오래 대기할 때는 몇 가지 방법을 사용할 수 있습니다. 같은 입력을 사용하는 거래를 더 높은 수수료로 다시 만들어 대체하는 방식이 있고, 부모 거래의 수수료가 낮더라도 자식 거래의 높은 수수료와 묶어 채굴자가 함께 선택하도록 유도하는 방식도 있습니다. 이런 방법은 사용하는 서명 장치 앱과 노드가 해당 기능을 지원하고 거래 조건이 맞을 때만 작동합니다.

멤풀은 거래가 블록에 포함되기 전 잠시 기다리는 노드별 대기 공간입니다. 전 세계에 하나의 확정된 순서가 있는 것이 아니며, 수수료율과 거래 크기, 각 노드의 정책에 따라 선택 가능성이 달라집니다. 거래가 멤풀에 있다는 사실과 블록에 포함되었다는 사실을 구분해야 합니다.

관련 개념은 브로드캐스팅, 블록, 거래에서 이어서 볼 수 있습니다.

영상​

원본 영상: 오디널스와 인스크립션의 기본적인 이해 (공개일: 2024-07-08)

링크 복사하기X에 공유페이스북에 공유쓰레드에 공유