MINA

mina.png
Mina Protocol is a minimal “succinct blockchain” built to curtail computational requirements in order to run DApps more efficiently. Mina has been described as the world’s lightest blockchain since its size is designed to remain constant despite growth in usage. Furthermore, it remains balanced in terms of security and decentralization. The project was rebranded from Coda Protocol to Mina in October 2020.

To learn more about this project, check out our deep dive of Mina Protocol.

The Mina network has a size of only 22 KB, which is miniscule when compared to Bitcoin’s 300 GB blockchain.

What Is Mina Protocol’s Main Objective?
Mina is working on achieving an efficient distributed payment system that enables users to natively verify the platform right from the genesis block. Its technical whitepaper calls this a “succinct blockchain.”

The protocol uses Zero-Knowledge Succinct Non-Interactive Arguments of Knowledge (zk-SNARKs), a cryptographic proof that enables someone to authenticate information without revealing said information. However, enabling a user to trace the platform back to its genesis block can be impractical in a large network. As such, Mina incrementally computes SNARKS that concentrate only on the last few blocks — meaning that end-users check that zk-SNARK-compressed proof, instead of a block’s entire transaction history.

At the heart of Mina protocol is MINA, its native currency, which functions as a utility coin and medium of exchange.

How Does Mina Protocol Function?
Mina is similar to Bitcoin, apart from how it handles transactions, but also employs the account model used in Ethereum.

In this respect, the difference between Bitcoin and Ethereum is that the state of the Bitcoin blockchain contains a list of unspent coins, while Ethereum’s state is made up of account balances.

Mina, on the other hand, uses a prover (or snarker, if you will), an equivalent of a miner, to ensure each block commits to the state.

Mina employs the Ouroboros Samasika, a type of PoS mechanism specially designed for succinct decentralized networks since it provides bootstrapping from a genesis block.

Succinct blockchains contain two major functions: verify and update. Verification touches on consensus, blockchain summary and blocks, while the update function interacts with consensus and chain summary.

Apart from the above implementations, the project uses a parallel scan state to optimize transaction processing speed, which works by grouping unproven blocks and assigning the process to parallel provers.

Major Mina Protocol Participants
Mina is all about revolutionizing the current blockchain landscape where most platforms have verifiers such as miners/stakers and light clients who act as third parties when verifying transactions.

Mina takes a different approach by having multiple participants, each handling a specific function on the decentralized network.

The three major roles include verifiers, block producers and snarkers.

Verifiers
Verifiers interact with zk-SNARKS that deal with certifying the consensus information. Each Mina protocol user is considered a verifier, provided that their devices can handle a 22 KB chain and withstand a few milliseconds of processing time.
Block Producers
Block producers take the form of stakers or miners and earn block rewards and transaction fee payments. Interestingly, the protocol doesn’t slash incentives that go to block producers. This category of participants allows Mina users to delegate their coins to them.

Apart from bundling transactions into blocks, block producers also have to SNARK an equivalent number of previously committed trades as failure to do so during block production would lead to incomplete blocks and other nodes rejecting their validity.

If a block producer wants to incorporate 10 transactions on the chain, they must also SNARK trades from the front of the queue. However, they have the option to produce the SNARK or use those generated by a special group of participants called snarkers.

‍## Snarkers

Snarkers, also known as provers, produce zk-SNARKs used in verifying transactions.

Block producers pay snarkers from the overall transaction fees they receive for adding new blocks. However, to qualify for the fees, they have to post bids. Note that a snarker’s zk-SNARK needs to be used in a block while the block producer who uses it is responsible for incentivizing the snarker.

This creates a business economy where multiple snarkers can post bids tied to the same transaction. Block producers, on the other hand, are in for the profits and will choose the bid with the lowest fees. Consequently, snarkers are challenged to produce low-cost SNARKS.

How Transactions Happen On Mina
The process starts with a user initiating a transaction, after which the trade goes to the mempool, a pool of valid but unconfirmed transactions.

Next, snarkers take over by making proofs or SNARKS. The process follows with the selection of a block producer (BP) to bundle transactions into a block. Note that a BP sifts through the mempool for profitable transactions.

Then, the BP chooses a SNARK according to the rules in the consensus mechanism.

Note that a block producer scans through the bids for the lowest-priced SNARK. In addition, recently added transactions have an updated SNARKS order book.

Next, it’s time to incorporate the SNARKS in a block, then add the block to the chain and update the network. Snarked transactions are removed from the chain to help keep the size of the protocol constant.

Then, the block producer upgrades the protocol’s zk-SNARKS.

Finally, the new block becomes immutably part of the chain.