Of all 36 ways to get out of trouble, the best way is...leave. — Chinese proverb
A monetary system is a set of balances which owners can exchange voluntarily.
Balance: specific amount of units of value.
Set of balances
-In physical monetary systems (e.g. gold or 13th century Chinese paper fiat): balances are constituted by physical units, like coins or bills. Those units may be possessed by their owners.
-In centralized digital monetary systems (e.g. current fiat): balances are just data possessed by a single entity.
Exchange of balances: transactions
-In physical monetary systems: transactions may be directly executed by individuals, locally.
-In centralized digital monetary systems: transactions are executed by a third party. If e.g. Henry (a client of Bank A) wants to send 3$ to Bob (a client of Bank B): Henry will apply to Bank A and Bank A will order the Central Bank to subtract 3$ from its reserves and to add them to those of Bank B. The Central Bank is the one that executes the transaction:
*This process is not repeated with each request, the Central Bank will only settle once a day the net result of the requested transaction.
The increase in balances due to the creation of new units is called monetary inflation.
-In physical monetary systems, monetary inflation is limited due to the difficulty of extracting new units from exclusive locations.
-In centralized digital monetary systems, the Central Bank increases the total number of monetary units in its database. The process is known as "printing money" or "money printer go brrr" because those units are exchangeable for paper money:
In reality the "printing" is done electronically.
Satoshi Nakamoto had the goal of creating a digital monetary system that users could verify by themselves, in which they did not depend on a central entity to store or transact their balance. Users were going to be invulnerable to the behaviour of Commercial Banks, Central Banks and financial authorities.
He devised a network of nodes (computers running the same program), where each node would keep a copy all balances. The holders of balances could order transactions from any node they control.
If for example, a bitcoin holder orders a transaction (represented as .....), the order will be propagated like a gossip from node to node:
(The figures above are arranged chronologically from left to right).
If a new transaction request (represented as .) is published by another node, some nodes will receive application . before .....:
The last image represents a stage where some nodes have heard only about ..... while others nodes have heard about both petitions, but some heard about ..... first and others about . instead.
If each node executes the transactions following a "first received first executed" approach, there would be different monetary systems at least temporarily since the set of balances would differ between nodes.
It is not possible to mathematically proof which transaction was solicited first in a decentralized system.
That situation is especially problematic when there are conflicting requests (those that if one of them is executed, the other one is not valid anymore) because then chronological order of transaction requests would determine validity and therefore different monetary systems would coexist permanently, like in the next example:
Those who received message -.- first, will recognize Amy as the true owner of 1 bitcoin, while the rest will recognize message ... and Eva as the legitimate owner of 1 bitcoin. Henry caused a "double-spend".
A double-spend attack could be perpetrated from the same node or from different nodes:
The double-spend problem does not arise in physical monetary systems because units are tangible.
Centralized digital systems partially solve the problem by conferring the control over balances to a single entity:
Commercial bank A is trying to spend its balance twice, so the Central Bank must decide which of both requests will be executed:
To prevent a double-spend attack in a decentralized network, all nodes should execute the same transactions at the same chronological order.
In the Bitcoin network, each node prepares a proposition of chronological order for the last transaction requests until it acquires the power to execute it.
To prevent censorship, that power should not be granted by any authority and it should frequently rotate between anonymous nodes that do not require any permission to join.
The mechanism that enables it is Bitcoin's key innovation: Proof of Work or Nakamoto Consensus. It substitutes authority for computational strength; so power is not given, it is earned.
To rotate that power, the system is probabilistic, analogous to a constant decentralized lottery where "tickets" are acquired from an impossible to falsify resource: energy. Each "winning ticket" can be easily verified mathematically.
Alternative systems to Proof of Work (like e.g. Byzantine Consensus or Proof of Stake) rely only on resources within the system, which makes them insecure. They are subject to sybil attacks so they must use located institutions that identify nodes and grant permission, leading to privileges, bureaucracy, and human resources spending.
(Sybil attack: a single entity secretly controls the majority of nodes).
In Bitcoin, when one of the "tickets" is awarded, the winning node executes new transaction requests in its preferred chronological order and transmits that information to other nodes that will verify, copy, and continue propagating it.
Transaction applications included in a block (yellow box in the above image) are considered executed transactions.
If 2 non-linked blocks are created almost simultaneously, it is possible that not all nodes accept the same block as valid:
The images above show 2 competing blocks that coexist.
When a new block is created, it must necessarily be linked to a previous block. Let's suppose that the new block is linked to the pink block:
Nodes discard the chain of blocks they were following if they discover another chain with more cumulative Work, which almost always is the longest chain (the one with more blocks).
Discarded transactions that are not included in the new block, are returned to the list of transaction requests.
The chance of an already accepted block will be discarded drops with each subsequent block, hence it is called confirmation. Confirmations provide probabilistic immutability.
The creator of each block gets a reward in the form of transaction fees + a subsidy.
Fees incentive the execution of each transaction request.
The new bitcoin units that the network issues per block are the subsidy.
The monetary inflation rate is constantly decreasing tending to a maximum of 21 million bitcoins, since the subsidy is halved every 10,000 blocks (approximately 4 years).
For the first time in history, a monetary good's inflation is predictable.
Decentralized network: nobody is in charge, nobody controls it.
Distributed network: data is redundant, replicated by multiple entities in multiple locations.
Consensus: agreement by multiple parties.