Halo2
再帰証明は実装がないらしい
再帰証明とは?
zkpはもとのstatementを使用せず、証明proofを検証するだけだから簡単
再帰証明はproofをさらにzkpの中で検証する
再帰証明を何度も繰り返すということを考えると、証明をzkpの回路内で検証するということは毎回のコストは一定。それを貫いていけば大きい計算コストがかかる回路でも再帰証明を使えば一定のコストで検証可能
statementの計算量に比例した計算量しかかからないという良さがある
trusted setupはHalo2はいらない
zkSNARKだがtrusted setupがいらないところが特徴 novaやplunky 2も
いらないけど証明のサイズは一定?
zkSNARKとzkSTARKのちがい
StarkはSnarkに含まれている
SNARKはtrusted setupがいらないというだけではない
STARKという証明スキームは1種類
SNARKという証明スキームは何種類もある
trusted setup のgroth16というスキームは容量が少ないのでEVMでも動かせる
trusted setupの必要ない理由
plunky 2では:plunkという証明スキームがある。
plunkが使っているkzgコミットメント -> FRIコミットコメントに置き換えたおかげで不要になった
FRIはSTARKで使われているプロトコル
マークルツリーからランダムサンプルすることである多項式の字数が一定以下であるということを証明することができる -> マークルツリーのみ使用するので必要ない
検証するためのコストは、logで増えていく
証明コストはN log n -> 証明はほぼ線形なところが良い
zkWASM : ターボplunk
論文読みながら学んでね!
楕円曲線やペアリングについて理解しておけば、plunkの論文を読む!
Halo2 bookなど
vitalic のplunkの記事 (understanting plunk)-> plunkの論文
plunkという証明スキームから派生していった
- Halo2 -> lookupが使えるようになった
- plunly2 -> kzg -> FRI
0.5秒で再帰証明ができるようになった
supernovaがでてきて強いんじゃないか
lookup tableを使わなくても、演算子オペコードをzkで実装していくことができる
supernovaを使用してVMを作るというのはどういうこと?
novaを改良して何種類かのcircuitから選んでいる
回路のプログラムの実行の形態 -> supernova
1. 実行結果を表の形で書き出していく
2. それを多項式に補完していく
3. 多項式に対して何らかの処理をかける
4. 最終的なproofを作る