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 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 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.