“Internet” Without Infrastructure – Part 2, by R.H.

How the Network Works

Basically, as soon as people start transferring files between computers, a network of sorts exists. A complex system can then be developed to get information to the right place as quickly as possible and keep everything running smoothly and efficiently. This is what the Internet does now, using millions of powerful computers and extremely complex software.

There is a much simpler way of building a network that requires only the basic technology items listed above and the adoption of a few very simple standards and rules. All we need, basically, is to get a given “file” from point A to point B. If you multiply that by millions or billions, you have a very useful network. The first problem is, how do you identify point B? The second problem is, how do you find a path from point A to point B? The Internet has a system for doing this very efficiently, by having a central registry of addresses and each computer knowing all of the computers that it’s connected to and having a system for finding the shortest distance between points. We are solving a different problem entirely. Sure, it would be nice to have the kind of speed and efficiency that comes with a “real” network, but failing that we just want our communication to arrive as soon as possible. In some cases, next week or even next month would be great!

Let’s say that point A is Sam and point B is Joe. In a TEOTWAWKI scenario, we can’t count on any email servers or text messages. Worse, after TEOTWAWKI, we don’t necessarily know where either Sam or Joe is located, and we don’t know if either one still has a working computer. It turns out that all Sam really needs is a unique address for Joe and the network I am about to describe. As an example, we will just use Joe’s pre-TEOTWAWKI email address as his unique address. There are better ways for Joe to create a unique id for himself, which we’ll cover later, but this will do for now. After all, nobody on the planet but Joe has that address, so it is a unique address. Sam creates a new text file using the computer notepad (or TextEdit on a Mac). He gives the file a universally-unique name (unique across the universe or at least across the network) that starts with the destination address. For example, it could be “Joe@gmail.com-jd8ifdf.txt”. The “-jd8ifdf” part of the filename is just some random characters that were “made up” to ensure that the filename is unique; it could have been anything. Sam puts the file into a “pouch”, along with hundreds, thousands, or millions of other files. If Sam doesn’t have a computer, he contacts his nearest “Postmaster” (anyone with a computer and a willingness to help). In the course of his duties, the Postmaster seeks out as many other Postmasters as he can, and they all swap files by copying from pouch A to pouch B and then back to pouch A, ignoring all duplicate filenames. This results in a “merge” of all files on both pouches. Even if many of the files already existed on both pouches, that doesn’t matter; we now have a copy of each file on both pouches. Each of these Postmasters, in turn, seeks out as many other Postmasters as possible, swapping files with them in the same way. This is why the filenames need to be universally unique; if not, one of the messages won’t get through; it will be “dropped” somewhere along the line. This is “Six Degrees of Separation” in action. Depending on the interconnectedness of communities, it may well take more than six of these Postmaster swaps, but eventually Sam’s message to Joe will be all over the country. No matter where Joe is in the country, all he needs to do to find his message is find a Postmaster. The filename of his message always starts with Joe’s address, so even among millions of files, this is not too difficult. All Joe (or a Postmaster helping him) needs to do is a simple search, or sort the files by filename, and go down to his address.

Similarly, blog entries can be posted by the author using the name of the blog, the date, and a unique suffix, like “survivalblog.com-2015-01-17-UYTRS.txt”. These files are treated just like other messages; however, instead of the recipient’s address, we have the name of the blog. Again, random characters are added at the end to ensure the filename is unique. Thus, anyone interested in a particular blog would just look for that address. There is a caveat, though. Anyone could post something to the blog, which opens the door to counterfeit entries and other problems. There are solutions to this that mainly involve encryption as covered later, but this basic method could be used initially. Depending on the diligence of Postmasters and the lack of saboteurs acting as Postmasters, this method alone could continue to work for some time.

There are a few more simple rules and protocols that must be understood by Postmasters in order to keep the system from getting clogged up or sabotaged. There are also much better ways of creating secure addresses and making messages secure, but the basic idea of how it works is the same. There are sure to be numerous complexities and enhancements that can and will be added by Postmasters over time, but the key ideas are:

  1. Messages are stored in small files.
  2. The name of the file is the destination address of the communication, plus some random characters to make it unique.
  3. “Postmasters” (anyone with a computer and a willingness to help) swap files (pouch A to pouch B, then back to A), combining all files together, and pass the contents of their pouch on to as many other Postmasters as possible. They also purge large and old files from the system, as necessary, to keep the network from becoming “clogged” with data.

