Mina Overview
This article presents basic info about the Mina Protocol and its major entities.
Mina is a proof-of-stake blockchain that leverages zk-proofs to ensure effective anonymous transactions, which makes it lightweight - the total size of the blockchain is about 22 kBytes. Validators don't have to store all the blockchain data, which is done by archive nodes, and focus on transaction validation and block production only.
Epochs and slots
The Mina Blockchain runs in epochs, each containing 7140 slots. Each slot takes 3 minutes to complete. Overall, an epoch lasts for about 14 days and 21 hours.
You can learn the basic info on the Mina blockchain on our Home Page, Chain Info Parameters, Staking Parameters, and zkApp Parameters.
Transactions
There are three types of transactions on Mina: user transactions, internal commands, and zkApp transactions. User transactions include only Payment (transfer of Mina tokens) and Delegation transactions and are recorded on-chain. Internal commands run within the blockchain, including Coinbase, Fee Transfer, and Fee Transfer via Coinbase. ZkApp transactions are run by zkApps and execute a more complicated logic. Pending transactions are stored in the mempool.
Minascan explorer shows user transactions, internal commands, zkApp transactions, and pending transactions.
Transaction execution
Validators select transactions from the mempool and seek to pick those with a higher fee. Hence, transactions with lower fees take longer to run, so if you want to accelerate your transaction, you may offer a higher fee. Then, validators select snarks from the snarketpool and seek to pick those with a lower snarker's fee. Therefore, the difference between the transaction fee and the snarker's fee is the validators' compensation for validation services. After a validator matches a transaction with a snark, the transaction is executed, and the new blockchain state is recorded in ledgers.
You can execute a user transaction by broadcasting it on Minascan. Read more about transaction broadcast here.
Block Production
At each slot, a validator is selected to produce a block. In return, this validator receives rewards in Mina. Block production is run according to the VRF (verifier random function). Validators (or block producers) with a higher stake have better chances to earn block production in a slot; however, due to the VRF, validators with a lower stake also have a chance to win a block. This ensures better decentralization.
Canonical vs Orphaned Blocks
At each slot, a block is produced. There may be a situation when two blocks compete simultaneously to be added to the blockchain, thus making a fork. With time, one chain gets prolonged, which is the canonical chain. Respectively, all blocks added to the canonical chain are canonical blocks. The other blocks that are left behind are non-can-canonical or orphaned blocks. The latter contains only failed transactions that were duplicated and successfully recorded in a canonical block.
Minascan lists all blocks on the Mina blockchain.
Snarks
Particular nodes called snarkers produce zk-snarks (snark jobs or zk-proofs). Snarkers verify all transaction states to ensure their correctness and charge a fee for this operation. The result of running the verifier and the prover function is a snark. Validators use snarks to validate transactions without spending computing power verifying all previous states. Each snark job contains two snark works. Produced zk-snarks are added to the snarketplace.
You can view snarkers data on Minascan.
Staking
The integrity of the Mina Blockchain is supported by staked Mina coins. Technically, all coins ever minted and appearing on the account balance are automatically staked. There are two types of staked coins on Mina: self-staked and delegated. When an account is created, its coins are self-staked. However, unless this account runs a node and becomes a validator, this stake brings no rewards and in no way participates in block production. If an account wants rewards without running a node, it can delegate its stake to a validator and get some rewards. It's impossible to stake or delegate part of funds on the balance - only the whole balance. At any time, a delegator can unstake by staking to itself again. With a delegation, an account doesn't send funds to the validator. Delegated funds stay on the delegator's balance. Read these articles to understand staking on Mina better: Mina Staking Process, Mina Delegations Explained, and Mina Reward Calculation.
Consensus
The Mina Protocol uses the Ouroboros Samasika consensus mechanism, which is a variation of the proof-of-stake (PoS) algorithm. This mechanism is designed to be lightweight and efficient, allowing Mina to maintain a succinct blockchain. Each block contains a succinct proof, enabling nodes to verify the entire blockchain quickly without needing to download the full history, which is stored in archive nodes. Ouroboros Samasika ensures that all nodes in the network can participate in the consensus process, enhancing decentralization and security. This approach helps Mina achieve scalability while maintaining a high level of security and decentralization.
Ledgers
The Mina Blockchain uses four types of ledgers or distributed databases: the Snarked Ledger, the Next Epoch Ledger, the Staking Ledger, and the Staged Ledger. It takes two epochs to record transaction results on-chain and get into the Staking and the Staged Ledger.
Time Locks
Initially, part of Mina's funds was locked in founding accounts on Genesis. With time, they get gradually unlocked. Only unlocked funds can be transferred. One day, all Mina funds will be unlocked.
Time locks are available on Minascan. You can also view all accounts with locked funds.
Governance
Mina implements governance by introducing MIPs (Mina Improvement Proposals - equivalents to EIPs on Ethereum). Any account can propose an MIP aimed at improving the Protocol, and if voted for, such MIP changes how the Mina Blockchain operates. Any account is also entitled to vote for any MIP.
Minascan shows a list of all MIPs and votes.
ZkApps
ZkApps constitute the application layer equivalent to Dapps on the Mina Blockchain. They leverage zero-knowledge proofs in executing custom logic. Each zkApp is built around a zkApp account. The code is stored off-chain. A zkApp transaction runs off-chain, too, and the result of such a transaction is brought on-chain with a zk-proof.
Mina is a vibrant ecosystem hosting dApps. You can view a list of dApps and zkApps on Minascan.
Tokens
Mina is the native token of the Mina Protocol. However, Mina also supports multiple token denominations other than the native coin. Besides, there's the Fungible Token Standard on Mina. All tokens are minted via zkApp transactions for a particular zkApp project by a zkApp account.
Minascan shows the token denominations minted on the Mina blockchain.
Updated 2 months ago