Bridge Nodesの役割とは?
H avatar
対応者:H
一週間前以上前にアップデートされました

ブリッジは、SGXアプリケーションと、「Bridge Nodes」と呼ばれるサードパーティのインデクサーとベリファイアのセットという2つの主要な部分に分けることができます。Bridge Nodesは、AvalancheとEthereumのブロックチェーンにインデックスを付け、適切なトランザクションを処理のためにエンクレーブに提出する役割を担っています。Bridge Nodesはまず、サポートされているERC20(サポートされているERC20)がEthereumウォレットに送信され、BridgeのAvalancheトークン(Bridgeトークンの例)上のアンラップ機能への呼び出しに成功したトランザクションを探します。これらのトランザクションが適切と見なされるためには、ガス料金の支払いのためにオペレーターが一部を保持できるよう、十分なトークンを移動させる必要があります。Bridgeを移動する資産のUSD値が、ガス料金のUSD値に小さなバッファ(発売時は5ドルに設定されているが、設定可能)を加えた値よりも小さい場合、そのトランザクションはBridge Nodesによってインデックス化されません。ブリッジのフロントエンドは、ユーザーが不適切なトランザクションを送信するのを防ぐために、これらの要件をリアルタイムで計算しています。

SGXアプリケーションは、他のネットワーク上でブリッジ転送を処理するために署名されたトランザクションを生成する前に、8つのBridge Nodeのうち6つが同じトランザクションを送信する必要があります。各Bridge Nodeは、そのシークレットシェアの提供と適格なトランザクションの送信の両方で、安全なSGXエンクレーブと直接通信します。(詳細は以下のセクション)。

セキュリティ上の理由から、エンクレーブもBridge Nodeもユーザーが直接アクセスすることはできません。その代わり、直接通信するために互いのIPアドレスを明示的にホワイトリスト化します。さらに、エンクレーブとBridge Node間のすべての通信は、TLSを使用して暗号化・検証され、HMAC署名されます。ブリッジ・ユーザーベースへの情報中継のために、各Bridge Nodeは現在のブリッジ設定、アセット要件、認証レポートを含むJSONファイルをホストします。フロントエンドは、4つのBridge Nodeから報告された重要な情報(Ethereumウォレットアドレス、サポートされるトークン情報など)に不一致がある場合、それ自体を無効にするように設定されています。

インテル SGX アプリケーション

インテル® SGX アプリケーションは、エンクレーブ内で実行されるトラステッド・コードベースと、外部で実行される非トラステッド・コードベースから構成されます。非トラステッド・コードは、エンクレーブの初期化と起動、およびリモート認証サーバーの実行を担当します。リモート認証とは、第三者が遠隔地のエンティティが信頼できることを証明し、そのエンティティとの認証された通信路を確立するプロセスです。認証の一環として、エンクレーブはその身元、ソースコードが改ざんされていないこと、本物のSGX対応プラットフォームで動作していること、最新のセキュリティアップデートが適用されていることを証明します。ブリッジアーキテクチャでは、各Bridge Node が起動時に認証を実行し、そのレポートをパブリックJSONファイルにポストします。

エンクレーブはBridge Nodeと直接通信し、オンチェーンイベントについて学び、署名されたトランザクションを送信します。署名されたトランザクションには、ERC20をラップするためのAvalanche C-Chain上のスマートコントラクトの作成、Avalanche上の資産のミント、Ethereum EVM上の資産を指定されたアドレスに解放することが含まれます。

EthereumとAvalanche C-Chainの両方でエンクレーブが使用するアドレスのすべての秘密鍵は、エンクレーブ内の最初の起動時に生成される単一のマスターシークレットから導き出されます。ブリッジの運営者は、いかなる時点でもこの秘密にアクセスすることはできません。エンクレーブ内では、秘密はシャミアの秘密分散法を使って共有分割され、8つのBridge Nodeの集合体に配布されます。共有プロセスは、エンクレーブがTLSを使って各Bridge Nodeの身元を確認することから始まります。エンクレーブが起動するたび、あるいはBridge Nodeが自分のシェアに対する要求を受け取るたび、各Bridge Nodeはエンクレーブでリモート認証を行い、その状態を確認して共有セッションキーを確立します。エンクレーブはこの共有キー(各Bridge Nodeに固有)を使って、各シェアを個別に暗号化してからBridge Nodeに送ります。

再起動時に、エンクレーブはTLS接続を介してBridge Nodeに共有を要求します。マスターシークレットを再計算するためには8つのうち6つを必要とします。認証後、Bridge Nodeはリモート認証時に生成された共有セッションキーを 使用して共有シークレットを暗号化し、返します。ブリッジは閾値の共有シークレットからマスターシークレットを再構築し、マスターシークレットを使用してEthereumアドレス(資金の保持に使用)とAvalancheアドレス(スマートコントラクトの展開と新しい資産の鋳造に使用)の秘密鍵を再導出します。

Bridge Node

