top | item 31278749

Zero knowledge proofs in RISC-V

39 points| miohtama | 3 years ago |github.com

6 comments

order
[+] tromp|3 years ago|reply
This looks like an extension of the older TinyRAM model [1] to a real ISA. From the Abstract:

We present an implementation of a publicly-verifiable non-interactive argument system for NP. The system, moreover, is a zero-knowledge proof-of-knowledge. It directly proves correct executions of programs on TinyRAM, a random-access machine tailored for efficient verification of nondeterministic computations.

[1] https://eprint.iacr.org/2013/507.pdf

[+] jeremy_bruestle|3 years ago|reply
It is similar, although rather than using a Benes net to implement the permutation, it uses PLONK (https://eprint.iacr.org/2019/953.pdf), which is massively more efficient. And of course it actually implements the RISC-V ISA which makes it more useful in practice.
[+] b33pr|3 years ago|reply
I’m in favor ¯\_(ツ)_/¯ (also a founder)
[+] atalw|3 years ago|reply
This looks really interesting. Could you please ELI5?
[+] jeremy_bruestle|3 years ago|reply
Basically, you can run code in the zkVM, which looks like a normal RISC-V machine, but it generates a cryptographic proof/receipt of correct execution, so you can trust the code was run correctly (presuming the receipt verifies), even if you don't trust the machine that ran it at all. But the actual receipt 1) Doesn't get much bigger as execution time of the zkVM goes up 2) Doesn't leak anything about what happened during execution except for the what the program running in the zkVM explicitly logs to the journal.
[+] jimmySixDOF|3 years ago|reply
This is the best explanation I have seen [1] : "Computer scientist Amit Sahai, PhD, is asked to explain the concept of zero-knowledge proofs to 5 different people; a child, a teen, a college student, a grad student, and an expert."

[1] https://youtu.be/fOGdb1CTu5c