Mina Domain Model
Mina is a lightweight blockchain that operates on Proof-of-Stake consensus. What makes this blockchain succinct and lightweight is the zero-knowledge principle of consensus, which allows the consensus to be reached without full knowledge of all history of transactions. Mina solves the blockchain trilemma (see Figure 1 and Appendix 1) by separating the functions of block production performed by validators (block producers), transaction validation and verification performed by ZK-snarkers (snark producers), and storing the blockchain historical data performed by archive nodes. Like any other blockchain, the Mina blockchain consists of blocks that are added to the canonical chain using an encryption algorithm and which contain data about transactions manifesting the change of state (state machine).
Glossary Reference 1
Archive node - a node that is designated to store historical data about transactions and blocks.
Block - a discrete unit of a blockchain that carries information about transactions, which is recorded in a special cryptographic way.
Blockchain - a digitally distributed decentralized public ledger that exists across a network and represents a sequence of blocks that are linked together in a special cryptographic manner, where each new block is added in the course of consensus work carried out by the chain participants.
Block production - the process of producing blocks, which includes adding transactions to a block and recording them therein in a cryptographic manner, as well as gossipping network participants and adding a new block to the network.
Canonical chain - the main chain in the Mina blockchain that contains only canonical blocks.
Consensus - a process by which individual sections of a network define uniform rules and agree upon adding new blocks to the blockchain.
Mina - cryptocurrency based on the Mina protocol.
Proof-of-Stake (PoS) - a method of protection in crypto currencies, in which the probability of the formation of the next block in the blockchain by the participant is proportional to the share that the accounting units of this cryptocurrency belong to this participant from their total number.
State machine - computer science concept, in which a machine can have multiple states but only one state at a time.
Transaction - a transfer of data from one block to another in a cryptographic manner that launches state transition.
Validation - an activity of validators aimed at ensuring that a transaction is valid and its states are all correct and true.
Validator (block producer) - a node that maintains the integrity of the blockchain by constantly calculating the link from the first block to the last one and by approving new blocks created by block producers.
ZK-snarker (snark producer) - a network node that provides ZK-proof (snark-work).
See Mina glossary.
Figure 1. Blockchain Trilemma
Glossary Reference 2
Delegator - an account that makes its staking by providing its owns funds to a node rather than running its own node.
Fee - a cryptocurrency transaction fee that is charged to users when performing crypto transactions.
Mina Protocol - a lightweight Proof-of-Stake blockchain protocol that maintains a constant size of just 22 KB, no matter how many transactions are made on the network, because of using the ZK-proof approach.
Node - a device (such as a computer) that contains a copy of the blockchain's transaction history and maintains a blockchain.
Validator (block producer) - a node that maintains the integrity of the blockchain by constantly calculating the link from the first block to the last one and by approving new blocks created by block producers.
ZK-snark (snark work) - a cryptographic method by which one party (a prover) can prove to another party (a verifier) that a given statement is true while the prover avoids conveying any additional information apart from the fact that the statement is indeed true.
See Mina glossary.
Validators, in their turn, are nodes that create blocks, therefore they’re also called block producers. To do so, they pick out transactions from the mempool which are of the highest amount and match them with a ZK-snark from the snarketplace, for which the ZK-snarker takes the smallest fee. When a certain set of transaction-ZK-snark matches has accumulated, a new block is produced. Later nodes vote for the new block. If they validate it, it is then a canonical block, and it is added to the canonical chain, otherwise, this block is deemed orphaned and doesn’t enter the chain. The Mina Protocol is designed in a way that no forks are possible and the canonical chain is, in theory, infinite. For producing a block a validator receives a reward, which has a coinbase. The reward is paid in tokens - Mina. In usual blocks a coinbase is 720 mina, in supercharged blocks - 1440 Mina. In case the account of the validator is unlocked, the validator creates a supercharged block, for which it is granted a double reward. The process of getting a reward for block production is called staking. Staking is an incentive for blockchain participants to be involved in maintaining blockchain integrity. Staked tokens are locked for an epoch plus a period before the validator distributes rewards. This time is specified in the terms, and, combined with an epoch it makes up 1 calendar month. An epoch consists of 7140 slots and lasts roughly for roughly 2 weeks (almost 15 days, to be more exact).
Glossary Reference 3
Canonical block - a block included in the primary block chain and referenced directly or indirectly by future blocks.
Coinbase - the amount of coins rewarded.
Epoch - specific period of time used to indicate when certain events will occur in the blockchain network, such as when incentives will be distributed or when a new group of validators will be assigned to validate transactions. The duration of an epoch in the Mina Protocol is 7140 slots per epoch. A new slot is allocated every 3 minutes. With that in mind, an epoch lasts 21420 minutes, that's about 14 days and 21 hours.
Mempool - a cryptocurrency node mechanism for storing information about unconfirmed transactions that are awaiting confirmation - a database where new transactions are stored.
Orphaned block - a block that has been resolved on the blockchain network but has not been accepted by the network.
Reward - tokens paid to a block producer for block production to encourage it to engage in maintaining the blockchain consistency.
Slot - basic unit of time in the blockchain. One epoch contains 7140 slots. 1 slot equals approximately 3 minutes.
Snarker fee - a fee for using the network node that provides ZK-proof.
Snarketplace - a buffer marketplace where nodes: validators and snarkers - exchange services.
Staking - the process of holding tokens locked on the blockchain as a proof of stake to mint new blockchain coins and thus maintain the inflation of the system. The blockchain participants that are engaged in staking, gain reward for it as an incentive.
Supercharged block - a block, which, when produced, gives a supercharged reward (2x to a regular reward) to the block winner, which is given when the block winner has no locked funds on the account.
Token - a special crypto asset, a unit of cryptocurrency of a certain blockchain, issued according to the rules of a particular blockchain and can be used as a cryptocurrency.
Transaction amount - the amount of Mina funds that is being transacted.
See Mina glossary.
In Mina, there are nodes that produced at least one block in the last epoch and there's nodes that are just connected to the network but are now engaged in block production and Consensus. Nodes that produced at least one block in the last epoch are called “active validators“. So a node (a validator) does not necessarily need to produce blocks to be part of Mina Blockchain: it’s possible that a user runs a node but is not involved in block production.
A validator also stakes its tokens in the blockchain. The more a validator stakes, the more chances of winning a block it has. Furthermore, a validator may delegate its funds to itself.
Not only validators can stake tokens. If an account wants to stake Mina but doesn’t wish to run a node, it may delegate tokens to a validator. In this case, this account is a delegator. At the end of an epoch, delegators get repaid with part of the total validator’s reward according to their share in the total amount of the tokens staked by the validator. To delegate a validator charges a fee from its delegators. Overall, a delegator receives its share of the reward minus the fee. This is the way both delegators and validators are encouraged to stake tokens with Mina. Not all delegators delegate tokens - some can just have an account but stay passive and choose not to delegate their tokens. Moreover, delegators can delegate tokens themselves. At any time a delegator may choose to undelegate its tokens. A delegator delegates all its balance and can’t delegate only its part. During the delegation period, a delegator may use the delegated tokens in transactions and can withdraw it. The balance changes affect the delegated amount and the repaid reward respectively.
Both nodes and delegators have an account through which they stake tokens. An account consists of a private key and a public key. A public key is the part of the account address that is seen by the other blockchain community. A private key is kept secret. It under no condition must be revealed to the public or third persons for security reasons. A public key is used to prove a validator’s vote for a block. A private key is used to access the account.
We develop an explorer that accumulates analytical data about nodes, blocks, transactions, rewards, fees, epochs and any other relevant data about the Mina blockchain for stakeholders, be it individual users, holders, traders or validator owners and other experts and stakeholders. We want our explorer to be easy to use and navigate, succinct, compendious and helpful for users.
Glossary Reference 4
Account - a personal profile for digital asset management and other operations in the Mina blockchain.
Active validator - a working node responsible for validating transactions and committing new blocks to the blockchain.
Explorer - a piece of software that uses a blockchain node to extract various data from the blockchain, and then uses a database to organize the searched data and present the data to the user in a searchable format.
Private key - an extremely large number, a mnemonic entry, used in cryptography as a password - the secret part of an account address.
Public key - a cryptographic code that allows users to receive cryptocurrency into their accounts - the open part of an account address.
See Mina glossary.
The diagram in Figure 2 shows the main entities in Mina Protocol and their associations.
Figure 2. Mina Domain Diagram
Last updated