Bridge Nodeインスタンスは、ETHとAvalancheのトランザクションをインデックスし、Bridgeと通信するために使用されるGolangサーバー、AvalancheGoノード、Ethereum Gethノードの3つの主要コンポーネントから構成されています。Bridge Nodeの役割は以下のように分類されます。

  1. 共有シークレットの保存:各Bridge Nodeは、エンクレーブが最初に初期化された時、エンクレーブから1つの共有シークレットを取得します。これらの共有の設定閾値は、エンクレーブの「マスターシークレット」を再生成するのに十分となっています。エンクレーブが再起動することがあれば、エンクレーブはBridge Nodeに問い合わせて共有シークレットを取得し、マスターシークレットの値を再計算します。エンクレーブが使用するすべての鍵は、マスターシークレットから決定論的に導出されます。

  2. 対応ブロックチェーンのインデックス作成 :エンクレーブは、各ブロックチェーンネットワークの特定のアドレスに送信されたトランザクションをBridge Nodeに問い合わせる必要があります。GethノードはこのAPIをサポートするために必要なデータベースインデックスを持ちません。その代わり、各Bridge NodeはブロックごとにGethとAvalancheGoノードにクエリを発行し、トランザクションを反復することで自身のデータベースにこのインデックスを構築します。

  3. トランザクションを処理し、どのブリッジリクエストが処理されたかを追跡する:Bridge Nodeは、エンクレーブで処理されたトランザクションのラッピングとアンラッピングを追跡する責任を負います。エンクレーブが適切なトランザクションに関するBridge Nodeのコンセンサスを受信すると、2段階のコミットプロセスを開始します。最初のコミットでは、暗号化された署名付きトランザクションを各Bridge Nodeに送信し、バックアップとしてそのデータベースに保存します。このトランザクションはエンクレーブでのみ復号化でき、プロセスの途中で停止した場合のバックアップとして機能します。エンクレーブは、暗号化されたトランザクションが正常に保存されたことを確認すると、次に暗号化されていないトランザクションを処理のために各Bridge Nodeに送信します。署名されたトランザクションを受信すると、Bridge NodeはそのトランザクションをAvalancheまたはEthereumノードにブロードキャストします。トランザクションが承認されるか、トランザクションのノンスがすでに含まれていることが通知されると、Bridge Nodeはトランザクションが正常に処理されたことをマークします。

  4. 公開情報をホストする:手数料、最低送金額、どのERC20がサポートされているかなどの情報は、エンクレーブで設定・管理されます。エンクレーブは一般にはアクセスできないため、その情報をパブリックにホストするのはBridge Nodeに任されています。さらに、Bridge Nodeは一般ユーザー向けの認証レポートをホストする責任を負っています。各Bridge Nodeはこの情報を一般にアクセス可能なS3ファイルに投稿し、独立した検証のために使用することができます。

  5. エンクレーブコードベースの検証: リモート認証により、各Bridge Nodeはエンクレーブのバイナリーコードのハッシュを検証することができます。Bridge Nodeはコードベース全体にアクセスすることができ、コードの変更ごとにこのハッシュをチェックすることができます。エンクレーブのコードが更新されるたびに、Bridge Nodeのパートナーは新しいハッシュを明示的に承認し、Bridge Nodeサーバー上のローカル設定ファイルに追加する必要があります。

AEBの終了予定

以前お知らせしたように、AEBリレーヤーは8月9日の週にブリッジを終了し、新しいAvalanche Bridgeを使用することになります。終了のプロセスでは、AEBブリッジはシャットダウンされます。AEBブリッジを介した資産の移動は永久に不可能になります。ブリッジがシャットダウンされ、保留中のトランザクションが確定したら、AEBリレーヤが集まって、Ethereum側のすべてのERC20をAvalanche Bridgeウォレットに転送します。AEBブリッジは、AEBコントラクトアドレスからの転送を無視するように設定されているため、それに応じて資金がミントされることはありません。転送が終了すると、新しいエンクレーブビルドがプッシュされ、ブリッジトークンコントラクトのスワップが可能になります。この時点で、Bridgeフロントエンドはトークンのスワップを可能にし、トークン変換のチュートリアルのセットがリリースされる予定です。

The Avalanche Bridge makes use of Intel SGX to create a quick, secure, and low-cost bridge between the Avalanche and Ethereum Networks. It consists of a secure SGX enclave and a collection of trusted partners running Bridge Nodes. The design enables the Bridge to reduce the on-chain requirements to a single action (smart contract call or ERC20 transfer) without sacrificing security. As a result, the Avalanche Bridge provides one of the cheapest, fastest and easiest-to-use cross-chain transfer processes available today.

Avalanche Bridgeの仕組みについて、より詳しく知りたい方は、以下の記事をご覧ください。


その他のご質問は、ナレッジベースをご覧いただくか、support.avax.networkのチャットボタンからサポートチームメンバーまでお問い合わせください。

こちらの回答で解決しましたか?