Originally published on Medium, by Christopher Pryor, Mina ecosystem partner O(1) Labs’ Lead Product Designer
Mina, as a general purpose protocol, is built to power and enable zkApps — SNARK-powered decentralized apps.
What sorts of apps are zkApps? All sorts of apps. The protocol is robust and flexible.
Sure, but you have to start somewhere. You need primitives for your code libraries. What use cases should they support? You need code samples for SDK tutorials. That code lives in an app that does something. What general direction should things go in?
It’s important to listen to the community at every stage of a protocol’s growth. But it’s especially important in the early days, and especially important when the subject is so central to the protocol’s future.
So our team of researchers at O(1) Labs kicked off a zkApps Ideation Workshop — featuring Mina community member app developers, alongside industry luminaries.
Our goal was to stoke everyone’s creative juices, to identify specific use cases they’re fired up about.
The end product of those workshops was a long short-list.
Our team of engineers, cryptographers and product strategists ran that shortlist through an evaluation process.
This is a look inside those workshops and that process, and a look at our short shortlist of finalists.
And the final winners, the first of which is already under development.
A Quick Refresher on zkApps
zkApps are zk-SNARK-powered dApps, with two crucial enhancements:
- Privacy: zkApps verify data integrity, without disclosing the data itself.
- Scalability: zkApps verify that computation is correctly executed, allowing bandwidth and processor-intensive computing to move off-chain.
The sweet spot: enabling permissionless apps to finally work with permissioned and/or private data.
Most notably: Web 2.0 data available via public APIs, private APIs via OAuth, & HTTPS websites. Data could come from social media, enterprise apps, smartphones, wearables, the legacy financial system, and many other sources.
Also most notably: Web 3.0 data, available on-chain or via third-party API (utilizing any of the ways one demonstrates control over an address). Mina could theoretically validate data from any other chain.
For the Ideation Workshop, O(1) Labs asked the participants to focus on ways these data sources could be used most effectively in zkApps.
Organizing the Workshop
We set about assembling a well-rounded and diverse team of crypto community members and engineers with deep domain expertise to participate in the workshop. The final participant list included:
- A cohort of Mina’s most engaged & creative community members
- Several dApp developers who are Mina ecosystem partners
- Multiple advisors to Mina, who all bring unparalleled depth and breadth of dApp development experience
- Cryptographers from the Mina ecosystem
- Senior product engineers from O(1) Labs
The group of contributors was put through a series of virtual whiteboarding exercises designed to stimulate creative ideation. Participants were encouraged to take their feet off the brakes, and not worry too much about real-world feasibility details — someone else would deal with that, another day.
Getting Down to Business: Top 10 Use Cases
The participants generated a couple hundred ideas in total and then were asked to vote on their favorites. Here’s a shortlist of some of the most popular zkApps ideas:
- Proof of Trade: verified crypto trading history, for wealth advisors and crypto-Twitter influencers.
- Proof of Assets / Net Worth: verify ownership of any crypto asset, by demonstrating control over the address without revealing the address or exact balance. (e.g. to prove solvency, access certain investment groups, DAOs, OTC telegram channels, etc.)
- Private ID: prove to third parties that you have previously KYC’d on a crypto exchange without actually sharing your ID documentation again. (Mina will never store your data.)
- Anonymous Single Sign-On & Digital Identity: Replace logging in through closed ecosystems like Facebook (and giving away all your data) with open anonymous login.
- Private DAO voting: private voting for DAOs.
- Oracles on Mina: authenticated data from any HTTPS website available on chain.
- Passport On-Chain: verified location via GPS for dating apps, social media, residency supporting proof, etc.
- Private Crypto DNS service: permissionless on-chain crypto addressing name services that obscures the recipient’s wallet address.
- Proof of Disability: proving qualification for disability benefits without revealing the specific ailment.
- Virtual Keychain for Real-World Spaces: a smartphone app that interacts with IoT, granting access to private places, both permanent (your home, office, car, etc.) and temporary (your friend’s house, hotel rooms, air tickets, etc).
Narrowing Down the Options
After the ideation workshop, the O(1) Labs product team evaluated which use cases we would focus on, to begin with. Popular use cases from the workshop were scored by several O(1) Labs team members based on implementation effort, impact criteria and stickiness to different audience groups.
After the ideation workshop, popular use cases from the workshop were scored by O(1) Labs team members based on implementation effort, impact criteria and stickiness to different audience groups.
With the current trends and themes of DeFi in mind, the team gave high ‘impact’ scores to use cases that addressed current DeFi problems and that the community could easily build on top of, to encourage development activity as early as possible.
Verification of Asset Ownership: verify ownership of crypto assets, by demonstrating control over the address.
Proof of Trade: verified crypto trading history, for wealth advisors and crypto-Twitter influencers.
If you were rooting for other ideas to get chosen, these zkApps will be the first of their kind, but certainly not the last. Future generations of zkApps will embrace all sorts of other use cases.
With the development of SnarkyJS already underway, the O(1) Labs team has begun to work on enabling both priority use cases.
We recently hosted our first small group workshop to educate interested members on how to program SNARK circuits, and build new types of digital applications.
These workshops will showcase demos developed by O(1) Labs, for early feedback. We’ll work alongside contributors to create more demos, so developers have an array of resources to build on top of.
We will start to open the workshops to more coders as we iterate on the format.
A minimum viable product (MVP) of Proof of Trade written in SnarkyJS is complete, and will be available for the community to interact with later this year.
In parallel, the core protocol team at O(1) Labs is working to enable zkApps on Mina Mainnet.
As part of the process to enable zkApps on Mina Mainnet, we also plan to run a zkApps testnet and enable zkApps on Devnet later this year.
And a zkApps Hackathon!