Open6
Plonky2のまとめ
 nuno
nuno学習リソース
学習リソースはあまりない。testコードなどを読んで勉強するのが一番良さそう。
レポジトリ
論文
ドラフトということもあり、技術的な詳細もあまり触れられていない。
動画
実装例
- plonky2-semaphore
 semaphoreというサービスのplonky2実装。Tornado cashの実装とほぼ同じ。
 https://github.com/mir-protocol/plonky2-semaphore
次の動画の後半で、軽く解説がある。
- 
examples(fork) 
 https://github.com/proxima-one/plonky2/blob/examples/examples/src/lib.rs
- 
plonky2-examples 
 いくつか実装を行ってみた
 https://github.com/qope/plonky2-examples
コミュニティ
Polygon zero のdiscordにも結構情報が落ちている
 nuno
nuno学習の進め方
Plonky2 = Plonk + Fri
なのでPlonkとFriについてそれぞれ学習するのが良さそう。
Plonk
論文
解説記事
動画
 nuno
nunoFri
FriはSTARKのサブルーチンで使われるテクニック
解説記事
チュートリアル
とても分かりやすい
FRIについて解説した記事を書きました
 nuno
nunoplonky2の特徴
- Transparent
 Trusted setup が不要。
- Recursive proofの作成時間が世界最速でM1 Macで0.3sほど。圧倒的に速い。
- 算術化につかう有限体はGoldilocks Fieldと呼ばれる、p = 2^{64} - 2^{32} + 1 
 nuno
nuno署名検証
- 
ed25519 
 https://github.com/polymerdao/plonky2-ed25519
 proof生成時間はM1 mac pro で40秒ほど
- 
secp256k1 
 proof生成時間はM1 mac pro で10秒ほど
複数の署名検証
plonky2はrecursive proofがcheapなので、複数の署名検証は並列証明→証明の集約化
になりそう
 nuno
nunoL1 Verifier
ブロックチェーンでplonky2の証明を検証するには次の3つの方法がある
- plonky2をWASMでコンパイルしてWASM contract対応のL1にデプロイする
 `default-features = false"を指定してWASMにコンパイルする
- plonky2のproofをsolidityで検証する
- plonky2のproofをcircom回路でラップし、そのproofをL1で検証する