Blockchains are networks that emerge from nodes operating software. Nodes in large numbers provide the security blockchains depend on, but their software also has implications for the success of the network. Today’s write-up explains the types of nodes and why the software they operate matters. Enjoy.
Sections
What are Blockchain Nodes?
What About Bitcoin’s Nodes?
How are Ethereum’s Nodes Different?
How Do Clients on Ethereum Today Look?
*Thank you to Ziad and Sleiman for proofreading.
What are Blockchain Nodes?
Blockchains are networks made up of nodes that work together to add new blocks to the chain. When you broadcast a transaction, it gets added to a block by going through a node first. That node receives the transaction and broadcasts it to the others, eventually resulting in it being included in a block. Services like Infura and Alchemy have nodes they provide for this purpose.
These block-adding participants are called full nodes, and they do most of the work that allows blockchains to exist. They execute and broadcast transactions and agree on blocks.
However, since block producers only store the blockchain’s most recent state (as of the last block), we depend on archival nodes to store blockchain data to retrieve information about something that happened in the past (this is how Etherscan works). Archival nodes don’t receive any extra rewards, they simply process blocks the way full nodes do while maintaining copies of previous blocks and their states.
Read more about blockchain data storage here.
Finally, light nodes don’t download any historical data, or even the latest state. They only listen to small pieces of information that can determine if a block is valid or not. Their jobs are to hold full nodes accountable by checking their work.
What About Bitcoin Nodes?
The Bitcoin network is home to all 3 types of nodes. One small difference is that light nodes are instead called “SPV (Simplified Payment Verification) Nodes.” The much bigger difference from other cryptocurrencies is in the software that full and archive nodes must run: there’s only a single version of it!
Bitcoin Core is the software nodes run (that actually makes them nodes). On Bitcoin, the Core client is the only option available. While this simplifies development, it also creates a large point of centralization. If an issue ever arose with the Core client, it could impact the entire blockchain since all nodes participating are running that software. Bitcoin has had such issues in the past, and they’ve been messy.
In August 2010, a bug in the Core client allowed billions and billions of Bitcoin to be printed, obviously far greater than the protocol’s 21 million limit. The blockchain had to fork and nullify all blocks processed after the issue was discovered.
In September of 2018, a double-spending exploit was discovered that was possible because of the Core client. With double-spending, it would again become possible to inflate the supply far past the protocol’s 21 million limit. The Core client released an update before the exploit could be used, resulting in no forks being necessary.
How are Ethereum’s Nodes Different?
The Ethereum network also hosts all 3 flavors of node. The big difference to Bitcoin is that there are many clients nodes can choose to use. This keeps the network secure from similar vulnerabilities Bitcoin has faced: having multiple clients means that if a single client faces an issue, it doesn’t introduce a systematic risk to the blockchain itself.
Ethereum’s client software are split into two categories: execution and consensus. Each full or archival node on Ethereum has to run one of each type of client; i.e. each node runs both an execution client as well as a consensus client.
The execution client is responsible for actually executing the transactions in a block and computing the changes to Ethereum’s state. The consensus client, on the other hand, is responsible for agreeing with other nodes that execution is happening correctly. Node operators can choose which of each type of client they want to use.
How Do Clients on Ethereum Today Look?
Today on Ethereum the topic of client diversity is important. Having several clients is great, but only as long as people are using them. In the past, a single consensus client, Prysm, was used by over 50% of nodes. This is risky because a bug with Prysm would have been enough to potentially cause consensus issues.
While Prysm’s market share has faded below 50%, falling below 33% is seen as ideal. This is because even 33% of staked ETH can be enough to bring the network to a halt. If such an issue or vulnerability was found in either Prysm or Lighthouse today, it couldn’t result in a 51% attack (the worst case) but may be enough to bring the Ethereum blockchain to a pause.
On the execution client side, the situation is a little more worrisome. Geth is the client software created by the Ethereum Foundation, and has been the most popular option for a long time. Being used by over 60% of nodes is not at all great, and ideally we’ll see a switch to other clients in the coming weeks and months.
In Conclusion
Secure nodes keep blockchains safe, but nodes are only as secure as the software (clients) they operate. Client diversity is healthy, and is a benefit of Ethereum that Bitcoin does not have. While companies that create clients are businesses that need to grow, they also have a responsibility to Ethereum to not accumulate too much market share and risk bringing the network to its knees.
Thank You & Additional Reading!
Thank you for reading! Here are some more resources if you'd like to dive deeper.
Share a Summary
Please consider sharing this write-up below!
Stay kind. Stay curious.