비트코인을 사용한 모든 사람은 메모리풀을 사용해 본 적이 있습니다. 그렇다면 메모리풀은 무엇일까요?
기술적으로 “메모리풀”이라는 것은 존재하지 않습니다. 각 개별 비트코인 전체 노드는 자신의 메모리풀을 운영하며, 이는 네트워크에 방송되었지만 블록에서 확인되지 않은 유효한 비트코인 거래의 캐시입니다. 노드는 서로 어떤 거래를 가지고 있는지 확인하기 위해 메시지를 교환하고, 가지고 있지 않은 거래를 교환합니다.
각 메모리풀은 본질적으로 독립적인 섬으로, 고유한 미확인 거래 세트와 때때로 고유한 구성 변수 및 설정을 가지고 있습니다. 기본적으로 300MB로 설정된 크기 값이 있습니다. 이 외에도 동적으로 조정되는 최소 수수료율이 있으며, 구성된 값을 가질 수 있습니다. 이는 메모리풀이 가득 찼을 때 어떤 거래를 제거할지를 결정하는 데 사용됩니다. OP_RETURN 출력을 포함하는 거래에 영향을 미치는 데이터 캐리어 및 데이터 캐리어 크기 옵션과 같은 몇 가지 다른 구성 가능한 옵션이 있습니다.
서로 다른 노드는 메모리풀을 운영하는 다양한 이유와 필요가 있지만, 궁극적으로는 각자의 메모리풀이 서로 상호작용함으로써 이러한 개별적인 필요가 충족됩니다.
각 메모리풀을 문자 그대로의 풀로 생각해 보세요. 모든 풀은 지면의 채널로 서로 연결되어 있습니다. 메모리풀이 클수록 지면의 풀은 더 깊어집니다. 채굴자, 거래소, 블록 탐색기 등은 모두 가장 깊은 풀입니다. 이들은 모두 블록에 들어가기를 기다리는 모든 미확인 거래를 알고 싶어하는 서로 다른 이유가 있습니다. 채굴자는 다음 블록에 가장 수익성 있는 거래를 확보하기 위해, 거래소는 모든 보류 중인 거래를 인지하기 위해, 블록 탐색기는 블록체인과 메모리풀에 대한 가능한 한 완전한 데이터 세트를 표시하기 위해 그렇습니다. 일반적인 노드는 “메모리풀”의 상위 수수료율 조각을 포함할 만큼만 깊이 있어야 합니다.
이제 각 거래를 액체 방울로 생각해 보세요. 수수료율이 높을수록 액체 방울은 더 밀도가 높습니다. 이러한 방울은 풀 사이의 채널을 따라 흐르며, 각 풀에 도착하면 수신된 방울이 복제되어 이미 그 방울을 받지 않은 다른 풀로 전송됩니다. 풀이 가득 차면, 덜 밀도가 높은 액체(낮은 수수료율)가 먼저 넘쳐 흐릅니다.
결국 어떤 운 좋은 채굴자가 자신의 풀 바닥에서 크기가 제한된 액체를 퍼내어, 영원히 그곳에 앉아 있게 될 액체로 채워진 긴 유리 탱크의 가장 최근 탱크에 쏟아붓습니다(블록체인). 이는 시스템을 직관적으로 생각하고 대부분의 역학을 포괄하는 방법일 뿐입니다.
이러한 풀의 상호 연결은 서로 다른 사용자에게 서로 다른 목적을 제공합니다.
거래자
거래를 하는 사용자는 메모리풀에 두 가지 용도가 있습니다. 첫째, 거래를 채굴자에게 전달하는 것입니다. 만약 거래가 채굴자의 메모리풀에 도달하지 않으면 블록에 포함될 수 있는 방법이 없습니다. 메모리풀이 서로 연결되어 거래를 공유함으로써 결국 한 메모리풀에 거래가 들어가면 모든 채굴자의 메모리풀에 도달하게 됩니다. 사용자와 모든 채굴자 간에 거래가 결국 전달될 것이라는 것을 보장하는 강력하고 분산된 네트워크는 매우 가치 있는 것입니다.
두 번째 용도는 수수료 추정입니다. 이는 특히 Layer 2 사용자에게 중요합니다. 이들은 언제든지 잘못된 상태에 대한 응답 거래가 적시에 확인되도록 해야 할 수 있습니다. 블록의 거래 수수료율을 살펴보면 어느 정도의 수수료 추정이 가능하지만, 이는 가장 최근 블록 이후의 메모리풀의 현재 상태에 대한 정보를 제공하지 않습니다. 갑작스러운 급증, 기회주의자들이 메모리풀을 채우는 것, 아직 끝나지 않은 거래 급증의 다음 물결을 고려하지 않습니다. 메모리풀을 볼 수 없다면 수수료 추정이 현재 보류 중인 거래의 상태를 고려하고 있다고 확신할 수 없습니다.
수신자
비트코인을 받을 때, 당신의 노드는 해당 거래와 그것을 포함하는 전체 블록을 검증합니다. 당신에게 지불하는 거래는 방송되어 채굴자의 메모리풀에 도달하고, 채굴자는 블록을 찾고, 그 블록은 네트워크에 방송되며, 이후 당신의 노드는 이를 다운로드하고 검증합니다.
하지만 실제로는 그렇게 작동하지 않습니다(노드의 메모리풀을 비활성화하고 블록 전용 모드로 실행하지 않는 한). 당신의 노드는 메모리풀에서 처음 수신된 각 거래를 검증하고 이를 유효한 비트코인 거래로 캐시합니다. 채굴자가 블록을 찾으면, 그들은 실제로 블록 헤더와 간단한 설명을 위해 압축된 작은 정보를 전달합니다. 이를 통해 어떤 거래가 블록에 있는지 파악할 수 있습니다. 그런 다음 당신의 노드는 사전 검증된 거래를 가져와 헤더를 검증하고, 모든 것이 통과하면 “압축 블록”을 전달합니다.
이 최적화는 채굴자들이 더 이상 Matt Corrallo가 유지하던 중앙 집중식 및 허가된 중계 네트워크인 FIBRE나 단기간 운영된 Falcon Network에 의존하지 않게 된 이유입니다. 이러한 네트워크는 채굴자들이 다른 채굴자에게 낮은 블록 중계 지연을 보장하기 위해 연결해야 했던 네트워크입니다.
채굴자
채굴자는 당연히 모든 것을 보고 싶어합니다. 그들은 가능한 한 많은 보류 중인 거래 세트에서 가장 높은 수수료를 포함한 거래를 선택할 수 있는 이익 중심의 존재입니다. 이는 그들이 수익을 극대화하고 운영을 확장하며 경쟁력을 유지하는 방법입니다.
그들은 문자 그대로 메모리풀에서 돈을 얻습니다. 유효한 수수료를 지불하는 거래를 확보하려는 그들의 유인은 매우 강력하여, 역사적으로, 현재, 그리고 거의 확실히 미래에도, 사용자들이 거래를 채굴자에게 직접 제출할 수 있도록 설계된 수많은 시스템과 비공식적인 사회적 arrangement을 구축해 왔습니다.
블록 탐색기, 체인 분석 등
그들 또한 채굴자처럼 세계에 방송된 모든 보류 중인 거래를 보고 싶어합니다. 두 그룹 간의 주요 차이점은 채굴자는 이러한 거래에서 수수료를 직접 수익화하는 반면, 블록 탐색기와 분석 회사는 이러한 거래를 표시하고 분석하여 수익화된 제품으로 제공함으로써 간접적으로 수익화한다는 것입니다.
캐시된 메모리풀 데이터와 관련된 구체적인 예를 지적할 수는 없지만, 체인 분석 회사들은 거래 활동에 대한 개인적으로 수집된 메타데이터를 정기적으로 구매하는 것으로 알려져 있습니다. 그들은 또한 전체 네트워크의 노드와 최대한 널리 연결된 시빌 비트코인 노드를 운영하여 거래를 처음 방송한 노드 세트를 좁히는 것으로 알려져 있습니다.
블록 탐색기도 블록체인과 메모리풀 데이터의 시각적 표시를 수익화하며, 그들의 전체 비즈니스 모델은 이에 초점을 맞추고 있습니다. 사용자에게 표시할 수 있는 더 많은 데이터에 대한 접근은 유용하거나 새로운 방식으로 해당 정보를 표시하거나 그로부터 파생된 정보를 수익화할 수 있는 더 많은 정보를 의미합니다.
정보는 흐르기를 원한다
이러한 다양한 사용자 클래스는 “공공 메모리풀”이 존재함으로써 혜택을 받습니다. 그 이유는 단순한 역학 때문입니다: 정보는 자유롭게 흐릅니다. 최소 중계 필터를 통과할 수 있는 충분한 수수료가 있는 한, 이는 합의적으로 유효하며 개별 노드에 대한 정당한 서비스 거부 또는 자원 고갈 위험을 제시하지 않으므로, 네트워크의 각 개별 메모리풀을 통해 전파되는 모든 사용자 클래스에 가치를 제공합니다.
기능적인 공공 메모리풀이 없다면, 이러한 다양한 사용자에 대한 모든 대안은 중앙 집중식 솔루션이나 각 사용자가 개별적으로 추적해야 할 단편화된 공공 메모리풀의 관리할 수 없는 혼란입니다.
이는 수수료율 데이터의 조작 가능성, 사용자 기만, 거래의 비공식 중계로 인한 채굴자 추출 가치 문제를 도입할 뿐입니다. 건강하고 개방된 공공 메모리풀이 없다면, 비트코인이 직면해야 할 문제는 이러한 유형의 문제입니다.
후속 기사에서는 이러한 문제와 다양한 유형의 메모리풀 필터 및 그 존재 이유를 살펴보겠습니다.