Not All Distributed Is Made the Same
Not all “distributed” is made the same. Like any good internet geek, when I first learned how DNS lookup works, I was in awe.
The beauty is in the design: DNS is a distributed database in which anyone can add a name server to participate and store knowledge. It naturally routes around any failures in the network by design, so it is resilient. With only very minor exceptions, there is no single point of failure, no choke point.*
By comparison the Bitcoin protocol is also a distributed database (a specific subset of database to be exact: a ledger). Anyone can operate a bitcoin client to participate and store knowledge. It naturally routes around any failures in the network by design, so it is resilient. With only very minor exceptions, there is no single point of failure, no choke point.
But the differences are even more interesting:
1) DNS is a network of trust and altruism, whereas Bitcoin is a network of distrust, specifically architected assuming all participants are both A) greedy and B) malicious if possible.
2) DNS is a hierarchical network structure, whereas Bitcoin is peer-to-peer network structure.
3) In DNS, no single node on the network has perfect knowledge of the entire contents of the distributed database, whereas in Bitcoin, every node on the network has a complete copy of the entire database.
The design decisions in (2) and (3) help enable the consequence of (1). It’s wild to see how Internet-inspired distributed design has evolved from DNS’s invention in 1983 to Bitcoin’s invention in 2008. Their respective stances on both trust and hierarchy reflect a maturation of the internet, that sadly leads one to pessimistic conclusions about human nature.
* The resiliency by design and lack of choke points are why I’ve long been disappointed by the rise of URL shorteners in the last 7 years. They take such an elegant system and shove it through a crude single point of failure.