オンチェーンの信頼できるセットアップ式 PlatoBlockchain Data Intelligence。 垂直検索。 あい。

オンチェーンのトラステッド セットアップ セレモニー

信頼されたセットアップセレモニーは、暗号コミュニティの苦痛の XNUMX つであり、興奮でもあります。 セレモニーの目的は、暗号ウォレット、ブロックチェーン プロトコル、またはゼロ知識証明システムを保護するための信頼できる暗号化キーを生成することです。 これらの (時には派手な) 手順は、多くの場合、特定のプロジェクトのセキュリティの信頼の根幹であるため、正しく行うことが非常に重要です。

ブロックチェーン プロジェクトでは、トーチ、放射性粉塵、飛行機など、さまざまなクリエイティブな方法で式典が行われますが、すべてに共通するものがあります。 この作業では、集中型コーディネーターをスマート コントラクトに置き換えることで、プロセスを分散化する方法を示します。 さらに、誰でもそのようなセレモニーを実行できるようにするライブラリをオープンソース化しています。 ケイト・ザヴェルチャ・ゴールドバーグ (KZG) または「powers-of-tau」セレモニー – イーサリアムチェーン上。 手数料さえ払えば誰でも参加可能!

私たちの分散型アプローチには限界がありますが、それでも有用です。 現在のオンチェーン データの制約により、暗号化パラメーターのサイズは短く、つまり 64 KB を超えないようにする必要があります。 ただし、参加者の数に上限はなく、人々は永続的に投稿を続けることができます。 これらの短いパラメーターのアプリケーションには、小さなゼロ知識 SNARK が含まれます。 データ可用性サンプリング, バークルツリー.

トラステッド セットアップ セレモニーの歴史と仕組み

典型的なトラステッド セットアップ セレモニーでは、参加者のグループが協力して一連の暗号化パラメーターを生成します。 各参加者は、ローカルで生成された秘密情報を使用して、これらのパラメーターの作成に役立つデータを生成します。 適切なセットアップにより、秘密が漏洩しないこと、秘密がプロトコルで指定されたとおりにのみ使用されること、およびこれらの秘密がセレモニーの最後に完全に破棄されることが保証されます。 セレモニーの少なくとも XNUMX つの当事者が誠実に行動し、妥協せず、ローカル シークレットを破棄する限り、セットアップ全体は安全であると見なすことができます。 (もちろん、これは計算が正しく、コードにバグがないことを前提としています。)

最も顕著な儀式のいくつかは、 ジーキャッシュが運営、プライバシー指向のブロックチェーン プロジェクト。 これらのセレモニーの参加者は、Zcash ユーザーがプライベート暗号トランザクションを構築および検証できるように設計された公開パラメーターを生成しました。 2016 年に XNUMX 人の参加者が最初の Zcash セレモニー Sprout を実施しました。 アステカ族、見つかった 壊滅的なバグ から受け継いだセレモニーのデザインで 基礎研究論文. この脆弱性により、攻撃者は検出されずに無制限の Zcash コインを作成できた可能性があります。 Zcash チームは、90 人の参加者が出席した Sapling のシステム アップグレードが行われるまで、XNUMX か月間脆弱性を秘密にしていました。 セキュリティ ホールに基づく攻撃は、ユーザーのトランザクションのプライバシーに影響を与えることはありませんでしたが、無限の偽造の可能性が Zcash のセキュリティ前提を弱体化させました。 (攻撃が行われたかどうかを知ることは理論的に不可能です。)

信頼できるセットアップのもう XNUMX つの注目すべき例は、 恒久的な「タウの力」セレモニー 主にのために設計された セマフォ、イーサリアム上の匿名シグナリングのプライバシー保護技術。 このセットアップでは BN254 楕円曲線が使用され、これまでに 71 人の参加者がありました。 他の著名なプロジェクトは、後にこのセットアップを使用して、独自の式典を上で実行しました。 トルネードキャッシュ (最近、米国政府によって認可された)、 ヘルメス ネットワーク、および ループリング. アステカ族 ゼロ知識ロールアップを使用する「レイヤー12」のイーサリアムスケーリングソリューションであるzkSyncのために、381人の参加者でBLS176_XNUMX楕円曲線で同様のセレモニーを行いました。 Filecoin分散型データ ストレージ プロトコルである . 熱意レイヤー1ブロックチェーンである も、ライトクライアントPlumoのセレモニーを行いました。

