元のタイトル「TeleportDAO:データ検証の安全性と効率性 - 軽量ノードの最新設計実践」を転送します
注意:Eigen Labsは、RestakingプロトコルEigenLayerとEigenDAの開発元です。Eigen Labsは現在、a16z、Polychain、Blockchain Capitalなどの有名なベンチャーキャピタル機関から1億5000万ドル以上の資金を調達しています。
TeleportDAOはカナダのバンクーバーに位置しています。BitcoinおよびEVM公開チェーンに焦点を当てたクロスチェーンコミュニケーションインフラプロジェクトです。このプロトコルは、Coinlistを通じての一連の公開販売と資金調達で900万ドルを調達しました。この資金調達ラウンドには、Appworks、OIG Capital、DefinanceX、Oak Grove Ventures、Candaq Ventures、TON、Across、bitSmileyなど、複数の投資家が参加しました。
フルノードは、PoSブロックチェーンの完全性を維持する上で重要な役割を果たします。すべてのブロックトランザクション情報を保存し、コンセンサス署名を検証し、トランザクション履歴の完全なコピーを複製し、状態の更新を実行します。これらのプロセスには、多くのコンピューティングリソースと複雑なハードウェアが必要です。たとえば、完全なイーサリアムノードを実行するには、少なくとも2TBのSSDストレージが必要です。対照的に、ライトノードはコンピューティングリソースの要件を軽減し、ブロックヘッダーのみを保存するため、モバイルウォレットやクロスチェーンブリッジなど、特定のトランザクション/ステータスが検証されるシナリオにのみ適しています。さらに、ライトノードは、トランザクションを検証する際にブロック情報を提供するためにフルノードに依存していますが、現在のノードサービスプロバイダーの市場シェアは比較的集中しているため、セキュリティ、独立性、即時性を完全に保証することはできません。そこで、本稿では、ライトノードが最適なセキュリティを実現するためのデータ取得コストとレイテンシのトレードオフを探ります。
対照的に、PoSブロックチェーンは、スラッシングメカニズムによってセキュリティを獲得します。このシステムは、コンセンサス参加者が合理的であり、攻撃のコストが潜在的な利益を上回った場合にネットワークを攻撃しないことに依存しています。検証コストを削減するために、イーサリアムの現在のライトノードプロトコルは、ランダムに選ばれた512人のイーサリアムバリデーターで構成される同期委員会に依存しており、それぞれが32イーサリアムを賭けていますが、署名プロセスに罰金は科せられません。このスラッシュ不可能な設計には重大なセキュリティ上の欠陥があり、同期委員会に不正な署名があると、ライトノードが罰せられることなく無効なデータを受け入れるように誤解させる可能性があります。スラッシングメカニズムを導入しても、巨大なイーサリアムバリデータープール(2024年3月現在、イーサリアムバリデーターの数は100万人を超えている)と比べると、同期委員会の総出資額はまだ少ないです。したがって、このアプローチでは、ライトノードにイーサリアムバリデータセットと同等のセキュリティを提供することはできません。このモデルは、合理的な設定におけるマルチパーティ計算の特別なバリアントを表していますが、経済的根拠のある保証を提供したり、悪意のある不合理なデータプロバイダーによってもたらされる脅威に対処したりすることはできません。
セキュリティと効率の課題に対処するために、PoPoSは、PoSブートストラッププロセスにセグメンテーションゲームを導入し、PoSタイミングの敵対的なMerkleツリーに効果的に挑戦します。彼らは最小限のフットプリントを実現し、クライアントに常にオンラインでステークを必要としないようにしますが、クライアントがオフラインになってもネットワークに再参加するための費用がかかる問題は未解決のままです。
別の研究アプローチは、ゼロ知識証明を使用して簡潔な証明を作成することに焦点を当てています。たとえば、MinaとPlumoは、再帰的SNARK構成とSNARKベースの状態遷移証明を使用することで、軽量なコンセンサス検証を効果的に実現しています。しかし、これらのアプローチは、ブロック生成者に証明を生成するための相当な計算負荷を負わせ、潜在的な損失の補償を受けるためのライトノードの問題には対処していません。 Cosmosで使用されているTendermintプロトコルなど、他のPoSプロトコルの文脈では、ライトノードの役割が、彼らのInter-Blockchain Communication(IBC)プロトコルで探求されています。ただし、これらの実装はそれぞれのエコシステムに固有であり、Ethereumやさまざまな他のPoSブロックチェーンに直接適用することはできません。
ライトノードがデータをリクエストする具体的なプロセス:
ライトノードは、現在のネットワークから最新のデータプロバイダのリストを取得し、チャレンジ期間を決定します。異なるライトノード間では、このチャレンジ期間は独立していますが、チャレンジ期間の上限はすべてのライトノードに適用されます。チャレンジ期間は、検審ネットワークがデータの信頼性を確認するための最長時間であり、時間が長いほどトランザクションごとの遅延も長くなります。- リストを取得した後、軽量ノードは一群のデータプロバイダを選択し、それぞれのステーク資金が現在の取引値よりも大きいことを確認します。理論的には、ステーク資金が高いほど、データプロバイダの不正行為のコストが高くなり、軽量ノードの信頼コストが低くなります。- ライトノードは、対応するデータリクエストをこのデータプロバイダグループに送信します。これには、対応するブロック番号とターゲットステート(このトランザクションの含有証明)が含まれています。- データプロバイダーは、対応するブロックハッシュと取引のインクルージョンプルーフを送信し、署名を添付します。- ライトノードは、上記の資料を受信した後、それらを現在接続されている検察官ネットワークに転送します。チャレンジ期間が終了した後、データ信頼性警告を受信しない場合、ライトノードはこの署名を検証し、エラーがない場合はデータ信頼性テストに合格します。
ただし、検察官ネットワークから警告を受け取った場合、ライトノードは以前に受け取った署名を破棄する必要があります。検察官ネットワークは、スマートコントラクトのペナルティモジュールに関連する証拠を提出します。スマートコントラクトがデータをチェックした後、違反が実際に発生したことを見つけた場合、対応するデータプロバイダーのステークがペナルティを受けます。選択されたデータプロバイダーの一部またはすべてがペナルティを受けたため、ライトノードは現在のネットワークから新しいデータプロバイダーリストを取得して、スラッシングイベントが実際に発生したことを確認する必要があります。
その他のポイント:
フルノードは、スマートコントラクトへの「登録」および「引き出し」要求を開始することで、データプロバイダーネットワークに参加または離脱できます。データプロバイダーネットワークに参加するために登録するための最小ステーキングしきい値があります。フルノードが引き出しを開始することを選択すると、ネットワーク内のステータスはすぐに「離脱中」に変わり、ライトノードからのリクエストを受信できなくなり、迅速な出入りの潜在的な悪意のある動作を防ぐことができます。さらに、データプロバイダーネットワークは、現在アクティブなデータプロバイダーのリストを周期的に更新し、その間、データプロバイダーは引き出し資金を受け取ることができません。引き出し要求は、現在の更新サイクルの最後のブロックで有効になり、更新頻度はチャレンジ期間の制限よりも高くなり、すべてのライトノードデータ可用性テストが完了したことを確認します。データプロバイダーネットワークのアクティビティにより、ライトノードは、ネットワークが更新されるたびに、現在アクティブなプロバイダーのリストを再取得する必要があります。更新サイクルが延長された場合、ライトノードはより合理化された検証プロセスを享受できますが(前のサイクルの「登録」および「撤退」リクエストを通じて現在のアクティブリストを推定することにより)、離脱を希望するノードは待ち時間が長くなります。- データ署名を受け取ると、検察官ネットワークは、署名がデータプロバイダーに属しているかどうかをチェックし、データがコンセンサスネットワークで「最終的に確認」されたかどうかを評価します。データが妥当なチェーンに表示されない場合は、2 つの可能性があります。まず、データは現在のブロックチェーンによってまだ最終的に確認されておらず、チェーンが異なれば、最長チェーンの原則など、ファイナリティルールも異なります。第二に、トランザクションは別の合理的なチェーンのブロックにあります。上記のデータが改ざんされていることが判明した場合、検察官ネットワークは、データプロバイダーの公開鍵、データプロバイダーの署名、ブロック番号を含むスラッシングリクエストをスマートコントラクトに送信し、同時にスラッシュイベントの証明を送信してライトノードに思い出させます。このデータを受信すると、スマートコントラクトは、最終的に確認された現在のブロック番号が、コンセンサスレイヤーのファイナリティの原則に従って、受信したデータと一致しているかどうかを測定します。これらに一貫性がない場合は、スラッシング イベントがトリガーされます。さらに、ライトノードによって選択されたデータプロバイダーが、別のデータ要求グループのためにスラッシュされた場合、検察官ネットワークは、データプロバイダーのデータの信頼性が低いことをライトノードに通知するためにスラッシュイベントを速やかに送信し、ライトノードはリストを再取得し、他のプロバイダーを選択します。評価:
セキュリティ:ライトノードは、ステーキングモジュールおよび検察官ネットワークを通じて合理的および非合理的なデータプロバイダーの悪質な行動のコストを決定し、データの信頼性を向上させます。ただし、プロトコル全体がコンセンサスネットワークに基づいているため(この論文ではEthereumでテストされています)、コンセンサス層が攻撃されると、プロトコルも潜在的な信頼危機に直面する可能性があります。したがって、極端な状況でのシステムリスクを確保するために、さらに信頼性メカニズムを導入することができます。- フルノードレベルのセキュリティ:このスキームは、イーサリアムのPoS仮定と同等のセキュリティを提供することを目的としており、つまり、フルノードは偽の声明を行うためにスラッシングリスクを負わなければならない。- ネットワークアクティビティ:現在のネットワークには合理的なデータプロバイダがわずかしかいない場合、ライトノードは複数の遅延ラウンドに直面することになりますが、各データプロバイダのスループットがゼロでないため、すべてのリクエストは常に完了します。したがって、ネットワークに合理的なフルノードが1つあれば、ネットワークを継続して運用できます。同時に、データプロバイダの収入がステーキング額にリンクされているため、これはフルノードが必要以上にステーキングしてネットワークを保護することを奨励します。- 効率:記事の著者チームは、Ethereumのバリデータがデータプロバイダに参加する主要なユーザーであると予測しています。バリデータはすでにフルノードを実行しており、このプロトコルを通じて追加収入を得ることができます。小規模な取引は単一のデータプロバイダを通じて信頼性のあるデータを取得できます(ライトノードは1回のみ確認すればよい)、一方、大規模な取引は信頼性のあるデータを取得するために複数のデータプロバイダが必要となるかもしれません(プロバイダの数が増えるにつれて確認回数も線形に増加します)。## オプション2:最初に効率ソリューション2は、ソリューション1に基づいた保険メカニズムを提案することで、迅速なデータ確認を実現します。簡単に言えば、ライトノードがポリシー金額と期間に応じて保険を決定した後、データプロバイダの担保の一部またはすべてが、データ悪意によるライトノードの後続損失のために払い戻されることがあります。したがって、ライトノードはプロバイダによって提供されたデータ署名を受信し検証した後、データの初期信頼性を決定することができます。
ライトノードがデータをリクエストする具体的なプロセス:

