BSV as a parallel Token Ring Network

This week, I think we should try something different. Let’s look at BSV from the perspective of a networking engineer.

Now, first the disclaimers: I am not a networking engineer, I know my way around computer networks, coming from a computer and electrical engineering background, but I’m not a card-carrying IEEE member or have done any work in my professional career in networking, short of setting up your run of the mill gaming LANs (Local Area Networks) back in the day in order to get some Command and Conquer and Quake parties going. That said, having setup a fair number of LANs in my day, I have had quite a bit of hands-on experience with routers, switches, MAUs and interfaces of all sorts, and remember the good ol’ days before PnP (Plug and play for all you kiddies out there) when installing hardware and getting your OS to play nice with it was quite a fun experience1. So while I’m still the kind of person who would have to reach for my copy of William Stallings’ seminal textbook if I needed to explain details of networking protocols, I at least count myself in the group literate enough to understand the text without checking a dictionary every other sentence.

That out of the way, let me take you on a trip down memory lane, before the Internet was a common household utility, the term “World Wide Web” was still something that people would say in its entirety, and Duran Duran played on the radio. (And ‘radio’ didn’t mean Apple iTunes or Spotify!). Back then, there were many different networking protocols that competed with each other: x.25, FDDI vs Frame Relay, vs ATM (no, not the cash machine)… but the competition that was the VHS vs BetaMax2 of the time was the major battle in LANs fought between Ethernet and Token Ring. You have probably heard of Ethernet (or 802.3 according to official IEEE designation), even if it is just a term you remember seeing on the back label of your WiFi router. It is ubiquitously the protocol that runs most LANs these days. Its common CAT6 cables are just known as ‘network cables’ now, unless you are an engineer, and even then there is no need to refer to any other kind of network cable. But 25 years ago, there was a heated battle over networking standards and hardware, and Ethernet was in competition with the incumbent technology backed by the giant IBM, called Token Ring.

Before we can talk about how they differed, and how this all applies to BSV, we first have to briefly go over what a LAN (or ‘Datalink’ in OSI speak) protocol does. Basically, it exists to define a communications process by which network interface cards (network—cards—yes! Back in the day they were separate expansion boards from your computer motherboard), would talk to each other over a shared medium, normally a bunch of computers connected to a common hub device. 

Ethernet allowed any device to broadcast to any other at any time, without establishing a designated time or order when messages can be sent, which meant that if two hosts tried to broadcast at the same time a collision would occur, and the messages would be garbled. Think of it like a bunch of people holding megaphones in a very large room3. As long as only one person spoke, then everyone can make out what the message is, but once more than one person tries to speak a message at the same time, it is difficult to understand anything.

When this happens, in Ethernet parlance, a ‘collision’ happens, the speakers detect this, and just try to broadcast the same message again at some random later time, hoping not to collide again with another broadcaster. This works, but you can probably see that as more and more hosts share the same medium (LAN hub, or network segment) the more likely collisions would occur, and more bandwidth is wasted with hosts trying to shout over each other. 

While Ethernet eventually got better at this and eventually solved the problem with switching, at the time the more elegant solution to this shared network medium problem was presented by Token Ring. In a Token Ring network, hosts were connected in a topological ring, as opposed to the hub and spoke way of Ethernet. Messages could travel in only two directions, counterclockwise or clockwise, through the ring of hosts. Hosts joining or leaving the network would need to be handled in a way which did not disturb the network while the network topology change was effected. That is the ‘ring’ part of the name.

The ‘token’ part was due to the fact that a host could only send a message if it was holding a message token. This token was a special network frame to which a message could be attached which was sent continuously around the ring of hosts and circulated even if a host had no message to send. Think back to the big room with people, except this time there are no megaphones. There is only an empty envelope. This envelope is passed from left to right and if you get it and find it empty, you can put a message in. If it contains a message and it is not addressed to you, you simply pass it on to the next person. If the message is for you, you take the message out and pass the empty envelope onwards. It was a digital ‘talking stick’4

