Greetings! New to Zcash?
The Zcash network is young, but evolving quickly! Sign up and we'll be in touch with monthly highlights on ecosystem growth, network development and how to get started with Zcash!

言語

改善されたzk-SNARKマルチパーティ計算プロトコル

Sean Bowe, Ariel Gabizon and Ian Miers | Oct 31, 2017

zk-SNARK(Zcash の仕組みの中心であるゼロ知識証明)の構造は、証明を発行するすべての記述に対して パラメータ生成セレモニ の実行を必要とします。zk-SNARKにより、プライバシーは無条件で保護されますが、このセレモニが攻撃されるとZcashの偽造が可能になります。そのため、パラメータの安全な作成を保証することが非常に重要です。

昨年、Zcashはこのようなセレモニを マルチパーティ計算 (MPC)のプロトコルを用いて 行いました 。このプロトコルは、 1人 の参加者が不正でないことが証明されさえすれば、生成されるパラメータが安全であるとするプロパティを持っています。つまり、セレモニを攻撃するには、 すべて の参加者の不正が必要であるということです。

しかしながら、セレモニで使用されたプロトコルは少数の参加者以上までは規模を拡大できませんでした。Zcashをアップグレードし続けながら、このようなセットアップをより多く行う必要があるため、弊社にとってこのプロトコルのスケーラビリティとパフォーマンスを改善することが非常に重要です。また、zk-SNARKを使用するZcash以外のプロジェクトに対する相応のセットアップが必要である可能性もあるため、より安価で容易に実現できるよう検討しています。

先日、Ariel Gabizon、Ian Miers と共に 論文 を発表し、実質的に無制限の参加者に拡大することのできる新しいMPCプロトコルについて詳しく説明しました。この論文では、以前の ブログで 言及した、強化された楕円曲線構築 BLS12-381についても述べられています。

プレーヤー交換式MPC

オリジナルの MPCプロトコルでは、適応型攻撃から保護するために参加者全員がそれぞれ事前に「有害廃棄物」のシェアにコミットする必要がありました。これはつまり、全参加者がプロトコルの間対応可能な状態でいる必要があったということで、誰も全プロトコルを中断させることなく中断できませんでした。参加者はプロセスの間ハードウェアの保護状態を維持し続ける必要があったため、結果としてセレモニが少人数の参加者を超えて拡大することができませんでした。

弊社の新しいプロトコルは*プレイヤー交換式MPC*と呼ばれています。以前のように、ただ一人の参加者が公正であれば、セレモニの安全性は保証されます。しかし以前と違って、今回は参加者がプロトコルに参加し、自分のパートを終えると直ぐに去ります。こうすることでセレモニは多数の参加者に拡大し、より長い期間持続されることが可能になります。また参加者のために攻撃の表面積を小さくし、高価なシンクロナイゼーションを避けることができます。

2段階

オリジナルのMPCプロトコルでは3段階の計算が行われます。アクションを起こした参加者は、次の段階で自分の番が来るまで待機する必要がありました。第1段階と第2段階の間に、非常に高価な高速フーリエ変換を行わなければならなかったため、従来のMPCパフォーマンスは好ましいものではありませんでした。

新しいプロトコルでは、MPCを2段階に引き下げることに成功しました。さらに、第1段階が正確なzk-SNARK回路に非依存的になり、zk-SNARKを使用するすべてのプロジェクトにおいてこの段階を評価する大きな共通セレモニを実行することができます。第2段階では高速フーリエ変換をしなくなるため、過剰に高価な計算をしなくてもZcashおよびその他のプロジェクトのMPCを実質的に無制限の参加者に拡大する事ができるようになります。

マルチパーティ計算セレモニの 第1段階 の実装が始まっています。このセレモニはRustで記述され、新しいBLS12-381楕円曲線を使用します。

概要

この新しいプロトコルにより、zk-SNARKパラメータ生成セレモニの安全性が大幅に向上します:

  • パラメータの安全性を保証するために必要な1つのプロパティで、多くの参加者によるセレモニが可能になります。
  • 参加者に、使用するハードウェアおよびオペレーティングシステムについて非常に柔軟な選択肢を提供します。結果として、監査するべき依存関係やコードの数を削減することができます。
  • 参加者がセレモニに費やす時間を大幅に削減し、攻撃の可能性のあるエリアを縮小して参加者が幅広く貢献できるようになります。
  • より強固な楕円曲線構造を使用し、安全性を高めます。

zk-SNARKパラメータ生成セレモニについて、近日中に詳細をお届けできることを楽しみにしています。

zkSNARKs, cryptography, Parameter Generation | 全てのタグを見る