Ethereum Manual for Digital Primitives – Chapter III – Programming information


In the previous chapters, we’ve come to understand that digital information usually gains value because a central entity vouches for its worth. To ensure the value of information on a private computer of an individual, cryptography is essential.

Until now, we’ve considered computers as mere passive containers, but their primary purpose is actually processing information. It’s vital for the reader to become familiar with the concept of programming. After all, code is the language spoken by the computer universe with which the digital primitive must engage. Of course, this text is not meant to replace a bachelor’s degree in computer science, so no panic – if the reader has made it this far, surviving symmetric cryptography, nothing can stop them now.

Computers speak the language of binary logic. Despite being a language with a rather limited alphabet – zeros and ones – it allows any type of action on information. The most important actions are mathematical: “add,” “subtract,” “divide”…; logical ones: “is it equal?”, “is it greater?”; and others to interface with the user: “print,” “read”… For example, a basic program to find the next number of any given number could be:

read
add 1
print

The computer will read the number provided by the user, add 1 to it, and finally return the updated data to the user. The entire digital world is based on this simple concept. For instance, the digital safe discussed in the previous chapter is built this way. Obviously, building a safe requires more complex verbs than the simple “read,” “write,” and “add,” but the process is the same.

Most programs that Homo sapiens use are executed on the servers of information monopolies. For example, when a human likes a photo on Instagram of someone they are courting, the addition program we wrote earlier is executed on Meta’s servers and updates the total like count of the photo. Beyond considering the importance of the information’s location, we must now also consider the importance of where the code is executed. In fact, nothing prevents Meta from modifying the code for adding likes to a photo as follows:

read
if human is Marco
exit
otherwise
add 1
print

The attentive reader understands that poor Marco will be significantly disadvantaged during the courting phase. The program, in fact, does not record the like on the Instagram photo if the human executing the code is Marco, rather it concludes the execution. We find ourselves again in a situation where the individual is forced to trust centralized entities, even for mating!

Unfortunately, human mating is just one of the aspects of Homo sapiens’ life controlled by information monopolies. Worse is the case where the human spends countless hours tapping on their phone and absorbing tailor-made information, which alters their functioning. For example, suddenly the human might feel an urgent need to leave the house and eat a McDonald’s sandwich; this need would never have materialized if the human had not interacted with their phone. These codes, called “targeted marketing,” are incredibly complex, but they are nothing more than a series of “ifs” and “thens” tailored to the human being. Depending on the content being consumed, the code decides to show specific information to the digital primitive, thus shaping their weak mind.

The manual advises the reader to delete apps like Instagram, Facebook, or TikTok as quickly as possible. For readers who fear being thus excluded from the most widespread courtship rituals, the suggestion is to remain calm, gradually exit the virtual world, and start leaving the house more often.

The internet was born with the noblest intentions: Tim Berners-Lee, the creator of the WWW (World Wide Web), envisioned a network of computers as equals, each processing their own information. History has not proven him right; today, the vast majority of computation is performed on the servers of information monopolies. In 2016, Tim tried to return the internet to its “ethical” origins with Solid, a system that proposed moving information and processing to individuals’ computers. Unfortunately, the project does not have much following today, but it can be a good example of a program that attempts to go against the centralized reality in which readers live.

Another example of non-centralized processing is the blockchain, the real protagonist of this manual. In the next chapter, we’ll try to explain its functioning, starting from the first project of decentralized computation: Bitcoin.