With this simple protocol, messages never overlapped, communication and performance was deterministic, degraded gracefully and linearly with more hosts, and access to the medium was fair as there was no way that any host could monopolize the channel5 as everyone had to wait their turn and get an empty token again to be able to send their next message. It worked well. It was actually a lot faster than Ethernet originally, and the battle for dominance lasted years until finally better Ethernet collision avoidance algorithms along with cheaper Ethernet cables and equipment swayed the market. Token Ring was for its time, an elegant solution to a problem of coordinating communications.

That brings us to BSV. Fast forwarding back to present day, what relevance does an old network tech have on platforms of today? As the title of this article suggests, BSV could be thought of as a massively parallel, dynamic topology, token ring network. Except that there isn’t just one token, but any number of them, purposefully created for each ‘ring’ of hosts that need to communicate with each other. A sequence could be programmed into the token6 which would represent the ‘passing order’ of the hosts, with appropriate timeouts if a host is not responsive so that tokens won’t get stuck. You could build an unlimited number of “virtual LANs” on top of the internet using BSV, without actually changing any network wiring. Every host would be identified by signed messages, and message routing could be traceable and accountable via the use of digital signatures. Even the notion of a ‘host’ is upscaled to not just mean a particular network interface (MAC address) or IP address, but potentially a legal entity, as signatures could be registered to known identities mapping to natural persons or corporations.

The possibilities are limitless. What I have outlined is just the tip of the iceberg. I hope that I have given you enough food for thought to digest for a while, and to start to see Bitcoin as something more than just a token system, but a global network with a dynamic and customizable topology. What could the world do with an unbounded number of horizontally scalable customizable VLANs? I leave that to your imagination, but I’m sure it will be more substantial than just passing ether7 around.

***

[1] Especially when you had to deal with an OS like OS/2 which had spotty support for any non-IBM hardware.

[2] I suppose BluRay vs HDDVD would be a better analogy for you millennials, or iPhone vs Android for you REALLY young ones.

[3] A much better analogy is how CB radios work, and why speakers end each message with “over”—but I’m guessing most millennials won’t get that reference either, unless their parents were truckers, pilots or sailors.

[4] Oh how I wish we had talking sticks for the social media cesspools of today.

[5] Imagine an ethernet host just blasting broadcast messages constantly effectively performing a denial of service.

[6] One implementation could be done using STAS tokens

[7] Any implied reference to ETH is completely coincidental and unintentional

New to Bitcoin? Check out CoinGeek’s Bitcoin for Beginners section, the ultimate resource guide to learn more about Bitcoin—as originally envisioned by Satoshi Nakamoto—and blockchain.

[10]
[10]
[id^="_form"]
[id^="_form"]
[id$="_submit"]
[id$="_submit"]
[^;]
[^;]
['on' + event]
['on' + event]
[?&]
[?&]
[^&#]
[^&#]
[(d+)]
[(d+)]
[i]
[i]
[results[1]]
[results[1]]
[elem.name]
[elem.name]
[+_a-z0-9-'&=]
[+_a-z0-9-'&=]
[+_a-z0-9-']
[+_a-z0-9-']
[a-z0-9-]
[a-z0-9-]
[a-z]
[a-z]
[el.name]
[el.name]
[10]
[10]
[id^="_form"]
[id^="_form"]
[id$="_submit"]
[id$="_submit"]
[^;]
[^;]
['on' + event]
['on' + event]
[?&]
[?&]
[^&#]
[^&#]
[(d+)]
[(d+)]
[i]
[i]
[results[1]]
[results[1]]
[elem.name]
[elem.name]
[+_a-z0-9-'&=]
[+_a-z0-9-'&=]
[+_a-z0-9-']
[+_a-z0-9-']
[a-z0-9-]
[a-z0-9-]
[a-z]
[a-z]
[el.name]
[el.name]