Vitalik Buterin is a fan of highly complex math. Thankfully, for those interested in learning about high-level math concepts, Vitalik is also adept at explaining mathematics. He recently shared a blog post titled: “Zk-SNARKs: Under the Hood.” In it, he attempts to demystify how zk-SNARKs actually work.
His blog explains that this is the third post in a series, so readers are encouraged to start with the first two on quadratic arithmetic programs and elliptic curve pairings before attempting to understand the new concepts he discusses. If this is your first foray into zk-SNARKs, you might also want to prime yourself with Christian Reitwiessner’s article on zk-SNARKs in a nutshell. The posts are decidedly technical and informative, even for programmers who are actively working in the field of cryptography (or those who simply love to torture themselves with math).
As a bit of a knowledge check, Vitalik’s latest blog post starts by talking about how the quadratic arithmetic program is a way of representing “any computational problem with a polynomial equation.” He then briefly touches on how elliptic curve pairings “allow a very limited form of one-way homomorphic encryption.”
He later delves into why a “trusted setup” is needed for zk-SNARKs to work, and how that’s actually accomplished. The trusted setup is about creating an integral component of the zk-SNARK formula that must be deleted after everything is set up. If that “toxic waste” (as they call it) isn’t deleted, it could potentially be used to create fake proofs, allowing fraudulent activity across the network. This is an area of “active research” according to Vitalik, who says in the blog:
“It’s an area of active research to see if the multi-party computation algorithm can be simplified further and made to require fewer rounds or made more parallelizable, as the more you can do that the more parties it becomes feasible to include into the trusted setup procedure. It’s reasonable to see why a trusted setup between six participants who all know and work with each other might make some people uncomfortable, but a trusted setup with thousands of participants would be nearly indistinguishable from no trust at all - and if you’re really paranoid, you can get in and participate in the setup procedure yourself, and be sure that you personally deleted your value.”
The future of Ethereum depends on making it easy to participate in different aspects of the network, and this seems like a good step in the right direction. If you’d like to dig deeper into this concept, and the rest of the zk-SNARK intricacies, check out his latest blog post here.
It seems that research into expanding trusted set ups, and the recent increase in blog posts and outreach to the community, is geared at fostering trust in those who are not in the inner circles of blockchain developers. The more the average person can understand the mechanisms behind the tech, the less uncertainty they should have, regarding the adoption of these burgeoning technological advances.