TLDR
- Mina Protocol is a layer-1 PoS blockchain that uses advanced cryptography to construct a succinct blockchain.
- Mina combines Proof of Stake (PoS) Sybil resistance mechanism with recursive zk-SNARKs to create a constant-sized blockchain of about 22kb in size.
- The reduced size of the blockchain enables participants to interact with the network using inexpensive devices that do not require powerful hardware, such as smartphones. Consequently, this enables greater decentralization due to the simplicity and very low cost of being a node.
- zkApps are decentralized applications that leverage Mina’s zk-SNARKs to conduct trustless and privacy-preserving blockchain transactions
- Mina is focusing on three web3 use cases: zkApps (enabling interoperability between online and on-chain while preserving privacy), zkOracles (permissionless web3 oracles) and one private and secure internet login. Mina is yet to deploy smart contract functionality and scale the blockchain, which currently has a very low transaction throughput (1 TPS).
- Mina recently received a $92m investment to grow out the ecosystem and develop more innovative use cases for zero-knowledge technology.
Key Terms
Term | Description |
zk-proofs (Zero-knowledge Proofs) | A Zero-knowledge proof is a cryptographic method that separates data verification from the data itself. One party (the prover) can prove to another party (the verifier) the possession or existence of some information without revealing the information. Source: World Scientific |
zk-SNARK | zk-SNARK stands for “Zero-Knowledge Succinct Non-Interactive Argument of Knowledge”. zk-SNARKs are a type of zk-proof. In plain English, this is a proof where one can prove they have certain information e.g. a private key, without revealing the specific information, and without any interaction between the prover and the verifier. Source: Z-Cash |
State | How the blockchain is at a given point in time. (example: wallet balances) |
Recursive zk-SNARKs | Method of recursively updating the state by using a single proof to validate that all proofs up to that point are correct. |
Introduction
Mina Protocol is an ultra-lightweight blockchain - with a total size of 22kB and an on-chain size of around 11kB. To put this in perspective, a photo taken on an iPhone will typically be many multiples larger than the entire Mina blockchain. Mina maintains its small size regardless of how many transactions the network records. This is in contrast to other blockchains, which are constantly growing. For example, the following graph shows the increase of the Bitcoin blockchain over time.

