Accelerating zk-SNARKs - MSM and NTT algorithms on FPGAs with Hardcaml
blog.janestreet.com
blog.janestreet.com
All code is open source! - https://github.com/fyquah/hardcaml_zprize
(Disclaimer: I'm one of the authors of the above blogpost)
(Edit: Added link to source code)
> We believe by using Hardcaml we were able to more efficiently and robustly come up with designs in the short competition period
So, the authors seem to believe they are more productive in it than other languages, and seem to be positioning it as a competitive advantage.
https://github.com/matter-labs/awesome-zero-knowledge-proofs
So far, there have been ceremonies which invite anyone to join who wants to, and anyone who participated and destroyed their own key knows that the trusted setup isn't compromised.
An entire community could participate for their local votes and they could each destroy their own key in order to have confidence in the result.
> An entire community could participate for their local votes and they could each destroy their own key in order to have confidence in the result.
Two problems. Dishonest voters spoil the process. Synchronically running multiparty ceremony between all participants at the same time (what if the voter could not make it, what if the server gets a DDOS attack in the process).
if anyone here has run FPGA's specifically, at this sort of scale, i'd love to talk to them.
Any reason the title deviates so much from original? Is it because of all the cool acronyms and code words? Here's a decoder:
zk-SNARK: zero-knowledge Succinct Non-Interactive Argument of Knowledge
MSM: Multi-Scalar Multiplication
Hardcaml: OCaml lib for hardware: https://github.com/janestreet/hardcaml
NTT: Number Theoretic Transform
I'm actually paying attention to this thread because I'm hoping people drop clues about what I should research or play with. Thanks a bunch - cool topic!