Basic Techniques and Definition of Terms

Before discussing protocols, there are some basic techniques and terms that need to be defined.

  • Destination Addresses. A simple example of a destination address, as used above, is to use the recipient’s pre-TEOTWAWKI email address. A much better way to create a destination address is for the recipient to come up with his own address (or addresses) and give them out to those who he may want to receive communication from in the future. We need the address to be unique, but on this network we have no way to check if someone else is already using a particular address; we do not have any way to access a central “registry” of addresses. Instead, we use enough random characters to ensure, or nearly ensure, that nobody else will come up with the same thing. Software could be used to come up with the random combination of characters, but it’s not necessary. Anyone can simply come up with their own series of random characters. They don’t actually have to be random; they can mean something to you personally. The idea is to try to create an address that is highly unlikely for anyone else anywhere else to have come up with. For example, if you were to choose “Patriot” or even “Patriot88” as your destination address, there is a fair possibility that eventually someone else will come up with the same address, at which point it’s no longer unique, and your messages will be mixed in with someone else’s. However, if you choose “k23mXX”, you should be okay, since there are some two billion possibilities of letter/number combinations for a six character address.

    Of course random characters are not easily recognized and they are hard to remember, so you’ll have to write your address down. If you lose it, you won’t be able to find your messages. It’s not very convenient. If you want, you can use a combination of a readable address and some random characters, such as “Patriot88-YR56”. This way, even if there is another “Patriot88” in the world, there probably isn’t a “Patriot88-YR56”. In fact, even if you lose your notes and forget the YR56 part of the address, as long as you remember Patriot88, you still stand a chance of finding a message that belongs to you and can recover your address.

    It’s okay to use both upper and lower case letters along with numbers, but it is important to realize that this does not contribute to the uniqueness of the address. In other words, addresses are not case sensitive. Most computer systems will treat aaaaaa.txt and AAAAAA .txt as the same file.

    There is no hard rule against using special characters and punctuation, but they can cause confusion and possibly even interfere with the recipient’s attempts to locate files. If you are using a pre-TEOTWAWKI email address, there is no need to change any of the special characters in it. Any characters allowed in an email address can be used. However, if you are making up something new, it’s best to stick to “-“,“_”, “.”, and “@” to keep it simple and avoid problems and confusion.

    When someone wants to send you a message, they would begin the filename of their message with your exact address, making sure to get it exactly right, and then follow it with a random set of characters to ensure that the message filename itself is unique. For example their message to you might have a filename of “k23mXX-d7d65s”, which is “k23mXX”, followed by the random characters “d7d65s”. I used dashes to make it clearer, but it’s not necessary.

    Be careful about using numbers and letters that can be confused with each other, such as “1” (One) and “I” (India) and “L” (Lima), “8” (Eight) and “B” (Bravo) or “0” (Zero) and “O” (Oscar), or even “D” (Delta) or “Q” (Quebec). This is especially important when addresses will be saved on paper and transferred to computer later. One incorrect character will almost certainly prevent a message from being received. The message will not “bounce” like it does in a regular email system. The sender will never know he used the wrong address, yet the message will be lost.

    When you have a choice, especially when creating random addresses that will be stored on paper whether handwritten or printed out, it’s a good idea to avoid these letters and numbers altogether, or be very, very clear about how they are printed:

    0 (Zero) O (Oscar) D (Delta) Q (Quebec)

    1 (One) I (India) L (Lima) | (Vertical bar) ! (Exclamation point)

    2 (Two) Z (Zulu)

    8 (Eight) B (Bravo)

    Obviously, this is a rather “picky” system. It’s easy to make a mistake and cause a message to get lost, but there are reasons for this. It’s actually an important part of what makes it so secure and anonymous. Any mechanism put in place to make it “easier”, more convenient, or more like what people have accustomed to, could compromise it severely. It may not be a convenient system, but used correctly it is effective, secure, and anonymous.

    Note that the filename you choose is completely meaningless to anyone who does not know what your id is, even the Postmaster himself. It also, by itself, provides no information about the sender or the recipient or the location of either one.