Post
Topic
Board Development & Technical Discussion
Merits 1 from 1 user
Re: Client diversity - why isn't it an issue for Bitcoin?
by
buwaytress
on 14/06/2024, 18:47:08 UTC
⭐ Merited by vjudeu (1)
Quote
but I wonder if there ever has been any discussion or similar concern for a client supermajority in the Bitcoin network?
Yes, even Satoshi expressed his opinion about that:

I don't believe a second, compatible implementation of Bitcoin will ever be a good idea.  So much of the design depends on all nodes getting exactly identical results in lockstep that a second implementation would be a menace to the network.  The MIT license is compatible with all other licenses and commercial uses, so there is no need to rewrite it from a licensing standpoint.

Thank you for sharing that information and quote. I'm not able to say if an alternative implementation of Bitcoin is today as big a menace as he/they imagined it to be -- and if there was a comment about client diversity in relation to the overflow bug since satoshi was still around at the time? Zero-day attacks targeting Core seem to me pretty menacing...

I'm just thinking from a simplistic view of attack surface. It's not about rewriting the code but using a different language altogether (which seems to be the Ethereum client approach, multiple languages, even some I don't recognise). In the same way having 20k nodes improves redundancy, forcing a would-be attacker to create a weapon for all clients in multiple languages just makes it that much harder for a successful attack.

Quote
Bitcoin Core's 98% dominance.
Note that:

1. Even if someone uses some modified version of Bitcoin Core, most node runners do not bother to change the default client name into something else.
2. If someone changes that name, it is usually done in brackets, so it is still identified as Bitcoin Core.
3. There are different versions of Bitcoin Core in use. Some article about it: https://blog.lopp.net/when-do-bitcoin-node-operators-upgrade/
4. Even if someone is running his own client, it usually is still connected to some Bitcoin Core node, just to be sure, that it will be "bugward-compatible". Because sometimes you may feel a need to "fix" something, and then find out, that your "fix" is actually a hard-fork (and then, you are for example mining bad blocks, which are always rejected; or you don't accept the strongest chain as valid, because you reject for example a block with transaction containing SIGHASH_SINGLE bug).

That I didn't know. I'm wondering if there is any source that keeps track of versions connected in a way I could see? I've come across mentions from Dashjr about tens of thousands more clients running but not connected in a way we could reach them. Could these also be very different versions of Core? And do they count at all then?

If you were to guess, adjusting for modified versions, what would you think is a more accurate client share of Bitcoin Core?

I found something else from Lopp's blog: https://blog.lopp.net/2022-bitcoin-node-performance-tests/
So it does appear there are at least 2 working clients in 2022 that the Coindance link I shared didn't detect. Minus the clones, that's a total of 9 working clients that aren't Bitcoin Core and not in C++.

1) We tend to be paranoid, so even if someone or some group does come up with another client, it's tough to get people to move because who wants to run software that controls money that has not been as battle tested as core.

Appreciate your response! Certainly seems to be an agreement in Ethereum that most people go for the majority simply because they are "lazy". I can relate, SPV-wise, I chose Electrum and never bothered to switch. I feel confident and assured with it, but don't really have evidence about others that should confirm my lack of confidence and assurance in them.

What makes more sense to me is that Geth also receives the most attention and funding from Ethereum Foundation, so logically, should be the most battle-tested and robust. That to me mirrors the situation with Bitcoin Core.

2) If I put together a team and came out with a different client and people used it and it was popular.....Then what, is there a business plan or are people donating their time? If it's worked on as a best effort thing how does the project keep up with core. And so on.

Isn't this how many of the clients in link above started out though? I presume most of them were voluntary, and yeah, some look dead already, but if enough people found them useful, or a new audience found them accessible (let's say, I'm just thinking out loud, a client twice as easy to use than Core).

Yes, it's possible, but it's probably never going to happen.

And, to answer the question why is it not an issue. The answer is simple, because nothing has gone horribly wrong yet so we keep using it.

I suppose even if something does go horribly wrong, the situation won't change? Smiley