zk-SNARKs are the underlying cryptographic primitives that differentiate Mina from other blockchains. With mainnet launch on the horizon, we felt the need to get reacquainted with this relatively new technology.
In 2017, the world learned about blockchain, decentralization, and cryptocurrency. Although mainstream hype subsided over the years, developers within the Web 3 ecosystem kept building. Then came DeFi in 2020 and we saw an explosion in onchain activity, particularly on the Ethereum blockchain. With this increased use (aside from the exuberantly high gas fees we are all currently experiencing) comes a problem, the size of the blockchain dramatically increases.
This may not seem like an issue for someone who is just now getting familiar with blockchain, but this creates a fundamental problem that counteracts the ultimate goal of Web 3 to begin with.
In order to interact with a blockchain, one must be connected to a blockchain. This usually requires one to run a full node on the network. As the state of a chain increases in size, so does the hardware and storage requirements for running a node on a network. These requirements ultimately make the blockchain less accessible, which limits the ability of an end-user to take advantage of the technology without having to rely on third-party companies or services.
Now, third-parties are not necessarily a bad thing. Infrastructure companies, like Figment, act as third-parties that enable easier access and interactions with blockchains, but if it becomes a necessity to use a third-party, then the blockchain ceases to be an open and indiscriminate system.
At the time of writing this, the Bitcoin blockchain size is over 320 GB. This means that it would be virtually impossible for someone to interact with the Bitcoin network through their phone (the main Internet access point for the majority of the world) without relying on a third party company or service.
Being inherently public networks, all data associated with a user interacting with a blockchain like Bitcoin or Ethereum is public as well. This means that all of your activity on a blockchain (transactions, transfers, smart contract interactions, etc.) is publicly accessible. This limits the use cases of blockchain technology and could also become problematic for blockchain users if an entity, organization, or government wants to use this information in a malicious way.
One of the core reasons blockchain data is public is so that the nodes on the network can verify the legitimacy of the ledger. But what if you could verify the legitimacy of the ledger without having to expose the underlying user data? That’s where Mina comes in.
Mina aims to solve both rungs of the accessibility issues mentioned by being the “world’s lightest blockchain” by leveraging verified proofs of computation called zero knowledge-succinct non-interactive argument of knowledge or zk-SNARKs.
The main differentiator between Mina and other blockchains is that the Mina blockchain will always be 22kb in size. To put that into perspective, Mina will be smaller than this article. This means that any device that can connect to the Internet can sync to Mina in seconds.
How does Mina maintain a constant sized blockchain? Well, this is where things can get pretty technical, but the overall solution is much more associated with how we exchange value on a day to day basis offchain.
For example, let’s say I have a dollar. If I wanted to send that dollar to someone else, say in the form of USDC on Ethereum, I would have to check the entire history of how that dollar was spent by running a full node on Ethereum before I could send the dollar to someone else.
This is obviously not scalable and not how money transfers work on other payment rails. If anything, the person transferring money needs to certify that they have already received it before they can send it to someone else.
This is essentially how Mina works from an end user perspective. By utilizing zk-SNARKs, Mina effectively compresses blocks into a single proof or certificate. This allows an end user to verify the correctness of a block by downloading a proof instead of having to verify all of the computed transactions themselves.
zk-SNARKs are a cryptographic primitive that allows one to prove that an individual has specific knowledge without having to reveal the contents of the knowledge. Think of it as a photo with a timestamp proving your existence in a place. This photo verifying your existence is much less labor intensive than a group of validators having to do the same thing, but over time, those individual snapshots would grow in size as well. This is where recursive zk-SNARKs come in.
Recursive zk-SNARKs allow the block size to stay the same because the proof of the current block will contain the proof of the previous block. This on chain “Droste effect” can theoretically continue forever, which allows Mina to maintain a constant sized blockchain regardless of decentralization or scale.
SNARKs do not just enable Mina to stay a constant size accessible to anyone. They also power the applications, or Snapps, built on Mina. By leveraging SNARKs, developers can build privacy preserving applications that are scalable and more efficient.
A privacy preserving authentication Snapp would be able to verify ones, identity, bank account, credentials, etc. without disclosing the underlying information, and instead send the receiver a proof that the information received is valid.
Mina is scheduled to launch later in Q1. Mina's security was recently audited by Gauntlet Network and the report concluded that Mina would be resilient to 51% attacks.
They also recently released a new proof system called Pickles designed to serve as the base system for creating private, scalable smart contracts on Mina.
We have been actively involved in the Mina ecosystem as a Genesis Founding Member and block producer for the past year. At launch, we will be supporting Mina and Mina token holders at the staking and delegation level.