恒久的なセレモニーには、参加者の数に制限はありません。 言い換えれば、他の人々が信頼できるセットアップセレモニーを実行することを信頼する代わりに、誰でも満足できる程度のセキュリティで参加できます. 単一の信頼できる参加者によって、結果として得られるすべてのパラメーターのセキュリティが確保されます。 チェーンは最強のリンクと同じくらい強力です。 パーペチュアル セレモニーは、その名前が示すように、元のパワーズ オブ タウ セレモニーの前提であったように、永続的に実行される場合があります。 とは言うものの、プロジェクトは多くの場合、セレモニーの具体的な開始時間と終了時間を決定します。これにより、結果のパラメーターをプロトコルに埋め込むことができ、継続的に更新することを心配する必要がなくなります。

イーサリアムは、今後の小規模な信頼できるセットアップセレモニーを実行する予定です ProtoDankシャーディング & ダンクシャーディング アップグレード。 これら XNUMX つのアップグレードにより、イーサリアム チェーンがストレージ用にクライアントに提供するデータの量が増加します。 このデータには、提案された有効期限があります 30~60日. 儀式は 活発な開発中計画されました 来年初めにXNUMX週間実行します。 (見る kzg-セレモニー-スペック 詳細については。)これは、これまでに実行されたブロックチェーンの信頼できるセットアップセレモニーとしては最大のものになりつつあります。

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

今のところ、真剣なセレモニー参加者向けのプレイブックは通常、次のようになります。 新しいマシンを購入します (汚れていないハードウェア)。 すべてのネットワーク カードを取り外してエア ギャップを形成します (ローカル シークレットがマシンから流出するのを防ぐため)。 離れた非公開の場所にあるファラデー ケージでマシンを実行します (詮索好きを防ぐため)。 ランダムなキーストロークやビデオファイルなどの多くのエントロピーとハードレプリケートデータを使用して、疑似ランダムシークレットジェネレーターをシードします (シークレットを解読しにくくするため)。 そして最後に、すべてを燃やして灰にすることで、秘密の痕跡とともにマシンを破壊します。 😀

信頼できるセットアップセレモニーの調整

これは、以前の信頼できるセットアップセレモニーの参加者からの興味深い引用の選択です。

  • …トーチを使用して、すべてが黒くなるまで、電子機器をXNUMXつずつ完全に加熱しました…」— ピーター・トッド 地元の秘密を物理的に破壊することについて。
  • 「私はここに[チェルノブイリ]原子炉のコアからのグラファイトダストを含む布の一部を持っています...あなたは[マイクロコントローラーに接続されたガイガーカウンターからの]XNUMXつのパルスごとにカウントし、パルスXNUMXとパルスの間の時間間隔を比較しますXNUMX とパルス XNUMX と XNUMX の間の時間間隔で、それが大きい場合は XNUMX になり、小さい場合は XNUMX になります。」 「…私​​たちはこの飛行機に乗り込み、乱数を生成しようとしています…」 - ライアン・ピアースとアンドリュー・ミラー 秘密の世代について。

Zcash powers-of-tau セレモニー ラウンド 41 には飛行機が含まれていました。 スクリーンショット: YouTube ビデオ

  • 営業担当者は、[コンピュータ] が 13 台あると言いました。 私は 13 のうちの XNUMX つを選ぶことができるかどうか尋ねました. 彼は私が特に探しているものがあるかどうか尋ねました (それらはすべて同じであるため混乱しています). 彼は、私たちを奥の倉庫に入れないと言った。 私は彼がそれらのうちのXNUMXつを選ぶことができるようにそれらのうちのXNUMXつを持ってくるかどうか尋ねました. 手押し車で二人連れてきた。 ジェリーは XNUMX 台のコンピューターのうちの XNUMX 台を選択し、私たちはそれをレジに持って行きました。」— Peter Van Valkenburgh 新しいマシンの入手について。
  • セレモニーの最初の数時間は、アルミホイルとラップで作られたその場しのぎのファラデーケージで行われました. 通気性が悪く、触ると熱くなっていたので、ラップトップをファラデーケージから移動しました」— コ・ウェイ・ジエ サイドチャネル保護について。
  • .. 隣人のいない山で儀式の一部を行いました。」— マイケル・ラピンスキー サイドチャネル保護について。
  •  十分なエントロピーを生成するために、周囲のビデオを使用することにしました」— ムフド・アムルラー ランダム値の生成について。
