Helios の構築: Ethereum PlatoBlockchain Data Intelligence への完全にトラストレスなアクセス。垂直検索。あい。

Helios の構築: イーサリアムへの完全にトラストレスなアクセス

ブロックチェーンを使用する主な理由の XNUMX つは、トラストレス性です。 このプロパティは、私たちの富とデータへの自己主権アクセスを可能にすることを約束します. ほとんどの場合、イーサリアムのようなブロックチェーンはこの約束を果たしました — 私たちの資産は本当に私たちのものです. 

ただし、便宜上、いくつかの譲歩を行っています。 そのような分野の XNUMX つが、集中型 RPC (リモート プロシージャ コール) サーバーの使用です。 ユーザーは通常、Alchemy などの集中プロバイダーを通じて Ethereum にアクセスします。 これらの企業は、他の企業がチェーン データに簡単にアクセスできるように、クラウド サーバー上で高性能ノードを実行しています。 ウォレットがトークンの残高を照会したり、保留中のトランザクションがブロックに含まれているかどうかを確認したりする場合、ほとんどの場合、これらの集中化されたプロバイダーの XNUMX つを通じて行われます。 

既存のシステムの問題点は、ユーザーがプロバイダーを信頼する必要があり、クエリの正確性を検証する方法がないことです。

入力します Heliosは、イーサリアムへの完全なトラストレス アクセスを提供する、私たちが開発した Rust ベースのイーサリアム ライト クライアントです。 Helios — イーサリアムの軽量クライアント プロトコルを使用し、 最近の切り替え 〜へ 賭けの証明 — 信頼されていない集中型 RPC プロバイダーからのデータを、検証可能な安全なローカル RPC に変換します。 Helios は集中型 RPC と連携して、完全なノードを実行しなくてもその信頼性を検証できるようにします。 

移植性と分散化の間のトレードオフは一般的な問題点ですが、私たちのクライアント (構築などのために一般に公開したもの) は約 XNUMX 秒で同期し、ストレージを必要とせず、ユーザーが安全なチェーン データにアクセスできるようにします。任意のデバイス (携帯電話やブラウザー拡張機能を含む)。 しかし、何ですか 集中化されたインフラストラクチャに依存することの潜在的な落とし穴? この投稿では、それらがどのように展開されるかについて説明し、設計上の決定を順を追って説明し、他の人が コードベース.

集中型インフラストラクチャの落とし穴: イーサリアムの「暗い森」の理論上の生き物

(理論上の) クリーチャーが潜んでいます。 暗い森. これは Ethereum mempool で獲物を探すのではなく、私たちが依存するようになった集中型インフラストラクチャを模倣してトラップを設定します。 この罠に陥ったユーザーは、間違いを犯すことはありません。お気に入りの分散型取引所にアクセスし、妥当なスリッページ許容度を設定し、いつものようにトークンを売買します...彼らはすべてを正しく行いますが、それでも新しい種類のサンドウィッチ攻撃は、Ethereum の暗い森の入り口である RPC プロバイダーに細心の注意を払って設定されたトラップです。

詳しく説明する前に、分散型取引所で取引がどのように機能するかを見てみましょう。 ユーザーがスワップ トランザクションを送信すると、スマート コントラクトにいくつかのパラメーターが提供されます。これには、スワップするトークン、スワップ金額、そして最も重要なこととして、トランザクションが完了するためにユーザーが受け取る必要があるトークンの最小数が含まれます。 この最後のパラメーターは、スワップが「最小出力」または復帰を満たす必要があることを指定します。 これは、トランザクションが mempool に送信されてからブロックに含まれるまでの間に発生する可能性のある最大の価格変動を効果的に設定するため、「スリッページ許容度」として知られています。 このパラメーターの設定が低すぎる場合、ユーザーはより少ないトークンを受け取る可能性を受け入れます。 この状況は、攻撃者が XNUMX つの悪意のあるスワップの間に入札を効果的にサンドイッチするサンドイッチ攻撃にもつながる可能性があります。 スワップはスポット価格を押し上げ、ユーザーの取引を不利な価格で実行させます。 その後、攻撃者はすぐに売却して少額の利益を獲得します。

