Episode 66: The BTCD Bug That Brought Down LND Nodes
Ep. 66

Episode 66: The BTCD Bug That Brought Down LND Nodes

•

Episode description

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, Aaron and Sjors explain that a developer going by the name Burak on Twitter created a 998-of-999 multisig transaction by leveraging Taproot. 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.

Specifically, Sjors 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.

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 the episode, Sjors speculates how the two may be connected.

Finally, Aaron and Sjors explain how the Lightning Network is affected when Lightning nodes reject the Bitcoin blockchain.

Chapters

00:00:00 Bitcoin Amsterdam and opening updates
00:01:27 The LND outage and Burak’s transaction
00:04:26 Taproot multisig and witness size limits
00:11:49 The btcd validation bug
00:15:14 How stalled blocks affect Lightning channels
00:17:11 Why LND nodes using Bitcoin Core were affected
00:22:42 Fork Monitor and a bug predating Taproot
00:24:43 User risks: channel timeouts and cheating
00:29:49 Routing failures and open questions

0:00Bitcoin Amsterdam and opening updates
1:27The LND outage and Burak’s transaction
4:26Taproot multisig and witness size limits
11:49The btcd validation bug
15:14How stalled blocks affect Lightning channels
17:11Why LND nodes using Bitcoin Core were affected
22:42Fork Monitor and a bug predating Taproot
24:43User risks: channel timeouts and cheating
29:49Routing failures and open questions