BOLTs and meaning of "MUST" in potentially adversarial contexts



Summary:

The RFC 2119 protocol, written in 1997, is harmful to lightning and cryptocurrency protocols as it assumes a world of good guys and bad guys, whereas Satoshi saw every node as pursuing self-interest alone. The lightning concept embraces this idea at an abstract level, making the navel-gazing necessary to carry that philosophy through into the byte-level details and how those details are sold to programmers. Cryptocurrency protocol specifications are 100% advisory, so there is no RFC 2119 MUST - only self-interest. A protocol spec attempts to program the programmers but people do not always do what is asked of them. Therefore, every detail must be sold, as there is no other source of authority at our disposal. Rusty Russell suggests dividing requirements into sender and receiver, with the former setting X and the latter closing the channel if X is not set or performing another action if X is set. While the spec does not live up to this property in all places, bugs are fixed where found.


Updated on: 2023-05-24T18:26:28.120015+00:00