Network consensus level. Meta-consensus
Meta-consensus defines the general rules for adding blocks and block connectivity.
As other distributed ledgers CIL uses the Merkle tree to ensure data integrity. The tree is constructed by recording unit hash values of the previous blocks (we call it the block “parental link”). The rules determining the correct parental links as well as the procedure for resolving conflict situations (for example, double spending) constitutes the content of the logic of Meta- consensus. In general, when choosing parent hashes, we adhere to the principle of forming a partially ordered set of transactions in a chain of blocks in relation to the used transaction outputs.
The general structure of Meta-consensus-linked blocks is a directed acyclic graph, where the nodes are the vertices, and the edges are Merkle links between theblocks. When the load on the network increases, the graph “expands”, while decreasing it “shrinks”. In the edge case it turns into a classic hash chain as in common blockchains.
Meta consensus rules ensure the following:
Data integrity is provided by the well tested solution: the Merkle tree connects all the blocks into one network. Since all transactions interconnect via edges, they form a partially ordered set. The basic protocol rule or the “Parental Choice” rule looks like this: processed block must refer to all the previous blocks that contain the outputs of spent transactions.
Block requirements: All transactions must be ordered within the block by their submission time. It is not allowed to have transactions that consume the output of a later (next in order) transaction. Double spending prevention: Anti-spam (overloading the volume of the node). Resistance to network overload (DDOS-attack).