Skip to main content

Protocol

What is the Mina blockchain?

Blockchains like Bitcoin and Ethereum store hundreds of gigabytes of data, and they grow in size over time. However, with Mina, no matter how much usage grows, the blockchain always remains one-dimensional - about 22 KB (the size of a few tweets). This means participants can quickly sync and test the network. This effectively solves the scalability issue.

This advantage is made possible by separating the three functions: block production, verification and blockchain storage. Every time one Mina node creates a new block, another generates a snark proof confirming that the block was valid. Then all nodes can store a small proof instead of the whole chain, whereas each node doesn’t have to store all historical data - there are special archive nodes that store and provide historical data to clients upon request.

To know more about the Mina blockchain see Mina Domain Model. For more information on the ZK-proof mechanism please, see ZK-proof mechanism and ZK snarks.

What makes Mina so special?

In a nutshell - this is the way Mina solved the blockchain trilemma problem. The blockchain trilemma states that any blockchain can focus on only two aspects out of these: decentralization, scalability and security. Simultaneously a blockchain can hit only any two of these points, but can’t cover all three. This situation ends up in 3 cases:

1.A blockchain can be decentralized and secure, but it can’t be scalable.

2.A blockchain can be decentralized and scalable, but it can’t be secure.

3.A blockchain can be scalable and secure, but it can’t be decentralized.

In fact, there is no hands-off straightaway strategy to deal with this issue - each blockchain selects its own focus configuration. Mina solves the blockchain trilemma by separating the functions of block production performed by validators (block producers), transaction validation and verification performed by ZK-snarkers (snark workers), and storing the blockchain historical data performed by archive nodes. Whereas in Bitcoin a node has to store all the blockchain history, in Mina a validator only validates blocks. This is what makes Mina so brief and succinct.

Another focus of Mina is using ZK-proof mechanism which allows ZK-snarks and their market implementation in the form of ZKapps. This allows Mina to separate the public and the private data in a transaction and, consequently, reveal the public data and conceal the private data, making possible both on-chain and off-chain execution of confidential transactions, like, say, proving a credit history or running public election. For more information about the Mina blockchain go here. For more information on the ZK-proof mechanism please, see ZK-proof mechanism and ZK snarks.

Who invested in the Mina protocol?

The following leading foundations have invested in the Mina protocol:

As you can see, the Mina Protocol has raised funds from the most prominent foundations. These organizations have a staff of professional analysts who conduct a thorough analysis of the project before they decide to invest.

As an example, you can see a part of Three Arrows Capital portfolio below:

alt_tag

What’s revealed and what’s concealed in the Mina blockchain? How does Mina ensure privacy?

Using ZK-proof (zero knowledge) allows to reveal part of information in transactions. This is the underlying technology for ZK-apps - off-chain smart contracts that use zero-knowledge proof to conceal part of the transaction data. This breaks all transaction data into private and public information. The public information is displayed in the transaction details, while the private information is proved and verified, but omitted and never shown to any other third party. This, for example, makes it possible to prove the credit history of a borrower without disclosing its details to the public. Literally, Mina simply hides part of a transaction from the public eye.

To know more about ZK-proof and ZK-apps please go here and here.

What are the advantages of the Mina blockchain?

As a blockchain Mina is:

  • safe;

  • succinct;

  • confidential.

Mina is safe since the BFT mechanism of Consensus ensures that no malicious actor can ever interfere with the data stored in the blockchain.

Mina is succinct. Using ZK-proofs makes it possible to compress all blockchain data so you don’t need a powerful computer to run a node.

Mina is confidential. The same ZK-proof mechanism ensures that part of transaction data is concealed.

What are Mina's use cases? How can one use it?

The real-life application of Mina is closely associated with the use of ZK-proof and, particularly, ZkApps, which defines the specifics of the Mina blockchain as a safe, succinct and confidential blockchain. Briefly, Mina is useful in any situation when there is a need to conceal all or part of the information, be it a credit history, a medical card, government secrets, secret polling, etc. More specifically, the use cases of Mina may include (but are not limited to) the following: games and puzzles like sudoku, identity check, authorization, auctions, accounting and reports, neural network identification, etc. To know more about Mina use cases please go here and here.