Existing blockchains are constantly expanding as more blocks are added to the immutable chain of blocks. However, as these blockchains get larger, running a node requires greater computing power. This can leave the blockchain vulnerable to centralization risk as only those with the greatest computing power are capable of successfully running a node.
Mina maintains its small size by leveraging recursive zero-knowledge proofs which means that the blockchain itself never grows in size. This minute size is designed to massively reduce the barriers to running a node on Mina so that anyone can do so - giving it the potential to be a highly decentralized network.
Mina Overview
- Mina uses an adapted version of the Ouroboros protocol (Ouroboros Samisika) which is the PoS consensus developed by IOHK for Cardano.
- Mina leverages zk-SNARKs so that nodes do not need to download the entire history of the blockchain. zk-SNARKS enable users to confirm that they have certain data, without revealing what that data is.
- This makes it less computationally and energy-intensive to run a node - greatly reducing the barriers to doing so.
- To verify transactions, the network is presented with an easily verifiable proof (the zk-SNARK).
- This zk-SNARK represents the whole state of the chain.
- In addition, two types of nodes are required for Mina to run.
- Block producers include transactions in the block in order to earn block rewards.
- SNARK workers compress network data and generate transaction proofs. The block producers bid on these proofs, and the Snark workers are paid in MINA
- MINA is the native cryptocurrency for the Mina blockchain. MINA is required for transactions and is used to distribute fees between users. It is the native currency of the Snarketplace, a market for buying and selling the SNARK work that compresses the chain.
On 17th March 2022, Mina announced a $92m funding round led by Three Arrows, FTX, and others such as Alan Howard and Pantera. This is a strong endorsement of the team and the project’s fundamentals, and the proceeds will go towards funding developer grants and growing the ecosystem.
Protocol Architecture
zk-SNARKs
- zk-SNARKs are used to prove block validity. These are used recursively in each block to verify the current state of the network.
- This is achieved by compressing the validity of prior states into a succinct proof that is included in the next state proposed.
- As a result, the current state (block) verifies the validity of the previous block, and therefore all previous blocks. This enables Mina to maintain a fixed size.
Proof of Stake Consensus Model: Ouroboros Samisika
Ouroboros Samisika gives the network security once there is an honest majority of stakers. Nodes are required to ensure that the proposed blocks have a verifiable random function (VRF) within a certain threshold. Mina nodes only need to verify if the zk-SNARK is valid to prove validity. As a result, only the block producer needs to compute the VRF output, while the validators verify the SNARK. This makes verifying the state of Mina computationally light.
Block Producers
Block producers only store the transaction history of themselves and the accounts that delegated their stake to them. This is because there is no need to call arbitrary data for verification, like on other blockchains. Validating nodes only need to verify the SNARK - rather than storing the entire blockchain history. This makes Mina nodes efficient and optimized in terms of storage.
Mina has 3 types of Nodes, namely:
- Consensus nodes
- Consensus nodes are block proposers that stake to participate in network consensus.
- Non-consensus nodes
- Do not participate in consensus - function is to increase network decentralization.
- Archival nodes.
- Store historical data of transactions on the Mina blockchain. Do not participate in consensus.
Consensus nodes, or block proposers may also be SNARK workers that do the computation necessary to produce a SNARK which is sold to block producers in exchange for MINA.
Merge Proofs
Mina requires each transaction to have a SNARK proof and each transaction’s SNARK is merged to form a new SNARK. This is a merge proof that ensures that all transactions are valid. The order of transactions does not matter, it only matters that the correct ones were merged.
Key Issues
- Mina has a very low transaction throughput (currently 1 TPS).
- The Mina foundation has chosen to focus first on bringing zkApps to market, after which TPS will be improved. One such way is that each zkApp can function as its own rollup, so real throughput across applications can be much higher. The Mina team believes rollups hold the potential for exponential scaling. In light of their most recent investment round, it appears that some big players believe in the team's ability to scale the protocol.
- As of now, Mina lacks smart contract capabilities. However, these are currently in development.
- Smart contracts will be written in TypeScript, which arguably puts Mina at a disadvantage given that the majority of existing blockchain infrastructure is built using other programming languages such as Solidity and Rust. This will necessitate building some of the infrastructure from scratch, rather than leveraging pre-existing infrastructure. Many successful L1s have been EVM compatible and have been able to leverage Ethereum infrastructure which developers and users are familiar with.
- Note that Mina is seeking to make zero-knowledge programming simpler for developers by using TypeScript. While this presents an easier way to program zero-knowledge proofs (ZKPs), it may be more challenging for developers writing non-ZKP applications, who are used to the EVM and solidity.
- In addition, =nil;Foundation, an ecosystem partner, is working on a bridge to Ethereum that will make Mina EVM compatible, bringing the benefits of its ZK technology to Ethereum developers. The Mina ecosystem will also be working on many other zkBridges as well.
- This creates an additional source of friction for onboarding blockchain developers and users given that new tooling will need to be built.
- However, the counterargument to this is that zkApps utilize a JavaScript/TypeScript library because they’re a widely known programming language among the broader developer community (outside of existing blockchain developers). It has been reported that 65% of developers globally know how to code in JavaScript. Note that TypeScript is a popular type of JavaScript.
- This could arguably open Mina up to mainstream developers without forcing them to learn a new programming language (Solidity). As a comparison, there are currently 12.4 million JavaScript developers while there are only 200k Solidity developers.
- A lot of developer tooling for SnarkyJS exists for free because Javascript / TypeScript are mature programming languages with mature testing environments, IDE environments, etc.
- Smart contracts will be written in TypeScript, which arguably puts Mina at a disadvantage given that the majority of existing blockchain infrastructure is built using other programming languages such as Solidity and Rust. This will necessitate building some of the infrastructure from scratch, rather than leveraging pre-existing infrastructure. Many successful L1s have been EVM compatible and have been able to leverage Ethereum infrastructure which developers and users are familiar with.
- The blockchain trilemma is apparent in Mina in that its prioritization of decentralization has resulted in lower performance (in terms of scalability). They have published an article here regarding how they can overcome this. Note that most blockchains claim that they solve the trilemma (e.g. Fantom) but in reality also fall short.
zkApps (previously Snapps)
zkApps are decentralized applications that leverage Mina’s advanced cryptography to conduct trustless and privacy-preserving blockchain transactions. By leveraging zk-SNARKs, zkApps are able to preserve privacy as they enable counterparties to verify data integrity without disclosing any sensitive data. Users are not required to reveal their personal information to anyone or any organization. In order to construct a proof, only the user's local machine has access to their data. Additionally, zkApps also improve on scalability. Unlike other blockchains that use a gas-based architecture, through the use of zk-SNARKs, zkApps can execute intensive computations off-chain while incurring only a fixed fee to deliver the resulting zero-knowledge proof to the chain.

There are two different types of states on Mina: on-chain state and off-chain state. On-chain state describes a state that lives on the Mina blockchain. Off-chain state on the other hand, relates to state stored anywhere else (e.g. IPFS).
As zkApps are powered by zk-SNARKs, a developer has to write what is called a circuit (which involves breaking down a program into individual steps having fundamental arithmetic operations), which is the method from which a prover function and a corresponding verifier function are derived. The prover function’s role is to execute the logic of the smart contract. It runs on a user’s web browser and it is responsible for generating a zero-knowledge proof of some input data (e.g. “buy token x for y price”) submitted by the user through the zkApp's UI.
Both private and public inputs must pass through the prover function, but only public inputs are provided to the verifier function and as a result, should not be used for data that is meant to stay private.

As can be seen in the image below, the verifier function validates whether a zero-knowledge proof meets all the constraints outlined in the prover function. The Mina network acts as the verifier and runs the verifier function.

The smart contract outputs a proof and some accompanying data called "events" when the prover function runs in a web browser. When sending a transaction to a zkApp address, this is included in the transaction. These events are a raw (in JSON) description of how to update a zkApp account's state.
By giving a hash of these events as a public input to the smart contract, the integrity of these events is ensured. They must be present and unchanged in order for the verification function to succeed on Mina. The Mina network can then verify the integrity of both the proof and the related events, which define how to update the state of the zkApp account.
zkApp Workflow
To understand the workflow of a zkApp better, a breakdown of steps taken by a zkApp transaction are given below:
After a zkApp is deployed to a host (e.g. mycoolzkapp.com), users will be able to interact with it using the following ways:
- User visits mycoolzkapp.com.
- User interacts with the zkApp and enters any data as required. (For example, if this were an automated market maker, the user might specify to “buy x amount of ABC at y price”.)
- The prover function in the zkApp will now generate a zero-knowledge proof locally given the data entered by the user. This data can either be private (which will never be seen by the blockchain) or public (which will be stored either on chain or off chain), depending on what the developer specified, as needed for a given use case. Additionally, a list of state updates to be created by this transaction is generated and is associated with this proof (these are called “events”)
- User clicks “submit to chain” in the zkApp UI and their wallet (such as a browser extension wallet) will prompt them to confirm sending the transaction. The wallet signs the transaction containing the proof and associated description of state to update and sends it to the Mina blockchain.
- When the Mina network receives this transaction, it will verify that the proof successfully passes the verifier method listed on the zkApp account. If the network accepts this transaction, this indicates that this proof and the requested state changes are valid and, as such, are allowed to update the zkApp’s state.
Because the user’s interaction occurs locally within their web browser (using JavaScript on the client), the user’s privacy can be maintained.
Wallet
It is important to note that Auro is the only wallet that supports zkApp transactions currently. However, the team is planning to expand support for zkApps to other types of wallets (such as mobile wallets and desktop wallets).
Partnerships
The team has already built various partnerships and runs zkApp bootcamps to accelerate the development of zkApps.
Teller Finance, an algorithmic credit risk platform, is harnessing Mina Protocol’s tech to create a decentralized lending market. It enables you to prove that your credit score is above a certain threshold, according to a trusted source such as Credit Karma, without revealing any private information or even your actual score. This solution not only eliminates the risk of personal data breaches but also opens up the possibility of unsecured lending in the DeFi arena, which is a key component of traditional financing. Mina's technology allows DeFi users to take out loans without putting up collateral and keep ownership of their personal data, resulting in a more efficient and safe financial ecosystem.
Furthermore, the =nil;Foundation was awarded a $1.2M contract by the Ethereum Foundation and the Mina Foundation, to implement Mina’s privacy-preserving zk-SNARKs on Ethereum, by building a Mina-Ethereum bridge. This will allow Mina to be verified on Ethereum and other EVM-based chains. It will give developers on other chains to leverage zkApps, allowing them to benefit from features like privacy preservation, data verification, efficient proofs of large computations, and secure logins. Verifying Mina on Ethereum is also a first step toward establishing a bi-directional connection between the two platforms. The full bridge will enable more accessible trustless verification of the Ethereum account state and Ethereum dapps through Mina full nodes on browsers and mobile devices. It can also serve as a component in trustless bridges between different chains, that leverage the cryptographic security of zero-knowledge proofs for stronger guarantees on cross-chain state.
Mina has also developed a partnership with Polygon to enable privacy-preserving and verifiable dapps on the chain. This integration can potentially be used for various use cases such as to keep NFT ownership private (user proves ownership of an NFT collection without revealing the specific NFT) or for KYC purposes by certain DeFi and social media dApps.
SnarkyJS
It is important to note that the smart contracts powering zkApps are written in SnarkyJS, which is a TypeScript library for writing zero-knowledge smart contracts. The team is currently actively working on the zkApps Software Development Kit (SDK), which includes SnarkyJS and the zkApps Command Line Interface (CLI). As the programmability of zkApps becomes easier and attracts more developers, more applications are expected to come into the space.
Web 3 Use Cases
There are serious interoperability issues between the crypto world and the online world at the moment. When paired with HTTPS, Mina's zkApps provide a powerful way to bridge the two worlds. The solution also doesn’t require any per-site connections or intermediaries and is able to work with the web as it is. This enables zkApps to access public and private data from anywhere on the internet and provide solutions and services that were previously not available.
For example, to obtain a BTC price feed that is averaged across multiple exchanges, a zkApp developer must first shortlist the exchanges from which to obtain bitcoin price feeds, and then design software that:
- Downloads each exchange’s webpage or price feed API over HTTPS
- Extracts the relevant information and HTTPS timestamps
- Creates a SNARK, proving the information came from the real sources in the correct formats with correct timestamps by checking the HTTPS signatures
- Pushes that SNARK to a zkApp, updating the smart contract’s average price of bitcoin from these exchanges.
Mina Protocol is focusing on three main use cases that will help build a private gateway between crypto and the real world.
End-to-End Data Privacy: From Online to On-chain

