Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
How to transform code into arithmetic circuits (notamonadtutorial.com)
47 points by todsacerdoti on Jan 22, 2023 | hide | past | favorite | 1 comment



Very nice explanation of arithmetization in the context of zk-SNARKs!

For those who are curious about zk-STARKs in comparison:

Instead of translating each program into polynomial circuits (zk-SNARKs), for zk-STARKs you translate your program into assembly for the zk-STARK VM of choice, execute that program, and generate a proof from the execution trace table.

The arithmetization in the context of zk-STARKs happens over the VM assembly instructions.

So there's a set of polynomials that have a solution iff each VM state transition happened using a known instruction with that instruction's intended semantics (e.g. "'push' will increase the stack with one element", or "the clock count is increased by one").

Executing a program in a zk-STARK VM and generating a proof of execution does not involve constructing more polynomials.




Consider applying for YC's Fall 2025 batch! Applications are open till Aug 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: