In this commit, we attempt to construct the derivation method we used to
derive the revocation keys from first principles. This explanation was
inspired by a conversation with Rene, leading to a sort of Socratic
method explanation w.r.t why the remote party cannot be allowed to
unilaterally sign with the revocation public key.
This initial draft explanation is a bit too technical IMO, but it's
unclear how much prior knowledge we can expect from the reader and/or
how much space we should devote for explaining this little trick.
One thing we may want to do is use some shorter variable names (defined
earlier) to make this section a bit more compact.
We haven't described the set of TLV fields here used in the modern
protocol though, so we may want to enumerate all the fields used as the
top to provide more context. Alternatively, we can house them all in a
sort of index chapter and refer to that instead.
Could possibly be moved up to the section describing funding, as both
sides need to be able to derive the proper state hints to arrive at the
same set of commitment transactions.
A party can't pick its to_self_delay (the CSV delay) itself, as that
would mean they can set it to effectively zero and be able to breach at
will. Instead, both sides propose a CSV delay for the other, effectively
enforcing time delay that allows them to act in the face of a breach.
Similar to the prior commit, here we remove another piece of personally
identifiable information: the public key of Rene's known (?) routing
node on the public network.
As is the chapter uses 144.76.235.20 which has a PTR DNS record to
rene-pickhardt.de. Rather than include possibly private information
relating to the authors of the book, we opt to use an IP address from a
known private range. This doesn't take away from the example, but lets
us include less personally identifying information in the book.