この最小出力パラメーターが公正な値に近い値に設定されている限り、サンドイッチ攻撃から安全です。 しかし、RPC プロバイダーが分散型取引所のスマート コントラクトから正確な価格見積もりを提供しない場合はどうなるでしょうか? その後、ユーザーはだまされて、より低い最小出力パラメーターでスワップ トランザクションに署名させられ、さらに悪いことに、トランザクションが悪意のある RPC プロバイダーに直接送信される可能性があります。 数十のボットがサンドイッチ攻撃を実行するために競合するパブリック mempool にこのトランザクションをブロードキャストする代わりに、プロバイダーはそれを差し控え、攻撃トランザクション バンドルを Flashbots に直接送信して、自分自身の利益を確保できます。

この攻撃の根本的な原因は、誰かがブロックチェーンの状態を取得することを信頼していることです。 経験豊富なユーザーは伝統的に、独自の Ethereum ノードを実行することでこの問題を解決してきました。これは、少なくとも、常にオンラインのマシン、数百ギガバイトのストレージ、および最初から同期するのに約 XNUMX 日を必要とする、時間とリソースを大量に消費する作業です。 このプロセスは確かに以前よりも簡単です。 のようなグループ ARM 上のイーサリアム 低コストのハードウェア (外付けハード ドライブを接続した Raspberry Pi など) でノードを実行できるようにするために、たゆまぬ努力を重ねてきました。 しかし、これらの比較的最小限の要件があっても、ほとんどのユーザー、特にモバイル デバイスを使用しているユーザーにとって、ノードを実行することは依然として困難です。

集中型 RPC プロバイダーへの攻撃は、完全にもっともらしいものですが、一般的には 単純なフィッシング攻撃 —そして、私たちが説明したことはまだ起こっていません。 Alchemy のような大規模なプロバイダーの実績から、それらを疑う理由はほとんどありませんが、なじみのない RPC プロバイダーをウォレットに追加する前に、さらに調査する価値があります。

Helios の紹介: イーサリアムへの完全にトラストレスなアクセス

軽いクライアント プロトコル (最近のプルーフ オブ ステークへの切り替えによって可能になった) を導入することで、イーサリアムは、最小限のハードウェア要件でブロックチェーンとすばやくやり取りし、RPC エンドポイントを検証するためのエキサイティングな新しい可能性を開きました。 それからの月に マージ、ライトクライアントの新しいクロップが互いに独立して出現するのを見てきました(ロードスター, ニンバス、および JavaScript ベースの ケブラー素材)は、同じ目標のためにさまざまなアプローチを採用しています。つまり、フルノードを使用せずに、効率的でトラストレスなアクセスを実現しています。

私たちのソリューションである Helios は、約 XNUMX 秒で同期し、ストレージを必要とせず、Ethereum への完全にトラストレスなアクセスを提供する Ethereum ライト クライアントです。 すべての Ethereum クライアントと同様に、Helios は実行レイヤーとコンセンサス レイヤーで構成されています。 他のほとんどのクライアントとは異なり、Helios は両方のレイヤーを緊密に結合しているため、ユーザーは単一のソフトウェアをインストールして実行するだけで済みます。 (えりごん アーカイブノードに直接構築されたコンセンサスレイヤーライトクライアントを追加することにより、この方向にも進んでいます)。 

それで、それはどのように機能しますか? Helios コンセンサス レイヤーは、既知のビーコン チェーン ブロックハッシュと信頼されていない RPC への接続を使用して、現在のブロックに検証可能に同期します。 Helios 実行層は、これらの認証されたビーコン チェーン ブロックを、信頼されていない実行層 RPC と連携して使用して、口座残高、コントラクト ストレージ、トランザクションの領収書、スマート コントラクトの呼び出し結果など、チェーンの状態に関する任意の情報を証明します。 これらのコンポーネントは連携して、完全なノードを実行する必要なく、完全にトラストレスな RPC をユーザーに提供します。

…コンセンサス層で

コンセンサス レイヤー ライト クライアントは、ビーコン チェーン ライト クライアントに準拠します。 仕様、ビーコン チェーンの同期委員会 (Altair のハード フォークでマージの前に導入された) を利用します。 同期委員会は、ランダムに選択された 512 のバリデーターのサブセットであり、約 27 時間にわたってサービスを提供します。 

バリデーターが同期委員会に参加している場合、彼らは目にするすべてのビーコン チェーン ブロック ヘッダーに署名します。 委員会の XNUMX 分の XNUMX 以上が特定のブロック ヘッダーに署名する場合、そのブロックが正規のビーコン チェーンにある可能性が非常に高くなります。 Helios が現在の同期委員会の構成を知っている場合、信頼されていない RPC に最新の同期委員会の署名を求めることで、自信を持ってチェーンの先頭を追跡できます。 

