Listen To The Episode Here:
In this episode of “Bitcoin, Explained,” hosts Aaron van Wirdum and Sjors Provoost discuss a recent bug in the btcd Bitcoin implementation that affected a large part of the Lightning Network, as it disconnected LND Lightning nodes from the Bitcoin blockchain.
In the episode, van Wirdum and Provoost explain that a developer going by the name Burak on Twitter created a 998-of-999 multisig transaction by leveraging the recent Taproot upgrade. Although this was a valid transaction, btcd and LND nodes rejected it, and therefore rejected the block that included the transaction and all blocks that came after it. Lightning Labs released a patch that same evening to fix the issue with LND nodes.
Specifically, Provoost explains, btcd rejected the transaction because it has a maximum limit on how much witness data a Segwit transaction can include. Although other Bitcoin implementations do enforce this limit on Segwit version 0 transactions, Segwit version 1 (that is, Taproot) transactions have no such limit. This discrepancy is what seems to have caused the issue in the btcd implementation.
Still, it is a bit unclear why this bug in btcd seemingly also affected many LND Lightning nodes which use Bitcoin Core rather than btcd to validate blocks. In the second half of this week’s episode, Provoost speculates how the two may be connected.
To conclude the episode, van Wirdum and Provoost explain how the Lightning Network is affected when Lightning nodes reject the Bitcoin blockchain.