WATS Wallet logoWATS Wallet
技術6 分で読めます

メンプールとは?すべてのトランザクションが通る待合室

メンプールとは、署名済みのトランザクションがブロック生産者に拾われるまで待機する、ノードごとの保管場所です。pending・置き換え・追い出しが実際にどう動くのか、公開プールがなぜフロントランニングボットへの贈り物なのか、そしてSolanaとERC-4337がなぜ別のやり方をするのかを解説します。

メンプール(「memory pool」の略)とは、署名されネットワークにブロードキャストされたものの、まだブロックに取り込まれていないトランザクションを、ブロックチェーンのノードが保持しておく待機領域です。単一のグローバルなメンプールは存在しません。各ノードが自分のコピーを持ち、それをピアにゴシップで広めるため、「pending」とは実際には、あなたのトランザクションがよく接続されたノードの大半のプールに座り、拾われるのを待っている状態を指します。ブロック生産者はそのプールから手数料の優先度に従って選ぶので、手数料が足りないトランザクションは何時間も待つことも、同じnonceを持つ高手数料版に置き換えられることも、オンチェーンで失敗することなく追い出されて忘れ去られることもあります。公開プールは誰でも読めるため、保留中のスワップは確定前からサーチャーボットに見えています。すべてのチェーンがこの方式ではありません——Solanaはトランザクションを次のブロック生産者へ直接ストリームし、EVMチェーンではWATSのようなERC-4337ウォレットがUserOperationを別建ての代替メンプールに送り、バンドラーがそれを通常のトランザクションに包み込みます。

署名とブロックの間

送信を押しても、トランザクションはブロックチェーンには入りません。ブロックチェーンに入るかもしれないための行列に入るのです。ウォレットは署名済みトランザクションをノードにブロードキャストし、ノードは形式が正しいか、署名が正しいか、nonceが妥当か、残高が足りているかを確認します。そこからメンプール——ブロック生産者に拾われるのを待つ保留中トランザクションの溜まり場——に入ります。ウォレットが「pending」と表示するものはすべてこの待合室に住んでおり、トランザクションがする紛らわしいことの大半——固まる、消える、置き換えられる——はブロックチェーンではなくメンプールの振る舞いです。

メンプールとは実際何か

最初の驚き:単一の正典的なメンプールは存在しません。各ノードは自分の保留中トランザクションのプールを保持し、ピアにゴシップで広めます。ネットワークには、大きく重なり合うが決して同一ではない何千ものコピーが存在するのです。「メンプールにある」とは実際には「今頃はよく接続されたノードの大半のメンプールにある」という意味です。ノードはローカルなポリシーも課します——そもそも受け付ける最低手数料、ひとつのアカウントが保持できる保留中トランザクション数の上限、プールが満杯のときに最も安いものから追い出す仕組み。手数料が極端に低いトランザクションが、オンチェーンで失敗することなく静かにネットワークから消えうるのはこのためです。何も使われていません。そもそも何も実行されていないからです。

トランザクションはどう出ていくか:手数料オークション

ブロックスペースは希少で、メンプールはその市場が清算される場所です。ブロック生産者は収まる範囲で最も収益性の高い保留中トランザクションの組み合わせを組み立てます。実際には、手数料の優先度が誰が先に待合室を出るかを決めるということです。EVMチェーンでは、その優先度はEIP-1559のもとでベースフィーに上乗せするチップです。相場を払えば1〜2ブロックで退出、安く入札すれば需要が冷めるまで待つか、トランザクションが追い出されるかです。ひとつの帰結が絶えず人を躓かせます——EVMのアカウントは厳密なnonce順に実行されるため、安くて固まったトランザクションが1件あるだけで、その後に送るすべてのトランザクションが、どれだけ気前よく手数料を付けていても止まってしまうのです。

pending、置き換え、破棄

保留中トランザクションはまだ歴史ではないため、ひとつの特定の方法でまだ編集できます。置き換えです。同じnonceで明確に高い手数料の新しいトランザクションをブロードキャストすることは、古い方を捨てるようノードに告げること——固まった送信の標準的な治療法であり、置き換えるものが自分のアドレス宛のゼロ値送金であれば、それが標準的なキャンセル方法になります。確認もされず置き換えもされないトランザクションは、やがて破棄されます。プールから追い出され、送られなかったかのように忘れられるのです。資金は一度も動いていないので、失われたものは何もありません——しかし、これらのどれも典型的なウォレットUIには現れず、「私のトランザクションはどこ?」というパニックの大半はそこから生まれます。

とても公開的な待合室

公開メンプールにあるものはすべて、確定前から誰にでも見えます。保留中のスワップを解析し、見たものに基づいて動くボットにも、です。この可視性こそ、フロントランニングと、スリッページの解説で扱ったサンドイッチ取引の原材料です。保留中の取引は、あなたがこれから何を買うのか、そして受け入れると同意した最悪の価格を、そのまま公表しています。スリッページ許容度をきつく保つことが本当の防御になるのはこのためです——サンドイッチが抜き取れる額に上限をかけるのです。そして、EVMのトラフィックのうち増えつつある割合が、公開プールを飛ばしてブロックビルダーへ直行するプライベート提出チャネルを通るようになったのも、同じ理由です。透明性を保護と引き換えにし、その過程で新たな信頼前提を引き受けているわけです。

すべてのチェーンにあるわけではない

ゴシップ型メンプールはEthereum流の設計上の選択であって、自然法則ではありません。Solanaはそれをほぼスキップします。リーダーのスケジュールが事前に分かっているため、クライアントはグローバルなプールを溢れさせる代わりに、次のブロック生産者へ直接トランザクションを転送します——pending状態が非常に短命に感じられる理由のひとつです。TONは共有キューではなく独自のシャード化されたルーティングでメッセージを運びます。そしてERC-4337はEVM自体に並行レーンを加えます。UserOperationは自分専用の代替メンプールで待ち、そこでバンドラーが拾い上げて通常のトランザクションに包み込むのです——バンドラーとUserOperationの解説で述べたとおりです。待合室の論理は同じで、部屋が違うだけです。

