🍰 Layered Limitations — Issue No. 67


On Friday, September 27th, Bitcoin developer Rusty Russell disclosed the nature of a critical vulnerability in all major Lightning Network implementations. Though the specific details are slightly different in each case, the basic premise is the same: prior versions of the software didn't check that the channels used to route payments were funded. This would allow an attacker to appear to send funds that didn't actually exist. The fact there was some vulnerability had been disclosed 4 weeks earlier, and users of the layer 2 Bitcoin payments network were advised to upgrade immediately. This announcement revealed the specifics of the vulnerabilities, now that most users have upgraded to patched clients. Link.

If that seems like a pretty bad bug to you, well, you're not wrong. Lightning is still an extremely nascent network. Currently, there is one node operator that controls about 40% of the network's modest liquidity, which sits at only 813 BTC in total. In a recent interview with The Block, that operator revealed that, while he is bullish on Lighting in the long term, he estimates only 1,000 – 1,500 payments happen on the network per day. By comparison, the Bitcoin chain itself process several hundred thousand transactions on a daily basis. So, while this vulnerability could have allowed an attacker to steal funds, the truth is that there aren't that many funds moving through the network to steal. Link.

Bitcoin, though, is not the only network where layer 2 scaling solutions have proved lackluster. On Ethereum, many have been hard at work on Plasma and other layer 2 designs fo years, but there is very little to show for it in terms of usage or working networks. In a recent blog post, Ethereum co-creator Vitalik Buterin admitted that the limitations of layer 2 are becoming more apparent, and detailed a number of "hybrid" layer 2 solutions that are now being considered. These designs reduce complexity by pushing more of the work back onto the main chain itself. This somewhat limits the scaleability benefits these solutions can offer, but makes them much easier to build— at least in theory. Link.

I've been saying for a long time that, while I'm impressed by the tech behind Lightning, it feels like the network is still extremely early. Recently, I've started to wonder if the reason I'm so impressed by Lightning's tech is actually part of the problem; it's pretty darn complicated.

One of the things I found incredible about Bitcoin when I first discovered it was its simplicity. As a developer, I read the 8 page whitepaper and basically understand how the system worked. It's extremely elegant. Lightning, on the other hand, takes quite a bit of time and effort to wrap one's head around, even at a conceptual level. The details are complex and not fully worked out. That a bug as serious as the one revealed could exist for this long demonstrates this.

Part of the reason Lightning is complex is because Bitcoin is simple. At the base layer, Bitcoin lacks the expressivity that might make layer 2 solutions easier to build. Yet even on Ethereum, which has rich statefulness and Turing complete smart contracts, successful layer 2 solutions have been elusive. These things are hard to build.

Let's also be honest with ourselves: it's not clear the demand is there yet either. For all the talk of network congestion, average fees on the Bitcoin network have mostly remained under a dollar in 2019, at times dropping as low as a few pennies.

I do think it will ultimately be possible to build scaleable layer 2 solutions on top of Bitcoin and Ethereum. Lightning may yet end up a big success. But it's going to be hard, and it's going to take time. Part of me thinks we may not really have the will to adopt complex layer 2 solutions until they're absolutely needed, and part of that means seeing just how far we can push the base layer.

If, for example, Ethereum 2.0 succeeds over the next couple of years, we may have a layer 1 protocol that scales significantly better via Proof-of-Stake and sharding. That would drastically reduce the urgency for layer 2 solutions. Even Lightning would be less necessary in such as world, as a trust minimized version of Bitcoin on the Ethereum network could be used for fast & cheap Bitcoin transfers. If, on the other hand, Ethereum 2.0 (and other similar projects) fall flat, then, as I wrote last week, the industry may finally be ready to push layer 2 solutions forward. How this all plays out is still very much up in the air. All I can tell you is to stay tuned and enjoy the show!