BLSのおかげで 署名 新しいヘッダーを検証するために必要なチェックは XNUMX つだけです。 署名が有効で、委員会の XNUMX 分の XNUMX 以上によって署名されている場合、ブロックがチェーンに含まれていたと想定しても安全です (もちろん、チェーンから再編成することはできますが、ブロックのファイナリティを追跡することで、より厳しい保証)。

ただし、この戦略には明らかに欠けている部分があります。それは、現在の同期委員会を見つける方法です。 これは、信頼のルートを取得することから始まります。 弱い主観のチェックポイント. 名前に怖がらせないでください。これは、過去のある時点でチェーンに含まれていたことを保証できる古いブロックハッシュを意味するだけです。 チェックポイントの正確な経過時間の背後には、いくつかの興味深い計算があります。 最悪の場合の分析では約 XNUMX 週間が示唆されていますが、より実際的な見積もりでは数か月が示唆されています。 

チェックポイントが古すぎる場合は、 理論攻撃 ノードをだまして間違ったチェーンをたどらせることができます。 弱い主観チェックポイントの取得は、プロトコルの帯域外です。 Helios を使用した私たちのアプローチは、コードベースにハードコーディングされた初期チェックポイントを提供します (これは簡単にオーバーライドできます)。 次に、ノードが同期されるたびに、最新のファイナライズされたブロックハッシュをローカルに保存して、将来のチェックポイントとして使用します。 

便利なことに、ビーコン チェーン ブロックをハッシュして、一意のビーコン ブロックハッシュを生成できます。 これは、ノードに完全なビーコン ブロックを要求し、それをハッシュして既知のブロックハッシュと比較することで、ブロックの内容が有効であることを証明するのが簡単であることを意味します。 Helios はこのプロパティを使用して、現在の同期委員会と次の同期委員会という XNUMX つの非常に重要なフィールドを含む、弱い主観チェックポイント ブロック内の特定のフィールドを取得して証明します。 重要なことに、このメカニズムにより、ライト クライアントはブロックチェーンの履歴を早送りできます。

弱い主観チェックポイントができたので、現在および次の同期委員会を取得して検証できます。 現在のチェーン ヘッドがチェックポイントと同じ同期委員会期間内にある場合、署名された同期委員会ヘッダーを使用して新しいブロックの検証をすぐに開始します。 チェックポイントがいくつかの同期委員会の背後にある場合、次のことができます。

  1. チェックポイントの後に次の同期委員会を使用して、将来 XNUMX つの同期委員会から発信されたブロックを取得して検証します。
  2. この新しいブロックを使用して、新しい次の同期委員会をフェッチします。
  3. それでも遅れる場合は、ステップ 1 に戻ります。

このプロセスを繰り返すたびに、チェーンの履歴を 27 時間早送りし、過去のブロックハッシュから開始して、現在のブロックハッシュに同期することができます。

…実行層で

実行レイヤー ライト クライアントの目的は、コンセンサス レイヤーによって検証されたビーコン ブロック ヘッダーを取得し、信頼されていない実行レイヤー RPC と共に使用して、検証済みの実行レイヤー データを提供することです。 このデータは、Helios によってローカルにホストされている RPC サーバー経由でアクセスできます。

アカウントの残高を取得する簡単な例を次に示します。まず、イーサリアムに状態がどのように保存されるかについての簡単な入門書から始めます。 各アカウントには、コントラクト コード ハッシュ、ナンス、ストレージ ハッシュ、残高などのいくつかのフィールドが含まれています。 これらのアカウントは、変更された大規模な マークル・パトリシアの木 ステート ツリーと呼ばれます。 状態ツリーのルートがわかれば、検証できます マークル証明 ツリー内の任意のアカウントの存在 (または除外) を証明します。 これらの証明は事実上偽造が不可能です。

Helios には、コンセンサス レイヤーからの認証済み状態ルートがあります。 このルートを使用して & 信頼されていない実行レイヤー RPC へのマークル証明リクエストを送信すると、Helios は Ethereum に保存されているすべてのデータをローカルで検証できます。

さまざまな手法を適用して、実行レイヤーで使用されるあらゆる種類のデータを検証します。 これらを一緒に使用すると、信頼できない RPC から取得したすべてのデータを認証できます。 信頼されていない RPC はデータへのアクセスを拒否する可能性がありますが、誤った結果を提供することはできなくなりました。

