without realizing it, we have added a layer to phone numbers. most people don’t remember the digits of other people’s numbers anymore, and some of us struggle even to remember our own at times, since we rarely use them. now we just scroll down a list of names, and tap the one we want. the phone takes care of mapping that name to a number, and does the dialing behind the curtains.
the internet is glued together by a similar, but explicit mapping called DNS, which works by mapping human-readable names, like plantimals.org to IP addresses, which are a set of 4 numbers between 0-254. so something like
192.168.0.1. for most users of the web, if an IP address ever comes to their attention something has gone wrong. and yet, IP addresses are a fundamental building block of the internet. the phone analogy is somewhat broken in that we each maintain our own idiosyncratic mappings of names to numbers, there’s not yet a broadly accepted centralized service to perform this mapping.
the DNS system has worked well. it has allowed the world to bootstrap a useful network of physically distributed computers which generates trillions of dollars in economic value by solving important problems.
but DNS is not perfect. there’s a limited namespace, so if someone is already using
plantimals.org, it can’t be used by someone else. this is the point, after all. due to the uneven adoption of the internet by society, there was a land rush for the more desireable names: shorter is better, names of broad categories taken by individual brands in that category, entities with names that don’t usually collide are thrust into the same arena and forced to fight over the now scarce name.
all of those issues can be worked around, but there are two fundamental properties of the DNS system which are worth considering:
when DNS was first implemented, it was a text file called
HOSTS.TXT. it is admirable when a paradigm like the file system can solve problems the designers never knew existed. but the original DNS system passed on this conceptually centralized structure to its progeny, the DNS system we have today. that is, a small number of servers controlled by a small number of individuals have the ultimate power over the DNS system. this is a concern because it’s a choke-point for the flow of trillions of dollars of economic activity, and unless it is managed by exceedingly selfless but cautious people, it will be used to benefit those who control it. we’ve been fortunate so far, but there are signs that such beneficence should not be expected to last forever.
fragility is entropy working its way into our lives. things change, people stop paying the bills for a server, home projects are abandoned, companies go out of business. there are a lot of reasons why following a hyperlink could result in a failure to obtain the desired result.
the following analogy, which I [paraphrase from this protoschool lesson](the following analogy, does good work explaining the differences:
You would like to get a book recommended by a friend.
Friend A: go to the Half Price Books in University City, MO, go to the 3rd isle, turn left, top shelf, and pick the 11th book from the left.
Friend B: find the book with ISBN# 978-0-521-19533-1
Friend A is analogous to our current system of DNS and IP addresses. So that if the particular book store closes, is blocked by political boundaries, or someone moved the book, retrieval of the book will fail.
Friend B’s addressing is of the content, rather than the current location of the subject of the message. it’s a contrived example, but if one truly didn’t know the name of the book, or anything else about it other than its previous exactly location in physical space, success in finding the book would be fragile indeed.
it so happens that this concept, content addressing, has been useful in building distributed systems, specifically the inter-planetary file system. I will write more about IPFS shortly, but for now it’s enough to say that the web doesn’t have to be organized in exactly way it is now, and there have been significant inroads towards distributing it and making it more anti-fragile.