The Mitochondria Misconception: Uncovering the Golgi in Bitcoin's Network
A node is a computer running the Bitcoin program. It connects to other node on the network to share information about transactions and blocks.
A node has two main jobs:
1. Keep a copy of the blockchain
When you run Bitcoin the first time, it will connect to other nodes on the network to download a full copy of the blockchain. This allow your node to get up to date with the current state of the blockchain, so you can start receiving ( and validating) the latest transactions and blocks being sent around the network.
2. Validate and relay new transactions and blocks.
After downloading the latest copy of the blockchain, a node can start receiving the latest transactions and blocks.
Each node checks the transactions and blocks it receive against a set of rules to make sure they are valid, before relaying them on to the nodes they are connected to.
As a result, a node is constantly working to enforce rules and transmit data across the network.
When a node receives a new transaction, it must validate the transaction before adding it to its mempool and propagating it to other nodes. The validation process involves checking various aspects of the transaction, such as:
Syntax: The transaction must be properly formatted and contain all required fields
Signatures: The transaction must be signed with a valid signature that proves ownership of the input funds
Input UTXOs: The transaction's inputs must reference existing, unspent transaction outputs (UTXOs)
Output values: The sum of the transaction's output values must not exceed the sum of its input values
Similarly, when a node receives a new block, it must validate the block before adding it to its local copy of the blockchain. The block validation process involves checking:
Block syntax: The block must be properly formatted and contain all required fields
Proof-of-Work: The block's hash must meet the current difficulty target
Timestamp: The block's timestamp must be greater than the median timestamp of the previous 11 blocks
Block size: The block's size must not exceed the maximum allowed size (currently 1 MB)
Transactions: All transactions in the block must be valid and not already spent
Don’t Trust Verify is for a time that doesn’t exist anymore
In the beginning every miner was a node and every node was a miner. A non-mining full node does not do any proof of work to contribute to the network by validating blocks but instead validates transactions according to the consensus rules of the network. A full node (mining) moves your transactions from the memory pool on to the blockchain thus providing real work to solidify on the blockchain. A non-mining node doesn’t do any proof of work at all and instead just validates transaction into the mem pool to await confirmation by a Miner. A reason to run a non-mining node is to make sure the miners are being honest with their transactions and to cut out the middle man of having to verify a transaction through a third-party.
CPU = 1 Vote now ASIC != decentralisation
Instead of mining with your CPU now Bitcoin requires a ASIC (Application-Specific Integrated Circuit Rig) brought specialization and professionalization to mining, taking it out of the reach of the casual enthusiast and into serious hobbyist and professional operations. This created centralization pressure making earning for smaller miners very difficult. In a simple sense this moved took the Bitcoin network out of the hands of the average user and placed it into the hands of industry. Not a smart moved considering the validation of blocks of transactions out of the hands of the people looking to participate in the network. It was also counter-intuitive to the networks decentralization as the mining difficulty goes up and fewer and fewer miners get to participate because Bitcoin mining is unsustainable with cost of mining hardware and the lottery affect of confirming a block with competition of mining farms that have unfair advantage over the little miner.
Running a Non-Mining Full Node is actually hurting the Bitcoin Network?
Because you are not providing any proof of work to the network when a transaction gets validated by your node you still have a ping a real Node that is doing Work for a transaction to be confirmed on the blockchain. In a way you are preventing real work from being done because a transaction would confirm faster if it by passed your node to a Full Mining Node that could move the network along.
‘Only people trying to create new coins would need to run network nodes (miners). At first, most users would run network nodes (miners), but as the network grows beyond a certain point, it would be left more and more to specialists with server farms of specialized hardware.’
What? Satoshi said this? If Satoshi foresaw server farms then how did people not recognize that this would go against the tenets of Bitcoin? In retrospect it is clear the dynamics have massively changed as a result of the aggressive re-configuring of the system. A few known central parties now handle three of the most critical aspects of the Bitcoin system: Validation, Software Updates, and Transaction Selection.
What then are the reasons for running a Non-Mining Node? If you run an exchange or a large payment provider, you can benefit from running a “non-mining full node”. These nodes contribute very little. Unless they are responsible for significant economic transactions, they are literally just sitting there and passing messages around. Another reason would be if you are a hobbyist and want to make sure miners are still honest. But 99% of users can do perfectly fine with an SPV (Simple Payment Verification) client, and everyone would be better off as a result. If the integrity of the blockchain ledger is not compromised by any single node why waste my bandwidth validating my own transactions as well as the rest of the network. Seems like an exceptional waste of my resources for my own privacy and cutting out a middle man. A waste of resources amply describes ASIC miners (one case use computers that are manufactured for one purpose and can’t really be repurposed) and scaling solutions of the Bitcoin network were all you had to do was increase the block size and keep the realm of mining within the peoples’ resources such as CPUs and GPUs. But nahuhh Number Go Up and lazer eyes and Wen Moon! The honey badger’s weakness is it’s bottleneck the stream crocodiles made sure of this, the OG hyenas laughed at the ossification, the cartel of leopards industrialized it and on Pride Rock the Lion ate the carcass.