自然界でヘリオスを使う

移植性と分散化の間のトレードオフは共通の問題点ですが、Helios は非常に軽量であるため、ユーザーは任意のデバイス (携帯電話やブラウザー拡張機能を含む) から安全なチェーン データにアクセスできます。 Helios をどこでも実行できるため、ハードウェアに関係なく、より多くの人々がトラストレスな Ethereum データにアクセスできるようになります。 これは、ユーザーが Helios を MetaMask の RPC プロバイダーとして使用し、他の変更を加えることなく dapps にトラストレスにアクセスできることを意味します。 

さらに、WebAssembly に対する Rust のサポートにより、アプリ開発者は Helios を Javascript アプリケーション (ウォレットや dapps など) 内に簡単に埋め込むことができます。 これらの統合により、イーサリアムはより安全になり、集中型インフラストラクチャを信頼する必要性が減ります。

コミュニティが何を発表するのか楽しみです。 しかし、それまでの間、Helios に貢献する方法はたくさんあります。コードベースに貢献することに関心がない場合は、Helios を統合してその利点を活用するソフトウェアを構築することもできます。 これらは私たちがワクワクするアイデアのほんの一部です:

  • RPC 経由ではなく、P2P ネットワークから直接ライト クライアント データをフェッチするサポート
  • 不足している RPC メソッドのいくつかを実装する
  • WebAssembly にコンパイルされるバージョンの Helios をビルドする
  • Helios をウォレット ソフトウェアに直接統合する
  • WebAssembly を使用して Web サイトに埋め込まれた Helios からデータをフェッチするトークン残高を表示する Web ダッシュボードを構築する
  • エンジン API を実装して、Helios のコンセンサス レイヤーを既存の実行レイヤー フル ノードに接続できるようにします。

コードベースを確認する はじめに - バグ レポート、機能のリクエスト、コードを歓迎します。 さらに何かを構築する場合は、私たちと共有してください Twitter, Telegram、またはFarcaster @a16zcrypto。

***
ここに示されている見解は、引用された個々の AH Capital Management, LLC (「a16z」) の見解であり、a16z またはその関連会社の見解ではありません。 ここに含まれる特定の情報は、a16z が管理するファンドのポートフォリオ企業を含む第三者の情報源から入手したものです。 a16z は、信頼できると思われる情報源から取得したものですが、そのような情報を独自に検証しておらず、情報の現在または永続的な正確性、または特定の状況に対するその適切性について表明するものではありません。 さらに、このコンテンツにはサードパーティの広告が含まれる場合があります。 a16z はそのような広告を確認しておらず、そこに含まれる広告コンテンツを推奨していません。

このコンテンツは情報提供のみを目的として提供されており、法律、ビジネス、投資、または税務に関するアドバイスとして信頼されるべきではありません。 これらの問題については、ご自身のアドバイザーにご相談ください。 証券またはデジタル資産への言及は、説明のみを目的としたものであり、投資の推奨または投資顧問サービスの提供を構成するものではありません。 さらに、このコンテンツは、投資家または将来の投資家による使用を目的としたものではなく、a16zが管理するファンドへの投資を決定する際にいかなる状況においても信頼されない場合があります。 (a16zファンドへの投資の申し出は、私募覚書、サブスクリプション契約、およびそのようなファンドの他の関連文書によってのみ行われ、その全体を読む必要があります。)言及、参照、または記載されているのは、a16zが管理する車両へのすべての投資を代表するものではなく、投資が有益である、または将来行われる他の投資が同様の特性または結果をもたらすという保証はありません。 アンドリーセンホロウィッツが管理するファンドが行った投資のリスト(発行者がa16zに公開を許可していない投資、および公開されているデジタル資産への未発表の投資を除く)は、https://a16z.com/investmentsで入手できます。 /。

内部で提供されているチャートとグラフは、情報提供のみを目的としており、投資決定を行う際に依存すべきではありません。 過去のパフォーマンスは、将来の結果を示すものではありません。 内容は、示された日付の時点でのみ話します。 これらの資料に記載されている予測、見積もり、予測、目標、見通し、および/または意見は、予告なしに変更される可能性があり、他の人が表明した意見とは異なるか、または反対である可能性があります。 その他の重要な情報については、https://a16z.com/disclosures を参照してください。

タイムスタンプ:

より多くの アンドレッセン・ホロウィッツ