End-to-End Data Privacy: From Online to On-chain | |
Description | Users can use vital on-chain services without revealing personal information. They employ Mina to access their online data and demonstrate that they meet service provider criteria. End-to-end, there are no data vulnerabilities. |
What problem does it solve | It leverages the online presence of billions of people without exposing their personal data and violating their privacy |
Example | A user can prove that their credit score is above a certain threshold according to a trusted source like Credit Karma. Not even the counterparty requesting the credit score would see the user’s actual score, and there’s no need for the user to share other sensitive data(e.g. social security number). |
How does it work | A zkApp connects to the source website and produces a proof about data on that website. The proof reveals only the fact (e.g. the user’s credit score passes the threshold), not the data itself. The zkApp shares the proof with the Mina network and then sends the verified proof to the counterparty via an encrypted transaction. |
Why is it a better solution | On Mina, counterparties are sent proofs rather than the data itself. Users never have to disclose their data with anyone or any entity when using Mina. To construct a proof, only the user's local PC has access to their data. No need for a trusted enclave (a blackbox hardware solution) that can be compromised. |
Status | In Demo use. Currently, you can use Teller to connect to the Credit Karma website and prove that your credit score is above a certain threshold. Soon, you’ll be able to connect to other websites to prove your score, and much more. |
Permissionless Web Oracles/ ZK Oracles

Permissionless Web Oracles / zkOracles | |
Description | With Mina’s zkApps, developers can leverage private, verified, real-world data from any website to build decentralized apps. They can input any information that is publicly available on the web (without needing that website’s permission). And they can access, use and protect sensitive data by only sharing the relevant proofs. No need for trusted oracles or custom website integrations. |
Example | If a Tweet reaches a specific number of likes, it triggers a smart contract to mint an NFT. |
How does it work | zkApps interact with HTTPS to create proofs verifying that the data was on the site’s server at a specific time. The key insight is that HTTPS means institutions already sign all of their data. |
Why is it a better solution | Oracles like Chainlink expose sensitive user data to counterparties. Chainlink also requires source websites to be “turned on” in order to connect. Furthermore, you’re limited to the data and sources that the oracle network is integrated with. Mina allows you to connect to any public HTTPS site without needing an agreement/permission and in a privacy-preserving way. No need for trusted oracles or custom website integration. |
Status | In development. Minimally Viable Product (MVP) to connect real-world data to blockchain, using HTTPS expected by Q4 2022. |
One Private Internet Login

