
メモリプール:トランザクションが確定する前に待つ場所
送信ボタンを押すと、ウォレットはトランザクションがブロードキャストされたと表示します。エクスプローラーにも表示されますが、状態は「承認済み」ではなく「保留中」です。数秒、数分、ときには数時間、あなたのトランザクションは存在していると同時に存在していない状態になります。
その間にトランザクションが置かれている場所をメモリプール(mempool)と呼びます。これを理解すると、手数料が分単位で変わる理由、一部のトランザクションが詰まってしまう理由、そして保留中のトランザクションが支払いではなく約束にすぎない理由がわかります。
メモリプールとは実際に何か
「Mempool」は memory pool の略です。ノードがメモリ上に保持している、有効だがまだ承認されていないトランザクションの集まりで、ブロック生成者に取り込まれるのを待っています。
最初の意外な点は、メモリプールがひとつではないことです。すべてのノードがそれぞれ独自のメモリプールを持っています。トランザクションをブロードキャストすると、ウォレットはそれをあるノードに渡し、そのノードが検証してピアに転送し、ピアがさらに転送していきます。数秒のうちにネットワークの大部分がコピーを持つことになりますが、各ノードのプールは、どのトランザクションが届いたか、サイズの上限、独自のルールによって少しずつ異なることがあります。
メモリプール内のトランザクションは基本的なチェックを通過しています。署名は有効で、使おうとしているコインも実在します。しかしまだブロックには含まれておらず、含まれるまでは、実行されずに終わる可能性が残っています。
トランザクションはどう選ばれるか
ブロックの容量には限りがあり、ブロック生成者(プルーフ・オブ・ワークのチェーンではマイナー、プルーフ・オブ・ステークのチェーンではバリデーター)の報酬の一部は手数料です。そのため、おおまかに言えば、使用する容量あたりの支払いが最も多いトランザクションからブロックを埋めていきます。
Bitcoin や同様のチェーンでは、それは合計手数料ではなく手数料率、つまり仮想バイトあたりのサトシを意味します。控えめな手数料を払う小さなトランザクションが、合計ではより多く払う大きなトランザクションに勝つこともあります。Ethereum やその他の EVM チェーンでは、ネットワーク自体がブロックごとに調整するベース手数料に上乗せされる優先チップを意味します。
手数料が需要に応じて上下するのはこのためです。メモリプールが空いているときは、ほぼどんな妥当な手数料でも次のブロックに入ります。混雑しているとき(人気プロジェクトのローンチ、市場のパニック、取引の急増など)は、トランザクション同士が競り合い、手数料の低いものは取り残されて待つことになります。
トランザクションが詰まる理由
現在の状況に対して手数料が低すぎたトランザクションは、失敗するのではなく待ちます。需要が高いままなら、長い間メモリプールにとどまることがあります。ただし、ノードはトランザクションを永久に保持するわけではありません。プールがいっぱいになると最も支払いの少ないものから破棄し、多くのノードは2週間ほど経過したものをすべて破棄します。
破棄されたトランザクションは一度も承認されていないので、資金は一切動いていません。しかし、あらゆる場所から消えるまでは、後から承認される可能性が残ります。これが居心地の悪い中間状態です。支払いは完了もしておらず、キャンセルもされていません。
解決策はたいてい、より多く支払うことです。Replace-by-fee(RBF)などの手法を使えば、同じトランザクションの新しいバージョンをより高い手数料でブロードキャストし、メモリプール内の古いものと置き換えられます。
保留中のものは公開されている
メモリプールの中身はすべて見えます。ノードを運用している人なら誰でも、そしてどのエクスプローラーでも、確定する前にあなたが何をしようとしているのかを見ることができます。金額、アドレス、そしてスマートコントラクトチェーンでは呼び出している関数そのものまでです。
ほとんどの送金では、これはあまり問題になりません。しかしトレードでは大きな問題になり得ます。ボットはメモリプールを監視して大口のスワップを探し、その前後に自分のトランザクションを配置して価格変動から利益を得ます。フロントランニングとサンドイッチ攻撃はどちらも、保留中のあなたのトランザクションが見えることを前提にしています。
これは資金を受け取る側にとっても重要です。保留中の入金トランザクションは、まだ置き換えられたり破棄されたりする可能性があります。まだあなたのお金ではありません。
保留から確定へ
ブロックに含まれることが最初の承認です。トランザクションはメモリプールを離れ、チェーンに加わりました。その上にブロックが積み重なるたびに、取り消すのは難しくなります。何回の承認で十分かはチェーンと金額によって異なりますが、ルールはどこでも同じです。保留中は「ありうる」、承認済みは「おそらく確実」、十分に深く承認されれば「確定」です。
SSP ではどう見えるか
SSP から送信するときは、どれだけの優先度に支払うかを選びます。送信画面では、現在のネットワーク状況に基づいて「低速」「標準」「高速」のプリセットが表示され、それぞれにかかりそうな時間の目安も示されます。EVM チェーンでは、手数料を自分で設定したい場合のカスタムオプションもあります。
何かがブロードキャストされる前に、SSP Wallet と SSP Key の両方が承認する必要があります。トランザクションがネットワークに届いた後は、メモリプールは SSP にとっても他の誰にとっても同じように機能します。選んだ手数料が取り込まれる速さを決め、承認されるまでは保留中のままです。
率直なまとめ
メモリプールは「送信済み」と「完了」の間にある待合室です。ひとつではなく多くの部屋からなり、公開されていて、ブロック容量に最も多く支払う人が優先されます。
承認がどれだけ早く必要かに見合った手数料を選び、保留中のトランザクションを(自分のものでも他人のものでも)確定したものとして扱わず、ブロードキャストしたものはすべて、決済される前にネットワーク全体から見えていることを忘れないでください。


