MINA – The World’s Lightest Blockchain
This article will introduce a crypto asset from our new Fumbi Staking Portfolio, a protocol called MINA. MINA is a first-layer blockchain, the innovation of which is to keep the size of the whole blockchain constant at 22 kilobytes, along with the implementation of ZK-SNARKS technology to create a decentralised and secure blockchain with a focus on privacy.
The History of the MINA Protocol
The MINA protocol was created roughly in the middle of 2017 to create a secure and decentralised blockchain. It was created by the development team of 0(1) Labs, headed by Evan Shapiro and Izaak Meckler at the time. At the time of creation, Meckler was a doctoral student at Berkley, where he studied cryptography with a focus on zero-knowledge proofs referred to as zk-SNARKs (zero-knowledge – Succinct Non-interactive Argument of Knowledge).
The thesis on which the MINA blockchain was founded comes from the idea that it is difficult for the average end user to interact with the Ethereum network without having to trust a third party that runs a full node. The architecture of most crypto protocols consists of two types of entities – full nodes that verify and propagate transactions in the network and light nodes that rely on their services to verify transactions. However, the developers at 0(1) Labs considered this architecture to be centralised, which makes the underlying blockchain (L1-like Ethereum, Solana) less trustworthy, thus reducing the level of user experience when interacting with the protocol.
This was one of the main reasons why developers led by Shapiro and Meckler decided to create a compressed and memory-efficient blockchain in which virtually anyone can become a full node.
The project was initially known as Coda. However, in the second half of October 2020, a rebranding took place, during which the name of the project was changed to Mina Protocol. After four years of intensive platform development and testing, the team behind 0(1) Labs has decided to launch the Mina protocol mainnet on March 23, 2021.
What is Mina Protocol?
The Mina protocol is considered the “World’s Lightest Blockchain”. Thanks to a unique architecture using zero-knowledge technology, the developers created a blockchain with a constant size of 22 kilobytes, the size of several tweets on the social network Twitter.
Mina uses cryptographic proofs, also called zk-SNARKS, to create an optimal blockchain architecture. Blockchains such as Bitcoin or Ethereum, which have been operating on the market for several years, are constantly increasing in memory with each added block. If we look at the data from YCharts, the size of the Bitcoin blockchain is currently almost 437 GB, while the size of the Ethereum blockchain is up to 1 TB (1 Terabyte = 1000 GB). In the last two years alone, the size of these blockchains has almost doubled, and in the future, as the user base grows, their size will increase even more massively.
Verification of the entire history of transactions on the blockchain is a key element in verifying the current consensus on the state of these networks. This means that full nodes must store the entire history of individual blockchains, from the genesis block to the last mined block.
This, over time, puts pressure on full nodes in terms of memory capacities and a barrier to entry for new nodes that have to download a huge database of data if they want to become full nodes.
In the case of the MINA protocol and its constant size, it is possible to verify the current state of the network only through one cryptographic recursive proof, the size of which is 22 kilobytes. In practice, it looks like this.
An important part of this architecture are the so-called zk-SNARKs. Zk-SNARKs consist of “snapshots” of constant size that represent evidence of individual transitions in the network consensus area. Every time a new block is created, it takes a snapshot of itself, using a snapshot of the previous state of the network as a background. This new frame is then used as the background for the next block, creating a link between the changing states (blocks) without requiring more computational effort from the network nodes. This unique design allows participants to verify transactions without the need to store the entire blockchain history, which also minimises the need for “trusted third parties” to provide access to the network.
Zero-Knowledge Proofs (ZKP)
Zero-Knowldege technology is a type of cryptographic technique through which it is possible to verify the truth of ownership of assets or the truth of certain information without the need to share any other information in order to preserve privacy. The output of using this technology are cryptographic proofs (Zero-Knowledge Proofs), through which you can prove authenticity without additional information.
Let’s imagine it with an example: You and your friend solve the same puzzle, but you both solve it independently. You managed to solve the puzzle, but your friend hasn’t yet. With zero-knowledge cryptographic proof, you can prove to him that you know the solution to the puzzle without having to give him any details about the solution.
ZKP was invented by Shafi Goldwasser, Silvio Micali, and Charles Rackoff in 1985. Since then, ZKP has been one of cryptography’s most active research areas. Furthermore, ZKPs have recently enjoyed significant influence and use in real-world applications, especially for blockchain applications. Experts from the world of cryptocurrencies, including Ethereum founder Vitalik Buterin himself, see zero-knowledge technology and ZKP as one of the biggest future innovations in the world of cryptocurrencies.
Consensus Algorithm – Ouroboros Samasika
Due to the distributed nature of blockchain networks, all participating entities (nodes) must synchronise and agree on a common state of the network. When reaching network consensus, Mina uses a modified version of the Proof-of-Stake mechanism called Ouroboros Samasika, which is based on the consensus designed by the IOHK (Input-Output Hong Kong) organisation for the Cardano platform.
Ouroboros works on the assumption that all network participants have synchronised time. This means that everyone has their “virtual watches” synchronised for the simplicity and fluidity of the block production process.
The block production time is divided into sections called epochs. Each epoch includes so-called slots, while in the case of the MINA Protocol, one epoch contains 7140 slots. One slot represents one produced block. Each slot takes about three minutes to produce, which means that one epoch usually lasts about 14 days.
In the PoS system, block producers are selected based on the amount of staked coins, as well as a source of randomness in the form of a Verifiable Random Function (VRF). In the case of the MINA protocol, the main advantage is that anyone who stakes their coins on this network can withdraw them at any time. Ouroboros selects block producers based on the staked amount of coins from the previous epoch at the time of the snapshot (or screenshot) – which is usually at the beginning of a new epoch. Thanks to this, validators or delegators can withdraw their coins from staking at any time and do not have to wait several days, as is usually the case with other protocols.
Network Participants
There are three types of special nodes in the MINA network that ensure the safe and smooth operation of the network:
- Snark Workers – network participants who create zk-SNARK cryptographic arguments to verify transactions. Block producers publish their “bid” on a marketplace called SNARKetplace, where they set a minimum acceptable price for a SNARK cryptographic proof, and snark workers compete with each other to meet these requirements. Block producers buy zk-SNARKS at the most competitive prices and pay Snark Workers a portion of the base block reward and transaction fees they earn from block production.
- Validator Nodes – Nodes responsible for validating transactions as well as adding new blocks to the blockchain. Similar to other blockchains, validators are selected based on the amount of staked $MINA coins. In exchange for their work in block production, nodes collect rewards in the form of new $MINA coins and transaction fees.
- Archive Nodes – Nodes that store blockchain data in an uncompressed (so-called unSNARKed) database.
Applications and Smart Contracts in the Mina Network
Applications in the MINA network are also called zkApps. ZkApps, or otherwise, Zero-Knowledge applications, are smart contracts developed by Mina Protocol based on zero-knowledge proofs (zk-SNARKs).
zkApps use off-chain execution and an off-chain state model, which inherently enable private (off-chain) computation. zkApps themselves can perform arbitrarily complex off-chain calculations, with the user paying only a small service fee to send the resulting zero-knowledge proof to the chain to verify that calculation. This is in contrast to traditional blockchains, where the actual execution of smart contracts is done directly on the chain and usually use a variable fee system that depends on the current load on the network.
These applications may use data from different chains, but ultimately they are only shared with the blockchain via zero-knowledge metadata, so the users’ own data on the blockchain is not publicly readable.
A great example of an application based on zero-knowledge technologies would be a credit score: With a credit score verification application, a snapshot of any user’s credit file can be created and used as proof that the user qualifies for a loan. However, none of the user’s personal or sensitive information will be public or accessible, as the user will only share the final proof that allows the transaction to proceed securely. This design to securely transfer data from the real world to the blockchain gives Mine a potential advantage in the decentralised finance (DeFi) space since, in terms of security, users can be in control of their data when using apps.
ZkApps are written in the TypeScript programming language. It is an open-source programming language created and maintained by Microsoft. TypeScript is essentially an extension of the JavaScript programming language, which is extended by static typing and other attributes known from object-oriented programming. Code written in TypeScript itself is compiled into JavaScript.
Current Status
The applications on the Mina network are currently in the testing phase. Developers from around the world can build and upload their apps to the Berkley testnet, which serves as a training ground for the easy programmability of zkApps on the mainnet, which is expected to launch as early as the first quarter of 2023.
App testing on the Mina network is currently public, so anyone can build their apps. According to the developers at the Mina Foundation, the goal of this phase is to understand and implement feedback on what and how it works and what needs to be improved to run applications smoothly on the mainnet.
The Native Token of the Network – MINA
The native network of the Mina blockchain is a coin marked $MINA. The project’s market capitalisation is currently $435 billion, and the project is ranked 75th in terms of market capitalisation. There are approximately 765 million $MINA in circulation. Inflation in the network is set at 12% during the first two years and will subsequently be reduced to 7% after two years.