オンチェーンの信頼できるセットアップ式 PlatoBlockchain Data Intelligence。 垂直検索。 あい。

Zcash の共同創設者である Zooko Wilcox の兄弟である Za Wilcox は、2016 年に信頼できる儀式のために乱数を生成するために使用されたコンピューターを破壊しました。写真: Morgen Peck

これらの式典はすべて、集中型コーディネーターに依存していました。 コーディネーターは、参加者を登録して注文し、前の参加者から次の参加者に情報を転送することによってリレーとして機能し、監査目的ですべての通信の集中ログを保持することを委託された個人またはプライベートサーバーまたはその他のエンティティです。 コーディネーターは通常、ログを永続的に一般に公開することも担当します。 もちろん、私集中化されたシステムでは、データが失われたり、誤って管理されたりする可能性が常にあります。 (たとえば、Perpetual-powers-of-tau は Microsoft Azure と Github に保存されています。)

分散化が仮想通貨の信条の核心であるのに、仮想通貨プロジェクトが中央集権化された信頼できるセットアップ式に依存しなければならないというのは皮肉なことです。 そこで私たちは、イーサリアム ブロックチェーン上で直接タウの永久パワーの小規模なセレモニーを実行することの実現可能性を実証することにしました! 設定は完全に分散化されており、無許可で、検閲に強く、参加者のいずれかが正直である限り安全です [参照 免責事項]。 セレモニーへの参加には、必要な結果パラメーターのサイズ (この場合はタウの 292,600 ~ 17,760,000 乗) にもよりますが、7 ~ 400 ガス (現在の価格で約 8 ~ 1024 ドル) しかかかりません。 (具体的なコストについては、下の表を参照してください。これらの計算については、記事の後半で詳しく説明します。)

オンチェーンの信頼できるセットアップ式 PlatoBlockchain Data Intelligence。 垂直検索。 あい。

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

KZGまたは「タウの力」式を理解する

KZG、または「powers-of-tau」セレモニーとして知られている、最も人気のある信頼できるセットアップの XNUMX つを調べてみましょう。 Ethereum の共同創設者である Vitalik Buterin の功績によるものです。 信頼できる設定に関するブログ投稿 このセクションで私たちの考えを伝えました。 セットアップはタウのべき乗のエンコーディングを生成します。これは、「タウ」が参加者によって生成された秘密を表現するために使用される変数であるため、そのように名付けられました。

pp = [[𝜏]1、[𝜏2]1、[𝜏3]1、…、[𝜏n]1; [𝜏]2、[𝜏2]2、…、[𝜏k]2]

一部のアプリケーション (例: Groth16、2016 年に Jens Groth によって設計された一般的な zkSNARK 証明スキーム) では、セットアップのこの第 XNUMX フェーズの後に、特定の SNARK 回路のパラメーターを生成するマルチパーティ計算 (MPC) セレモニーである第 XNUMX フェーズが続きます。 . ただし、私たちの仕事はフェーズ XNUMX のみに焦点を当てています。 この最初のフェーズ - タウの累乗の生成 - は、ユニバーサル SNARK (例えば、PLONK や SONIC) や、 KZGの取り組み, バークルツリー & データ可用性サンプリング (DAS)。 一般に、ユニバーサル SNARK パラメータは非常に大きくする必要があるため、大規模で有用な回路をサポートできます。 より多くのゲートを含む回路は、大規模な計算をキャプチャできるため、一般的により便利です。 タウの累乗の数は、回路内のゲートの数にほぼ対応します。 したがって、典型的なセットアップのサイズは |pp| になります。 = ~40 GB で、~2 の回線をサポートできます28 ゲート。 イーサリアムの現在の制約を考えると、このような大きなパラメーターをチェーン上に配置することは実行不可能ですが、小さな SNARK 回路、Verkle ツリー、または DAS に役立つ、より小さな信頼できるセットアップ セレモニーをチェーン上で実行することは可能です。

