Powers of tau ceremonyについて
Powers of tauとは
zk-SNARKを利用する上で利用するproof keyとverify keyを"安全"に生成する手法
背景
zk-SNARKは知識を証明する手立てとして証明者が検証者に「証拠」と「証拠を確認する方法」を提供する。証明の検証方法は楕円曲線暗号を用いる。
「証拠」の生成にはパラメータを生成する必要があり、これはランダムな数字(toxic waste)を用いて作成される。
このランダムな数字(toxic waste)を使えばパラメータが生成できるので偽物の証明が作れてしまう。zk-SNARKを利用する上で証明用の鍵や検証用の鍵を安全に作成することが重要。
誰も不正に利用できない鍵を作るMPCがある。これは参加者が順番に特定の計算を行いながら鍵を作成することでMPCに参加したすべての参加者が共謀しない限り、証明を偽造することができないもの。ZCashが2017年にこの仕組みをPowers of Tauとして導入した。
MPCに参加したすべての参加者が共謀しない限り、証明を偽造できない = 共謀が心配なら自分自身が参加者になれば良い。
イメージ
https://scrapbox.io/files/6278ee951f44930023e7e6d1.png
ceremonyはコーディネーターが最初のチャレンジファイルを生成し、一般にアクセス可能なリポジトリで公開することから始まる。最初の参加者は課題をダウンロードし、計算を実行して応答ファイルを生成し、それをコーディネーターに送信する。
コーディネーターは新しいチャレンジファイルを作成し、レスポンスファイルと一緒に公開する。次に選ばれた参加者は新しいチャレンジをダウンロードしてレスポンスを生成し、、、、、、→無限に続く
verifyコマンドを使うことでこれまでのptauファイルを選択し、これまでの一連のチャレンジ&レスポンスは検証可能
Trusted setupの第一段階でpowers of tauは利用され、回路に依存しない。