その他のポイント:
データプロバイダーのステーキングされた保険トークンは、複数の保険金返済のリスクを防ぐために、異なるライトノードリクエスト間で互いに独立しています。ライトノードがデータプロバイダーを選択すると、スマートコントラクトは保険に誓約された対応するトークンをロックし、他のライトノードは保険期間が終了する前に誓約のこの部分を割り当てることができなくなります。取引が独立している場合、保険金額は最大取引金額と同じです。それ以外の場合、保険金額は合計取引金額と同じです。同じ誓約額の下で、ライトノードは通常、検証効率を確保するためにできるだけ少ないデータプロバイダーを選択します。- データプロバイダーは、保険期間終了前に「引き出し」リクエストを開始できますが、引き出し金額は保険期間終了後にのみ受け取ることができます。- 厳密に言えば、保険ポリシーの期間は、最終ブロック確認時間+総チャレンジ期間+通信遅延+計算/検証遅延よりも大きくする必要があります。データプロバイダーをより多く選択すると、総チャレンジ期間に基づいて保険ポリシーの期間が長くなります。評価:
スケーラビリティ:オプション2のスケーラビリティは、データ提供者が保険のために賭けるトークンの総額によって決定されます。- ポリシーコスト:より高いセキュリティレベルはチャレンジサイクルにリンクされているため、これはデータプロバイダがチャレンジサイクル以上の期間をステークしなければならないことを意味します。したがって、セキュリティ要件が高いほど、ステークサイクルが長くなり、軽ノードが支払う手数料も高くなります。式によると、データプロバイダのステークコストは、データプロバイダのノード収入/(年間を通じた平均ステーク利用率×年間の総ブロック数)によって計算されます。軽ノードが支払う必要がある価格は、ステークコストにポリシー期間とポリシーサイズを乗じたものです。