ウォレットがメンプールと出会う場所

メンプールは、WATSが引き受けることで、あなたがめったに意識せずに済むレイヤーです。WATSは健全なノードを通じてブロードキャストし、Ethereum、Arbitrum、Optimism、Base、Polygon、BNB Chain、Solana、TON——3つの異なる待合室を持つ3つのエコシステム——にまたがる保留状態を、ひとつのインターフェースの裏で追跡します。だからpendingという状態は、どの待合室で詰まっていても、あなたにとって同じ意味を持ちます。EVMチェーンでは、WATSの操作はERC-4337のUserOperationとして代替メンプールを通り、そこでペイマスターがブロック生産者の要求するネイティブガスを精算する一方、あなたはひとつのトークンATSで支払います。これは割引ではありません——ネットワークは相場どおりの全額を受け取り、あなたのATSの請求額もそれに連動します——変わるのは、どのトークンが払うかだけです。ATSはLayerZeroのOFTなので、8種類のネイティブコイン残高ではなく、ひとつの残高がサポート対象のすべてのチェーンをカバーします。そして手数料として集まったATSはバーンされ、供給量を100,000,000から30,000,000のフロアへと押し下げていきます。WATSは、ERC-4337とOFTによる単一トークン手数料をこのバーンと組み合わせた最初で唯一のウォレットであり、そのどれもカストディには触れません。WATSは完全にノンカストディアルで、鍵を持つのはあなたであり、WATSが鍵を持つことは決してありません。

ですから実践的な学びは狭いものです。メンプールをなくすことはできませんし、なくしたいと思うべきでもありません——あなたのトランザクションがそもそもブロックに入るのは、そのオークションのおかげです。取り除けるのは、オークションとは何の関係もない失敗モードのほうです。つまり、入札に使えるネイティブコインを持たないまま、あるチェーン上で立ち往生すること。あなたが繰り返しぶつかっているのがその種の「pending」なら、WATS Hot WalletでひとつのATS残高を用意しておくことが解決策になります。仕組みはATS手数料ページに詳しく書かれています。

よくある質問

メンプールとは、一文で言うと何ですか?

メンプールとは、ネットワークにブロードキャストされたものの、まだブロックに取り込まれていない有効な署名済みトランザクションを、ブロックチェーンのノードが保持しておく待機領域です。ブロック生産者は概ね手数料の優先度に従ってそこから選ぶため、メンプールは行列であると同時に、ブロックスペースをめぐるオークションでもあります。ウォレットが「pending」と表示しているものは、すべてそこで待っています。

グローバルなメンプールはひとつだけ存在するのですか?

いいえ。各ノードが自分の保留中トランザクションのプールを維持し、ゴシップネットワークでピアと共有します。存在するのは1本のマスターキューではなく、何千もの重なり合うローカルビューです。エクスプローラーが保留中トランザクションについて時に食い違う理由も、手数料が極端に低いトランザクションが一部のプールに存在し、他から追い出され、最終的にすべてから忘れられうる理由もここにあります。

トランザクションがpendingのまま固まっています。キャンセルできますか?

ほぼ確実に、手数料が相場を下回っているためメンプールで待っているのです——需要が冷めれば確認されますし、そうでなければ無期限に待ちます。保留中トランザクションは置き換えられるので、対処法は同じnonceでより高い手数料で再ブロードキャストすること。同じトランザクション(高速化)か、自分のアドレス宛のゼロ値送金(キャンセル)です。ウォレットは通常、両方を「高速化」と「キャンセル」のボタンとして提供しています。EVMチェーンでは影響はその1件にとどまりません。nonceが詰まると、そのアカウントの以降のトランザクションがすべて止まるからです。

確認前に他人が私のトランザクションを見られますか?

公開メンプールでは見られます——保留中トランザクションは完全に可視で、ボットが積極的に解析しています。それこそがフロントランニングとサンドイッチ攻撃を可能にするものです。スリッページ許容度をきつく保てば、そうしたボットがスワップから抽出できる分を制限できます。またEVMでは、公開プールを完全にスキップするプライベート提出チャネルを使うトラフィックが増えており、その透明性を保護と引き換えにしています。

ERC-4337のUserOperationも同じメンプールで待つのですか?

いいえ。UserOperationはトランザクションではないため、別建ての代替メンプールを通ります。そこでバンドラーが集めて通常のトランザクションに包み込み、そのトランザクションが通常のメンプールに入ります。WATSはEVMチェーンでこの経路を使います。UserOperationはネイティブガスを精算するペイマスターを伴っており、WATSユーザーが各チェーンのネイティブコインではなくATSでネットワーク手数料を払えるのはそのためです。

トランザクションをメンプールから出すには、各チェーンのネイティブコインが必要ですか?

WATSでは不要です。WATS Hot WalletはEthereum、Arbitrum、Optimism、Base、Polygon、BNB Chain、Solana、TONにわたり、ネットワーク手数料をひとつのトークンATSで請求します。あるチェーンでETHを持たない、別のチェーンでBNBを持たないというだけの理由でブロードキャストを止められることはありません。EVMではこれをERC-4337で実現しており、ブロック生産者が要求するネイティブガスはペイマスターが支払います。ATSはLayerZeroのOFTなので、ひとつの残高でサポート対象のすべてのチェーンをカバーできます。これは割引ではありません——ネットワークは手数料を満額受け取り、ATSは誰が払うトークンかを変えるだけです。