Open6

Plonky2のまとめ

nunonuno

学習リソース

学習リソースはあまりない。testコードなどを読んで勉強するのが一番良さそう。

レポジトリ

https://github.com/mir-protocol/plonky2

論文

ドラフトということもあり、技術的な詳細もあまり触れられていない。
https://github.com/mir-protocol/plonky2/blob/main/plonky2/plonky2.pdf

動画

https://www.youtube.com/watch?v=kFGUcwT72_c

https://www.youtube.com/watch?v=-pucWUDn5Hw

実装例

次の動画の後半で、軽く解説がある。
https://www.youtube.com/watch?v=p77Av0sXKQ4

コミュニティ

Polygon zero のdiscordにも結構情報が落ちている

nunonuno

plonky2の特徴

  • Transparent
    Trusted setup が不要。
  • Recursive proofの作成時間が世界最速でM1 Macで0.3sほど。圧倒的に速い。
  • 算術化につかう有限体はGoldilocks Fieldと呼ばれる、p = 2^{64} - 2^{32} + 1を法とする64bit有限体。サイズが小さいために有限体の演算が高速で、これがplonky2の高速化に大きく寄与している。FRIでは128bitに有限体を拡大し、健全性を保証する。
nunonuno

L1 Verifier

ブロックチェーンでplonky2の証明を検証するには次の3つの方法がある

  • plonky2をWASMでコンパイルしてWASM contract対応のL1にデプロイする
    `default-features = false"を指定してWASMにコンパイルする

https://github.com/qope/client-wasm-lib

  • plonky2のproofをsolidityで検証する

https://github.com/polymerdao/plonky2-solidity-verifier

  • plonky2のproofをcircom回路でラップし、そのproofをL1で検証する

https://github.com/polymerdao/plonky2-circom