BTC
ETH
HTX
SOL
BNB
View Market
简中
繁中
English
日本語
한국어
ภาษาไทย
Tiếng Việt

a16z: 分散型チェーン上での信頼できる設定セレモニーの実現可能性について詳細に議論する

Foresight News
特邀专栏作者
2022-09-08 08:00
この記事は約5469文字で、全文を読むには約8分かかります
暗号化プロジェクト分散チェーン信頼設定式の詳しい技術説明
AI要約
展開
暗号化プロジェクト分散チェーン信頼設定式の詳しい技術説明

オリジナル編集: Amber、Foresight News

オリジナル編集: Amber、Foresight News

Trusted Setup Ceremony は常に暗号通貨コミュニティに挑戦してきましたが、間違いなく暗号通貨コミュニティを最も興奮させる部分です。この式典の目標は、暗号ウォレット、ブロックチェーン プロトコル、またはゼロ知識証明システムを保護するために使用できる信頼性の高い暗号キーを生成することです。これらの手順はプロジェクトのセキュリティの信頼の根幹であるため、完璧な運用を保証し、信頼できるセットアップ儀式を実行することが重要です。

現在、ブロックチェーンプロジェクトの信頼できる設定式典には、トーチ、放射性粉塵、飛行機などを含むがこれらに限定されないさまざまな形式があり、これらの形式には共通点が 1 つあります。それは、それらはすべて中央の調整に依存しているということです。デバイス。この記事では、集中型コーディネーターをスマート コントラクトに置き換えることによってプロセスを分散化する方法を示し、同時に誰でもイーサリアム上で実行できるようにするライブラリをオープンソースします。KZG) または「powers-of-tau」儀式。

私たちの分散型アプローチには制限がありますが、それでも役に立ちます。現在のオンチェーン データ制限により、暗号化パラメータのサイズは 64 KB 以下でなければなりません。ただし、参加者数に上限はなく、いつでも誰でも参加できます。これらの短いパラメーターのアプリケーションには、小規模なゼロ知識 SNARK、データ可用性サンプリング、Verkle ツリーなどが含まれます。

信頼できるセットアップ儀式の歴史とメカニズム

一般的な信頼できるセットアップの儀式では、参加者のグループが協力して一連の暗号パラメータを生成します。各当事者は、ローカルで生成された暗号化情報を使用して、これらのパラメーターの作成に役立つデータを生成します。適切な設定により、暗号化された情報は漏洩せず、暗号化された情報は契約に従ってのみ使用され、これらの暗号化された情報は式典の終了時に完全に破棄されます。式典の少なくとも 1 つの当事者が正直で、暗号化されたメッセージを (式典後に) 破棄する限り、プロセス全体は安全であると考えることができます。 (もちろん、コードにエラーがないことが前提です)

最も著名な式典のいくつかは、プライバシー指向のブロックチェーン プロジェクトである Zcash によって開始されました。これらの式典の参加者は、Zcash ユーザーがプライベートな暗号化トランザクションを構築および検証できるように設計されたパブリック パラメーターを生成します。 2016 年には 6 人の参加者が最初の Zcash セレモニー Sprout を主催しました。 2年後、現在アステカ社の主任研究員となっている暗号化研究者のアリエル・ガビゾン氏は、基礎研究論文から引き継いだ儀式の設計に壊滅的な誤りがあることを発見した。この脆弱性により、攻撃者は検出されることなく無限の Zcash コインを作成できる可能性があります。 Zcash チームは、90 人の参加者が参加したシステム アップグレード「Sapling」で問題が解決されるまで、7 か月間このバグを秘密にしてきました。セキュリティ侵害に基づく攻撃はユーザー トランザクションのプライバシーに影響を与えませんが、無限に偽造される可能性があるため、Zcash のセキュリティ前提が損なわれます。 (理論的には、攻撃が発生したかどうかを知ることは不可能です。)

信頼できるセットアップのもう 1 つの注目すべき例は、主にイーサリアム上の匿名シグナリングに使用されるプライバシー保護技術であるセマフォ用に設計された永続的な「タウパワーオブタウ」式です。このセットアップでは BN254 楕円曲線が使用されており、これまでに 71 名が参加しています。その後、Tornado.Cash、Hermez ネットワーク、Loopring など、他の著名なプロジェクトがこのセットアップを使用して独自のセレモニーを実行しました。 Aztec は、ゼロナレッジ ロールアップを使用する「レイヤー 2」イーサリアム スケーリング ソリューションである zkSync の 176 名の参加者とともに、BLS12_381 楕円曲線に関して同様の式典を開催しました。分散型データ ストレージ プロトコルである Filecoin は、フェーズ 1 とフェーズ 2 にそれぞれ 19 名と 33 名の参加者による式典で元のリポジトリをフォークしました。レイヤー 1 ブロックチェーンである Celo も、軽量クライアントである Plumo のセレモニーを主催しました。

