The Polkadot structure includes the following components:
1. The Relay Chain is the main Polkadot chain connecting all the individual blockchains (parachains) in the network.
2. Parachain (parachain, abbreviated from “parallelized chain”) – individual parallel blockchains that carry out transactions and transfer them to the original blockchain. Parachains build so-called collators: they collect user transactions and confirm blocks based on the Proof-of-Validity algorithm. Collators receive a reward for their work, the amount of which depends on the particular parachain. Collator activity is similar to the work of miners in blockchains with Proof-of-Work and Proof-of-Stake algorithms.
3. Bridge Chain (literally, “chain bridge”) – designed to connect blockchains that do not use Polkadot control protocols (for example, Bitcoin, Ethereum and Tezos blockchains).
The Relay Chain mechanism monitors consensus compliance, is responsible for delivering messages between participating chains, and also facilitates the finalization of transactions. Relay Chain is a blockchain with a pool of validators, which are randomly assigned the task of adding and validating blocks in various parachains. For each transaction, validators must make a deposit. If the transaction meets the consensus rules, the deposit is returned and the validator receives a reward. If the rules are violated, the deposit is lost.
Consensus in the relay chain is achieved through two mechanisms based on the principle of personal responsibility. One of them is responsible for the production of the block, the other for the finalization. The decoupling of block production and finalization solves the scalability constraints in instant-finalized protocols (such as Tendermint) by making fast block production possible and allowing more validators to participate in consensus building.
The names of these two mechanisms are acronyms: BABE (Blind Assignment for Blockchain Extension) is responsible for the production of new blocks, and GRANDPA (GHOST-based Recursive Ancestor Deriving Prefix Agreement) is responsible for the finalization of old blocks.
BABE is an algorithm for creating relay chain blocks consisting of the headers of all valid and available parachain blocks produced by collators. The BABE algorithm works on the basis of slots (time intervals): the right to produce a block in a relay chain at a certain time interval is randomly granted to a validator known as a slot leader.
The right to issue the next block is granted by computation using a verifiable random function. The BABE model resembles Ouroboros Praos, the block-making component of the Cardano consensus protocol.
GRANDPA is a finalization mechanism in which each validator votes for the highest block it considers valid (in fact, voting takes place for all the ancestors of the block).
All blocks for which more than two-thirds of the validators have voted with their stakes are finalized. Since many blocks can be finalized instantly, it can take longer for validators to reach a finalization consensus than it takes to create a single block. This allows GRANDPA to support a larger set of validators than traditional BFT algorithms, which must finalize each block separately.
Validators are found and approved by the so-called nominees [nominators]… They pay a deposit for the validators, which will be confiscated from them if the behavior of their chosen validators does not comply with the rules of consensus. The option of paying for the work of nominators distinguishes the Nominated Proof-of-Stake (NPoS) algorithm, on which Polkadot works, from the traditional Delegated Proof-of-Stake (DPoS) algorithms.
Nominators do not participate in the process of making and confirming transactions.
Violations by validators are monitored by watchdog nodes, the so-called fishermen [fishermen]: They identify (“fish”) cases of bad behavior, create evidence containing conflicting validator votes, and receive a share of the confiscated bets of the violators.
Such a scheme allows GRANDPA to provide asynchronous supervised security: the finalization of any two conflicting blocks will lead to the fact that the responsible validators lose their deposits (at least two-thirds of the entire deposit). As long as the block manufacturing mechanism meets certain criteria, the finalized chain grows.
The GRANDPA finalization mechanism is used for all parachains in Polkadot. In exchange for the finalization mechanism, each parachain gets the option of interoperability with other parachains. This compromise allows Polkadot to provide a simple communication mechanism that allows the collators of the parachain to communicate directly through inbound and outbound message queues.
Although parachains use the same finalization mechanism, each of them can implement different block production mechanisms, with different features and parameters, optimized for a specific class of applications.
Parachain Development Kits (PDKs) are tools that greatly simplify the development of specialized parachains. One such PDK is the Substrate framework, which comes bundled with the Framework for Runtime Aggregation of Modularized Entities (FRAME).
Substrate includes built-in implementations of block production algorithms: BABE, Aura and others. Another PDK, Cumulus, contains the glue code needed to connect a Substrate-based chain to the Polkadot network. Together, Substrate and Cumulus facilitate the creation and communication of parachains with the Polkadot network.
Depending on the block production algorithm and parameters, the transaction throughput of each network can vary, so the total transaction throughput of the Polkadot network can only be estimated approximately.
The first version of Polkadot provides 100 parachains. Assuming each parachain is capable of supporting at least 10 transactions per second, the lower limit for throughput is approximately 1000 transactions per second.
Future versions of Polkadot will allow the parachain to function as a Layer 2 relay chain with additional parachains attached to form a tree structure that theoretically provides unlimited bandwidth.
At a certain stage, the main relay chain becomes an element that limits the efficiency of the system, but only in order to validate the processing of the input queue, since the parachains communicate directly with each other. By some estimates, the tree structure will allow Polkadot to scale up to 10,000x the capacity of a single PoS chain.