Blockchain, and particularly implementations like the EVM, introduced a programmable data strucuture with key affordances in security, trust, permission, and beyond. It also gave rise to real progress in the domain of zero knowledge cryptography for its succintness and privacy capabilities.
Under the current EVM infrastructure, many operations are currently impossible or too costly to execute. We began building EZKL to expand the EVM’s compute capabilities so that you can bring complex operations, like neural networks, on-chain, at a low cost. And so far, it’s empowered developers to build things like:
A compiler for making zero-knowledge (zk) circuits from common computational libraries like pytorch and tensorflow so that you can think about end use-cases instead of circuit design.
A suite of tools that mean you can deploy these zk-circuits in less than a minute and integrate them into browser apps and on-chain apps painlessly.
A tool for moving complex on-chain computations off chain in a verifiable fashion using zk.
A community of dedicated open-source collaborators across many groups and organisations.
The project was founded by Jason and Dante as an exploration in both privacy-preserving machine learning and as method for bringing machine learning models on-chain. Since then our scope has expanded significantly, today you can easily create from a few lines of python code:
simple statistical models as zk-circuits (see here).
transformer-based models as zk-circuits (see here).
tree-based models from the xgboost and lightgbm libraries as zk-circuits (see here).
random forest models stacked on top of ridge regression and support vector machine models (see here)
on-chain singing contests (code here, tutorial here, and a live demo here).
circuits that test for set membership (i.e proof that you belong to a “club”, see here).
βοΈ !INSERT THAT ZK-APP EVERYONE TELLS YOU IS IMPOSSIBLE! βοΈ
Fundamentally we believe in creating technology that gives users a sandbox feeling. One where the technology doesn’t get in the way of a developer’s most creative and outlandish ideas, even when involving something as complex and cutting edge as zk. If one of the examples above doesn’t feel like magic, or if your moonshot idea doesn’t seem to be supported, let us know in our Telegram or our Discord, and we’ll cast some more spells to make it happen.
One of our founding tenets has been to develop in the open. Everything in our core library is immediately auditable and useable by all, and is developed from direct feedback from applications built on top of ezkl. This has made ezkl, according to one of our users “the easiest to use and most robust library for building zk-circuits. period.”
Our mission is threefold.
Make the development of zk-based applications as simple as possible.
Make the deployment of these applications into production (both on-chain and off) as simple as possible.
Make it all feel like magic π§ββοΈ.
How are we going to do this ?
We’ve built a compiler that can take almost any computational graph and turn it into a zk-circuit with its eyes closed, hands off the handlebars, popping a wheelie.
We’ve built Solidity verifiers that make verifying these circuits on-chain easy-peasy.
We’ve got Javascript tools that make building browser apps that interact with these circuits breezy.
We also have a backend coming (soonβ’) that makes deploying circuit provers lemon-squeezy (message us if you’re interested in trying this out right now).
In combination we’ve found that these tools mean you can deploy a zk-computation based application in a few minutes.
π Stay tuned for more exciting announcements in the coming weeks. π
Our current team is composed of jason, dante, jseam, ethan, casey, sofia, samuel, kat, and david – if you’d like to get in touch with any of us please do so in the Discord π.