Chapter overview:
  * describes how channels are put together at the script+transaction level
  * details how a channel if funded in the protocol
  * details how a channel is updated in the protocol
  * describes what needs to happen when a channel is force closed

Relevant questions to answer:
  * Channel construction:
      * What's the difference between a replace-by-revocation based and a replace-by-versioning commitment format?
      * What does the funding output script look like, what security guarantees does it give us?
      * What's the difference between CSV and CLTV? How do both of these use the existing fields of the transaction to enforce new behavior?
      * How do we implement revocation in our channel format?
      * What does the script on the commitment to the broadcaster look like?
      * What does the script on the commitment for the party that didn't broadcast look like?
      * How are HTLCs constructed? What are second-level HTLCs?
      * How has the commitment format in LN changed over time? What are some of the changes to the commitment format that've happened?
  * Funding flow and messages:
      * What are the messages exchanged to initiate a new channel with another peer?
      * What do the parameters such as the max in flight do?
      * How should the CSV values and the number of blocks until a channel is considered confirmed change with the size of the channel?
      * What are wumbo channels? How are they enabled?
      * What is an upfront shutdown address? What security does it offer?
      * Is it possible to open multiple channels in a single transaction?
  * Channel state machine:
      * What does Medium Access Control mean in the context of network protocols?
      * At a high level, how does the MAC protocol for 802.11 work?
      * What steps need to happen for a new commitment state to be proposed and irrevocably committed for both parties?
      * When is it safe for a party to forward a new HTLC to another peer? (may be out of scope for this chapter)
      * Is it possible to commit a 
      * How does the current MAC protocol for the LN work?
        * What does an htlc_add message contain?
        * How are HTLCs cancelled or settled?
        * Can both parties propose updates at the same time?
        * Is it possible for a party to add a batch of HTLCs in a single go?
        * What constraints exist that both parties need to adhere to?
      * How are fees paid in a channel? Who pays which fees? Has this changed with newer commitment formats?
      * How would the MAC protocol need to change if we used channels with symmetric state?
