Over the past year, the prevailing thought among many in the cryptocurrency communities is that bitcoin is not keeping up with other coins. That somehow bitcoin was being intentionally crippled, or that the developers did not know what they were doing. As we are seeing with the bitcoin dominance going up, that prevailing thought was wrong. The coins who were supposedly going to kill bitcoin have been all but abandoned in many cases. Many others are in the process of dying a slow death (which may take years to fully play out).
To everyone who went heavy on these coins and sold all of their bitcoin, but are now coming back: Welcome back. We are glad to have you. But before you pretend like everything is great with bitcoin again, it's important to realize why you were wrong.
But first let's go back a few years. In 2015, I was a staunch big blocker. I want to share a post made during this time that I initially downvoted. (The reason I know this is because after a certain number of months/years, reddit does not let you change whether you upvoted/downvoted something). I downvoted it because it went against my biases which had already been built up around the scaling decision, and later I came back to this post after being referred to it again. The 2015 version of me had only been in Bitcoin for 2 years, and was disillusioned with what I thought bitcoin was. And not what it actually was, or what its limitations were. The 2018 me now realizes why I was wrong, but back then I spent far too much time thinking I had it all figured out. The post that I downvoted, is as relevant today as it ever was:
A trip to the moon requires a rocket with multiple stages or otherwise the rocket equation will eat your lunch… packing everyone in clown-car style into a trebuchet and hoping for success is right out.
A lot of people on Reddit think of Bitcoin primarily as a competitor to card payment networks. I think this is more than a little odd– Bitcoin is a digital currency. Visa and the US dollar are not usually considered competitors, Mastercard and gold coins are not usually considered competitors. Bitcoin isn't a front end for something that provides credit, etc.
Never the less, some are mostly interested in Bitcoin for payments (not a new phenomenon)– and are not so concerned about what are, in my view, Bitcoin's primary distinguishing values– monetary sovereignty, censorship resistance, trust cost minimization, international accessibility/borderless operation, etc. (Or other areas we need to improve, like personal and commercial privacy) Instead some are very concerned about Bitcoin's competitive properties compared to legacy payment networks. … And although consumer payments are only one small part of whole global space of money, … money gains value from network effects, and so I would want all the "payments only" fans to love Bitcoin too, even if I didn't care about payments.
But what does it mean to be seriously competitive in that space? The existing payments solutions have huge deployed infrastructure and merchant adoption– lets ignore that. What about capacity? Combined the major card networks are now doing something on the other of 5000 transactions per second on a year round average; and likely something on the order of 120,000 transactions per second on peak days.
The decentralized Bitcoin blockchain is globally shared broadcast medium– probably the most insanely inefficient mode of communication ever devised by man. Yet, considering that, it has some impressive capacity. But relative to highly efficient non-decentralized networks, not so much. The issue is that in the basic Bitcoin system every node takes on the whole load of the system, that is how it achieves its monetary sovereignty, censorship resistance, trust cost minimization, etc. Adding nodes increases costs, but not capacity. Even the most reckless hopeful blocksize growth numbers don't come anywhere close to matching those TPS figures. And even if they did, card processing rates are rapidly increasing, especially as the developing world is brought into them– a few more years of growth would have their traffic levels vastly beyond the Bitcoin figures again.
No amount of spin, inaccurately comparing a global broadcast consensus system to loading a webpage changes any of this.
So– Does that mean that Bitcoin can't be a big winner as a payments technology? No. But to reach the kind of capacity required to serve the payments needs of the world we must work more intelligently.
From its very beginning Bitcoin was design to incorporate layers in secure ways through its smart contracting capability (What, do you think that was just put there so people could wax-philosophic about meaningless "DAOs"?). In effect we will use the Bitcoin system as a highly accessible and perfectly trustworthy robotic judge and conduct most of our business outside of the court room– but transact in such a way that if something goes wrong we have all the evidence and established agreements so we can be confident that the robotic court will make it right. (Geek sidebar: If this seems impossible, go read this old post on transaction cut-through)
This is possible precisely because of the core properties of Bitcoin. A censorable or reversible base system is not very suitable to build powerful upper layer transaction processing on top of… and if the underlying asset isn't sound, there is little point in transacting with it at all.
The science around Bitcoin is new and we don't know exactly where the breaking points are– I hope we never discover them for sure– we do know that at the current load levels the decentralization of the system has not improved as the users base has grown (and appear to have reduced substantially: even businesses are largely relying on third party processing for all their transactions; something we didn't expect early on).
There are many ways of layering Bitcoin, with varying levels of security, ease of implementation, capacity, etc. Ranging from the strongest– bidirectional payment channels (often discussed as the 'lightning' system), which provide nearly equal security and anti-censorship while also adding instantaneous payments and improved privacy– to the simplest, using centralized payment processors, which I believe are (in spite of my reflexive distaste for all things centralized) a perfectly reasonable thing to do for low value transactions, and can be highly cost efficient. Many of these approaches are competing with each other, and from that we gain a vibrant ecosystem with the strongest features.
Growing by layers is the gold standard for technological innovation. It's how we build our understanding of mathematics and the physical sciences, it's how we build our communications protocols and networks… Not to mention payment networks. Thus far a multi-staged approach has been an integral part of the design of rockets which have, from time to time, brought mankind to the moon.
Bitcoin does many unprecedented things, but this doesn't release it from physical reality or from the existence of engineering trade-offs. It is not acceptable, in the mad dash to fulfill a particular application set, to turn our backs on the fundamentals that make the Bitcoin currency valuable to begin with– especially not when established forms in engineering already tell us the path to have our cake and eat it too– harmoniously satisfying all the demands.
Before and beyond the layers, there are other things being done to improve capacity– e.g. Bitcoin Core's capacity plan from December (see also: the FAQ) proposes some new improvements and inventions to nearly double the system's capacity while offsetting many of the costs and risks, in a fully backwards compatible way. … but, at least for those who are focused on payments, no amount of simple changes really makes a difference; not in the way layered engineering does.
If you're made it this far and want to read more, or perhaps from a different perspective, here is another article which influenced me more recently by Melik Manukyan
Lightning Network enables Unicast Transactions in Bitcoin. Lightning is Bitcoin’s TCP/IP stack.
It has recently come to my attention that there is a great deal of confusion revolving around the Lightning Network within the Bitcoin and Bitcoin Cash communities, and to an extent, the greater cryptocurrency ecosystem. I’d like to share with you my thoughts on Bitcoin, Blockchain, and Lightning from a strictly networking background.
To better understand how blockchain and the lightning network work, we should take a step back from the rage-infused battlegrounds of Twitter and Reddit (no good comes from this 😛) and review the very network protocols and systems that power our Internet. I believe that there is a great wealth of knowledge to be gained in understanding how computer networks and the Internet work that can be applied to Bitcoin’s own scaling constraints. The three protocols I will be primarily focusing on in this article are Ethernet, IP, and TCP. By understanding how these protocols work, I feel that we will all be better equipped to answer the great ‘scaling’ question for Bitcoin and all blockchains alike. With that said, let’s get started.
In computer networking, the two most common forms of data transmission today are broadcast and unicast. There are many other forms such as anycast and multicast, but we won’t touch up on them in this article. Let’s first start by defining and understanding these data transmission forms.
Broadcast — a data transmission type where information is sent from one point on a network to all other points; one-to-all.
Diagram: Broadcast Data Transmission https://cdn-images-1.medium.com/max/800/1*xbgXKepaeHZRqmHWsCb_qw.png
Unicast — a data transmission type where information is sent from one point on a network to another point; one-to-one.
Diagram: Unicast Data Transmission https://cdn-images-1.medium.com/max/800/1*i18TOm6hT_h7UQ8cnt8U_Q.png
Based on our understanding of these types of data transmission forms, we very quickly discover that blockchain transactions resemble Broadcast-like forms of communication. When a transaction is made on the Bitcoin network, the transaction is communicated or broadcasted to all connected nodes on the network. In other words, for a transaction to exist or happen in Bitcoin, all nodes must receive and record this transaction. Transactions on blockchains work very similarly to how legacy, ethernet hubs handled data transmissions.
A long time ago, we relied on ethernet hubs to transfer data between computers. Evidently, we discovered that they simply did not scale due to their limited nature. Old ethernet hubs strictly supported broadcast transmissions, data that would come in through one interface or port would need to be broadcasted and replicated out through all other interfaces or ports on the network. To help you visualize this, if you wanted to send me a 1MB image file over a network with 100 participants, that 1MB image file would, in turn, need to be replicated 99 times and broadcasted out to all other users on the network.
In Bitcoin, we see very similar behavior, data (a transaction or block) that comes from one node is broadcasted and replicated to all other nodes on the network. Blockchains similarly to old, legacy ethernet hubs are simply poor mediums to perform data transmission and communicate over. It is simply unrealistic to me as a network engineer to even consider scaling a global payment network such as Bitcoin via Broadcast-based on-chain transactions. Even to this very day, us network engineers take great care and caution in spanning our Ethernet and LAN networks, let alone on a global level.
To put it into perspective, if we were to redesign the Internet by strictly relying on broadcast data transmissions as exhibited in blockchains and ethernet hubs — we would have effectively put every single person, host, and device in the entire world on the same LAN segment or broadcast domain. The Internet would have been a giant, flat LAN network where all communication would need to be replicated and broadcasted to every single device. In you opening up to read this article, every other device on the Internet would have been forced to download this article. In other words, the internet would come to a screeching halt.
In computer networks, the most frequent form of communication relies on unicast data transmissions, or point-to-point. Most of the communication on the internet is routed from one computer to another, we no longer need to rely on blind broadcast transmissions of data with the hopes that our recipient will receive it or see it. We are able to accurately send, route and deliver our messages to our receiving party(ies). We learned that the transfer of a 1MB image file in a broadcast network would require the file to be replicated and broadcasted to every participant on that network. Instead, in a network that supports unicast data transmissions, we are able to appropriately route that image file from source to destination in a clearcut manner.
To me, the Lightning Network is the IP layer of Bitcoin. (I understand that these data transmission forms exist in both Ethernet and IP.) But, I do feel that these analogies help us to better understand these complex and largely abstract ideas: blockchain, lightning, channels, etc.
Let’s take a moment and ignore all explanations and overly simplistic definitions of Lightning that are perpetuated from both sides of the debate for a moment. Instead, lets objectively take a close look at Lightning and determine what we know. What do we know about lightning? It allows us to lock our Bitcoin and form channels with others. What else do we know? We can bidirectionally send and receive transactions between the two points that constitute the channel. What else do we know? We can further route transactions to their correct destination.
Based on these key understanding points, we are able to see that lightning enables unicast transactions in a system [Bitcoin] that previously only supported broadcast transactions. To me, Lightning nodes in Bitcoin are the equivalent of IP hosts — where we can finally conduct or route one-to-one or point-to-point transactions to their appropriate recipients. In traditional IP, we send and receive data packets; in Lightning, we send and receive Bitcoin. IP is what allowed us to scale our small and largely primitive networks of the past into the global giant that it is today, the Internet. In a similar manner, Lightning is what will allow us to scale our global Bitcoin network.
Where Lightning Nodes can be seen as IP hosts, I view Lightning Channels as established TCP connections. On the Internet today, when we try to connect to a website for example, we open a TCP connection to a web server through which we can then download the website’s HTML source code from. Alternatively, when we download a torrent file, we are opening TCP connections to other computers on the Internet which we then use to facilitate the transfer of the torrent data.
And in Lightning, we establish channels with our respective parties and are able to directly [point-to-point] send and receive data (transactions) similarly to TCP. Where Blockchain is similar to Ethernet, Lightning Nodes are our IPs and Lightning Channels our TCP connections.
To conclude, I see many similarities to our pre-existing network technologies and protocols that power our computer network(s) and I feel that we are redesigning the Internet. From a technical point of view, I don’t believe that scaling Bitcoin on-chain will ever work and fear broadcast storm-like events in the future. I welcome our new unicast transaction methods enabled by the Lightning Network. Even more so, I am excited for the ‘web’ moment in Bitcoin.
While everyone has their eyes fixed on blockchain technology, I look towards Lightning. Lightning is the TCP/IP stack of Bitcoin. Lightning is where we will transact on. Lightning is where everything will be built on. Lightning is what will power and enable our applications and additional protocols and layers. With this said, what is to become of the main Bitcoin blockchain? It will and should remain a decentralized, tamper-proof, immutable base or foundation layer which will provide us with cryptographic evidence of what is a Bitcoin.
Some individuals and groups within our communities and ranks spread fear and warn us of false narratives of “lightning hubs”, but fail to grasp that their scaling approach of on-chain transactions only pushes us in the direction of an actual (ethernet) hub design. If Bitcoin loses decentralization on its base layer, then we will lose Bitcoin. The past 9 years of work will have only resulted in a large, centralized broadcast hub with only a few remaining with the ability to operate such a monstrosity.
I wrote this article with hopes that it will help clear up the ongoing confusion about Bitcoin, Blockchain, and Lightning. It is designed to help better explain Blockchain and Lightning through analogies to concepts that we may be more familiar with. I also wrote this very quickly and it may contain typos. If you notice any typos, please bring it to my attention.