zkCPUs
zkVMs are cool, but have you heard of zkCPUs?
zkp
計算の完全性
コンピュータだけが計算すれば他のコンピュータは暗号技術によって結果を信頼できる
zkVM
証明可能にする試みの多く
このzkVMとは何なのだろうか?そして、それは我々が考えつく最高のものなのだろうか?
算術回路
汎用のゼロ知識証明システムの最も低いレベル
実際の回路を数学で表現した中間表現
証明システムを使って証明できる
プロセス
好きなプログラムを取る
それを(算術)回路にコンパイルする
プログラムを実行するのと同じ方法で回路を実行する(各ステップでのメモリーの状態を記録しながら)。
その実行を証明するために、証明システムを使用する。
vm
3つのコンポーネントに分けられる
メモリ
値の保存と読み出しに使用
例えば、2つの値を足し合わせる場合、どこから2つの値を読み出し、どこに結果を保存するか
命令のセット
プログラムを構成するために使用
ロジック
命令を解釈
VMのイメージ
code: example
for instruction in program {
parse_instruction_and_do_something(instruction);
}
CPUとVMの違い
V
ソフトウェア
CPU
純粋なハードウェア
最も抽象度が低い
zkVM
VMとほぼ同じ
プログラムを実行し、その出力を返すが、検証可能な暗号証明も返す
ZKP用に最適化された全く新しいVMの例
Cairo
Starkware
Miden
Polygon
zkEVMの比較記事
Risc0
real-world VM
RISC-V アーキテクチャ
課題
zkVMの命令セットしか使えない
zkVMがアクセラレートしてくれた演算にしかアクセスできない
シリコンにアクセスできない
解決策
ユーザーに独自の回路を書かせる
独自のVMを書くこともできる
例
Halo2
独自のzkCPUを作成できる
いくつかのzkEVMでも使われている
zkCPUs
https://cryptologie.net/upload/IMG_3D530937BA64-1.jpg
コアロジック
トランザクション回路
トランザクションのブロックを作成するため
ブロックチェーン回路
トランザクションのブロックを連鎖させてブロックチェーンを形成するため
どちらも再帰回路
作成されたすべての証明を単一の証明に圧縮できる
22kBの単一の証明でブロックチェーン全体を検証できる
拡張可能性の高さ
ユーザー回路はMinaと同じzkCPUにアクセスできる
Halo2の証明システムを使うこともできる
VMも実装できる
testnet
レジスタについて
3 -> 15
kimuchi update