Moneroのメムプール:保留中トランザクションの仕組みとその重要性
Moneroのメムプールとは?
すべての暗号通貨ネットワークには、ブロードキャストされたがまだブロックに含まれていないトランザクションの待合室が必要です。Moneroでは、この待合室をメムプール(mempool)と呼び、memory poolの略称です。これはネットワークの重要なコンポーネントであり、トランザクションの確認速度やネットワークが高需要期を処理する方法に直接影響します。
ウォレットからXMRを送信すると、トランザクションはすぐにブロックチェーンに表示されません。代わりに、まずメムプールに入り、マイナーがそれを選んで次のブロックに含めるまで、他の未確認トランザクションと共に待機します。このプロセスを理解することで、MoneroSwapperやその他のMoneroサービスを利用する際の手数料、タイミング、プライバシーについてより良い判断ができます。
トランザクションがメムプールに入る仕組み
Moneroトランザクションの旅はウォレットソフトウェアから始まります。送信を開始すると、ウォレットがローカルでトランザクションを構築します。これには、リング署名のためのデコイ出力の選択、受取人のためのワンタイムステルスアドレスの生成、暗号化された金額の範囲証明の計算、そしてプライベート支出キーですべてに署名する作業が含まれます。
構築が完了すると、ウォレットはMoneroのP2Pネットワークにトランザクションをブロードキャストします。最初に受信したノードは、ローカルメムプールに受け入れる前にいくつかの検証チェックを行います:
- 構文検証 — トランザクションはMoneroプロトコルルールに従って正しくフォーマットされている必要があります
- リング署名検証 — 暗号署名が有効であり、送信者が参照された出力を支出する権限を持つことを証明する必要があります
- キーイメージチェック — キーイメージがブロックチェーンやメムプールに既に存在していてはなりません(二重支出の試みを示すため)
- RingCT検証 — 範囲証明が有効であり、暗号化された金額が正の値で、入力が出力と手数料の合計に等しいことを確認する必要があります
- 手数料チェック — トランザクションはそのバイトサイズに基づく最低必要手数料を含む必要があります
これらのチェックに合格すると、ノードはトランザクションをメムプールに追加し、接続されている他のノードに中継します。このゴシッププロトコルにより、トランザクションは数秒以内にネットワーク全体に伝播し、次のブロックに含めることができるマイナーに到達します。
Dandelion++とトランザクション伝播
Moneroは送信者のIPアドレスを保護するために、Dandelion++と呼ばれる強化された伝播方式を使用しています。Dandelion++はトランザクションをすべてのピアに即座にブロードキャストする代わりに、まずランダムなノードチェーンを通じて「ステムフェーズ」で送信し、その後通常の「フラッフフェーズ」の広範な伝播に入ります。これにより、ネットワーク観察者がどのノードがトランザクションを開始したかを判断することが大幅に困難になります。
このプライバシー機能は、パブリックブロックエクスプローラーのメムプールにトランザクションが表示されるまでわずかな追加遅延がある可能性を意味します。ステムフェーズは通常数秒しか追加しませんが、ネットワークレベルの監視に対して有意義な保護を提供します。
メムプールサイズとトランザクション制限
Bitcoinがやや固定されたブロックサイズ制限により予測可能なメムプール混雑を生み出すのとは異なり、Moneroは動的ブロックサイズメカニズムを使用しています。最大ブロックサイズは過去100ブロックの中央値サイズに基づいて自動的に調整されます。需要が増加すると、ブロックはより多くのトランザクションを収容するために大きくなれますが、マイナーは現在の中央値を超えるブロックを作成するとペナルティを支払います。
メムプール自体は各ノードで設定可能なサイズ制限があります。デフォルトでは、Moneroデーモンはメムプールに一定量のメモリを割り当てます。この制限に近づくと、最低手数料のトランザクションがより高い手数料のものに場所を譲るために削除される場合があります。実際には、動的ブロックサイズメカニズムが需要のスパイクを効果的に吸収するため、Moneroのメムプールが限界に達することはめったにありません。
メムプールの動作に影響する主要なパラメータは以下の通りです:
- 最低中継手数料 — この手数料率以下のトランザクションはノードによって中継されず、スパムを防止します
- トランザクションの有効期限 — 長期間(通常72時間)未確認のままのトランザクションは最終的にメムプールから削除されます
- トランザクションあたりのサイズ制限 — 個々のトランザクションは最大サイズを超えることができず、入力と出力の数を制限します
手数料ベースの優先順位とトランザクションの順序付け
マイナーが新しいブロックを構築する際、手数料収入を最大化するためにメムプールからトランザクションを選択します。トランザクションは絶対的な手数料額ではなく、バイトあたりの手数料比率でランク付けされます。0.0001 XMRを支払う小さなトランザクションは、手数料対サイズ比率が良ければ0.001 XMRを支払う大きなトランザクションよりも優先順位が高くなることがあります。
Moneroウォレットは4段階の優先度システムに基づいて手数料を計算します:
- デフォルト(x1) — 標準手数料、通常のトランザクションに適しており、一般的に次のブロックで確認されます
- 低(x1) — ほとんどの条件でデフォルトと同じ;数ブロック以内に確認されます
- 中(x5) — 基本手数料の5倍、混雑時のより速い確認のため
- 高(x20) — 基本手数料の20倍、次のブロックへの組み込みを事実上保証します
通常のネットワーク条件下では、デフォルトの手数料レベルでも1〜2ブロック(約2〜4分)以内に確認されます。手数料市場はトランザクション量の異常なスパイク時にのみ関連します。
バックログシナリオ
トランザクションがブロックに含まれるよりも速く作成される場合、バックログが発生します。Moneroの動的ブロックサイズはこれを軽減するのに役立ちますが、極端な需要のスパイクは一時的な混雑を引き起こす可能性があります。バックログ中には次のことが起こります:
まず、トランザクションが蓄積されるにつれてメムプールが成長します。デフォルト手数料で送信されたトランザクションの確認時間が長くなることにユーザーが気付くかもしれません。動的ブロックサイズメカニズムが作動し、マイナーがより大きなブロックを作成できるようになります。追加の手数料が中央値ブロックサイズを超えることに対するブロック報酬ペナルティを相殺できるため、マイナーはより多くのトランザクションを含めるインセンティブを持ちます。
次に、より高い手数料率のトランザクションがより速く確認される手数料市場が出現します。これは自己修正メカニズムであり、手数料が上昇すると一部のユーザーが緊急でないトランザクションを延期して需要を減少させます。一方、拡大するブロックサイズは均衡に達するまでより多くのスループットを収容します。
過去のバックログイベント
Moneroは注目すべきメムプール混雑イベントを経験しており、多くはスパム攻撃や正当な使用の突然の急増によって引き起こされました。これらのイベント中、ネットワークは動的ブロックサイズ調整を通じてレジリエンスを実証しました。ブロックは一時的に大きくなり、手数料は適度に上昇し、バックログは数時間から数日で解消されました。これらのイベントは、需要をより優雅に処理するための継続的なプロトコル改善に情報を提供しました。
MoneroのメムプールとBitcoinのメムプールの違い
MoneroのメムプールとBitcoinのメムプールの最も重要な違いは、メムプール分析のプライバシーへの影響です。Bitcoinでは、メムプール監視者は未確認トランザクションから相当な情報を抽出できます。なぜなら、金額、アドレス、トランザクショングラフが完全に可視だからです。
Bitcoinメムプール分析により観察者は以下のことが可能です:
- 確認前の資金の流れを追跡
- 入力と出力をリンクしてアドレスクラスターを構築
- 支払いの送信者と受信者を特定
- 統合トランザクションを検出しウォレット残高を推定
- 保留中の取引を観察してフロントランニング
Moneroのメムプールでは、これらのいずれも不可能です。メムプール内の各トランザクションはキーイメージ(二重支出防止)、暗号化された金額(RingCTにより隠蔽)、ワンタイムステルスアドレス(実際のアドレスとリンク不可能)、リング署名(どの出力が実際に支出されているかを曖昧にする)のみを公開します。Moneroのメムプールを監視する観察者はトランザクションが流れるのを見ることはできますが、誰が誰にいくら支払っているかを判断することはできません。
メムプールの監視
いくつかのツールを使用して、Moneroのメムプールの状態をリアルタイムで監視できます。これらは確認時間の推定、トランザクションがブロードキャストされたかの確認、現在のネットワーク状態の理解に役立ちます。
人気のメムプール監視ツール
- xmrchain.net — 最も人気のあるMoneroブロックエクスプローラーで、現在のメムプールサイズ、トランザクション数、個々の保留トランザクションを表示する専用トランザクションプールページがあります
- moneroblocks.info — クリーンなメムプール可視化と履歴データを備えた代替エクスプローラー
- ローカルデーモン — 自分のMoneroノードを実行すると、get_transaction_poolやget_transaction_pool_statsなどのRPCコマンドを通じてメムプールデータに直接アクセスできます
- P2Poolオブザーバー — P2Poolでマイニングしている場合、オブザーバーページがマイニング関連のメムプール統計を表示します
ブロックエクスプローラーでメムプールを確認する際、その特定のノードのデータを閲覧していることを覚えておいてください。ネットワーク伝播の遅延とDandelion++により、トランザクションが一つのノードのメムプールに他のノードよりわずかに早くまたは遅く表示される場合があります。送信後にトランザクションがすぐに表示されない場合は、30秒待ってからリフレッシュしてください。
保留中のトランザクションについてユーザーが知るべきこと
日常的なMoneroユーザーやMoneroSwapperを通じてスワップする方々にとって、メムプールと保留トランザクションに関する実用的なポイントは以下の通りです:
確認時間は予測可能です。通常の条件下では、Moneroトランザクションは平均2分以内に確認されます。2分のブロック時間は、ほとんどのトランザクションがメムプールに入った直後の次のブロックに含まれることを意味します。
デフォルト手数料はほぼ常に十分です。手数料推定が複雑な技術であるBitcoinとは異なり、Moneroのデフォルト手数料レベルは大多数のトランザクションに十分機能します。手数料を上げる必要があるのは稀な混雑イベント時のみです。
保留中もプライバシーは保護されています。メムプール内の未確認トランザクションが広範な情報を漏洩するBitcoinとは異なり、Moneroのトランザクションは確認前であっても観察者に有用な情報を一切明かしません。送信ボタンを押した瞬間から、金額、アドレス、トランザクショングラフは隠されています。
トランザクションIDは安全に共有できます。受取人やサポートチームとMoneroトランザクションハッシュを共有してもプライバシーは損なわれません。ハッシュだけでは送信者、受信者、金額について何も明らかになりません。トランザクションが存在することを確認するだけです。
スタックしたトランザクションは稀ですが回復可能です。トランザクションが長期間メムプールに残っている場合、最終的に削除され、資金はウォレットに返還されます。ほとんどのウォレットの「ブロックチェーン再スキャン」機能を使用して、削除されたトランザクションの資金を回復することもできます。
まとめ
メムプールはMoneroアーキテクチャの基本的なコンポーネントであり、トランザクションスループット、手数料市場、プライバシーのバランスを取っています。その設計はMoneroのコアフィロソフィーを反映しています:ネットワークインフラストラクチャレベルでさえ、ユーザーのプライバシーが保護されています。単純な送金であれMoneroSwapperを通じたスワップであれ、メムプールの仕組みを理解することで、確認時間と手数料に対する現実的な期待を持って自信を持って取引できます。
🌍 他の言語で読む