I Did Not Invest in a Password
There is a lot I would like to say about this abstract for Satoshi’s whitepaper, but I am simply going to use it as a starting point to jump into other issues. Firstly, no where in this abstract are the rules of such a system mentioned.
- No where in the abstract is there mention of a the total token supply.
- No where in the abstract is there mentioned a specific rate of issuance for tokens.
- No where in this entire whitepaper in fact, are any specific rules or definitions of the currency itself laid out.
This is for very good reason. This whitepaper does not describe or define the rules of Bitcoin, it defines a set of mechanisms, a network architecture, and set of social incentives to enforce any rule set for a digitally scarce token. The rules of Bitcoin were laid out in the code Satoshi wrote and launched the network with in 2009. If you look to this whitepaper to inform you in anyway on what the rules of Bitcoin are, or how they are to be decided, then I am sorry to say you have made a wrong turn a long time back.
I see it frequently assumed and stated that it is not important for users to fully validate themselves, or it doesn’t matter that most users do not validate the chain for themselves. This assumption is further spring-boarded from to declare that it doesn’t matter the percentage of Bitcoin users running full nodes, only the absolute number of nodes. This is a ridiculously asinine and fallacious statement. Let me unpack the statement from the abstract above regarding double-spends to explain why.
What exactly is the double-spend problem? Obviously the potential for a unit of value to be expended multiple times to multiple parties. I am quite sure some would immediately jump to narrowing this definition to an instance of this occurring resulting in a permanent inflation of the money supply. While that is obviously a huge aspect of the problem for the system at large, on the level of the individual that is not where the problem ends. A delayed awareness of a double-spend can lead to a loss on the level of the individual for the sake of integrity at the system level. Miners play the role of arbitrator in the solving the double-spend problem, they definitively solve the problem on the scale of the entire system. However, from this point a delay is introduced in the awareness of a conflict solution by way of the delay in blocks propagating out to other clients in the network ran by users.
I wrote here a bit on how the incentive structure of Bitcoin has evolved since the network launched. To sum up quickly here: it is the unified economic momentum of multiple nodes applying the same rule set against blocks miners produce that maintains the networks viability. Miners allow the network to facilitate transactions, and users validating that work against consensus rules enforces the guarantee behind the currency rules set in motion by Satoshi in 2009, and protect the network’s ability to store value. It is not the miners that give Bitcoin value, it is simply the economic momentum of a network of actors all valuing the tokens recorded by a blockchain extended under a common rule set.
If you look at the picture above this quote, you will see concentric rings of different client types circling outwards from miners. The double-spend solution provided by miners is only a legitimate solution if solved within the confines of the consensus rules enforced at large. The only way to ensure their solution is within the confines of the consensus rule is to validate the block they produce. The only way to validate a block is to validate the block before it. I’m assuming by now you can see this requires running a fully validating client, that has at least downloaded and verified the entire blockchain once even if it does not continue to store all of it. Preventing double-spends is a two part event here, the provision of a solution by the miners, and the verification of that solution by users.
To spell it out: if a user is required to rely on someone else to verify a block, if they must trust someone else to prevent them falling victim to a double-spend, that is requiring they trust a third party. Look again at the graph of nodes spreading outwards from miners. You have miners running full nodes and minting blocks, you have businesses and exchanges running full nodes facilitating price discovery, and you have users that are fully validating outside that, and then a magenta border. Outside that border you have SPV nodes, guaranteeing nothing but that the difficulty of Proof-of-Work is sufficient and their transaction is in the blockheaders merkle root. Then you have clients such as Coinbase’s and other services wallets that validate or guarantee absolutely nothing, just trusting what Coinbase tells them. Everything outside of that magenta border currently relies on a trusted third party to prevent them being victimized by double-spends.
Now, don’t get me wrong. Large numbers of users will always choose to operate reliant on third parties, and in abstract there is nothing wrong with that. Bitcoin is an open system, and it is entirely up to you how you choose to interact with it. But when users are required to do so, when it is physically beyond the means of most users to interact with Bitcoin in any other way, it ceases to be Bitcoin. It loses the benefits it has over other existing methods today. Those are the words from the horse’s mouth.
A Bitcoin that is not designed with the assumption that every user possible should be capable of running a fully validating client, is not Bitcoin. If protecting yourself from a double-spend requires the use of a third party, then you are using a permissioned system. Not only do you require a third party’s permission and service to be safe from double-spends, but that creates a dependency on them to continue verifying that miners double-spend solutions are produced within the consensus rules you agreed to follow. Users lose the ability to apply their economic momentum to independently enforce the consensus rules they agreed to when joining the network if they must depend on a third party to prevent double-spends. This leaves all users not validating open to whatever rule changes to the system those validating decide. This turns Bitcoin into a tyranny of the minority over the majority. Exactly what Bitcoin was designed to avoid.
Right now, Bitcoin is a network I operate on as a peer, providing my economic weight to the enforcement of consensus rules I agreed to. My private keys are an access mechanism for the value I own in this network that I am a peer in. A Bitcoin where I cannot run a node is not the sovereign currency I invested in. If I require a third party to secure myself against double-spends, my private key is no different than a password to a Google account.