On September 26, 2022 Mina ecosystem partner o1Labs launched Berkeley Testnet Alpha and invited community members to help test zkApp features in a public, live environment in preparation for a future incentivized testnet.
The launch of Berkeley Testnet Alpha has been a crucial step towards achieving easier zkApp programmability on Mina mainnet.
The goals of Berkeley Testnet Alpha include:
- Understanding how the network is working and identifying improvements
- Deploying as many zkApps as possible on the network
- Capturing user feedback on the experience, features, and issues
This update aims to inform the community on the progress achieved between the launch on Sept 26 through Nov 7, in addition to learnings and next steps to inform future iterations.
Testnet Activity
- Number of unique zkApps deployed: 24
- Number of successfully applied zkApp transactions: 3,023 (includes deploys)
- Community submitted protocol bugs: 2
- Feedback: we are constantly monitoring feedback on key Discord channels and have engaged the community to share feedback on the leaderboard, as well as tutorials to improve the experience for future iterations.
New zkApps Deployed on Berkeley Testnet Alpha
See some of the new zkApps that have been deployed during this timeframe below, which include ones during the ETH San Francisco hackathon from Nov 4-6, 2022.
- AnonDao (First place at ETHSF) – Propose and vote on Dao Proposals anonymously using zero knowledge.
- Factum – A general platform enabling zero knowledge proofs with the demonstrated use case of validating asset valuation without sharing non-essential information.
- Vmina – A Secure Video Marketplace that protects videos from third-party access using zero knowledge proofs.
- CompliSend – KYC erc20/721 transfer with messaging and zero knowledge reporting to an auditor.
Bug Fixes/Updates Made
- Community member garethdavies#4963 reported a bug on September 26, 2022. He discovered a zkApp transaction was broadcasted and accepted by the node but never got included in a block. See more details here.
- On October 19th ecosystem partner o1Labs discovered a bug which would allow potential attackers to alter a zkApp account with invalid permissions. This could have allowed such an attacker to mint an infinite number of tokens in an account which issued custom tokens for example. In response, they added an ‘access’ permission to accounts which prohibits zkApp accounts from being accessed if the authorization is incorrect. This ensures that an ’empty update’ to e.g. a token zkApp can’t be used to pass unauthorized sub-calls. See more details here.
- To eliminate a discrepancy in a naming function that impacts network compatibility for Mina’s signer, o1Labs released a network upgrade on November 15, 2022. See more details on Discord here. With this update, any zkApps that were previously launched on testnet were requested to be re-deployed. Community members were also asked to upgrade any current projects to use o1js (formerly SnarkyJS) version 0.7.0 and upgrade zkApp CLI to 0.5.0.
Key Takeaways
- The testnet is stable and continues to process both zkApp and non-zkApp transactions consistently. The next step is to encourage more testing and activity to continue gathering learnings.
- A few key bugs have been found and fixes are planned – outlined above.
- The first set of early adopters are helping to improve the experience by deploying apps, reporting bugs, and sharing feedback. These efforts are paving the way for future developers to start deploying zkApps with ease.
Next Steps
Going forward, we’re looking for the community to help:
- Deploy more zkApps! Sign up to join zkSpark, Cohort 0 to build zkApps and win rewards from a 250K MINA grant pool. Cohort 0 starts November 22, 2022 – get in now! See new zkApps built here for additional ideas.
- Interact with zkApps on testnet and ask questions/share feedback directly with Mina’s core devs on the #zkapps-developers channel on Discord.
- Report Mina Protocol issues and all other protocol-related bugs through Mina’s Github Repo. Please reference the standard bug template for instructions on reporting.
- Report bugs related to o1js (formerly SnarkyJS) here.
About Mina Protocol
Mina is the world’s lightest blockchain, powered by participants. Rather than apply brute computing force, Mina uses advanced cryptography and recursive zk-SNARKs to design an entire blockchain that is about 22kb, the size of a couple of tweets. It is the first layer-1 to enable efficient implementation and easy programmability of zero knowledge smart contracts (zkApps). With its unique privacy features and ability to connect to any website, Mina is building a private gateway between the real world and crypto—and the secure, democratic future we all deserve.