bitcoin-dev

Combined summary - BIP151 protocol incompatibility

Combined summary - BIP151 protocol incompatibility

In a discussion about the implementation of BIP151, which aims to improve security in communication between Bitcoin nodes by encrypting messages, concerns were raised regarding its backward compatibility.

While some argued that allowing unknown messages in a protocol encourages protocol incompatibility and potential denial-of-service attacks, others believed that the exchange of otherwise-ignored messages for setting up optional features is a valid part of the version handshake and protocol negotiation.The conversation also touched on the fact that control messages apart from BIP151 are not sent until after the version is negotiated. It was noted that BIP151 negotiates encryption before any other communications, including the version handshake. The compatibility of feefilter BIP133 and sendheaders BIP130 with BIP151 was also discussed, with the consensus being that if these messages are received by a node below the version at which they are activated, they are considered unknown messages and indicate an invalid peer.There was debate regarding whether sending content that existing nodes do not expect constitutes an incompatibility. Some argued that this approach could leave the implementation vulnerable to DOS attacks, while others believed that it allows for a strict linear progression of allowed network protocol features. The importance of maintaining existing protocol behavior and soliciting community feedback before implementing changes that could break fundamental aspects of the P2P protocol handshake was emphasized.Overall, it was concluded that while the BIP151 proposal claims to be backward compatible, there are concerns regarding its compatibility and potential security implications. Further revisions and community feedback may be necessary before its implementation.

Discussion History

0
Eric VoskuilOriginal Post
February 13, 2017 05:18 UTC
1
February 13, 2017 08:47 UTC
2
February 13, 2017 09:36 UTC
3
February 13, 2017 10:07 UTC
4
February 13, 2017 10:16 UTC
5
February 13, 2017 10:30 UTC
6
February 13, 2017 10:54 UTC
7
February 13, 2017 11:11 UTC
8
February 13, 2017 11:14 UTC
9
February 13, 2017 11:17 UTC
10
February 13, 2017 13:04 UTC
11
February 14, 2017 19:54 UTC
12
February 14, 2017 20:58 UTC