Skip to content

Week 3 演習 yuki-js#101

Merged
SeiyaKobayashi merged 1 commit into
zk-tokyo:mainfrom
yuki-js:week3/exercises/yuki-js
Sep 22, 2025
Merged

Week 3 演習 yuki-js#101
SeiyaKobayashi merged 1 commit into
zk-tokyo:mainfrom
yuki-js:week3/exercises/yuki-js

Conversation

@yuki-js
Copy link
Copy Markdown
Contributor

@yuki-js yuki-js commented Sep 5, 2025

🎁 Deliverables

Week3の演習課題

💬 Comments

@yuki-js yuki-js marked this pull request as ready for review September 5, 2025 14:15
@@ -0,0 +1,23 @@
SNARK とは … ARgument of Knowledge(p.7)を指しますが、なぜ「証明」であるのに “argument” と表現しているのでしょうか?

検証者が有限の計算資源しか持たないと仮定しているから。もし検証者の計算資源が無限であるならば、それを棄却することができてしまう、といったニュアンスを含めたかったから。
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ここで肝となる知識の健全性は、検証者ではなく、証明者の計算資源の制約(i.e., 多項式時間・空間か、無制限か)に対して定義されます(i.e., 偽の証明の検証を通せないこと = 健全性)。
より詳しい定義は、↓の p.24 あたりを確認してみてください。

https://people.cs.georgetown.edu/jthaler/ProofsArgsAndZK.pdf


p.21のKZGにおいて、コミットメントに秘匿性(i.e., ゼロ知識性)を与えるにはどうすれば良いでしょうか?具体的な構築方法を調べて説明してみましょう。

毎回異なるランダム値をべき乗することで、コミットメントに秘匿性を与えることができる。C' = C * g^r のようにすれば、離散対数問題の困難性により、C から C' を元に戻すことができないため、秘匿性が保たれる。
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ここで重要なのは、ランダムなスカラー値は元々の生成元 $g$ と独立した生成元に対して掛ける(ちなみに楕円曲線上では加算のみ定義されているため、厳密にはスライドのような加法表記の方が適しています)必要があるという点です。
また見方を変えると、これは pedersen commitment の形であるため、ゼロ知識性が担保できるということになります。

https://www.zkdocs.com/docs/zkdocs/commitments/pedersen/


f(a, b) = 5 * (a * b - a) + 2 * b を PLONK が適用できる形(i.e., 複数の一変量多項式)に途中経過をわかりやすく明示しながら変換してみましょう。

画像の通りに分解を進めていくと、以下の画像の通りになった。
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

これを元に各種制約をベクトルとして表現し、それらをそれぞれ補間することで多項式にし、KZG を適用できる形に変形する、という点がミソですね


![image 1](image.png)![image 2](image-1.png)

p.52におけるパブリックインプット・アウトプットの証明をたった1つのKZG評価証明で行うにはどうすれば良いか、調べて説明してみましょう。
Copy link
Copy Markdown
Collaborator

@SeiyaKobayashi SeiyaKobayashi left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@SeiyaKobayashi SeiyaKobayashi merged commit bd93a68 into zk-tokyo:main Sep 22, 2025
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants