The Right to Run a Node

Date: 2020-06-05

Source: https://craigwright.net/blog/economics/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.

Extracted Insights (33 total, showing top 10)

R7 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...
R7 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 ...
R7 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...
R7 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 requir...
R7 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 Merkl...
R7 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 netwo...
R7 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 cr...
R7 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 f...
R6 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...
R6 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...

+ 23 more insights


← Back to archive