Why is the Mina blockchain called “The Tweet-Sized Blockchain”?

The small size (22 KB), which is the size of a few tweets, makes participation in the Mina blockchain networks more accessible, and by collaborating with the Bison Trails infrastructure, block producers will be able to support the decentralization, growth and strength of Mina, and receive rewards depending on how successfully they create the block. What makes Mina so succinct is the use of ZK-snarks, i.e. special cryptographic proofs made by snarkers for validators. Unlike Bitcoin or Etherium, where all nodes have to check all the historical data for each transaction, in Mina ZK-snarkers do this work for validators and provide them a ZK-proof saying that a transaction is good and valid. So validators don’t have to spend their CPU on conducting the computation work and may focus solely on Consensus.

To know more about ZK-proofs and ZkApps please go here and here.

How does the Mina blockchain work?

Like any other blockchain, the Mina protocol is engaged in the production of blocks of its chain. Each block consists of information about the transactions of the main chain, and a key confirming the authenticity of a block. The transaction hashes can be traced in the Merkle tree - a special data structure, in which subsequent transaction hashes are based on the previous transaction hashes. The number of transactions in each block is different. In total, 120 transactions can be recorded in each block. Some blocks have no transactions. And the key confirming the authenticity of the block is called a ZK-snark (Zero-Knowledge Succinct Non-Interactive Arguments of Knowledge). First ZK-snarkers produce ZK-snarks for each transaction in the Mempool - a special database where new transactions are all stored. Then validators match the transactions with ZK-snarks and put them in a block. In the course of the Consensus, a block is checked and verified by Mina validators. If the block and its transactions are OK, it’s then added to the blockchain. Only one validator is randomly chosen to produce a block. For block production this validator receives rewards.

Mina is a proof-of-stake, not a proof-of-work, protocol, so the chance of winning a block depends not on a node’s CPU, but on its stake, i.e. the share of staked funds in the total amount of staked funds in the blockchain.

For more information about block production go here and here. For more information on ZK-snarks please go here and here.

Who creates a new block in the MINA protocol?

This is an important question. The Mina protocol remains a decentralized blockchain, which means that the production of blocks can be carried out by any node that is involved in the Consensus. However, there is an algorithm for choosing who can produce a block. In proof-of-work blockchains block production is assigned to a node that has a higher CPU to compute a new block. Mina uses a proof of stake algorithm, which is like a lottery: whoever wins block production, produces a new block. The chance of winning block production depends on the stake: a validator having a higher stake has a higher chance to win block production. For more information about block production go here and here.

How do validators produce blocks in Mina?

Technically the algorithm of block production in Mina looks like this:

  1. New transactions are entered in the Mempool - a special database for unverified transactions.

  2. A ZK-snarker produces snark works for transactions and puts them in the snark pool.

  3. A validator selects a transaction with the highest amount.

  4. The validator selects a snark work produced for the lowest snarker fee.

  5. When the block is full, and no more transactions can enter it, validators sign the block. If the majority of validators vote for the block, it enters the blockchain, and the validator that won block production gets a reward (720 or 1440 Mina - depending on the type of block produced). If the majority of validators vote against the block, the block gets discarded.

  6. When a new block is added to the blockchain, a new block height appears.

For more details on block production go here.

What is proof-of-stake? How is it different from proof-of-work?

The algorithm proof-of-stake works according to a very simple scheme. The more interested a person in the production of blocks is, the more likely he will win the right to produce one. The interest here is understood as stake - the share of tokens this validator possesses to the total stake. For example, a validator whose stake is 4% will have more chances to win block production than a validator with a stake of 2%. In theory, this could lead to a situation where one person would buy the entire cryptocurrency and produce it independently. To avoid this, the developers have provided a delegation function, when a person can delegate their tokens to the owner of a node in order to increase its chance of winning.