One Private Internet Login | |
Description | Users can access any internet website or service privately — without creating an account and handing over their personal data. Instead, they login securely with Mina. No centralized service provider can block them. And developers across chains can integrate this private, secure option into their services. |
What problem does it solve | Signing-in securely into any internet website in a privacy-preserving manner. No need to share personal info with dozens of websites to use their services. |
How does it work | Users create zkApp-based login accounts on Mina using their email. The zkApp proves to the website that the user owns the underlying email — without ever revealing the actual address. Using zkApps on top of accounts makes private cross-app interoperability and private facts possible. |
Why is it a better solution | Apple or Google offers users centralized login solutions. MetaMask on the other hand, works within the crypto ecosystem only. Mina works across the internet and its solution is trustless, private and censorship-resistant. |
Status | In development. A prototype is expected within the year. |
Further use cases
Further, in the above examples Mina’s tech can also be useful in many other different fields ranging from gaming, social networks and potentially allowing zkApps to interact even with IoT devices. Some potential use cases and applications that can arise powered by zkApps include:
- Private DAO voting: private voting for DAOs.
- Proof of age: Access an age-restricted virtual world or P2E game
- 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.)
- Passport On-Chain: verified location via GPS for dating apps, social media, residency supporting proof, etc.
- 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 (airbnb, hotel rooms, air tickets, etc).
Key Takeaways
- Mina protocol presents a unique implementation that combines blockchain and zk-SNARKs technology. By leveraging recursive zk-SNARKs, it has created a model where end users with weak hardware capabilities can participate in the network by validating the zk-proof instead of the entire transaction history of a block. This enables almost any device to run a validating node, increasing participation and consequently the decentralization of the blockchain. By focusing on decentralization, however, the scalability issue remains outstanding in Mina (currently throughput of 1TPS). The team is aiming to leverage ZK-Rollups to exponentially increase the transaction throughput, although the timeline for implementation is still to be determined.
- Furthermore, Mina’s zkApps are a great step forward in giving users control over their data. While privacy has taken a back seat in crypto today, as the space continues to develop we believe that privacy issues will take center stage and will force developers to build applications and infrastructures that take it into account. It will be extremely important going forward to integrate privacy into DeFi, games and most importantly the metaverse as the dangers of misuse of personal data are already evident in Web2.
- zkApps can preserve privacy as they enable counterparties to verify data integrity without disclosing any sensitive data. Rather than sharing the data itself, this is accomplished by validating and exchanging proofs about it. This is where Mina has huge potential to grow, as it could enable other chains to leverage zkApps, allowing them to benefit from features like privacy preservation, data verification, efficient proofs of large computations, and secure logins. It could also be used to accelerate the multichain ecosystem by powering trustless cross-chain bridges that use zk-SNARK tech to provide greater guarantees on cross-chain state.
- Additionally, zkApps can take advantage of HTTPS to bridge crypto and the real world. By integrating with public and private data, from anywhere on the internet, they enable permissionless apps to connect with permissioned and/or private data in a trustless and privacy-preserving way.
- It is important to note however that the application ecosystem in Mina is still in the very early stages. The zkApps SDK is not “production ready” yet, the team is still fixing bugs, integrating feedback from zkApps developers, and improving docs. The use of SnarkyJS however, should allow most developers to get up to speed and contribute to the project much more easily. Ultimately, implementation and the ease of programmability of the developer toolkit will be key.
- At the time of writing, the MINA token has a valuation of ~ $750m, and a fully-diluted valuation of ~ $1.6b. This is arguably very high for a blockchain with very low throughput and lacking smart contract functionality. The team’s ability to achieve smart contract functionality and attract a developer and userbase seems priced in already. That said, Mina appears to be taking a long-term approach to building an ultra-decentralized privacy-preserving blockchain. It remains to be seen whether or not they can create a platform suited to mass adoption.
- Lastly, zk-SNARKs which are at the core of Mina’s tech are relatively new and still under development. There is still a lot of research being done to improve things such as the SNARK verification and prover time. As a result, Mina’s growth will be directly linked to the advancement and broader adoption of zk-SNARK tech in general. The use of zk-SNARKs is still not prevalent, especially outside crypto, however, the tech is well positioned to become an essential layer of the internet’s infrastructure in the future. Mina as one of the early movers in the space has the potential to benefit significantly from the development of the tech.