bitcoin-dev

BIP151 protocol incompatibility

BIP151 protocol incompatibility

Original Postby Pieter Wuille

Posted on: February 13, 2017 08:47 UTC

On February 12, 2017, Eric Voskuil posted a message on bitcoin-dev stating that the BIP151 proposal is not actually backward compatible, despite what was stated in the proposal.

The reason for this is that sending content that current nodes do not expect can lead to incompatibilities and make the implementation vulnerable to DOS attacks. Furthermore, the version handshake must be completed before the protocol level can be determined. While ignoring unknown messages may only lead to a waste of downstream bandwidth, using the protocol level for determining optional features is more elegant, simple, and does not create new attack vectors. This is because using otherwise ignored messages allows for a strict linear progression of allowed network protocol features, which becomes increasingly difficult to maintain with continued increments of the protocol version. In summary, Voskuil's message on bitcoin-dev highlights issues with the BIP151 proposal's claim of backward compatibility and suggests an alternative approach to determining optional features within the protocol.