The idea of weak blocks was initially proposed by TierNolan (Pseudonym) in 2013 and later extended in Rizun’s subchain concept. Weak blocks represent otherwise valid blocks, which do not meet the target difficulty D of the underlying cryptocurrency but satisfy some lower difficulty D_weak, i.e. D_weak < D. Instead of being discarded, these blocks can be reused and exchanged between miners to potentially reduce transaction
Weak blocks form so called subchains between consecutive full blocks by referencing the previous’ weak blocks block header in an additional pointer. Taking Bitcoin as example, full blocks have an interval of 10 minutes. As the difficulty target of weak blocks can be chosen arbitrarily (only requirement is that D_weak < D), the interval between such blocks can be significantly lower than that of full blocks. Taking into account that weak blocks are otherwise fully valid Bitcoin blocks, they can be used for faster (weak) transaction
confirmations. The lower block intervals further can be of advantage for miners: by participating in building and validating subchains, miners can profit from being able to earlier determine diverging blockchain branches, i.e., so called forks. As a result, miners face a lower risk of investing computational effort on a blockchain branch, which will be later discarded as the shorter chain.
The process of mining weak blocks is similar to the normal mining process. Each time a miner finds a valid solution to the PoW of the underlying cryptocurrency, he can perform the following actions:
- If the PoW solution matches the requirements of target difficulty D, the miner creates and publishes a full block. Consequently, he starts to search for the PoW solution for the next full block.
- If the PoW solution does not fulfil the requirements of D, but meets the requirements of D_weak, the miner builds and publishes a weak block. Consequently, he resumes the search for the PoW solution to the current full block. Depending on the structure of the references to preceding weak blocks in the subchain, the miner may be required to adjust some parts of the block (e.g. coinbase transaction) before resuming the mining process.
An exemplary visualisation of subchains created between consecutive full blocks in a blockchain is provided in the Figure below:
Further discussions related to the concept of weak blocks and subchains can be found in :
- G. Andersen. Comment in “faster blocks vs bigger blocks”. https://bitcointalk.org/index.php?topic=673415.msg7658481#msg7658481, 2014.
- G. Andersen. “[bitcoin-dev] weak block thoughts…” .https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2015-September/011157.html, 2015
- G. Maxwell. Comment in “[bitcoin-dev] weak block thoughts…”.
- K. Rosenbaum. “Weak blocks — the good and the bad”. http://popeller.io/index.php/2016/01/19/weak-blocks-the-good-and-the-bad/, 2016
- K. Rosenbaum and R. Russell. “Iblt and weak block propagation performance”. Scaling Bitcoin Hong Kong (6 December 2015), 2015.
- R. Russel. “Weak block simulator for bitcoin”. https://github.com/rustyrussell/weak-blocks, 2014
Despite having seen active discussions, as of today we are not aware of implementations of the weak blocks concept. One possible explanation for the absence of development in this area is the lack of incentive for miners to participate in building subchains. The intrinsic rewards in form of earlier fork detection may be insufficient when put in contrast to the possible overhead for participating miners in terms of computation (not proof-of-work, but verification of transactions and additional consensus rules), bandwidth and maintenance.
(Disclaimer: The text in this article is an edited excerpt from my Thesis: “Merged Mining: Analysis and Implications”, A. Zamyatin, MSc Thesis, TU Wien, 2017, PDF available here)