
Mempool(メンプール)は、ブロックチェーンノードの内部に設けられた取引待機スペースであり、発生した取引が処理されるまで一時的に保管される場所です。 この用語は「memory(メモリー)」と「pool(プール)」の合成語です。ブロックチェーンに追加される前の取引が並ぶデジタル上の待機列を指します。
暗号資産取引を行った際、処理まで短い遅延を経験する場合があります。取引が発生し、まだブロックに含まれていない場合、その取引はmempoolに保管されます。BitcoinはSatoshi Nakamotoによって開発され、この概念を初めて導入しました。その後、Ethereumなど多数のブロックチェーンプロジェクトがmempoolモデルを採用しています。
Bitcoinはブロックチェーン技術の普及を促しました。Satoshi Nakamotoが最初にmempoolを用いた取引処理を実装し、Ethereumを含む他のプロジェクトもこのモデルを取り入れています。
すべてのブロックチェーンにmempoolが存在しますが、呼称が異なる場合があります。Parityではmempoolを「Transaction Queue」と呼ぶなど、取り扱いは各チェーンで異なりますが、根本的な仕組みは共通です。
Mempool内の各取引はデータパケットであり、通常は数キロバイト程度です。これら全取引の合計サイズがmempool全体のサイズとなります。
Mempoolが大きくなるほど、承認待ちの取引数が増えていることを示します。Bitcoinでは価格変動が激しい際に取引量が増加するため、mempoolサイズも上昇しやすくなります。
ポイント ノードはmempoolサイズの上限を設定することができます。上限を超えると、新規取引には最低手数料が必要となる場合があります。これによりネットワークのスパム対策や安定性維持が可能です。
Mempoolはブロックチェーンノードの運用の要となる機能です。取引がブロックチェーンに記録されるには、まずブロックに組み込まれる必要があります。全てのノードがブロックを生成できるわけではありません。Proof-of-Work方式ではマイナーが、Proof-of-Stake方式ではバリデーターが取引をブロックに追加します。
取引が作成された後、ユーザーはバリデーターやマイナーによる承認・ブロックへの追加を待ち、最終的にブロックチェーンに記録されます。このプロセスは即時には完了しません。取引は検証、ブロックへの追加、ブロックチェーンへの記録を待つ間、mempoolに留まります。 待機時間はネットワークの混雑や取引の優先順位によって左右されます。
Mempoolはバッファとして機能し、取引を秩序立てて安全に処理できるようにします。mempoolがなければ、ブロックチェーンネットワークは大量取引処理やデータ整合性の維持が困難となります。
ブロックチェーンには複数のmempoolが存在し得ます。各ノードが独自に保留取引スペースを持っているためです。これら個々のmempoolが集合し、ネットワーク全体のmempoolを構成します。
ユーザーが取引を開始すると、その取引はノードに送信されます。ノードは取引を自身のmempoolに追加し、検証待ちとしてキューに並べます(データの正確性を確認)。検証を通過すると、取引の状態は「pending(保留)」となります。 この段階でマイナーやバリデーターが取引を新規ブロックに追加し、ブロックチェーンに記録します。
検証では、送信者の残高確認、デジタル署名の検証、ネットワークルールの遵守確認などが行われます。検証を通過した取引のみ次のステップへ進みます。
取引がブロックチェーンに記録されると、ノードはこの情報を受信し、該当取引をmempoolから削除します。これにより、全ノードが取引状況を一致させることができます。
Mempoolの仕組みを例示するため、0.01 BTCを友人に送る場合を考えます。
まず、友人のウォレットアドレスを取得し、取引開始時に受取人として設定、システムの送金手数料を承認後「送信」をクリックします。
取引は最寄りのmempoolに追加され、処理待ちとしてマークされます。この時点では登録済みですが、まだ検証は完了していません。
取引はネットワーク上の他ノードにもブロードキャストされ、ネットワークルールの遵守状況を確認します。このブロードキャストによってネットワーク全体が取引を認識します。
検証を通過すれば、一般キューから待機プール(ブロックへの組み込みとブロックチェーンへの記録待ちのプール)に移動します。問題があれば未承認通知が届きます。
マイナーやバリデーターが取引を選択し(通常は手数料優先)、新しいブロックに追加してブロックチェーンに記録します。
その後、マイナーやバリデーターが新しいブロックをネットワークにブロードキャストし、他ノードは含まれる取引情報を受信します。
ノードは自身のmempoolから該当取引を削除し、新たな取引のため空き領域を確保します。
取引完了です。友人が0.01 BTCを受け取り、取引はブロックチェーンに永久記録され、変更はできません。
Mempoolの過負荷は、要求された取引件数が1ブロックに収まる限界を超えた場合に発生します。 主な要因は次の通りです:
ネットワーク混雑。 取引数が急増するとブロック容量が不足し、mempoolが過負荷となります。例えば、通常のBitcoinブロックは約3,150件の取引を収容します。これを大きく超える取引が数時間続くと、mempoolもネットワークも過負荷となり、待機時間や手数料が上昇します。
イベントやニュース。 トークンローンチやエアドロップ、有名人による暗号資産の推奨などで取引が急増し、mempoolの過負荷が発生します。主要な発表や価格変動時も活動が急増します。
フォークやネットワークアップグレード。 ネットワークがフォークやアップグレードを行う際、ノードが更新作業に集中し通常速度で取引処理できず、mempoolの過負荷が生じます。
これら要因を理解することで、開発者は影響を最小限に抑える調整が可能です。主な対策はブロックサイズの拡大、レイヤー2プロトコルの導入、コンセンサスアルゴリズムの最適化などです。
取引手数料はmempool内の処理順序決定に重要な役割を担います。マイナーやバリデーターは利益最大化を目指して取引を新規ブロックに選択します。ユーザーが支払う手数料が高いほど、取引の処理速度は速くなります。
では、Bitcoin取引の承認にはどれくらい時間がかかるのでしょうか?mempoolの混雑と支払った手数料によって決まります。混雑が少なく手数料が高ければ迅速に処理されます。混雑が激しい場合や低手数料ではBitcoinを含む暗号資産の承認が遅延します。
この優先順位システムによって市場的なダイナミズムが生まれます。迅速な承認を希望するユーザーは高額を支払い、待てるユーザーは低額で済ませます。こうした仕組みにより、ブロックチェーンネットワークは限られたリソースを効率的に配分できます。
Mempoolは未承認のブロックチェーン取引を一時保管する領域です。各ノードが独自のmempoolを管理し、検証待ちの取引を保存します。mempoolは取引手数料を管理し、高額手数料の取引を優先して迅速に承認します。
ユーザーが取引を送信するとノードが受信し、mempoolに追加して検証待ちとしてキューに並べます。取引はマイナーが次のブロックに追加するまでmempoolに残ります。
ネットワーク混雑やブロック容量の制限により、取引がmempoolに長時間滞留することがあります。手数料が低い取引は優先度が下がり、承認まで時間がかかります。
Mempoolの混雑は取引手数料の上昇につながります。マイナーは高額手数料の取引を優先するため、迅速な処理を希望する場合はより多く支払う必要があります。
Mempool.spaceなどのブロックチェーンエクスプローラーを利用すれば、リアルタイムのmempool状況を確認できます。mempoolサイズ、手数料レベル、承認待ち取引数などを表示し、タイミングやコスト最適化に役立ちます。
Mempoolが満杯になると、ノードは最低手数料の取引を削除し、高額手数料取引のためのスペースを確保します。削除された取引は混雑が解消された際や手数料を増やして再送信することができます。
Gas手数料はmempool内での取引優先順位を決定します。マイナーは高額Gas手数料の取引を優先して処理します。Gas手数料を多く支払うほど、mempoolキュー内での順位が上がります。











