Future Internet 2018, 10, 20 4 of 16
Alice makes a statement in which she specifies the amount to be transferred as well as the recipient
of the transfer, and validates this message with her credentials (for sake of readiness, the image reports
users’ names instead of their addresses). Then, she broadcasts the message to the network. Network
nodes verify if the message’s sender was actually Alice (by verifying if the message was correctly
validated using her credentials), and check if she possesses the amount to be transferred. In order to
perform this check, they use their local copy of the blockchain and analyze incoming and outgoing
transactions from Alice’s wallet address that are stored in previous blocks. If the message sent by
Alice is valid and she is entitled to spend the money, they add Alice’s transaction, together with other
transactions occurring in the same time frame, to a block. In order to add the block to the blockchain,
they then start solving a complex mathematical problem, where they have to find a random number
that, combined with a numeric summary of the previous block, provides a given result. During this
(mining) process, the fastest node receives a monetary reward. When a valid result is found, the new
block is added to the blockchain. As a result, Arthur receives the money.
The above example should have allowed the reader to get better acquainted with the main
characteristics of the blockchain, which make it a disruptive technology:
-
Decentralized validation: the validation of transactions is performed by network nodes without
the need of intermediaries;
-
Data redundancy: each network node has a local copy of the blockchain, which prevents
data losses;
- Data immutability: data stored in the blockchain could not be modified or deleted;
-
Trust: cryptography enables trust between parties, since a transaction that has been validated
using user’s credentials cannot be repudiated;
- Transparency: everyone could read the blockchain and the transactions stored in it.
Though the example in Figure 1 refers to a transfer of cryptocurrency, application possibilities of
the blockchain are not limited to monetary assets, but could encompass a wide variety of use cases.
Among the early application scenarios that were explored for the blockchain, it is worth recalling
the notarial context. In fact, since the blockchain is immutable and publicly available, researchers
suggested using it for storing public records and attestations [
1
]. Another domain where the blockchain
has been recognized to be able to bring significant benefits is intellectual property protection. In this
context, blockchain technology could be used to prove/certify the existence of a document at a given
time [
24
]. In contexts where, e.g., freedom of thought is threatened, blockchain technology could be
used to store information in order to avoid censorship [
25
]: in fact, everyone can write information on
the blockchain and read it.
As time has passed, researchers have realized that the blockchain could also be used to store other
kinds of assets, including pieces of code. It was the birth of “smart contracts”, i.e., small programs
stored in the blockchain and programmed to autonomously behave in a given manner when some
conditions are met.
The idea of a smart contract has been known since the 90s [
26
], but it was only with the blockchain
technology—and, in particular, with the Ethereum blockchain (probably the most famous blockchain
after Bitcoin)—that smart contracts were able to unleash their full potential [27].
With a smart contract, a person could, for instance, encode his/her will in the blockchain in the
form of a set of rules. In case of death, the smart contract could then automatically transfer the testator’s
money or other kind of assets to the beneficiary. The testator may also provide additional constraints,
such as enabling the transfer only when the beneficiary reaches the age of majority, when he/she
obtains a diploma, etc.
Since smart contracts’ conditions are based on data stored in the blockchain, they need to rely
on external services, which take data from the “real” world (e.g., from death records) and push them
to the blockchain (or vice versa). These services are referred to as “oracles” [
28
]. By considering
the testator’s example, an oracle could inspect death records to identify whether the person passed