The Right to Run a Node
The problem that exists in the Bitcoin environment today is reminiscent of society at large. For many years now, we have been falsely preaching a myth of equality where we tell children that “it doesn’t matter” as long as they participate. We denigrate those who do well, those who work hard, and those who achieve and sacrifice themselves on the altar of equality. The cult of equality has infiltrated society to an extent where we now try and teach people from childhood that they are special because they tried really hard. To such ends, we give prizes to not only the first but the last.
In doing so, we do not prop up those who are failing, but we denigrate success. For each person we award and celebrate for merely having tried, we disincentive someone who would have not merely tried but excelled and striven towards the betterment of humanity. And such is the point: there is no right to success. There is no right to happiness. The US founding fathers talked about the right to the pursuit of happiness, an idea that belies a concept fundamentally different to one that is being promoted now.
Here lies the false dichotomy we see within Bitcoin and associated systems. We see an attack on the fundamentals of Bitcoin’s competitive nature by those who say that everyone has a right. But a right to what exactly?
We shall start with what you have a right to. The system I created with Bitcoin gives every individual the right to attempt to run a node. I have defined a node many times, and it is clearly explained in the white paper as a system that not merely propagates blocks and transactions but creates blocks that are accepted by the consensus group. As such, unless you are creating blocks periodically, at least once a fortnight as a very minimum level, you are not running a node. To say that you have run a node, within any difficulty period, means that you must have found a block within the given time frame. There are 2016 blocks discovered in every difficulty period in the base distribution of Bitcoin.
Consequently, there can never be more than 2016 nodes in any difficulty period. There can be more candidate nodes, which seek to act as nodes but do not make the cut. The reality, though, is much more subtle; the distribution will never be equal within Bitcoin. The reality is that over 95% of the block discovery at any time is associated with 10 to 12 entities (nodes), leaving but 100 blocks up for discovery by other nodes. We can extend the scenario further: the top 99% of block discovery is consistently associated with the top 20 or fewer players. In any difficulty period, it remains that only 20 blocks may be discovered outside of the top 99% of nodes. Consequently, at the very maximum, there will never be more than 50 nodes on the Bitcoin network.
I can say so categorically, because the definition of a Bitcoin node is very simple: a Bitcoin node creates and propagates valid blocks. Any system that is not propagating blocks it created is not a node.
The analogy lies in our current generation of helicopter parents, who think their poor little Johnny deserves a prize because he managed to finish the hundred-metre sprint in only five hours, while stuffing his face with ice cream. You may consider that you are helping the network because you are running node software. Yet, if you are not creating blocks in each difficulty period, then you are not helping to propagate blocks; you are not helping at all. It really does not matter whether you want to help. It is completely irrelevant. You do not have a right to run a Bitcoin node; you have a right to try to run a Bitcoin node.
The network is not designed to subsidise your desire. It really does not matter whether you want to run a Bitcoin node more than anything; if you are not investing the time, effort, and capital required, then you are not in the running whatsoever.
The system on Bitcoin Core (BTC), a name I use loosely as BTC is anything but Bitcoin today, has represented a philosophy of equality. There are separate meanings of equality. The cult of equality has glossed over all of them. We ignore the fact that there is a market difference between the meanings of the word. There are equal opportunities, and there is an equality of outcomes. Such simple differences lead to a completely different philosophy of life.
To want an equality of outcomes is the position taken by those who seek communism and socialism and collective rights. It represents a system that disincentivises anyone from taking a risk or building something great as the outcome will be that they will be treated the same as everyone else. Why would you spend your time and effort training to be an Olympic athlete when you will not gain any benefit or recognition past the fat kid who finishes last?
Bitcoin, like life, is not fair in the manner that some people seem to want. Bitcoin is fair in the sense that the set of rules is defined, and anybody can come into the system and try their hand. It does not mean that they will succeed. Which is an important part of Bitcoin. Most people who try to join the network and run a node will fail, which is a good thing. Bitcoin is not there to allow you to run nodes. The purpose of Bitcoin is to allow the transmission of digital tokens that can be used as cash. The purpose of Bitcoin is to allow it in a manner that provides an exchange of low cost, so low that micropayments are possible.
Nodes are competitive. Competition is required because without it, there is no incentive to invest in the system. Any node on the Bitcoin network can be supplanted by another. In other words, just because you are the dominant corporation today does not mean you will be the dominant corporation tomorrow.
Bitcoin Is NOT about Running a Node
The entire point of Bitcoin was to allow users to be users. If everyone must be able to run a node and to run data centres and maintain systems required to enable the exchange of small amounts of money, there is no purpose in having Bitcoin.
A user only needs to keep a copy of the block headers of the longest proof-of-work chain, which he can get by querying network nodes until he’s convinced he has the longest chain, and obtain the Merkle branch linking the transaction to the block it’s timestamped in. He can’t check the transaction for himself, but by linking it to a place in the chain, he can see that a network node has accepted it, and blocks added after it further confirm the network has accepted it.
There is a reason why Bitcoin transactions are published, while the headers of the blocks can be maintained with little effort and checked at any time. Simplified payment verification (SPV) users maintain a complete list of all transaction indexes if they so wish. As such, they can quickly validate changes to the blockchain. In maintaining a list of block hashes, it is possible to determine when a change was made to the blockchain and act on it. It is not necessary to maintain the entire blockchain to do so.
In fact, there is no gain in security by doing so. The only difference in having the entire blockchain downloaded to your machine, against maintaining just the block headers, comes in case the hashing algorithm in Bitcoin is ever cracked, where you then have the entirety of the chain. But, it is a flawed scenario. In the event that the hashing algorithm of Bitcoin is found to have no security, it will no longer matter whether you have a complete copy of the blockchain, as the system itself will have no security. Consequently, merely maintaining a copy of the block hashes is a complete record at a point in time. Any changes that occur can be audited and reviewed by those holding such a minimal amount of information.
In the white paper, I explained: “Businesses that receive frequent payments will probably still want to run their own nodes for more independent security and quicker verification.” The idea did not imply that businesses would be aiding the network by running a node. Rather, such merchants that run a node that is not expected to discover blocks are doing it for their own gain. They are not adding any security, nor are they helping to propagate transactions or blocks across the network. Rather, such systems, which maintain a complete copy of the UTXO set, are minimising merchants’ own losses when they need to transact very quickly. It is a service that large merchants who take unconfirmed transactions may want to run to minimise any losses associated with people trying to commit a fraud.
Rules Are Set in Stone
The ‘longest-chain rule’ does not mean that you can set up a node that changes rules.
While network nodes can verify transactions for themselves, the simplified method can be fooled by an attacker’s fabricated transactions for as long as the attacker can continue to overpower the network. One strategy to protect against this would be to accept alerts from network nodes when they detect an invalid block, prompting the user’s software to download the full block and alerted transactions to confirm the inconsistency [emphasis added].
When I configured the alert key, it was not a new idea. The alert key was something I had been considering before I launched the Bitcoin software in 2009. The concept is mentioned in the white paper. Again, by network nodes we are referring to the nodes defined in section 5, that create blocks. Users do not get to send alerts; it would be possible to create an alerting system allowing for merchants to update network nodes. In the future, the scenario can be extended to allow courts and law enforcement to send notifications to the node operators.
An attacker who manages to overpower the network leaves an easy-to-follow audit trail. Network nodes were always destined to end in data centres, which is already the case. It is simple to say, it requires an investment of hundreds of millions of dollars or more to be a node. Such an investment is easy to trace, and if you attack the network, it is an investment that is easily taken from you. Such is the point of Bitcoin: you work with the network, or the network works against you. A potential attacker does not gain by attacking Bitcoin, because they lose their investment.
The Consensus Method of Bitcoin
It is very simple; there is one consensus method in Bitcoin: miners or nodes or transaction-verification systems or whatever you want to call nodes vote on the enforcement of the rules. They do not create the rules. They do not alter the rules. They enforce the rules.
Any needed rules and incentives can be enforced with this consensus mechanism [emphasis added].
No matter how many user systems exist on the network, all propagation comes from commercial systems. There is the myth that the Bitcoin Core network has 10,000 nodes, which could not be further from the truth. It is rare to have even 50 nodes on the BTC network. Only 20 of which do anything. In the entire history of Bitcoin, the only nodes that have done any propagation work are the ones that are creating blocks. If you investigate the transaction processing of such work, you will discover that every single transaction that is incorporated into a block is transmitted from the original user to the network nodes, who send to any remaining network nodes.
At no point do network nodes ever receive Bitcoin transactions from entities that do not create blocks. If you investigate the propagation of every single transaction on the BTC network, you will see that the propagation to network nodes happens within two hops.
The first hop is the sending of the transaction from the transacting parties to the network nodes.
The second hop involves a network node transmitting to any remaining network nodes.
There is no point within the Bitcoin network, or any blockchain network, where a transmission involves any system other than a network node. The network nodes invest in fast Internet connections and fast machines. They do so because it is the only way that they make money. Those who do not do so go bankrupt very quickly. What remains is that network nodes on Bitcoin propagate transactions between themselves faster than a home user or Raspberry Pi ‘node’ can even accept a transaction.
Once a node has received a transaction, it will not receive another transaction that incorporates the same input values or UTXOs. Consequently, the later transmission of the transaction from a ‘non-network node’ is irrelevant. In fact, the only time that a ‘non-network node’ can transmit a transaction to a network node is when the system is attempting to propagate a double-spend. Here, the hash of the transaction will be different to the existing transaction ID that is maintained on the network node, and the full transaction will be requested. The network node will then have a copy of the transaction with double-spent inputs. The network node will neither propagate it, validate it, nor ever add it to a block.
The consensus mechanism in Bitcoin is very simple. It is the propagation of a completed block. Non-nodes, including all of the Raspberry Pis propagated within the system and sold by a variety of nefarious actors seeking to mislead and dupe individuals into parting with their money for no good reason, do not engage in the consensus mechanism of Bitcoin. User-activated soft fork (UASF) systems are not part of the Bitcoin network in any way, which is simple to determine; the only consensus mechanism in Bitcoin comes from the propagation of blocks. A system that does not propagate a block has no say.
A system that does not propagate a block cannot be censored by other systems.
The only way to have any say in the ordering of transactions on Bitcoin is to create blocks.
It Is Not about what You Want
So, very simply, it does not matter whether you want to help the network. Bitcoin has a defined set of rules, and is constructed to always end in a commercial system. When you are talking about BTC and the Core team, Ethereum, or any of the other coins and systems that attempted to copy Bitcoin without the groups behind them understanding it or even Bitcoin itself (BSV), the thing to note is that you are only running a node if you manage to create blocks.
You have no right to run a Bitcoin node. You have the right to attempt to run a node. They are not the same things. You have no right to happiness; you have the right, in free countries, to engage in the pursuit of happiness. You have the right to attempt to raise the money and invest the capital in the pursuit of the creation of a system that will make profit through transaction processing, and such is the nature of Bitcoin.
It does not matter whether you want to help the network by running a node. The only way you can run a node is to invest enough capital and to create a system that is sufficiently effective and efficient to be profitable. If you do not end up making blocks, you are still not running a node.
Some people will tell you that you are acting as a node by being part of a pool. Although a mining pool is itself a node, only the controlling entity matters in the scenario. So, by adding your ASIC to a pool, you may or may not make some profit, but you are still not part of the Bitcoin network directly. You are part of a pool that operates as a node. You are contracting to the pool. So, as a pool miner, you are part of a pool, but you are still not part of the Bitcoin network. You are not processing transactions, and you are not propagating them. At best, you are an agent of the pool network, and you are investing your time to make the corporate entity better.