The main goal of the protocol is to take a parachain block from creation to inclusion through a process that can be repeated multiple times in parallel for each parachain connected to the relay network. Validators and collators are involved in the protocol.

The overall scheme consists of three stages involving two sections: the inclusion pipeline and the approval process. The diagram shows the movement of the block (white square) through all stages from right to left.

Inclusion pipeline

The inclusion pipeline is the path of a parachain block from its creation to inclusion in the relay network, during which it receives different statuses. 

Key points in this section (the process in the picture goes from right to left):

  1. Validators are assigned to all parachains through the "validator assignment" procedure.

  2. The collator creates a parachain block candidate along with PoV.

  3. The collator sends the candidate and PoV to the assigned validators. The candidate receives the "seconded" status.

  4. Validators participate in the "candidate backing" subsystem. Candidates who receive enough approval are backed. Their backing consists of a set of signed affirmations.

  5. The relay chain block author is chosen using BABE (Blind Assignment for Blockchain Extension), a block production mechanism. The author can mark up to 1 backed block for each parachain to include it in the relay chain block. After this, the candidate is considered backed.

  6. The candidate receives the "pending availability" status but is not yet considered part of the parachain.

  7. In the next relay chain blocks, validators participate in the "availability distribution" subsystem to ensure candidate availability.

  8. At this stage, the relay chain state machine receives enough information to consider the block's PoV available. The block's status then changes to "included" and is considered part of the parachain, becoming a full block (parablock).

In some cases, the candidate may not be included in the parachain:

  1. The collator cannot pass the block to any assigned validators.

  2. The candidate is not backed by validators in the "candidate backing" subsystem.

  3. The relay chain block author did not choose the candidate.

  4. The candidate's PoV is unavailable for a timeout, and it is dropped from the relay chain.

The inclusion pipeline must be completed before a new block can be accepted in a given parachain. After the inclusion process is successfully completed, the parablock transitions to the approval process, which can occur for many parachain blocks simultaneously.

Approval Process

Although the block is already considered part of the parachain, it has a "pending approval" status. Polkadot assumes that a third of validators may be dishonest and mistakenly support the candidate, even by random selection. The approval process addresses this issue by allowing retroactive detection of wrongful behavior.

The approval process can be divided into the following stages:

  1. Parablocks await approval during a temporary window.

  2. During this time, secondary validators are independently called to perform a recheck of each parablock.

  3. Secondary validators receive the parablock with PoV and run the verification function again.

  4. After this, information about the verification results is exchanged, and where there are discrepancies, a dispute arises where all validators must check the block. Validators on the losing side...