まず、軽量ノードの計算効率の点で、両方の軽量ノードソリューションはミリ秒単位の検証効率を示しています(軽量ノードはデータを一度だけ検証する必要があります)。
第二に、軽量ノードの遅延に関して、実験構成の異なるシナリオにおいて(下の図を参照)、遅延はミリ秒単位です。データ提供者の数とともに遅延が線形に増加することに注意する価値がありますが、遅延は常にミリ秒レベルです。また、ソリューション1では、軽量ノードがチャレンジ期間の結果を待つ必要があるため、遅延は5時間です。検査ネットワークが信頼性があり効率的であれば、この5時間の遅延も大幅に短縮される可能性があります。

第三に、軽ノードのコストに関して、実際には、軽ノードには2つのコストがあります: ガス料金と保険料金であり、どちらも保険ポリシー金額が増加すると増加します。さらに、検査官にとって、データを提出する際に関与するガスは、罰金額で返済され、十分な参加インセンティブが確保されます。
注意: 提案されたブロックは最終的に確定されるか、おじブロックになります。- コストと手数料:検察官ネットワークの場合、スマートコントラクトに証拠を提出するために一定量のトークン(ガスよりも大きい)をステークする必要があります。さらに、この部分の証拠のコストは、zkp方法を通じて削減することができます。また、保険メカニズムの下で、軽量ノードが提出する保険料はデータプロバイダーに支払われ、一方、検察官ネットワークは悪意のあるプロバイダーからの一部のペナルティ収入を抽出します。- データ可用性:データプロバイダーは基本的にフルノードです。合意層ネットワークに参加するだけでなく、データの可用性も検証できます。可用性を検証するための2つのスキームがあります:PullモデルとPushモデル。前者は、軽量ノードがフルノードから取得したデータをランダムに抽出することを指します。後者は、ブロック生産者が異なるブロックをデータプロバイダーに配布することを指します。Pullモデルを採用するデータプロバイダーは、サンプリング要求を返す責任があります。データを受け取った後、軽量ノードはそれを信頼できるノード/バリデータに転送し、ブロックを復元しようとします。失敗した場合、データプロバイダーに罰金が科されます。本文の軽量ノードプロトコルは、この基盤に保険メカニズムを提案し、データ可用性研究の新しい探索方向を提供しています。## 結論と評価本文で提案されているライトノードソリューションは、異なる状況でのセキュリティ要件を満たすために「プログラマブルセキュリティ」を提供しています。オプション1は高いセキュリティを求める代わりに遅延を招く取引を行いますが、オプション2は保険メカニズムを導入することでライトノード向けの「即時確認」サービスを提供します。これらのソリューションは、トランザクションの確定性を確認する必要があるシナリオで使用できます。原子トランザクションやクロスチェーンなど。