常設式典には参加者数に制限がありません。言い換えれば、信頼できるセットアップセレモニーの実行を他人に任せるのではなく、誰でも任意のレベルのセキュリティで参加できます。信頼できるアクターは、すべての結果パラメーターのセキュリティを保証し、チェーンはその最も強力なリンクと同じくらい強力です。名前が示すように、恒久的な儀式は、本来のタウの力の儀式の前提と同様に、永遠に実行することができます。そうは言っても、プロジェクトは多くの場合、セレモニーの特定の開始時刻と終了時刻を決定するため、生成されたパラメーターを常に更新することを気にせずにプロトコルに埋め込むことができます。

イーサリアムは、今後の ProtoDankSharding と DankSharding のアップグレードに向けて、小規模な信頼できるセットアップ セレモニーを実行する予定です。これら 2 つのアップグレードにより、イーサリアム チェーンがストレージとしてクライアントに提供するデータの量が増加します。このデータの有効期間は、推奨 30 ~ 60 日間です。この式典は現在鋭意開発中であり、来年初めに約 6 週間にわたって開催される予定です。 (詳細については、kzg-ceremony-specs を参照してください) そして、これはこれまでで最大のブロックチェーンの信頼できるセットアップセレモニーになりつつあります。

パラノイアは、特に信頼できるセットアップの儀式に関しては「美徳」です。マシンのハードウェアまたはソフトウェアが侵害されると、マシンが生成するシークレットのセキュリティが侵害される可能性があります。秘密を漏らす卑劣なサイドチャネル攻撃も排除するのは困難です。たとえば、携帯電話は、CPU の振動する音波を記録することでコンピュータの動作を監視できます。実際には、未発見または公開されていないものを含め、考えられるすべてのサイドチャネル攻撃を排除することは非常に難しいため、マシンを宇宙に飛ばしてそこで儀式を行うことさえ提案されています。

現在、厳格な儀式の参加者向けの台本は通常次のとおりです。新しいマシン (汚れのないハードウェア) を購入します。すべてのネットワーク カードを取り外してリスクを分離します (ローカル シークレットの漏洩を防ぐため)。ファラデーケージ内の遠隔の非公開の場所でマシンを実行します(覗き見者を阻止するため)。ビデオ ファイルのランダム入力やシードなど、擬似ランダム暗号化メッセージ ジェネレーターに大量のエントロピー データとハードコピー データを設定します (暗号化メッセージの解読を困難にするため)。最後に、暗号化された情報とその痕跡は、すべてを焼き払って灰にすることで破壊されます。

Trusted Setupセレモニーの調整

信頼できるセットアップ セレモニーはすべて、集中型コーディネーターに依存しています。コーディネーターは、参加者の登録と順序付けを任された個人、プライベート サーバー、またはその他のエンティティであり、前の参加者から次の参加者に情報を転送することで中継者として機能し、監査目的ですべての通信の集中ログを保持します。コーディネーターは通常、ログを永続的に一般に提供する責任もありますが、このような集中型システムは管理不足や人的以外の要因により情報が失われる傾向があることを認めなければなりません。

皮肉なことに、分散化が暗号通貨理念の中核的な信条である場合、暗号プロジェクトは一元化された信頼できるセットアップ手順に依存する必要があります。そこで私たちは、永続的なタウのパワーのための小規模な式典をイーサリアムブロックチェーン上で直接開催する実現可能性を実証することにしました。このセットアップは完全に分散化されており、許可がなく、検閲に耐性があり、参加者の 1 人が正直である限り安全です。現在の価格では、希望する結果パラメータのサイズ (この場合は 8 ~ 1024 タウ) に応じて、式典への参加にかかる費用はわずか 7 ~ 400 ドルです。

現時点では、実験目的以外の目的でコードを使用しないことをお勧めします。コードに問題を見つけた方がいらっしゃいましたら、私たちに報告していただければ幸いです。私たちのアプローチに関するフィードバックやレビューを収集したいと考えています。

KZG または「タウの力」儀式について学ぶ

KZG (「タウのパワー」儀式) として知られる、最も人気のある信頼できるセットアップの 1 つを見てみましょう。 Ethereum の共同創設者 Vitalik Buterin に感謝します。信頼できるセットアップに関する彼のブログ投稿は、このセクションの考え方に影響を与えました。この設定は、タウの累乗エンコーディングを生成します。この名前は、「タウ」が参加者が生成したシークレットを表すために使用される変数であるためです。