Mina is not the first blockchain, based on the PoS algorithm - this mechanism was introduced in Cardano. The consensus algorithm is called Ouroboros Samasika, and it was used in Cardano.

Is there mining in the Mina blockchain?

No. Mina is a proof-of-stake blockchain. Block production in proof-of-stake blockchains is accessed by staking, not by mining, like in proof-of-work blockchains. In PoS the chances of winning block production depend on the stake - the share of staked funds to the total stake in the blockchain - but not the physical performance of a node. You don’t need a high CPU to successfully run a node in Mina, so there’s no need to buy a mining farm to make a profit.

Are Cardano’s Ouroboros and MINA Ouroboros mechanisms the same?

Ouroboros is a mechanism that includes a POS algorithm, however, the mechanism itself is also engaged in the protection and security of the entire blockchain and is responsible for filling blocks. This is also called a consensus mechanism. The difference between Сardano and Mina may be the authentication of the chain. Cardano Ouroboros checks the entire blockchain and considers the longest one to be the real one. The Mina Ouroboros mechanism is called Mina’s Ouroboros Samisika. The innovative thing in this mechanism is that there is no need to check the entire chain. The mechanism checks the density of the chain. The minimum chain density of a valid chain will always be higher. As a result, any node will naturally follow the chain with the highest density, even if it isn’t the longest. Essentially, Mina is revolutionary because it can achieve consensus with no long-term history.

Why do we verify blocks in a traditional blockchain?

In a traditional blockchain, when we first start our node, it fetches the entire history (so all blocks starting from the Genesis block up to now), so our node can verify that the current state is correct. Our node does that by re-running and re-checking every single block, those blockchains unusually grow into the hundreds of gigabytes, even terabytes.

Where can I use MINA?

Mina is the cryptocurrency of the Mina protocol. Like with fiat money, you can use Mina funds to purchase things, store value, exchange them for other cryptocurrencies, including USDT, invest money and earn money due to price changes (speculative profit). You can also stake Mina, i.e. participate in the PoS protocol by holding your Mina in the stake. You can stake either by running a node or by delegating your funds to a validator and get a reward every 1-2 epochs. The APR (the yearly cumulative percent of earnings) of Mina ranges from 8 to 12% depending on the validator you choose. At any time you may withdraw the Mina funds you have and get fiat money.

What is a block in a blockchain?

