オリジナル記事:Pranav Garimidi、Joseph Bonneau、Lioba Heimbach、a16z
原文翻訳:Saoirse、Foresight News
ブロックチェーンでは、どのトランザクションをブロックに含めるか、どのトランザクションを除外するか、あるいはトランザクションの順序を調整することで収益を得ます。獲得できる最大の価値は「最大抽出可能価値」(MEV)と呼ばれます。MEVはほとんどのブロックチェーンで広く利用されており、業界では広く懸念され、議論の的となっています。
注:この記事は、読者がMEVの基礎知識を持っていることを前提としています。読者の中には、まずMEVに関する科学記事をお読みください。
多くの研究者がMEV現象を観察したとき、明確な疑問が浮かび上がりました。暗号化技術はこの問題を解決できるのでしょうか?一つの解決策は、暗号化メモリプールを使用することです。ユーザーは暗号化されたトランザクションをブロードキャストし、ソートが完了した後にのみ復号化されて公開されます。この方法では、コンセンサスプロトコルはトランザクションの順序を「盲目的に選択」する必要があり、ソート段階でMEVを利用して利益を得る機会を阻止するように見えます。
残念ながら、実用的にも理論的にも、暗号化メモリプールはMEV問題に対する普遍的な解決策を提供することはできません。この記事では、その問題点を説明し、暗号化メモリプール設計の実現可能性を探ります。
暗号化されたメモリプールの仕組み
暗号化されたメモリプールについては多くの提案がありますが、一般的なフレームワークは次のとおりです。
ユーザーは暗号化されたトランザクションをブロードキャストします。
暗号化されたトランザクションはチェーンに送信されます (一部の提案では、トランザクションは最初に検証可能なランダム シャッフルを受ける必要があります)。
これらのトランザクションを含むブロックが完成すると、トランザクションは復号化されます。
最後にこれらのトランザクションを実行します。
ステップ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つ目は、ブロック構築と手数料オークションの効率性です。ブロックビルダーは、利益を最大化するブロックを作成し、オンチェーンリソースの市場価格を決定するために手数料情報に依存しています。暗号化された手数料データは、このプロセスを阻害します。解決策の一つは、ブロックごとに固定手数料を設定することですが、これは経済的に非効率であり、トランザクションパッケージの二次市場を生み出す可能性があり、暗号化メモリプールの本来の設計に反します。もう一つの解決策は、安全なマルチパーティコンピューティングまたは信頼できるハードウェアを通じて手数料オークションを実施することですが、どちらの方法も非常にコストがかかります。
最後に、安全な暗号化メモリ プールは、さまざまな方法でシステムのオーバーヘッドを増加させます。暗号化により、チェーンの待ち時間、計算の複雑さ、帯域幅の消費量が増加します。シャーディングや並列実行などの将来の重要な目標とどのように組み合わせられるかはまだ明らかではありません。また、ライブネスに新しい障害ポイント (しきい値スキームの復号化委員会や遅延関数ソルバーなど) が導入される可能性もあります。同時に、設計と実装の複雑さも大幅に増加します。
暗号メモリプールが抱える問題の多くは、トランザクションのプライバシー確保を目的として設計されたブロックチェーン(ZcashやMoneroなど)が直面する課題と類似しています。もし肯定的な意味があるとすれば、MEVにおいて暗号化によって軽減されるすべての課題を解決することで、トランザクションのプライバシー確保への道も開かれるということです。
暗号メモリプールが直面する経済的課題
最後に、暗号メモリプールは経済的な課題に直面しています。十分なエンジニアリング投資によって時間の経過とともに軽減できる技術的な課題とは異なり、これらの経済的な課題は根本的な制約であり、解決が非常に困難です。
MEVの根本的な問題は、トランザクション作成者(ユーザー)とMEV機会採掘者(検索者およびブロック構築者)の間の情報非対称性に起因します。ユーザーは通常、自分のトランザクションに抽出可能な価値がどれだけ含まれているかを把握していないため、たとえ完璧な暗号化メモリプールが存在したとしても、実際のMEV価値よりも低い報酬と引き換えに、復号鍵を漏洩してしまう可能性があります。この現象は「インセンティブ復号」と呼ぶことができます。
このシナリオは想像に難くありません。なぜなら、MEV Shareのような類似の仕組みが既に現実に存在するからです。MEV Shareは、ユーザーが選択的に取引情報をプールに提出できるオーダーフローオークションの仕組みで、検索者は取引のMEV機会の利用権を得るために競争します。落札者がMEVを抽出した後、その収益の一部(つまり、入札額またはその一定の割合)がユーザーに還元されます。
このモデルは暗号化メモリプールに直接適用できます。ユーザーは参加するために復号鍵(または情報の一部)を公開する必要があります。しかし、ほとんどのユーザーはこのようなメカニズムに参加することの機会費用を認識していません。彼らは目先の利益しか見ておらず、喜んで情報を公開します。従来の金融にも同様の事例があります。例えば、手数料無料の取引プラットフォームであるRobinhoodは、「注文フロー決済」を通じてユーザーの注文フローを第三者に販売することで収益を得ています。
もう一つのシナリオとして、大規模ビルダーが検閲を理由にユーザーにトランザクションの内容(または関連情報)の開示を強制することが考えられます。Web3分野において耐検閲性は重要かつ議論の多いトピックですが、大規模バリデーターやビルダーがレビューリストの実装に関して法的制約(米国外国資産管理局(OFAC)の規制など)の対象となる場合、暗号化されたトランザクションの処理を拒否する可能性があります。技術的には、ユーザーはゼロ知識証明を通じて暗号化されたトランザクションがレビュー要件を満たしていることを証明できるかもしれませんが、これには追加のコストと複雑さが加わります。ブロックチェーンの耐検閲性が高く(暗号化されたトランザクションが必ず含まれるようにする)、ビルダーは既知の平文トランザクションをブロックの先頭に、暗号化されたトランザクションを末尾に配置する可能性があります。そのため、実行の優先順位を保証する必要があるトランザクションは、最終的にビルダーに内容を開示せざるを得なくなる可能性があります。
その他の効率化の課題
暗号メモリプールは、いくつかの明らかな方法でシステムにオーバーヘッドを追加します。トランザクションはユーザーが暗号化する必要があり、システムは何らかの方法でそれを復号する必要があるため、計算コストが増加し、トランザクションサイズも増加する可能性があります。前述のように、メタデータの処理はこれらのオーバーヘッドをさらに悪化させます。しかし、それほど明白ではない効率性コストも存在します。金融分野では、価格が利用可能なすべての情報を反映している場合、市場は効率的であると考えられており、レイテンシと情報の非対称性は非効率性につながります。まさにこれが暗号メモリプールがもたらすものです。
この非効率性の直接的な結果の一つは、価格の不確実性の増大です。これは、暗号メモリプールによって生じる追加のレイテンシの直接的な結果です。その結果、価格スリッページ許容値を超えることで失敗するトランザクションが増加し、オンチェーンスペースが浪費される可能性があります。
同様に、この価格不確実性は、オンチェーン裁定取引で利益を得ようとする投機的なMEV取引を生み出す可能性もあります。暗号資産メモリプールがこのような機会をより一般的にする可能性があることは注目に値します。現在の分散型取引所(DEX)の状態は、実行遅延によってより曖昧になり、市場の効率性の低下や異なる取引プラットフォーム間の価格差につながる可能性があります。このような投機的なMEV取引は、裁定取引の機会が見つからなくなると実行を終了する傾向があるため、ブロックスペースの無駄遣いにもなります。
要約する
この記事の本来の目的は、暗号化メモリプールが直面する課題を整理し、人々が他のソリューションの研究開発に目を向けられるようにすることですが、暗号化メモリプールは依然として MEV ガバナンス ソリューションの一部となる可能性があります。
考えられるアプローチの一つは、ハイブリッド設計です。一部のトランザクションは暗号化されたメモリプールを通じて「ブラインドソート」され、他のトランザクションは別のソート方式を使用します。特定の種類のトランザクション(例えば、トランザクションを慎重に暗号化または約定する能力を持ち、MEVを回避するために高いコストを支払う意思のある大規模な市場参加者からの売買注文など)では、ハイブリッド設計が適切な選択肢となる可能性があります。この設計は、非常に機密性の高いトランザクション(脆弱性のあるセキュリティ契約の修復トランザクションなど)にも実用的に有効です。
しかし、技術的な制約、エンジニアリングの複雑さ、そしてパフォーマンスのオーバーヘッドを考えると、暗号化メモリプールは人々が期待する「MEVの普遍的なソリューション」となる可能性は低いでしょう。コミュニティは、MEVオークション、アプリケーション層の防御メカニズム、最終確認時間の短縮など、他のソリューションを開発する必要があります。MEVは今後もしばらくの間、課題であり続けるでしょう。そして、その悪影響に対処するために、様々なソリューションのバランスを見つけるための徹底的な研究が必要です。