一部のアプリケーション (例: Groth16、2016 年に Jens Groth によって考案された人気の zkSNARK 証明スキーム) では、セットアップの第 1 フェーズの後に、特定の SNARK 回路のパラメーターを生成するための第 2 フェーズであるマルチパーティ計算 (MPC) セレモニーが続きます。 。ただし、私たちの仕事は最初の段階にのみ焦点を当てています。第 1 段階であるタウの生成力は、PLONK や SONIC などの汎用 SNARK だけでなく、KZG コミットメント、Verkle ツリー、データ可用性サンプリングなどの他の暗号アプリケーションの基本的な構成要素としてすでに使用できます。 (DAS)。一般に、汎用の SNARK パラメータは、大規模で有用な回路をサポートできるように非常に大きくする必要があります。一般に、より多くのゲートを含む回路は、大規模な計算を実行できるため、より有用です。タウの累乗数は、回路内のゲート数にほぼ対応します。したがって、一般的なセットアップ サイズは |pp|= ~40 GB で、28 ガスの ~2 回路をサポートできます。このような大きなパラメータをオンチェーンに置くことは、イーサリアムの現在の制約を考慮すると実現不可能ですが、小規模な SNARK 回路、Verkle ツリー、または DAS に役立つ小規模な信頼できるセットアップ セレモニーはオンチェーンで実行できます。

