Published on: 2016-02-05T23:25:14+00:00
Johnson Lau proposed a new algorithm for the transaction commitment in block header to address the issue of Simplified Payment Verification (SPV) nodes automatically following a planned hard fork without explicit opt-in consent. This proposal aims to ensure that SPV nodes will not accept any incoming transactions on a new chain without being able to verify them with the new commitment format. The proposed Bitcoin Improvement Proposal (BIP) specifies using Double-SHA256(zero|merkle_root|zero) as the commitment instead of directly committing the Merkle root to the header. This change does not alter the header structure, allowing non-upgraded SPV nodes to still verify the proof-of-work of the new chain. However, they will not accept any transactions on the new chain until further actions are taken by their operators. Additionally, SPV nodes will not accept any new transactions on the old chain either, as it has less proof-of-work.This proposal acts as a supplement to the hardfork bit BIP, which informs full and SPV nodes about a planned hard fork. Lau's proposal ensures that SPV nodes will not lose any money in a hard fork, even if they do not check the hardfork bit. While this mechanism intentionally breaks backward compatibility, non-upgraded full nodes and SPV nodes can still verify the proof-of-work of upgraded blocks.To address potential fraudulent behavior during hard forks, a fraud-proof system is proposed. This system generates compact proofs to identify invalid blocks on the blockchain, which can be verified by SPV nodes. Hard forks without malicious intentions may also be considered as "fraud" among non-upgraded nodes. With this proposal, non-upgraded SPV nodes will always believe the new chain is valid but cannot be defrauded as they will not see any incoming transactions.The proposed BIP, authored by Johnson Lau, is currently in draft mode and available in the public domain. The compatibility of this proposal may need to be evaluated on a case-by-case basis, as changing the padding value may not always be necessary and could cause unnecessary disruption.
Updated on: 2023-08-01T17:44:38.355983+00:00