イーサリアム財団は、いくつかのより小さなものを実行することを計画しています 式典 サイズが 200 KB から 1.5 MB のタウの累乗の場合。 大きなセレモニーはより良いように見えるかもしれませんが、より大きなパラメータがより有用な SNARK 回路を作成できることを考えると、実際にはより大きなセレモニーが常に良いとは限りません。 DAS などの特定のアプリケーションでは、より小さなアプリケーションが特に必要です。 [理由は非常にテクニカルですが、興味がある場合は、n 乗 (G で1) 次数 ≤ n の多項式への KZG コミットメントのみを有効にします。 このプロパティにより、データ可用性サンプリングが可能になります。多項式の t ランダム評価が正常に取得 (サンプリング) されるたびに、確率 t/n で多項式を完全に再構築できることが保証されます。 DAS について詳しく知りたい場合は、Buterin によるこの投稿をご覧ください。 イーサリアム研究フォーラムで.]

私たちは、イーサリアム ブロックチェーンに展開して信頼できるセットアップ セレモニーを実行できるスマート コントラクトを設計しました。 コントラクトは、パブリック パラメータ (tau のパワー) を完全にオンチェーンに格納し、ユーザーのトランザクションを通じて参加を収集します。

新しい参加者は、最初にこれらのパラメーターを読み取ります。

pp0 = ([𝜏]1、[𝜏2]1、[𝜏3]1、…、[𝜏n]1; [𝜏]2、[𝜏2]2、…、[𝜏k]2),

次に、ランダムなシークレット 𝜏' をサンプリングし、更新されたパラメーターを計算します。

