bitcoin-dev

BIP151 protocol incompatibility

BIP151 protocol incompatibility

Original Postby Eric Voskuil

Posted on: February 14, 2017 19:54 UTC

In a discussion on the Bitcoin development list about BIP151, Jonas Schnelli raised concerns that the new control message in BIP151 could be sent before the version handshake, meaning it is not backward compatible.

Eric Voskuil, an independent Bitcoin developer, agreed with Schnelli but stated that this increased security. When asked to back up his assertion that allowing unknown messages in a protocol encourages protocol incompatibility, Voskuil argued that over time, there could be a range of peers inter-operating with the full network while running their own sub-protocols, making it difficult to determine what the protocol is. He believes that because the handshake gives each peer the other peer's version, it obligates the newer peer to conform to the older (or disconnect if the old is insufficient). That's the nature of backward compatibility. When asked why the implementation should treat unknown messages differently for messages specified in BIP151, Voskuil argued that it properly validated the protocol, and that this was the purpose of version negotiation.