(a note from 0xPARC co-founder Brian Gu)
Two years ago, I started 0xPARC because it was clear that something incredible was happening in ZK. However, my previous experience building Dark Forest (https://blog.zkga.me/announcing-darkforest) also showed me that “ZK application development” was at the time far too painful, and required too much learning overhead, to be as accessible and impactful as it could be. 0xPARC set out to change that. We believe that doing so will usher in the next generation of cryptography-enabled applications. There’s a lot more work to be done, but two years later, I’m happy to report that we’re well on our way. That’s why I’ve taken time to personally design and run this program. Why I find ZK to be interesting and important What happens when any algorithm—a language model, a social media recommendation system, a credit score formula on private data, a query into an encrypted database of medical records, a vote tabulation algorithm—can be cryptographically certified to have been executed correctly, in a way that is programmatically verifiable by any computer (phone, server, embedded device) in the world? What happens when consumers gain the ability to generate airtight proofs about their activity on any individual digital system—a social media platform, a digital banking network, a peer-to-peer communications system, a blockchain, a biometrics registry—and permissionlessly port this data to all other digital platforms and third-party services on the Internet? We expect for many of these things to become possible at scale in this decade, thanks to recent (and surprising!) advances in zero-knowledge cryptography and several related primitives over the past few years. This is why I believe modern cryptography is on the cusp of rapidly rearchitecting society’s digital information flows. The key unlock of the past few years is that ZK technology has made cryptography programmable (https://www.youtube.com/watch?v=qAfprVCBhdQ). With modern ZK tech, building a new cryptographic protocol has gone from being a math research problem, to a programming task. Commensurately, our cryptographic capabilities have jumped from being calculator-like, to computer-like. By contrast, the previous generation of cryptographic technology, such as public key cryptography, essentially required custom-building an entire special-purpose protocol for anything you wanted to do cryptographically. Thus, while usage of cryptography is already widespread today — e.g. the literal majority of people in the world use https every single day, and cryptography has effectively enabled e-commerce and private communications at scale — it’s little wonder that usage of cryptography is largely confined to something that is, in the grand scheme of things, a “narrow” set of use cases. Given this, it’s exciting to think about what will be possible with general-purpose, programmable cryptography—especially as more people catch on. Even as someone on the frontier, I’m sure I will be surprised by the answers. What’s happened in the last two years? Two years ago, many ZK applications were theoretically possible, but for the most part neither practical nor accessible. While “programmable cryptography” technically existed, using it required specialist knowledge of cryptography and substantial training. This kept it out of reach of “generalist” software engineers, and limited the ability of product and technology leaders to understand it at a depth sufficient to reason effectively about. The tools for building were insufficient or outright missing. The performance of ZK systems were impractical for most real use cases. And the pedagogy and concept language for how to use ZK, and where it might be useful, were immature or nonexistent. It doesn’t matter how powerful your cryptographic gadgets are if they take two hours to run on a browser, and if only a handful of specialized developers in the world are capable of using them. Since then, things have improved a lot. A (surprisingly small) collection of individuals and organizations concentrated in, or coordinated by, 0xPARC has built tools, infrastructure, and pedagogy necessary for non-specialist developers to start using ZK effectively.
- To be certain, 0xPARC is far from alone in having contributed to this progress, and we’re still extraordinarily early in the lifespan of this technology. But, to our knowledge, we are the only group with such a holistic focus on unlocking ZK application development, and I think it shows in our output.
The 0xPARC ecosystem is preparing the first generation of ZK crypto toolstacks for generic, practical, and production-grade usage, by generalist developers. Through rapid experimentation in the past 12-24 months, 0xPARC has also uncovered and set in motion many of (arguably the majority of) ZK use case categories actively being iterated on today. These include:
- The first production ZK machine learning tooling (https://github.com/zkonduit/ezkl)
- The first ZK data exchange protocols (https://github.com/factorgroup/nightmarket)
- The first ZK-powered game (https://blog.zkga.me/announcing-darkforest)
- The first ZK-based identity systems used meaningfully in production (https://zupass.org/)
- The first concrete applications of recursive zk-SNARKs (https://ethdos.xyz/blog)
- … and more!
In turn, these use cases have created incentives and feedback loops for what may turn out to resemble a “Moore’s Law” of improvement in underlying ZK technology and infrastructure. We are starting to see an explosion of innovation at all levels of the stack. By some napkin math:
- ZK systems have become about 100x more performant over the past two years, with no signs of this performance trajectory slowing in the near future (see https://personaelabs.org/posts/spartan-ecdsa/)
- Development velocity for existing developers has improved tenfold (*).
- (*) Estimating development velocity is inherently qualitative, but the “tenfold” claim comes from what we’ve observed on the ground with developers over the past two years. Reasons for this speedup include: better documentation and educational materials (such as learn.0xparc.org), libraries (such as circom-ecdsa), tools (such as zkrepl, hardhat-circom, nova-scotia), and more.
- The level of expertise required to build substantive applications using ZK has dropped drastically (**).
- (**) One interesting trend from the past several years is that the capital expenditure necessary to put ZK apps into production has gone down from tens-of-millions to hundreds-of-thousands of dollars. This is largely due to the fact that a team interested in doing production-grade work involving ZK no longer has to build the entire cryptographic library and infrastructure layers from scratch. Instead, they rely on open-source, generic, and increasingly robust toolchains (several of which are supported and/or maintained by 0xPARC!).
The number of active ZK application developers has likely also increased about tenfold over the past two years, though even so this would only be from dozens to hundreds. But, most importantly of all, I believe that the number of people who could be using ZK effectively at the application level has likely grown by more than 100x (*).
- (*) While 0xPARC does not prioritize vanity metrics, in the past 18 months, nearly $100M in funding (some of the non-profit variety, and some of the conventional investment variety), has gone to people whose initial exposure to ZK came largely if not entirely through 0xPARC. Furthermore, seeing what’s been funded (and just as importantly, what hasn’t been funded because someone simply hasn’t gotten around to building it), makes it abundantly clear that this is but a fraction of the total amount of capital that hypothetically could be allocated effectively toward ZK-enabled efforts.
Why I am running this program
Above all, I’m running this program to put my prior assertion to the test (namely, that the number of people who could be using ZK effectively has grown massively, thanks to the developments of the past two years). Running education / training programs has been a core part of 0xPARC since day one.
- e.g. see our recent MIT ZK winter course, and our virtual ZK learning program from last year.
Our mission is to unlock the potential of applied cryptography for the world. In light of that, running ZK Frontiers benefits 0xPARC in ways akin to what more conventional organizations (such as companies) might gain from talking to users, and/or watching users use their products. Furthermore, ZK Frontiers provides an opportunity for myself and others at 0xPARC to distill and disseminate our insights on the trajectory of this technology: the milestones, bottlenecks, and what unlocks are still required to realize the potential of ZK technology in production over the next few years. Coming in, you may be an experienced software engineer / architect / leader, but have little or even zero prior experience with cryptography, and cryptography-adjacent technologies. As mentioned above, the maturity of the ZK space is now at a point where you can nonetheless gain a deep understanding and have an impact. This program will help you to understand the most impactful problems in the space, and where they fit into the long-term technological vision for ZK. If you participate, I hope you’ll enjoy it as much as I have designing the program. Best, Brian