pp1 = ([𝜏𝜏']1、[(𝜏𝜏')2]1、[(𝜏𝜏')3]1、…、[(𝜏𝜏')n]1; [𝜏𝜏']2、[(𝜏𝜏')2]2、…、[(𝜏𝜏')k]2),

そして、それらをオンチェーンで公開し、次の XNUMX つのことを示す証拠を示します。

  1. 離散対数の知識: 参加者は𝜏' を知っています。 (トラステッド セットアップ セレモニーへの最新の貢献が、先行するすべての参加者の作業に基づいていることの証明です。)
  2. pp の整形式1: 要素は確かに漸進的な力をエンコードします。
  3. 更新は消去されません: 𝜏' ≠ 0. (すべての参加者の過去の作業を削除することによってシステムを弱体化させようとする攻撃者に対する防御。)

スマート コントラクトは証明を検証し、それが正しければ、格納されているパブリック パラメーターを更新します。 数学とその背後にある理由の詳細については、 レポ.

ガス料金の計算

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

私たちの設定は、楕円曲線 BN254 (BN256、BN128、および alt_bn128 とも呼ばれます) で機能します。 以下のコンパイル済みコントラクト イーサリアム:

  • ECADD では、XNUMX つの楕円曲線ポイントを追加できます。つまり、[𝛼+𝛽] を計算します。1 [𝛼] から1 と[𝛽]1:ガス代150
  • ECMULT を使用すると、楕円曲線の点にスカラーを掛けることができます。つまり、[a*𝛼] を計算します。1 と[𝛼]から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

Ethereum が BLS12_381 を有効にする可能性があります ( EIP-2537)、セットアップ コントラクトは、この他の曲線でも機能するように簡単に作成できます。

セットアップを更新するためのガスコストを見積もりましょう ([𝜏]1、[𝜏2]1、[𝜏3]1、…、[𝜏n]1; [𝜏]2):

  1. 証明を検証するためのガス代。 各参加者はセットアップを更新し、上記の 1 つのコンポーネントを含むプルーフを提出します。 証明の構成要素 3 と 2 である「離散ログの知識」と「更新が非消去であること」は、非常に安価に検証できます。 課題は、コンポーネント XNUMX「pp の整形式」を検証することです。1」、チェーンで。 大規模なマルチスカラー乗算 (MSM) と XNUMX つのペアリングが必要です。
    e(𝝆0【1]1 +𝝆1[𝜏]1 +𝝆2[𝜏2]1 + … + 𝆆n-1[𝜏n-2]1、[𝜏]2) = e([𝜏]1 +𝝆1[𝜏2]1 + … + 𝆆n-1[𝜏n-1]1、[1]2),
    どこ𝝆0,…,𝆆n-1 疑似ランダムにサンプリングされたスカラーです。 プリコンパイル済みのスマート コントラクトに関しては、次のようになります。
    (2n-4) x ECADD + (2n-4) x ECMULT + ECPAIRK = 2 = (2n-4) x 6,150 + 113,000 ガス。
  2. データを保存するためのガス代。 各参加者は、n*68*64 ガスに相当する呼び出しデータ (68 バイトあたり 256 ガス) として、チェーン上の更新も保存します。 (楕円曲線暗号に精通している方への注意: 圧縮されたポイントを保存すると、n=XNUMX の測定によると、圧縮解除が全体のコストを支配します。)

これにより、将来の最適化に役立つはずのガスコストを見積もった次の表が表示されます。

オンチェーンの信頼できるセットアップ式 PlatoBlockchain Data Intelligence。 垂直検索。 あい。

ガスコストを下げるためのソリューションを模索していますので、ご期待ください!

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

EVM ベースの powers-of-tau セレモニー リポジトリをオープン ソース化しました。 github.com/a16z/evm-powers-of-tau. 私たちの戦略でセレモニーを行うことは、簡単で透明性があります。

  1. 保管と検証の契約を展開する (contracts/KZG.sol)
  2. コントリビューターは、前のトランザクション calldata からセレモニー パラメーターを読み取ります
  3. コントリビューターはシークレットをローカルで生成し、更新されたパラメーターを計算します
  4. 寄稿者は証明を生成します: pi1、pi2
  5. コントリビューターは、更新されたパラメーターを KZG.potUpdate() を介して、パブリック ブロックチェーンにデプロイされたスマート コントラクトに送信します。
  6. スマート コントラクトは更新の有効性を検証し、不正な形式の送信の場合は元に戻します
  7. 複数の貢献者が手順 2 ~ 5 を永続的に実行できるため、それぞれがセレモニーの安全性を高めます。
  8. 開発者は、提出物の数と品質に自信がある場合はいつでも、ブロックチェーンに現在のパラメーターを照会し、これらの値を暗号化キーとして使用できます。

私たちのレポは使用します アークワークス-RS ステップ XNUMX と XNUMX を計算します (さびの計算は src/pot_update.rs)、しかしユーザーは自分で書きたいと思うかもしれません。 更新申請のエンド ツー エンド フロー全体は、次の統合テストで確認できます。 テスト/integration_test.rs.

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

最後に、証明と詳細な方程式は、次のテクニカル レポートに記載されています。 techreport/main.pdf.

今後の仕事

この信頼できるセットアップ式を本番環境で使用する前に、まず数学的証明とサンプル実装の両方を包括的に監査することをお勧めします。

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

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

すべてのセレモニー戦略にはトレードオフがあります。 この構造はしっかりしており、検証可能な優れた検閲抵抗特性を備えていると思います. しかし、繰り返しますが、私たちのアプローチの健全性を検証するためのさらなる作業が行われるまで、この方法を使用しないように注意してください.

謝辞

  • Dan Boneh – この作業の初期段階での有用なフィードバック
  • Joe Bonneau – テクニカル レポートの初期バージョンで説明を明確にしてくれたことに対して
  • William Borgeaud – TurboPlonk / Plonky2 内の BLS に関するディスカッション
  • Mary Maller – アプローチの一般的な仕組みについての考え

編集者:Robert Hackett @rhhackett

***

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

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

記載されているチャートおよびグラフは、情報提供のみを目的としており、投資を決定する際に信頼することはできません。 過去の実績は将来の結果を示すものではありません。 内容は、示された日付の時点でのみ話されています。 これらの資料に記載されている予測、推定、予測、目標、見通し、および/または意見は、予告なしに変更される場合があり、他の人が表明した意見と異なる場合があります。 その他の重要な情報については、https://a16z.com/disclosuresを参照してください。

タイムスタンプ:

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