Cryptography, Blocks, Bitcoin and Ethereum
Part 3 of 12 — Blockchain: Decentralization of Money, Power and the State Originally written as a History BA thesis, academic year 2021–2022. Published online August 2026. Series index → · References & bibliography →
Cryptography
Cryptography is truly special in the twenty-first century because cryptography is one of the very few fields where adversarial conflict continues to heavily favor the defender. 1
Julian Assange, in Internet is the Enemy, simplifies the matter by crediting physics with the existence of cryptography.2 In fact, it is not important to know in detail how these algorithms work; it is enough to know that they are very complex and have as a characteristic feature that they cannot be circumvented, except at immense cost and time and, at the moment, unfeasible.
There are many cryptographic algorithms and they differ in quality and security. To explain their special features, the famous MD5 will be taken as an example. These algorithms are deterministic, that is, they guarantee, provided they start from the same source, the same end result. In the case of MD5, regardless of the size of the original file and its extension, what will be returned is a sequence of 32 alphanumeric characters. This is a kind of digital signature of a file, which, if minimally tampered with, produces a different signature.
If you browse to one of the various sites that allow you to calculate the MD5 of a file (e.g., www.md5online.it/) you can check how the algorithm works. If you enter the word 'hello,' the code obtained will be: 6e6bc4e49dd477ebc98ef4046c067b5f. Let us see the codes obtained for different types of files or words. File / Word hash with MD5 algorithm hello 6e6bc4e49dd477ebc98ef4046c067b5f
hello d8463d4c7a169805a91a6fca735a1ba7
This thesis 5cd6ca528fee81be045cee67591bd621
28 33e75ff09dd601bbe69f351039152189
2gb beach vacation footage b9aefa9edbc429beab28c9e6fc94a508s
As can be seen, even the mere presence of an accent on the letter o (this is for all intents and purposes a different character) goes a long way toward completely changing the MD5 hash. The same thing happens with images, which are composed of pixels (small squares). A random 100x100 pixel image (a total of 10,000 squares) has a certain hash. If you changed even one pixel, you would get a completely different hash code.
A very important feature of these algorithms is that, until proven otherwise, it is not possible to go back. From the hash it is indeed not possible to go back to the original file. This is because of a mathematical property that will only be alluded to. If one were to multiply 3 x 4 x 10, one would immediately find, even doing it in one's head, that the result is 120. If, on the other hand, one were to start with 120 and look for the origin of this number, so could find 2 x 60 or 12 x 10, or 20 x 6, and so on. When we are talking about very high numbers, as indeed in the case of those produced by these algorithms, there are so many combinations that it is mathematically (almost) impossible to trace back to the original file.
Note: On the previously mentioned site, it is possible to trace the original string back from the hash; however, this is because each time the MD5 algorithm is applied, the site in question saves the generated hash for future use, thus providing a solution that is dictated not by computation but by memory.
The blocks
Blockchains son or data structures that use the properties of cryptography to ensure virtually unbreakable links. What is created is a blockchain of blocks, which cannot be changed unless the chain is to be broken.
A group of humans share 99% of the genome: this characteristic makes us 'human.' Humans in the same group are alive because of what went before, parents, grandparents and so on, all the way back to the beginning of time. Not a single interruption is possible, not a single change in the past, otherwise the whole present would be affected. Every birth has closed a block, sealed it, and there is no way to change it.
The same thing happens with culture, knowledge and the transmission of it. All human beings have knowledge in common and it has been passed down through time.
Each block in a blockchain is 'closed' and validated by an authority: but how to do this if, in theory, there is an absence of authority? Interestingly, the theorization of the problem related to the absence of hierarchy has been thought of as a military dilemma, contextualized, for various reasons, in the Byzantine empire.
The problem is formulated as follows: a group of generals, who have no way of seeing each other live and send relays to each other to communicate, must decide whether to attack at dawn or retreat. They are of equal hierarchical rank and therefore cannot rely on the command of a superior. It is not important which of the two solutions is chosen, but that all generals reach the same decision, that is, that there is consensus. To this must be added the presence of double generals, who might vote to attack and finally withdraw without telling anyone.3 This riddle highlights the difficulty in making shared decisions in the absence of authority and is used to reflect on what was an unsolved problem, namely that of double spending.
The moment Caius has one bitcoin, he can send it to Sempronius. It is necessary that all nodes agree that Caius now has one bitcoin less. In the event that there is no consensus, a split would occur and Caius could spend his bitcoin twice: this occurs because bitcoins are intangible.
The solution to this problem is to hold a kind of 'lottery' that will draw a kind of 'notary': it is crucial in creating consensus, as it also creates (temporary) authority.
Transaction of deniers
Indulgence table with Imago Pietatis and Arma Christi, Wallraf-
Richartz Museum & Foundation
When the transaction is physical, as in the image above (upper right detail), there is no need for an authority to guarantee the actual change of hands, but an authority to say which valuable material serves as the currency.
Bitcoin
We will not address in depth the history of Bitcoin, which was born in 2008 thanks to an Internet post under the pseudonym Satoshi Nakamoto, who first discussed his idea with other cypherpunks, then released a whitepaper, i.e., a document explaining how to implement this project, accompanied by an early working version of the software. A digital currency had also been discussed earlier, but there were some conceptually unresolved problems, such as double spending. For several years preventing a person from spending the same money several times was blocking the development of a decentralized digital currency. To this probably goes the cultural and material substrate, such as how many people owned a personal computer, had access to the Internet, etc.
Bitcoin at the moment is not a perfect system, far from it, but it is the perfect example for understanding how a -almost- completely decentralized blockchain works.
A node, or full node, is a computer that has Bitcoin's software installed and thus has downloaded the entire history of transactions made on the Bitcoin network. A full node can check whether a given transaction is valid or not, since it has all the information it needs to figure it out. The entire transaction history can be validated using hash functions. Once the entire chain is validated, if the final hash is identical to that of the other peers, it means that the blockchain is intact and there have been no changes. If only one letter was changed from the transaction log, the hash generated would be completely different.
As with any kind of device, Bitcoin's software also needs to be updated to fix various issues or to make improvements. While for centralized systems it is sufficient for those who hold administrator permissions to the infrastructure to update the software, in decentralized systems this cannot happen since no one can be forced to do anything. A node can have one version of Bitcoin's software, or another. Indeed, it is up to individual nodes, and more specifically their owners, to decide whether or not to update the software. Updates can also make radical changes to operation, and it is up to individual node owners to approve or not approve these changes. A new version of the software may be compatible with previous versions, and is then called a soft fork; or it may be so different that it leads to a separation between the two systems, this situation is called a hard fork. These splits might be reminiscent of religious splits. For example, in the Catholic one there are some variants that are tolerated while others are not. The Franciscans were accepted as a rib assigned to apostolate and charity: they did not bring such different values as to be a danger. In the case of the Waldensians, on the other hand, the situation was different: by claiming the right for laymen and women to preach, they had brought to light differences that were not acceptable at that time, and in fact they were persecuted. In computer terms, one could classify the first schism as a soft fork, and the second as a hard fork. Obviously, there is a big difference between this religious schism and a schism on blockchain: the Waldensians would have loved to be accepted, but were not recognized by the Pope; schisms on blockchain, on the other hand, occur at the behest of a minority.
One very interesting thing about Bitcoin Core, or the team of programmers developing the most widely used version of Bitcoin's software, is that it keeps track of every meeting4 . For a historian who wanted to reconstruct the dynamics of Bitcoin's development this is manna from heaven.
Ethereum and smart contracts
What makes Ethereum different from Bitcoin and its clones is that it can save and execute code on the blockchain. This type of code is called 'smart contracts'. Ethereum, thanks to smart contracts and its language, Solidity, can function very much like a Turing machine11 , in that it can be used to execute almost any algorithm, regardless of the problem being solved. Smart contracts are deterministic algorithms: this means that, given a given input, they will always produce the same output.
Smart contracts are digital contracts and are the basis of decentralized associationsapplications. Basically, it is like writing a program (or constitution?) that executes instructions, launching it on the Internet and throwing away the key that would allow further modifications: the program will be executed when certain conditions, programmed into the smart contract, are met. It is, for all intents and purposes, a contract. A very simple example might be that of loans: loans made through smart contracts provide for the repayment of a certain amount each month, without the borrower, or the lender, having to or being able to do anything. Current technology already makes this possible: in fact, those with open mortgages do not necessarily have to worry about sending money to their bank, since it all happens automatically. What is radically different, however, is that there is no bank behind the smart contract. The smart contract can work between individuals, lots of individuals: some of them will deposit their excess capital while others will apply for loans. What changes is the disintermediation given by the smart contract: it would act as an intermediary between the borrower and the lender. It remains a form of intermediation, but it is so fast and impersonal that it gives the illusion that it does not exist. This could be done transparently and, in theory, without excessive speculation.
The question one might ask is: what will happen to those who do not return the capital received?
The answer lies in the smart contract that granted the loan and in a possible series of interconnected smart contracts. If the loan requested is to renovate a house, it is possible that the lender may have specified that this money can only be used at DIY stores, decentralized building firms (or cooperatives), and so on. In the event, on the other hand, that the debt cannot be repaid, other smart contracts might intervene, simply recalculating the interest on the debt or providing, in a fully automatic manner, for the
(2020), p. 2 <https://doi.org/10.1002/cpe.5493>.
debtor's name to be written on any blacklists from which punishments or disadvantages might then flow.
Before talking about this we need to introduce the concept of social credit.
An interesting aspect related to smart contracts is due to any external data, provided by humans. For example, in the case of a smart contract related to sports betting, it needs human input to know whether one team won or another. Any external agent is called an oracle.5
An important difference that there is between a database and a blockchain, and that applies especially to smart contracts, is the following: while in a normal database, that is, the sort of table that is present in a server and in which all the information about users is stored, the permitted operations are those of the English acronym CRUD (create, read, update, delete), that is, create, read, update and delete, as far as blockchain systems are concerned, one can only create or read: one can neither update nor delete a previously entered piece of information. 6 This means that, if you want to change a smart contract, you need the consent of those who join it. This is eventually resolved by migrating to a new smart contract.
← Previous: What Are Blockchains? Collaboration, Forks and Peer-to-Peer · Series index · References · Next: Religions, Forks and the Digital Past →
-
Vitalik Buterin and Nathan Schneider, Proof of Stake: The Making of Ethereum and the Philosophy of Blockchains (HarperCollins, 2022), para. 15.9. ↩
-
Assange, para. 4.25. ↩
-
'Problem of Byzantine generals,' Wikipedia, 2019 <https://it.wikipedia.org/w/index.php? title=Problema_dei_generali_bizantini&oldid=106176642> [accessed February 22, 2023]. ↩
-
'Index of /Ircmeetings/Logs/Bitcoin-Core-Dev' https://bitcoin.jonasschnelli.ch/ircmeetings/logs/bitcoin-core-dev/ [accessed February 1, 2023]. ↩
-
'NISTIR 8202 Blockchain Technology Overview', p. 32 https://nvlpubs.nist.gov/nistpubs/ir/2018/nist.ir.8202.pdf. ↩
-
'NISTIR 8202 Blockchain Technology Overview', p. 44. ↩