著者: クドゥクレスト
出典: ethresear.ch
Shutterized Beacon Chain を使用すると、トランザクションの内容が誰かに見られる前に、トランザクションを選択的に暗号化し、チェーンに組み込むことができます。これにより、検閲への耐性が大幅に向上し、悪意のある MEV が減少します。この記事では、この概念について詳しく紹介します。
まとめ
- MEV は重要な問題ですが、L1 ビーコン チェーンで直接解決できます。
- Shutter はソリューションを提供します。ノードのグループが DKG プロトコルを使用して暗号化キーを計算し、ユーザーがそのプロトコルを使用してトランザクションを暗号化し、暗号化されたトランザクション チェーン上で復号キーを解放できるようにします。
- DKG プロトコルを実行するバリデータ セットを使用し、暗号化されたトランザクションのスケジューリング メカニズムを導入することにより、この技術をイーサリアムと同様のビーコン チェーンに適用できます。
質問
Miner Extractable Value (MEV) とフロントランニングは、ブロックチェーン空間における最後の未解決の基本的な問題であると広く考えられています。現在、MEV には数億ドルが記録されており、そのほとんどはユーザーやトレーダーにとって利益よりも害をもたらします。時間が経つにつれて、この問題は必然的にさらに破壊的になり、最終的には私たちのコミュニティが主流になることを妨げる致命的な障害にさえなる可能性があります。
MEV という用語は、ブロックプロデューサーがトランザクションの選択、挿入、順序付け、レビューによって得られる利点を表すために Phil Daian らによって造られました。 2020 年だけで抽出された MEV の価値は 3 億 1,400 万米ドルを超えていますが、これは下限にすぎません。通常、MEV はブロック プロデューサー自体によってキャプチャされるのではなく、高度なボットを使用する独立したエンティティによってキャプチャされます。
MEV の重要なサブセットは、いわゆるフロントランニングからの収益です。これは、従来の市場では違法ですが、暗号通貨分野では規制されていない攻撃です。フロントランナーは価値のあるトランザクションがないかネットワークを監視し、ターゲットを特定すると、それをチェーンに早期に組み込むために独自のトランザクションを送信します。彼らは、より高いガス価格を支払ったり、世界中に広がるネットワークインフラを運営したり、自らブロック生産者になったり、リバースチャネルを通じて支払いをしたりすることで、フロントランニング取引を実現しています。
フロントランニング攻撃の最も一般的な被害者は、分散型取引所のトレーダーです。フロントランニングは、市場に提供する情報に対して正当な報酬を得る代わりに、より高い価格を支払うことを強います。一方、フロントランナーは、システムに何の有益な貢献もせずに、ほぼリスクのない方法で被害者から利益を吸い上げます。簡単な例は、2 つの異なる取引所で同じ資産の価格の差を得る裁定取引です。先頭を走っているトレーダーは、他の市場参加者のこれらの取引をコピーしてより早く実行することで報酬を得ることがよくありますが、元のトレーダーは手ぶらで帰ってきます。
取引所以外にも、報奨金の分配やオークションなど、他の多くのアプリケーションも影響を受けます。重要なのは、それらはガバナンス システム (イーサリアムの大規模かつ急速に成長している領域を表す) での投票に依存しているため、前線の攻撃に対してより脆弱であるということです。このような種類の攻撃から保護するシステムが導入されていないと、重大な問題が発生する可能性があります。
従来の金融では、さまざまな信頼できる仲介者や運営者の規制や監督によって、フロントランニングを(ある程度まで)抑制することができます。これは、許可のない分散型システムには当てはまらないため、主流の暗号通貨採用に対する戦略的障壁となる可能性があります。
必要とする
私たちは、ビーコン チェーンは追加のオーバーヘッドやユーザー エクスペリエンスの変更を伴うことなく、ユーザーに MEV 保護を提供する必要があると考えています。また、この保護には、追加のセキュリティ保証を伴うべきではなく、追加のセキュリティの前提が失敗した場合には、少なくとも標準の非 MEV 保護機能にフォールバックする必要があります。最終的には、コンセンサスプロトコルと同様のレベルの分散化が必要になります。
シャッター
Shutter を使用すると、ユーザーは、暗い森を進む先駆者からユーザーを保護する方法で、暗号化されたトランザクションを送信できます (すべてのトランザクションは、最有力候補の狩場を通過する必要があります)。たとえば、トレーダーは Shutter を使用して、フロントランニングトレーダーに対して注文を不透明にすることができます。これは、攻撃者がそれが買い注文であるか売り注文であるか、どのトークンがどの価格で交換されているかを確信できないことを意味します。システムは、トランザクションがダーク フォレストを出た後、つまりトランザクションの実行環境が決定された後にのみ、トランザクションを復号化して実行します。
暗号化と復号化のためのキーは、キーパーと呼ばれる特別なノードのセットによって提供されます。通常、キーホルダーは分散キー生成 (DKG) プロトコルを実行して暗号化キーを生成します。次に、対応する復号キーを発行します。このプロトコルは、しきい値暗号化を使用します。これは、鍵所有者のグループが、少なくとも一定数のメンバーが協力した場合にのみ開けることができる暗号化ロックを提供できるようにする技術です。これにより、当事者も少数の共謀するキー使用者も、事前に何かを復号したり、プロトコルを破ってトランザクションの実行を阻止したりすることができなくなります。一定数の Keyper (「しきい値」) がルールに違反しない限り、プロトコルは正常に実行できます。
コアプロトコル内のL1シャッター
私たちは、個々のスマート コントラクトを L1 コマンド攻撃から保護するメカニズムであるオンチェーン シャッターを開発しましたが、これにはコンポーザビリティが損なわれるという欠点があります。ロールアップ内に直接シャッターを展開することをさらに検討しています。ここでは、シャッター システムをイーサリアム スタイルのビーコン チェーンの一部として統合するための設計について説明します。この利点は、ユーザーが完全に関与せず、構成可能なままであることです。
すべてのシャッター システムと同様に、このプロトコルには一連のキーパーが必要です。キーパーグループは、同様のプロセスを通じて、ブロックチェーンバリデーターの中から委員会またはブロックプロデューサーを選択しますが、選択頻度が大幅に低くなる点が異なります(たとえば、1 日に 1 回)。 Keyper はビーコン チェーンを使用して共有鍵を生成します。 eon 公開キーは、トランザクションを暗号化するためにユーザーに提供されます。
ブロックプロデューサーは、ブロックの暗号化されたトランザクションと平文のトランザクションを収集します。これらには、ブロック内で実行される平文トランザクションが含まれていますが、暗号化トランザクションは将来のブロックの高さでスケジュールされます。
ブロックが生成された後、Keyper はそのブロックに対して計画されたトランザクションを復号化するための復号化キーを生成する必要があります。後続のブロックが有効であるとみなされるには、復号化キーが含まれている必要があります。ブロックの事後状態は、最初にブロックにスケジュールされた暗号化トランザクションを実行し、次にブロックに含まれる平文トランザクションを実行することによって計算されます。
実行順序とコンテキスト (ブロック番号、タイムスタンプなど) は、暗号文トランザクションが含まれる順序と前のブロックのコンテキストによって決まります。トランザクションが復号化される前に実行のコンテキストが決定されるため、トランザクション データに関する情報を使用して MEV を抽出することはできません。また、楽観的なフロントラン取引に使用される可能性のあるサイドチャネル情報も防ぎます。
暗号化取引手数料
ブロック作成者は、暗号化されたトランザクションがブロックに含める価値があることを何らかの方法で保証する必要があります。つまり、トランザクション データを知らなくてもトランザクション手数料を支払うことができます。実行時に料金が支払われる場合、アカウントの組み込みと実行の間の残高が枯渇する可能性があるため、ブロックプロデューサーには支払いが保証されません。
したがって、暗号化されたトランザクションは、チェーンに含まれるときに料金を支払う署名付きの封筒を提供することによって、そのトランザクションが含まれることを正当化します。封筒の内容には、ガス消費量、ガス価格、支払者の住所を回復するためのこれらのフィールドへの署名が含まれます。この料金は、暗号文トランザクションが含まれるとき、つまり実行時ではなく、ブロック生成者に支払われます。暗号文トランザクションのガス消費量は、暗号文トランザクションが含まれるブロックのガス制限に含まれます。
従来のガスキャップはガス消費量に応じて交換する必要があります。つまり、トランザクションが復号化されて適用されるまでに一部しか使用しなかったとしても、ユーザーは使用予定のすべてのガスに対して請求されることになります。これは、トランザクションがチェーンに含まれる場合に手数料を支払うために必要です。これにより、ブロックプロデューサーが、非常に高いガス制限を持つトランザクション (他のトランザクションとその手数料を置き換える) を、非常に少ないガス (および手数料) を使用するトランザクションに復号するのを防ぎます。
エンベロープトランザクションを使用することのもう 1 つの欠点は、トランザクションのメタデータが漏洩することです。つまり、支払者とガス価格/消費量の上限が知られてしまうことです。おそらく、この漏洩情報を使用して MEV のごく一部を抽出できる可能性があります。
この料金支払いの問題を解決し、メタデータ情報の漏洩を防ぐために、zk-SNARKのアプローチが想定される可能性があることが指摘されました。
ASD
鍵ユーザーによって生成される公開鍵と復号化鍵には、t/n 人の正直な参加者のしきい値が必要です。パラメータ t と n は、プロトコルに合わせて調整できます。 t が高くなるほど、キーパーが共謀してトランザクションを時期尚早に解読することが難しくなります (MEV 抽出が可能になります)。一方、t を低くすると、復号キーが時間内に解放されることが保証されます。
暗号文トランザクションの復号化と適用を強制するには、すべてのブロックに復号化キーを含めることを強制する必要があります。このような場合、Kepers がオフラインになるか、復号キーの生成を拒否すると、ブロックの生成が停止します。
実行予定の暗号化トランザクションがない場合、復号キーなしでブロックを生成できるようにすることで、Keyper のアクティビティを軽減できます。 Keyper がオフラインになった場合、暗号化されたトランザクションを含むブロックを分割し、平文トランザクションを含むブロックのみを生成することでチェーンが回復します。
また、n スロットの間にブロックが生成されない場合 (復号化キーがないため)、次のブロックには復号化キーが含まれる必要がなく、復号化されたトランザクションは無視されることを示すことで、活発さを復元することもできます。これは、チェーンの従来の非 MEV 保護機能にフォールバックします。
デプロイされた変更
私たちは Keyper ソフトウェアとすべての暗号化/復号化ロジックを開発しました。また、ブロック プロデューサー (またはオーダーラー/シーケンサー) が暗号化されたトランザクションのバッチにコミットして、復号化キーを安全に解放できることを Keyper に通知するロジックも開発しました。
ここで行う必要があるのは、クライアント展開におけるブロックの正確性を定義するルールと、トランザクション実行のルールを変更することだけです。クライアントにトランザクションを送信するためのインターフェイスを再定義する必要があります。最後に、公開キーで暗号化されたトランザクションを必要とする MEV で保護されたチェーンと dapp をシームレスに統合できるようにするツールとプラグインを作成する必要がある場合があります。