イーサリアム財団は、サイズが 200 KB から 1.5 MB の範囲のタウ累乗について、いくつかの小規模な式典を実行する予定です。より大きなパラメータがより有用な SNARK 回路を作成できることを考慮すると、セレモニーは大規模な方が良く見えるかもしれませんが、実際には、大きいほど必ずしも良いとは限りません。特定のアプリケーション (DAS など) では、特に小さいアプリケーションが必要です。 [理由は非常に専門的ですが、興味がある方のために説明すると、(G の) 乗の設定では、次数 ≤ n の多項式に対する KZG コミットメントのみが許可されるためです。これは、KZG コミットメントに基づく多項式が確実に実行できるようにするために不可欠です。この評価では、再構成が重要です。このプロパティは、データ可用性サンプリングをサポートします。多項式のランダム評価が正常に取得 (サンプリング) されるたびに、多項式が確率 t/n で完全に再構築できることが保証されます。 DAS についてさらに詳しく知りたい場合は、Ethereum Research Forum での Buterin によるこの投稿をご覧ください。

私たちは、信頼できるセットアップセレモニーを実行するためにイーサリアムブロックチェーンにデプロイできるスマートコントラクトを設計しました。このコントラクトは公開パラメータを完全にオンチェーンに保存し、トランザクションを通じてユーザーから参加を集めます。

新しい参加者は、まず次のパラメータを読みます。

次に、ランダム キー τ' をサンプリングし、更新されたパラメーターを計算します。

そしてそれらをチェーン上で公開し、次の 3 つの証拠を添付してください。

  • 離散対数の知識: 参加者は τ' を知っています。 (信頼できるセットアップセレモニーへの最新の貢献が、これまでの参加者全員の取り組みの上に成り立っていることの証明。

  • pp は整形式です1。これらの要素は増分累乗をエンコードします。 (式典への新規参加者の貢献が良好な形で行われていることが確認されました。

  • 更新は消去されません: τ' ≠ 0。 (すべての参加者の過去の作業を削除してシステムを侵害しようとする攻撃者に対する防御。

スマート コントラクトは証明を検証し、それが正しければ、保存されている公開パラメータを更新します。数学とその背後にある推論の詳細については、リポジトリで見つけることができます。

ガス料金の計算

オンチェーンでセットアップを実行する際の主な課題は、信頼できるセットアップ儀式を可能な限り効率的に行うことです。理想的には、寄付を送信するための料金は 50 ドルを超えてはなりません。 (大規模なプロジェクトでは、貢献者にガソリンを補助できる場合があります。その場合、数百人の参加者がそれぞれ 100 ドルを費やすことは容易に想像できます)。以下に、セットアップの最も高価な部分について詳しく説明します。ガスコストが低いほど貢献コストが削減され、より長いパラメータ (より多くのタウパワーとより大きな SNARK 回路) を構築できるようになります。

私たちのセットアップは、イーサリアム上の次のプリコンパイル済みコントラクトをサポートする楕円曲線 BN254 (BN256、BN128、および alt_bn128 とも呼ばれる) で動作します。

ECADD では、2 つの楕円曲線点を追加できます。つまり、[α]1 と [β]1 から [α+β]1 を計算します。ガスコスト 150

ECMULT を使用すると、楕円曲線の点にスカラーを乗算できます。つまり、a と [α]1 から [a*α]1 を計算します: ガスコスト 6,000

ECPAIR を使用すると、楕円曲線のペアの積をチェックできます。つまり、e([α1]1, [β1]2) * ... *e([α1]1, [β1]2) = 1 を計算できます。これは、α1* をチェックするのと同等です。 β1+ . .. + αk*βk= 0 : ガスコスト 34,000 * k + 45,000

イーサリアムが BLS12_381 (EIP-2537 で提案されているように) を有効にできる場合、セットアップ コントラクトは他のカーブにも簡単に使用できます。

設定を次のように更新すると推定してみましょう

証明を検証するためのガソリン代。前述したように、各参加者は設定を更新し、3 つのコンポーネントを含むプルーフを送信します。証明の構成要素 1 と 3、「個別のログの知識」と「更新は消去できない」は、非常に安価に検証できます。課題は、コンポーネント 2、「pp"1" の良好な形成性」がオンチェーンであることを検証することです。これには、大規模なマルチスカラー乗算 (MSM) と 2 つのペアリングが必要です。

ここで、ρ0,...,𝝆n-1 は擬似ランダムにサンプリングされたスカラーです。事前にコンパイルされたスマート コントラクトに関しては、次のものが必要です。

データを保存するためのガス代。各参加者は、オンチェーンの更新も通話データ (バイトあたり 68 ガス) として保存し、n * 64 * 68 ガスに相当します。 (楕円曲線暗号に詳しい人向けの注意点: n = 256 の測定結果から、圧縮ポイントを保存すると、解凍が全体のコストの大半を占めることになります。

ガス代の目安は以下の通りです。

もちろん、ガスコストを削減するためのソリューションをまだ模索中です。

オープンソース ライブラリ: evm-powers-of-tau

EVM ベースの powers-of-tau リチュアルを github.com/a16z/evm-powers-of-tau でオープンソース化しました。私たちの戦略を使用すると、儀式はシンプルかつ透明になります。

  • ストレージおよび検証契約の展開 (Contracts/KZG.sol)

  • 参加者は以前のトランザクション呼び出しデータからセレモニーパラメータを読み取ります

  • 参加者はローカルでキーを生成し、更新されたパラメータを計算します

  • 貢献者は証明を生成します: pi1、pi2

  • コントリビューターは、KZG.potUpdate() を介して、パブリック ブロックチェーンにデプロイされたスマート コントラクトに更新されたパラメーターを送信します。

  • スマート コントラクトは更新の有効性を検証し、不正な形式のコミットの場合は元に戻します。

  • 複数の参加者がステップ 2 ~ 5 を継続することができ、それぞれのステップで式典の安全性が向上します。

  • 開発者が提出物の量と質に自信がある場合は、ブロックチェーンに現在のパラメータをクエリし、それらの値を暗号化キーとして使用できます。

私たちのリポジトリでは arkworks-rs を使用してステップ 2 と 3 を計算します (Rust の計算は src/pot_update.rs にあります) が、ユーザーは独自の計算を作成することもできます。更新申請のエンドツーエンドのフロー全体は、tests/integration_test.rs の統合テストで確認できます。

更新されたタウの累乗パラメータをオンチェーンに保存するために calldata を使用することを選択したことに注意してください。これは、保存するよりも桁違いに安価であるためです。このデータに対する ethers-rs ベースのクエリは src/query.rs にあります。

最後に、証明と詳細な方程式は、techreport/main.pdf の技術レポートにあります。

今後の作業計画

この信頼できるセットアップ セレモニーを実稼働環境で使用する前に、まず数学的証明と実装例を徹底的にレビューすることをお勧めします。

実装すると、更新セレモニーのトランザクション コストは、設定されたサイズに応じて直線的に増加します。ほとんどのアプリケーション (SNARK、DAS) では、n >= 256 に設定する必要がありますが、現在、更新ごとに 73 ドルかかります。

計算の STARK 証明を効率的に更新し、更新された値にベクトルをコミットすることで、検証コストのサブリニアな増加を達成できる可能性があります。この構造により、イーサリアム L1 BN254 プリコンパイルへの依存も削除され、より一般的な BLS12-381 曲線を使用できるようになります。

元のリンク

元のリンク

a16z
Odaily公式コミュニティへの参加を歓迎します
購読グループ
https://t.me/Odaily_News
チャットグループ
https://t.me/Odaily_CryptoPunk
公式アカウント
https://twitter.com/OdailyChina
チャットグループ
https://t.me/Odaily_CryptoPunk
検索
記事目次
Odailyプラネットデイリーアプリをダウンロード
一部の人々にまずWeb3.0を理解させよう
IOS
Android