原題: 暗号化メモリプールの限界について
原著者: Pranav Garimidi、Joseph Bonneau、Lioba Heimbach、a16z
原訳: Saoirse、Foresight News
ブロックチェーンでは、どのトランザクションをブロックに詰め込むか、どのトランザクションを除外するか、あるいはトランザクションの順序を調整することで得られる最大の値を「最大抽出可能値」、略して MEV と呼びます。MEV はほとんどのブロックチェーンに遍在しており、業界で広く注目され、議論されています。
注: この記事は、読者が MEV について基本的な知識を持っていることを前提としています。読者の中には、まずMEVポピュラーサイエンス記事をご覧になる方もいらっしゃるかもしれません。
MEV現象を観察している多くの研究者は、明確な疑問を提起しました。暗号化技術はこの問題を解決できるのでしょうか?一つの解決策は、暗号化メモリプールを使用することです。ユーザーは暗号化されたトランザクションをブロードキャストし、トランザクションはソートされた後にのみ復号化され、公開されます。この方法では、コンセンサスプロトコルがトランザクションの順序を「盲目的に選択」する必要があり、ソートフェーズでMEVの機会が利用できないように思われます。
しかし残念ながら、暗号化メモリプールは、実用面でも理論面でも、MEV問題に対する普遍的な解決策を提供することはできません。この記事では、その問題点を説明し、暗号化メモリプールの実現可能な設計の方向性を探ります。
暗号化メモリプールについては多くの提案がありますが、その一般的なフレームワークは次のとおりです。
1. ユーザーは暗号化されたトランザクションをブロードキャストします。
2. 暗号化されたトランザクションがチェーンに送信されます(一部の提案では、トランザクションは最初に検証可能なランダムシャッフルを受ける必要があります)。
3. これらのトランザクションを含むブロックが最終的に確認されると、トランザクションが復号化されます。
4. 最後に、これらのトランザクションが実行されます。
ステップ 3 (トランザクションの復号化) には重要な問題があることに注意してください。誰が復号化の責任を負うのでしょうか。復号化が失敗した場合はどうなるのでしょうか。シンプルなアイデアは、ユーザーに自分のトランザクションを復号化させることです(この場合、トランザクションを暗号化する必要はなく、コミットメントを隠すだけです)。しかし、このアプローチには抜け穴があり、攻撃者が投機的な MEV を実装できる可能性があります。
投機的MEVでは、攻撃者は特定の暗号化トランザクションにMEV機会が含まれていると推測し、自身のトランザクションを暗号化して、それを有利な位置(例えば、ターゲットトランザクションの前または後)に挿入しようとします。トランザクションが想定どおりの順序であれば、攻撃者は自身のトランザクションを復号し、MEVを抽出します。そうでない場合は復号を拒否し、そのトランザクションは最終的なブロックチェーンには組み込まれません。
復号に失敗したユーザーにペナルティを課すことは可能ですが、この仕組みの実装は非常に困難です。その理由は、ペナルティはすべての暗号化トランザクションに対して同じでなければならない(結局のところ、暗号化後はトランザクションを区別できないため)、そして高額ターゲットであっても投機的MEVを抑制するのに十分なほど厳しいペナルティでなければならないからです。その結果、多額の資金がロックされ、これらの資金は匿名性を維持する必要があります(トランザクションとユーザーの関連性が明らかになるのを避けるため)。さらに困難なことに、プログラムの脆弱性やネットワーク障害のために実際のユーザーが正常に復号化できない場合、彼らも損失を被ることになります。
したがって、ほとんどのスキームでは、トランザクションを暗号化する際に、開始ユーザーがオフラインであったり協力を拒否したりした場合でも、将来のある時点で復号化できることが必要であると推奨されています。これはいくつかの方法で実現できます。
信頼できる実行環境 (TEE): ユーザーは、信頼できる実行環境 (TEE) と呼ばれる安全なゾーンに保持されているキーにトランザクションを暗号化できます。いくつかの基本バージョンでは、TEE は特定の時点以降のトランザクションの復号化にのみ使用されます (これには TEE 内での時間認識が必要です)。より複雑なスキームでは、TEE がトランザクションを復号化してブロックを構築し、到着時間やコストなどの基準に基づいてトランザクションをソートします。他の暗号化メモリプール方式と比較したTEEの利点は、平文トランザクションを直接処理し、ロールバックされるトランザクションを除外することでチェーン上の冗長情報を削減できることです。しかし、このアプローチの欠点は、ハードウェアの信頼性に依存していることです。
秘密共有としきい値暗号化:この方式では、ユーザーは特定の委員会(通常はバリデーターのサブセット)が共同で保有する鍵を使用してトランザクションを暗号化します。復号には一定のしきい値条件(例えば、委員会メンバーの3分の2が同意する)が必要です。
しきい値復号が使用される場合、信頼の担い手はハードウェアから委員会に移ります。支持者は、ほとんどのプロトコルがバリデータがコンセンサスメカニズムにおいて「正直な多数派」機能を備えていると想定しているため、ほとんどのバリデータが正直であり、事前にトランザクションを復号しないという同様の想定もできると考えています。
しかし、ここで重要な違いに留意する必要があります。これら2つの信頼の前提は、同じ概念ではありません。ブロックチェーンのフォークなどのコンセンサス失敗は公開されます(「弱い信頼の前提」)。一方、悪意のある委員会は、公開証拠を残さずに事前にトランザクションを非公開で復号します。この攻撃は検出も処罰もできません(「強い信頼の前提」)。したがって、表面上はコンセンサスメカニズムと暗号化委員会のセキュリティの前提は一致しているように見えますが、実際の運用においては、「委員会は共謀しない」という前提の信頼性ははるかに低くなります。
タイムロックと遅延暗号化: しきい値暗号化の代替手段である遅延暗号化は、トランザクションを公開鍵で暗号化し、対応する秘密鍵をタイムロックパズルに隠すことで機能します。タイムロックパズルとは、事前に設定された時間が経過するまで、より具体的には並列化できない一連の計算を繰り返し実行することで、秘密をカプセル化する暗号パズルです。このメカニズムでは、誰でもパズルを解いて鍵を入手し、トランザクションを復号できますが、最終確認前にトランザクションを復号できないように十分な時間をかけるように設計された、低速(基本的に逐次的)な計算を完了する必要があります。この暗号プリミティブの最も強力な形態は、遅延暗号化によってこのようなパズルを公開生成することです。このプロセスは、信頼できる委員会がタイムロック暗号化を使用して近似することもできますが、現時点ではしきい値暗号化に対する優位性は疑問視されています。
遅延暗号化を用いる場合でも、信頼できる委員会に計算を委託する場合でも、こうした方式は多くの実際的な課題に直面します。第一に、遅延は本質的に計算プロセスに依存するため、復号時間の正確性を確保することが困難です。第二に、これらの方式は、パズルを効率的に解くために、高性能ハードウェアを実行する特定の主体に依存しています。誰でもこの役割を担うことができますが、主体の参加を促す方法はまだ明確ではありません。最後に、こうした設計では、ブロードキャストされたすべてのトランザクションが復号され、ブロックに最終的に書き込まれていないトランザクションも復号されます。閾値ベース(または証人暗号化)方式では、ブロックに正常に書き込まれたトランザクションのみを復号できる可能性があります。
証人暗号化:最新の暗号方式は、「証人暗号化」技術を採用しています。理論的には、証人暗号化のメカニズムは、情報が暗号化された後、特定のNP関係に対応する「証人情報」を知っている人だけがそれを復号できるというものです。例えば、数独パズルを解ける人や数値ハッシュの原画像を提供できる人だけが復号を完了できるように情報を暗号化することができます。
(注:NP関係とは、「質問」と「すぐに検証できる答え」を対応づける関係です。)
任意のNP関係において、SNARKを介して同様のロジックを実装できます。証人暗号化とは、本質的に、SNARKを介して特定の条件が満たされていることを証明できる主体だけが復号できる形式でデータを暗号化することと言えます。暗号化メモリプールのシナリオでは、このような条件の典型的な例として、ブロックが最終的に承認された後にのみトランザクションを復号できることが挙げられます。
これは大きな可能性を秘めた理論的なプリミティブです。実際には、これは一般的なスキームであり、委員会ベースの方法と遅延ベースの方法はその具体的な応用形態に過ぎません。残念ながら、現時点では実用的な証人ベースの暗号化スキームは存在しません。さらに、仮にそのような方式が存在したとしても、プルーフ・オブ・ステークチェーンにおける委員会ベースの方式よりも優位性があるとは言い難い。たとえ証人暗号化が「トランザクションが確定ブロックにソートされた後にのみ復号する」ように設定されたとしても、悪意のある委員会はコンセンサスプロトコルを非公開でシミュレートしてトランザクションの最終確認ステータスを偽造し、この非公開チェーンを「証人」としてトランザクションを復号することができる。この場合、同じ委員会による閾値復号で同等のセキュリティを実現でき、しかもはるかにシンプルである。
しかし、プルーフ・オブ・ワークのコンセンサスプロトコルにおいては、証人暗号化の利点がより顕著です。なぜなら、たとえ委員会が完全に悪意を持っていたとしても、現在のブロックチェーンの先頭にある複数の新しいブロックを秘密裏に採掘して最終確認ステータスを偽造することはできないからです。
暗号化メモリプールがMEVを防ぐ能力には、いくつかの実際的な課題があります。一般的に、情報の機密性はそれ自体が難しい問題です。Web3の分野では暗号化技術が広く利用されていないことは注目に値しますが、ネットワーク(TLS / HTTPSなど)やプライベート通信(PGPからSignalやWhatsAppなどの最新の暗号化メッセージングプラットフォームまで)に暗号化技術を導入してきた数十年にわたる経験から、暗号化の難しさが十分に明らかになりました。暗号化は機密性を保護するツールですが、絶対に保証できるものではありません。
まず、一部のエンティティがユーザートランザクションの平文情報を直接取得する可能性があります。典型的なシナリオでは、ユーザーは通常、トランザクションを自ら暗号化せず、ウォレットサービスプロバイダーに委託します。これにより、ウォレットプロバイダーはトランザクションの平文にアクセスでき、この情報を使用または販売してMEVを抽出できる可能性があります。暗号化の安全性は、鍵にアクセスできるエンティティの安全性に依存します。鍵の制御範囲がセキュリティの境界となります。
さらに、最大の問題はメタデータ、つまり暗号化されたペイロード(トランザクション)の周囲の暗号化されていないデータです。シーカーはこのメタデータを使用してトランザクションの意図を推測し、投機的なMEVを行うことができます。シーカーはトランザクションの内容を完全に理解する必要はなく、毎回正しく推測する必要もありません。たとえば、トランザクションが特定の分散型取引所(DEX)からの買い注文であると合理的な確率で判断できれば、攻撃を開始するのに十分です。
メタデータはいくつかのカテゴリに分けられます。1つは暗号化に固有の古典的な問題であり、もう1つは暗号化されたメモリプールに固有の問題です。
· トランザクションサイズ: 暗号化自体は平文のサイズを隠すことはできません(セマンティックセキュリティの正式な定義では、平文サイズの隠蔽が明示的に除外されていることは注目に値します)。これは、暗号化された通信における一般的な攻撃ベクトルです。典型的な例としては、暗号化後でも、盗聴者はビデオストリーム内の各データパケットのサイズから、Netflixで再生されているコンテンツをリアルタイムで判断できます。暗号化されたメモリプールでは、特定の種類のトランザクションが固有のサイズを持つ場合があり、それによって情報が漏洩する可能性があります。
· ブロードキャスト時間: 暗号化では時間情報を隠すこともできません(これも古典的な攻撃ベクトルです)。Web3シナリオでは、一部の送信者(構造化売却シナリオなど)が一定の間隔でトランザクションを開始する場合があります。取引時間は、外部取引所の動向やニュースイベントなど、他の情報と関連付けられる場合もあります。時間情報を利用するより巧妙な方法として、中央集権型取引所(CEX)と分散型取引所(DEX)間の裁定取引が挙げられます。ソーターは、できるだけ遅く作成された取引を挿入することで、最新のCEX価格情報を活用できます。同時に、ソーターは、特定の時点以降にブロードキャストされた他のすべての取引(暗号化されている場合も含む)を除外することで、自社の取引が最新の価格優位性を独占的に利用できるようにすることができます。
· 送信元 IP アドレス:検索者は、ピアツーピア ネットワークを監視し、送信元 IP アドレスを追跡することで、トランザクションの送信者の身元を推測できます。この問題は、ビットコインの初期(10 年以上前)から認識されていました。特定の送信者に一貫した行動パターンがある場合、これは検索者にとって貴重な情報となります。たとえば、送信者の身元がわかれば、暗号化されたトランザクションを復号化された過去のトランザクションにリンクできます。
· トランザクションの送信者と手数料/ガス情報:トランザクション手数料は、暗号メモリプールに固有のメタデータの一種です。Ethereum では、従来のトランザクションには、オンチェーンの送信者アドレス(手数料の支払いに使用)、最大ガス予算、送信者が支払ってもよい単位ガス料金が含まれています。ソース ネットワーク アドレスと同様に、送信者アドレスは複数のトランザクションを現実世界のエンティティにリンクするために使用できます。ガス予算はトランザクションの意図を示唆することができます。例えば、特定のDEXとのやり取りには、識別可能な固定量のガスが必要になる場合があります。
高度な検索ツールは、これらのメタデータタイプを複数組み合わせて、トランザクションの内容を予測する場合があります。
理論上は、これらの情報はすべて隠蔽可能ですが、パフォーマンスと複雑さが犠牲になります。例えば、トランザクションを標準の長さにパディングするとサイズは隠蔽できますが、帯域幅とオンチェーンスペースが浪費されます。送信前に遅延を追加すると時間は隠蔽できますが、レイテンシが増加します。Torなどの匿名ネットワークを介してトランザクションを送信するとIPアドレスは隠蔽できますが、新たな課題が生じます。
最も隠蔽が難しいメタデータは、トランザクション手数料情報です。手数料データを暗号化すると、ブロックビルダーに一連の問題が生じます。まず、スパムの問題があります。トランザクション手数料データが暗号化されると、誰でも不正な暗号化トランザクションをブロードキャストできます。これらのトランザクションはソートされますが、手数料を支払うことはできません。復号後は実行できなくなりますが、誰も責任を問われることはありません。これは、SNARK、つまりトランザクション形式が正しく資金が十分であることを証明することで解決できるかもしれませんが、オーバーヘッドが大幅に増加します。
2 つ目は、ブロック構築と手数料オークションの効率です。ビルダーは手数料情報に依存して利益を最大化するブロックを作成し、オンチェーン リソースの現在の市場価格を決定します。手数料データを暗号化すると、このプロセスが中断されます。1 つの解決策は、ブロックごとに固定手数料を設定することですが、これは経済的に非効率的であり、トランザクション バンドリングの二次市場を生み出す可能性があり、暗号化メモリ プールの本来の設計意図に反します。もう 1 つの解決策は、安全なマルチパーティ計算または信頼できるハードウェアを介して手数料オークションを実施することですが、どちらの方法も非常に高価です。
最後に、安全な暗号化メモリ プールは、さまざまな方法でシステム オーバーヘッドを増加させます。暗号化により、チェーンのレイテンシ、計算の複雑さ、帯域幅の消費が増加します。シャーディングや並列実行などの将来の重要な目標とどのように組み合わせるかは明確ではありません。また、活性に関する新たな障害点(閾値方式の復号化委員会や遅延関数ソルバーなど)も導入される可能性があり、同時に、設計と実装の複雑さが大幅に増大します。
暗号メモリプールの問題の多くは、トランザクションのプライバシーを確保するために設計されたブロックチェーン(ZcashやMoneroなど)が直面している課題と似ています。肯定的な意味合いがあるとすれば、MEVで暗号化によって軽減できるすべての課題を解決することで、トランザクションのプライバシーにも道が開かれることです。
最後に、暗号メモリプールは経済的な課題に直面しています。十分なエンジニアリング投資によって徐々に軽減できる技術的な課題とは異なり、これらの経済的課題は根本的な制限であり、解決が非常に困難です。
MEVの根本的な問題は、トランザクション作成者(ユーザー)とMEV機会マイナー(検索者とブロックビルダー)間の情報の非対称性に起因しています。ユーザーは一般的に、自分のトランザクションに抽出可能な価値がどれだけ含まれているかを把握していないため、たとえ完璧な暗号メモリプールが存在したとしても、実際のMEV値よりも低い報酬と引き換えに、復号鍵を公開するよう誘導される可能性があります。この現象は「インセンティブ付き復号」と呼ぶことができます。
このシナリオは想像に難くありません。なぜなら、MEV Shareのような類似のメカニズムが既に現実に存在するからです。MEV Shareは、ユーザーが選択的にトランザクション情報をプールに提出できるオーダーフローオークションのメカニズムで、検索者はトランザクションのMEV機会を利用する権利を得るために競争します。勝者がMEVを抽出した後、収益の一部(つまり、入札額またはその一定の割合)がユーザーに返還されます。
このモデルは暗号化メモリプールに直接適用できます。ユーザーは参加するために復号鍵(または情報の一部)を公開する必要があります。しかし、ほとんどのユーザーは、このようなメカニズムに参加することで発生する機会費用を認識していません。彼らは目先の利益しか見ておらず、喜んで情報を開示します。従来の金融にも同様の事例があります。例えば、手数料ゼロの取引プラットフォームであるRobinhoodは、「注文フロー決済」を通じてユーザーの注文フローを第三者に販売することで収益を得ています。
もう一つ考えられるシナリオは、大規模なビルダーが検閲を理由に、ユーザーにトランザクションの内容(または関連情報)の開示を強制することです。検閲耐性はWeb3空間において重要かつ議論の多いトピックですが、大規模なバリデータやビルダーがレビューリストを強制するための法的制約(OFAC規制など)の対象となる場合、暗号化されたトランザクションの処理を拒否する可能性があります。技術的には、ユーザーはゼロ知識証明によって暗号化されたトランザクションがレビュー要件を満たしていることを証明できる可能性がありますが、これは追加のコストと複雑さをもたらします。ブロックチェーンが高度な検閲耐性(暗号化されたトランザクションが含まれることを保証する)を備えていたとしても、ビルダーはブロックの先頭にある既知の平文トランザクションを優先し、末尾にある暗号化されたトランザクションを優先する可能性があります。したがって、実行の優先順位を保証する必要があるトランザクションは、最終的にはビルダーにその内容を開示することを強制される可能性があります。
暗号メモリプールは、いくつかの明らかな方法でシステムにオーバーヘッドを追加します。トランザクションはユーザーが暗号化する必要があり、システムは何らかの方法でそれを復号化する必要があるため、計算コストが増加し、トランザクションサイズも増加する可能性があります。前述のように、メタデータの処理はこれらのオーバーヘッドをさらに悪化させます。ただし、それほど明白ではない効率性コストもあります。金融では、価格が利用可能なすべての情報を反映している場合に市場は効率的であると考えられており、レイテンシと情報の非対称性は市場の非効率性につながります。これはまさに暗号メモリプールがもたらすものです。
これらの非効率性の直接的な結果の 1 つは、価格の不確実性の増加です。これは、暗号メモリプールによって導入される追加のレイテンシの直接的な結果です。その結果、価格スリッページ許容値の超過により失敗するトランザクションが増加し、オンチェーンスペースが浪費される可能性があります。
同様に、この価格不確実性は、オンチェーン裁定取引で利益を得ようとする投機的なMEV取引につながる可能性もあります。暗号メモリプールがこのような機会をより一般的にする可能性があることは注目に値します。現在の分散型取引所(DEX)の状態は、実行遅延のために不明瞭であり、市場の効率性が低下し、異なる取引プラットフォーム間で価格差が生じる可能性があります。このような投機的なMEVトランザクションは、裁定機会が見つからなくなると実行を終了する傾向があるため、ブロックスペースも浪費します。
この記事の本来の目的は、暗号メモリプールが直面する課題を整理し、人々が他のソリューションの研究開発に目を向けられるようにすることでした。しかし、暗号メモリプールは依然としてMEVガバナンスソリューションの一部となる可能性があります。
考えられるアイデアの一つは、ハイブリッド設計です。一部のトランザクションは暗号メモリプールを通じて「ブラインドソート」され、他のトランザクションは別のソートスキームを使用します。特定の種類のトランザクション(トランザクションを慎重に暗号化または約定する能力を持ち、MEVを回避するために高いコストを支払うことをいとわない大規模な市場参加者からの売買注文など)では、ハイブリッド設計が適切な選択肢となる可能性があります。この設計は、非常に機密性の高いトランザクション(脆弱性のあるセキュリティコントラクトの修復トランザクションなど)にも実用的です。
しかし、技術的な制限、エンジニアリングの複雑さ、パフォーマンスのオーバーヘッドにより、暗号化メモリプールは人々が期待する「MEVの普遍的なソリューション」にはなりそうにありません。コミュニティは、MEVオークション、アプリケーション層の防御メカニズム、最終確認時間の短縮など、他のソリューションを開発する必要があります。MEVは今後もしばらくの間、課題であり続けるでしょう。その悪影響に対処するために、様々なソリューションのバランスを見つけるための徹底的な研究が必要です。
BlockBeats の公式コミュニティに参加しよう:
Telegram 公式チャンネル:https://t.me/theblockbeats
Telegram 交流グループ:https://t.me/BlockBeats_App
Twitter 公式アカウント:https://twitter.com/BlockBeatsAsia