A block is a building element of any blockchain. Technically, a block is a piece of code that encrypts a data entry. This block is intricately connected with the previous and the subsequent block with its hash. All blocks share common parts in their hashes, which is proof of their validity and the order in which they enter the blockchain (block height). A block contains information about transactions. There can be one or more transactions in a block. A block may be empty, i.e. contain no blocks at all. The information about blocks and transactions is stored using a specific data structure - a Merkle tree (for more information about this data structure please see Scan State.

What is an orphaned block in Mina?

In Mina at any time it’s possible that more than one block is produced. Then other blocks are added to two or more simultaneously added blocks. These simultaneously added blocks make up a chain. One of the chains finally becomes longer and this is deemed as the canonical chain that continues the blockchain. The other sidechains are deemed as orphaned chains. They are not continued. Blocks that enter orphaned chains are orphaned blocks (remember: validators get rewards for producing canonical blocks only!!!).

For more information on block production please go to Block Production.

Do validators need a lot of CPU to produce new blocks?

No. Unlike proof-of-work blockchains, Mina does not require nodes to possess a lot of CPU to produce blocks. What really matters for the chance of winning block production is the stake of a validator. However, if a node decides to be a ZK-snarker, it’s desirable to have a more powerful computer, since ZK-proofs require the use of CPU.

What is Consensus?

Consensus is an agreement with all the rules of operation of the Mina’s Ouroboros Samisika. Consensus is, in fact, the consent of all nodes to add a new block according to the POS algorithm. A Consensus is, on the one hand, an instruction and user agreement of the Mina’s Ouroboros Samisika mechanism and, on the other hand, the process of agreement between nodes in the course of block production.

What is BFT?

Imagine that we have a blockchain with nodes that participate in the Consensus. We assume that all of these nodes are good and have no malicious intentions. Meanwhile, what if one or some of the nodes purposefully acts maliciously, i.e. votes for a bad block or double-signs a block? Byzantine-fault tolerance pre-supposes that the system will not fail even if some of the validators appear malicious. However, the majority of validators must be well-behaving. Mina is a BFT blockchain that ensures blockchain security and integrity.

Are there penalties for improper behavior in Mina?

Currently, there are no penalties for malicious or improper behavior of validators in Mina. Also, keep it in mind that the Mina protocol doesn’t regulate the validator-delegator relationship, so do your own research and beware of scammers!!!

What is a reward??

Any work must be paid for. In any blockchain the production of blocks is paid for by a reward. As a rule, this reward is paid in the blockchain cryptocurrency. The Mina Protocol is no exception. For the creation of one block the reward is 720 Mina, but sometimes people who stake only unlocked tokens can create a supercharged block. The reward for a supercharged block is 1,440 Mina.

What is a transaction?

A transaction is a change of state in the blockchain that is verified and recorded in the ledger. For instance, if Account A transfers funds to Account B, the states of both balances change. This change of the states is a transaction in essence. A ZK-snarker provides a ZK-proof that the transaction is good and valid. A validator verifies the transaction by matching the ZK-proof with the transaction and puts it in a block. Each blockchain defines its own set of transaction types.

What types of transactions are there in Mina?

Currently, there are 2 types of transactions in Mina: user transactions and internal commands. A user transaction is a transaction that is executed by a person through an account. An internal command is a transaction that is executed solely within the blockchain itself. Currently, there are 2 types of user transactions - a payment and a delegation, and 3 types of internal commands - coinbase, fee transfer, and fee transfer via coinbase.

Can I send tokens in a transaction in Mina?

Of course, you can. In the Mina blockchain you can send or receive Mina tokens through a Payment transaction. Remember that a payment is any movement of tokens from or to an account, including token withdrawal.

What is the key KPI in the Mina blockchain?

It takes time for validators to check and confirm transactions. The main KPI for the performance of a blockchain is how many transactions it can process per second - TPS (transactions per second) - i.e. how fast a blockchain operates. Currently, the TPS in the Mina blockchain is 22, i.e. the Mina blockchain can process as many as 22 transactions every second.

Are there forks in the Mina blockchain?

No. Due to the way the Ouroboros Samasika Consensus protocol operates, there is only one chain - the chain with the highest transaction density. The blocks that enter this chain are canonical blocks, and validators receive rewards for their production; the blocks that are in the sidechains, are orphaned, and no rewards are paid for their production.

What is an epoch?

An epoch is a period in the Mina blockchain. The end of an epoch means a new epoch starts. Each epoch consists of 7140 slots, and each slot makes up 3 minutes. Overall, an epoch lasts roughly for over 2 weeks, almost 15 days.

Where are balances stored in Mina? No way you can compress 100k accounts into 22kb.

That's right - you can not compress that amount of data into 22kb, but we also don't have to. The 22kb is only the proof that lets us verify that the current state of the chain is valid - the 22kb proof is basically a "replacement" for all blocks that were ever produced, so we don't have to download and double-check every single one ourselves.

In fact, Mina doesn’t compress any data at all - it only proves their existence. All the historical blockchain data are stored in special archive nodes, to which ZK-snarkers have an access to verify transactions.

Can I freely use Mina funds? Can I withdraw or pay with Mina?

Absolutely. You can dispose of your balance at your own will: you can send and delegate funds as needed. However, if you have locked funds, you can’t send them to another account, you can only delegate them!!!

Can I freely use Mina funds? Can I withdraw or pay with Mina?

Absolutely. You can dispose of your balance at your own will: you can send and delegate funds as needed. However, if you have locked funds, you can’t send them to another account, you can only delegate them!!!

What is Genesis?

Genesis is the time when a blockchain was launched. Literally, it’s the first block of a blockchain having block height = 1.

Is there a way I can participate in governance in Mina?

No. Now there is no governance mechanism in Mina