Issolated Bitcoin Nodes [combined summary]



Individual post summaries: Click here to read the original discussion on the bitcoin-dev mailing list

Published on: 2017-03-24T03:38:21+00:00


Summary:

On the Bitcoin development mailing list, there has been a discussion regarding backward compatibility issues between nodes running version 0.13.X+ and older versions. It was observed that when blocks are propagated from bitcoind 0.12.+ to newer nodes, they are not being propagated to peers with newer versions, while these newer blocks are being propagated to peers with older versions without any issues. This behavior is expected as nodes with SegWit active only download blocks from other SegWit peers, as old peers cannot provide the witness data required for verification.Bitcoin Testnet has faced chain splits and reorganizations due to the backward compatibility issue between nodes running version 0.12.x and those running 0.13.0 or higher. The latter requires Segregated Witness (SegWit) functionality and rejects blocks received from 0.12.x nodes with stripped witnesses. As Testnet has fewer nodes and less difficulty, some miners may use 0.13.0+ mining blocks which do not propagate well, leading to multiple chain splits and reorgs. This issue is currently unable to be exploited maliciously, but it can result in a 0.13+ node becoming isolated by 0.12 peers without notice to the owner. Alternative Bitcoin implementations may act as bridges between the two versions and facilitate chain reorgs.Investigations into the reorganizations in the Bitcoin testnet have revealed that the issue lies in nodes running version 0.12, which may have longer or different chains compared to newer versions like 0.13. There seems to be a problem in the communication between the different versions, where newer blocks are not being propagated to older nodes, while older blocks are being propagated without issues. This indicates a backward compatibility issue, which can be replicated by forcing a node to exclusively use peers running 0.12 or older versions. While there have been no reported malicious uses of this issue, node owners running 0.13 or higher should be aware of the potential for isolation by 0.12 peers.Reports of reorganizations in the Bitcoin testnet have been observed, with forks being created by multiple users mining different blocks on each chain. The issue appears to involve nodes running version 0.12, which may have longer or different chains than newer versions like 0.13. The problem lies in the communication between these versions, where newer blocks are not propagated to older nodes, while older blocks are propagated without issues. This backward compatibility issue can be replicated by exclusively using peers running 0.12 or older versions. While there have been no reported malicious uses of this issue, it is important for node owners running 0.13 or higher to be aware of the potential for isolation by 0.12 peers.There have been reorganizations in the Bitcoin testnet that are not related to network issues. Bitcoin explorers such as blocktrail.com or blockr.io were following different chains at different heights, indicating a backward compatibility issue between 0.13.X+ and older versions. This issue can be replicated by forcing the latest version of bitcoind to exclusively use peers of versions 0.12.X and older, resulting in the latest version node never receiving a new block. While it remains unclear if this issue can be exploited maliciously, Bitcoin 0.13.X+ should remain compatible with older versions, and there is no notice for the node owner.


Updated on: 2023-08-01T19:52:48.387435+00:00