An Analysis of Risk for Bitcoin and Ethereum Client Diversification and Reliance

Keychain
5 min readAug 17, 2020

I keep seeing talk about Ethereum and Bitcoin regarding problems such as supply, inflation, contract security, protocol ossification and risks regarding centralization. But the client diversification risk is probably singlehandedly the largest risk to Bitcoin and why this risk is much higher for Bitcoin than for Ethereum. A critical risk that is not talked about at all.

What is a client and how does it matter in regards to the protocol?

A Bitcoin and Ethereum client is a piece of software that runs a node and enforces the ruleset of the protocol. The protocol being the rules that should be followed almost like a contract of social accepted norms that define what the protocol should do. This generally is defined in the whitepaper and then implemented by nodes to make the network run. These nodes are the pieces of software that together form consensus that the rules are being followed and if your node says that according to how your node has been written that there has been a violation or a transaction which doesnt conform to its perceived rules then it will be rejected, similarly if its rules differ to what the rules should be then it may see a transaction which the protocol social agreement says should be invalid as valid due to a bug in the implementation. If enough of the network is running a single client then it could be said that the implementation is a reference implementation of the protocol such that the rules of the client are the rules of the protocol not the other way around. Bugs and all.

Why does this matter?

If a single client dominates a protocol and the protocol relies on a majority of honest nodes in the network, commonly refered to as Nakomoto Consensus whereby a majority of honest hash rate all agrees on the rules and blocks and transactions and build a Proof of Work based upon agreement of those rules collaboratively and together then the protocol is deemed safe as long as majority .51 of the nodes are honest. However should there be a bug which causes the clients to go down then that majority will fall and a dishonest minority may be able to take over the network through building PoW while the honest majority are offline or worse the honest majorities nodes may contain a bug allowing an otherwise invalid transaction to be seen as valid and if the super majority all run the same node the transaction will go through, be built upon, be part of all of the rest of the valid transactions and valid BTC or Eth in the ecosystem despite being invalid (as if such a bug was one where a transaction minted itself 100,000,000,000 of a coin). This means that if the majority of the network run any 1 node that Bitcoin or Ethereum is not actually the Bitcoin or Ethereum Protocol but actually Company Which Created The Node and So That Specific Nodes Protocol. This is highly dangerous as ideas such as supply, validity, immutability and security are all subject to node implementation if that node is a majority of the network.

Analysing the current state of Bitcoin and Ethereum

On to the juicy part. Why am I talking about this? Its surely not a problem as Bitcoin is decentralized! Right? No. Its not. The following images taken from statistics and network mapping sites show the distribution of the bitcoin and ethereum networks by node. Here is what the networks look like

Historical Distribution of Nodes Decentralization
Current Distribution by Node

As you can see the Bitcoin network is highly centralized to the Bitcoin Core node. This single nodes control rate of 0.9781 of the network. This shows that if a single critical bug in the implementation were to occur that almost all of the network would either go down or accept invalid transactions that met the nodes personal configuration. This is not a 0 possibility. This has happened in the last 2y. The bug shown here
https://hackernoon.com/bitcoin-core-bug-cve-2018-17144-an-analysis-f80d9d373362
was a bug that would be able to affect inflation of the supply of bitcoin allowing a single input to create multiple valid outputs making the bitcoin in those transactions appear out of thin air and enter the supply of the bitcoin global network and due to all exchanges, users and companies running Bitcoin Core they would be accepted and not rejected. This bug could have taken the entire bitcoin ecosystem and large part of the crypto ecosystems reputation generally down with it. Fortunately the bug was found, fixed and no longer a threat but are we really willing to allow this threat that could have been avoided by an more even distribution of nodes such that the majority of the network are reference client dependant to happen again?

Now Ethereums Turn

Ethereum also suffers the same problem however in terms of decentralization the top client is only .8 of the network which is 7X more decentralized than that of Bitcoin. But still this same risk applies to geth. With Eth 2 Testnet this number is far better with Prysmatic Labs client only being .66 of the Medalla Testnet for Ethereum 2.0 Beacon Testnet.

Ethereum Client Distribution of Nodes

To Finish

Ethereum and Bitcoin are the 2 largest networks in Cryptocurrency and both are critical to the space in its current state. Often we talk about decentralization in mining, in development and in other ways. But the very foundation, the software that we run and that controls the network has so far been greatly overlooked. So if this has caused you concern please, run a node and run a node that doesnt get run by the rest of the network with its own team and own implementation of what the protocol should be that so that when we get a client bug, it stays a client bug and the rest of the protocol can keep running along without a problem. Help the ecosystem. Help yourself. Make the ecosystem diverse. Make your money safe. #Decentralize #Declientize

Follow us on Twitter
https://twitter.com/0xKeychain

--

--