Coincident Blocks
A coincident block is a block that is valid in multiple Quai blockchains. Coincident blocks are a naturally occurring, beneficial byproduct of merged mining that Quai Network utilizes to derive subordinate chain security from dominant chains, and to transition state between chains.
When mining Quai, each miner checks every nonce against three difficulty thresholds. Due to the nature of difficulty thresholds, a possibility will always exist that a single nonce will fulfill multiple of these difficulty thresholds. When this occurs, the nonce is considered valid in multiple contexts, creating a hash-linked reference between a dominant and a subordinate chain. This hash linked reference allows for cross-chain transactions and contract interactions between chains.
Why Do Coincident Blocks Occur?
To successfully mine a block, a miner must meet or exceed the entropy removal threshold of a blockchain. Miners often randomly find nonces that exceed the entropy threshold by one or more zeros. A coincident block is a block with a nonce that has removed enough entropy to also meet a secondary threshold value.
Probability of Mining a Coincident Block | Number of Extra Leading Zeros (binary) |
---|---|
50% | 1 |
25% | 2 |
12.5% | 3 |
6.25% | 4 |
Critically, the production of coincident blocks (and thus the hash linked references between chains) relies only upon the objective, thoroughly tested mechanism of hash-based mining. This differentiates Quai from other multi-chain solutions, which introduce new, subjective, non-atomic mechanisms to facilitate cross-chain transfers.
Rules of Coincident Blocks
- All dominant blocks must be coincident with all directly subordinate blocks.
- Subordinate blocks can be mined asynchronously without being included in a coincident block.
- For a coincident block to be valid, it must be valid in all pertinent contexts.
- Coincident blocks must be synchronously appended to ensure Rule #3.
- Coincident blocks have the same hash in all contexts in which they are valid, which provides cross-chain hash linked references.
Due to the nature of blockchain mining difficulty, all prime and region blocks are considered coincident blocks. Consequently, to produce a prime block the nonce must exceed the difficulty threshold of prime, region, and zone, and to produce a region block the nonce must exceed the difficulty threshold of region and zone. Prime is coincident with region and zone while region is coincident with just zone. Prime blocks act as a "knot" pegging all region and zone blocks to the prime blockchain. zone blocks are the only blocks in Quai Network which are not coincident.
While all Quai blockchains advance independently and asynchronously, they are stochastically synced together by the production of coincident blocks. At the point of coincident block production, all chains linked together by a coincident block are both simultaneously committing to the validity of that block, and appending that block to their context. If a coincident block would be valid in region and zone but not prime, it would not be appended to any chain. Similarly, if a coincident block would be considered valid in prime and region but not zone, it would not be appended to any chain. All coincident blocks must be appended simultaneously in all contexts, causing coincident blocks to slow subordinate chains to the performance of the most dominant chain for that block. In an extreme example, if prime, region, and zone chains had the same target block times, zone blockchains would see no improvement in performance as each zone block would be delayed to the performance of prime. Quai Network increases target block times by an order of magnitude in each of the dominant levels in order to create better performing subordinate chain subnets.
The smallest segment of the network that a node or miner can run is a "slice," which consists of the prime chain, a region chain, and a zone chain subordinate to the selected region chain. A slice is the smallest set a node can run trustlessly, as all data in a slice is trusting data from another part of the slice to validate and append blocks.