pull down to refresh

Recently, one of the bankless dudes said ETH is the only L1 that has multiple software clients:

The ETH people have a problem because more than 70% of staking happens with only one client. Obviously, running staking software is wildly different than running a bitcoin node, but it is also true that almost everyone who runs a bitcoin node runs Bitcoin Core.

2022-2023 were tough years for alternate implementations of bitcoin

In August 2023, researchers discovered a vulnerability in a seed generation command in Libbitcoin that resulted in a number of wallets getting drained.
In the Bitcoin world, most of the resources go to Bitcoin Core and the other implementations are pretty much maintained by one or two key developers with far less review by the open source community.
And when it comes to bitcoin consensus, a minor error can lead to a fork--so the general response among bitcoiners to these bugs seemed unanimous, thank goodness 99% of Bitcoin nodes run Core!

Alternative Implementations for all the Wrong Reasons

In response to the tidal wave of transactions and data coming to Bitcoin from inscriptions, stamps, and BRC-20s, Luke Dashjr implemented a different set of filtering policies for the implementation he maintains, Bitcoin Knots. And the new OCEAN mining pool used Knots as it's bitcoin implementation for their mining software.
Whatever side of this debate you land on (to filter or not to filter), it exposes the reality that nonconsensus code (eg: mempool policy, relay policy) can be pretty important too, especially when you only have one client.

My Dilemma: Are Forks Worse than Centralization?

As bitcoin adoption increases, Bitcoin Core will come under more and more pressure. The people who currently maintain and contribute to it are awesome and do great work; however, Bitcoin Core sure looks like the choke point for the entire apparatus. We don't want mining too concentrated in one jurisdiction, we don't want a multisig with hardware from only one provider, so why do we feel okay with only one implementation?
I think it would probably be a net good for Bitcoin if we had a serious competitor to Bitcoin Core, but whenever I set up a node, I pretty much always run Core because I'd rather use the software with the most eyeballs on it. I'm sure this is calculus is true for most actors in Bitcoin: sure I'd like to see client decentralization, but I don't want to get forked off.
Do you see a world where a second Bitcoin client software emerges and gains significant (more than 20%) market share?
786 sats \ 4 replies \ @kepford 4 Mar
This is the kind of discussion I like to see. Not the tweet you link to but bitcoiners thinking about possible problems with the status quo. There are some good comments in this post (@027c352e45, @elvismercury, @DarthCoin & @Scoresby).
  1. We do need more clients than just bitcoin core
  2. A written spec does make sense to me for a project this important
  3. We have other clients but usage is limited
  4. We are still very early. Things can and will change but you make a strong point.
reply
Something I'm confused about re a written spec:
Presumably this spec would evolve over time. Who would be the "keeper of the spec" or the people who change it?
I'm sure industries have solved this problem, but I can't imagine it looks a whole lot different than a lighter version of bitcoin core.
How does a spec get us out of the single client dominance (unless it is ossified and set in stone)?
reply
151 sats \ 0 replies \ @kepford 4 Mar
A spec doesn't solve the problem. It would just make it easier to write new clients.
In order to not have single client dominance you need
  • A number of good alternative clients
  • People willing to try something different
  • People that see the benefit/need for diversity in clients.
There are some natural reasons for new clients to arise. I think the alt clients pretty much come out of these reasons.
  • Mobile OS limitations (neutrino bitcoin)
  • Bandwidth limitations
  • Performance improvements
  • Ease of use
Basically different use cases or priorities drive the desire for different clients. I just think we are still early but now is the time to ask these questions.
reply
Here's the deal. I am just now diving into actual bitcoin development myself so I could be off base in some way. I'm sure a stacker will correct me if I'm wrong :)
I've written many specs over the years but never anything open source, but you are right. I imagine it would like a lot like the current bitcoin-core dev process. In my mind it would make it easier for developers to write new clients if there were a clear spec. It would not only help with new clients but also core dev work.
reply
No we donโ€™t! There should be one spec as implementation, and all things should use Bitcoin Core.
Iโ€™ve run into many compat issues with LND and CLN, so Iโ€™m not so keen on that either, but it is what it is. Btcsuite/btcd was always an altcoiner project and some of that evolved elsewhere.
Alt clients are a menace. More clients does not decentralize it, it makes it more brittle. This is an important distinction!
reply
The problem-behind-the-problem here is: is it possible to have the consensus defined as a written spec. This point is surprisingly controversial because, compare with e.g. internet protocols like TLS: they have a written spec to which all clients adhere. Even there, it's not cut and dried, there are lots of minor details and extensions where there at least could be a server-client mismatch and connections get dropped. But here's the difference: bitcoin's consensus requires byte-for-byte and bug-for-bug 100% compatibility between every peer, it is not a question of pairs of nodes agreeing temporarily, it is a question of every node everywhere and always agreeing. It's possible that neither written specs, no matter how thorough, nor well written code, can meet that standard (a perfect practical example is the 2013 chain split, which was not caused by any of the C++ consensus code per se, but by an unforeseen behaviour in the database software used. Not intentional but unintentional consensus dependency).
ETH from the beginning chose to base things on a written spec, and to my mind this was not wrong, but I am pessimistic that it actually changed anything. If there is an actual open-to-interpretation thing that happens, you're kind of better off having one overwhelmingly used client, as it's a de facto tiebreaker on the debatable thing. The counterargument is, if the overwhelming client has a consensus break that's clearly just an error/bug, then it's nice if there's another client everyone can switch over to as an emergency.
reply
It does feel like this is a problem that bitcoin isn't going to resolve.
I am not an ossification person, but let bitcoin 10x (users or value) and it's hard to imagine any sane person signing up to have commit access to core's repo. I think it is a pretty pressurized situation already.
reply
Its a good point. The pressure on open source devs for far less popular or important projects is often to much for those devs. If you think about your code affecting the monetary security of so many people I can see it being something few would desire. That said, this is why a project has to have thorough code review processes (which bitcoin has) and a community providing support for core development. I think we need to admit we are in uncharted waters here. I can't think of another software project like bitcoin in existence.
reply
100%. Consider that one well-funded narcissist / douchebag drove out tons of talent from public involvement w/ core. Like, the guy is a demonstrable liar, repeatedly, that literally nobody takes seriously, but he's been able to co-opt the legal system and cause non-trivial amounts of damage to the ecosystem.
Now imagine an actually capable group with billions at stake with its thumb on the scale. Jesus, I shudder. Btc development has been a tea party and I think its care-free days are numbered.
reply
This is a really good question, and one of the places where (imo) smart well-meaning people can and do disagree.
The general feeling seems to be: consensus forks would be so catastrophic to btc that we must focus everything on not having them happen, and concentrate development on one client.
The obvious rebuttal is that an ecosystem with only a single client is vulnerable as hell, and the opposite of resilient.
If btc gets to $100k and above, and larger parts of the world come to depend on it, I wonder if we'll see the attitudes around this change? It seems an under-discussed aspect of btc. (Perhaps under-discussed important things is this morning's unofficial theme.)
reply
The thing is: there are multiple implementations and a lot of work goes into them, but still 99% if nodes run Core.
There isn't any rule that says everyone has to run Core and yet everyone does. I don't know that I see that changing.
reply
True. A lot of reasons for that, perhaps the biggest being how things are packaged, the same reason for LND's dominance.
I expect that the theoretical possibility of a multi-client world might be more important than the realized actuality of it.
reply
One sentiment I have heard around is: if you're going to have a bug, it's good if it's the same bug as 99% of the network.
It's funny though that something as decentralized as bitcoin hasn't figured out how to cultivate a significant user base for two or three main implementations.
reply
I have a simple rule that kept me away all these 10+ years from the shit: NEVER DEBATE WITH SHITCOINERS.
It is wasting time to debate, compare, discuss about BTC vs x shitcoin. If you play with shit, you smell like shit.
reply
Forget the ETH people then: what is your opinion about multiple implantations of bitcoin? Would you run knots instead of core?
reply
I already run btcd instead of core. I already run neutrino also. Only noobs think that only one core client exist. Yes, more clients is better. Like wallets. You cannot have one with all the features you like. LET THE MARKET TO CHOOSE.
reply
It seems like the market has chosen Core overwhelmingly.
Maybe I should take solace in the fact that people are running a pretty wide array of Core releases. I'm still running 0.21. Do you think previous releases count as client diversity?
reply
Market can't choose when all those RPi bundles come straight with Core. Education is key in this matter, but most of new users do not read documentation or pay attention to details.
I'm still running 0.21
You should run at least 0.21.1 that have taproot activation. Then also you should take in consideration v0.24 that have full RBF.
previous releases count as client diversity?
No, those are just other versions that do not include more features, that's all.
reply
Good point about 24. I have been meaning to update to that.
reply
Now, can we go back to memes? ๐Ÿ˜‚๐Ÿ˜‚๐Ÿ˜‚
reply
17 sats \ 6 replies \ @Atreus 4 Mar
That's good this ended, you were about a post away from getting force choked.
reply
Doesn't have to end. You have an opinion on this?
Are we just dealing with an education issue?
But why force choked? Was nothing wrong with his question. OP asked me about using different bitcoin clients. No big deal. I replied with a joke because I like jokes and I think he understand jokes too.
No! More clients = Bad! Satoshi warned us of this!
Lock step!
reply
It is interesting that that none of the other clients have really caught on.
reply
Almost everyone in eth land uses metamask as their client
Bitcoin has much more diversity, popular clients include phoenix, breez, muun, electrum, bluewallet, and many, many more
Try not to confuse node software (backend) with client software (frontend)
reply
Would you consider Geth frontend or backend?
I don't think I confused the two.
The tweet I referenced had to do with staking clients, and most of the data I posted was about node software.
Am I using the term client incorrectly? I kinda switched back and forth between alternate implementations and multiple clients. Perhaps I should have stuck with alternate implementations.
I don't really like that terminology though because it sounds so vague.
reply
Would you consider Geth frontend or backend?
Backend
Here is a screenshot of someone running geth
Am I using the term client incorrectly?
I think so, yes. To me, client software is frontend, user-facing software for normies. I don't understand why the ethereum community uses it to refer to things like geth. To me, geth is clearly software intended for use by system administrators. It's not a client, it's a backend to which clients such as metamask can connect in order to serve as a more user-friendly interface.
reply
Got it. Thanks for clearing that up for me. I will stick with alternate implementations for now.
(But I sure would like a better way to refer to code that is not Bitcoin Core but that is able to maintain consensus with the Bitcoin network.)
reply
Client source/code centralization is not terrible; it's a strength in many ways. On the flip side, if there were 25 (or 1000) different Bitcoin client implementations, that is now more attack surface due to the developer mind share being spread across those un-related clients. And likely resulting in dis-jointed and incompatible "features".
The Linux Kernel for example benefits greatly from the combined attention to its implementation, and all derivative distributions benefit. Optionally applying patches for their self use-cases; and when it makes sense supplying PRs back into the kernel. Much like Bitcoin Core and Bitcoin Knots, on a much smaller scale.
If there is a hostile or controversial change to Bitcoin Core; there is always the "Fork-it" route. See Bitcoin Cash/BSV, Lightcoin/Doge, etc.
reply
34 sats \ 2 replies \ @cascdr 4 Mar
Point taken about the fact that Bitcoin should improve based on valid criticism no matter where it comes from. Ideally we would have more decentralization on clients. Better yet, more literacy so that even if there are few clients, everyone knows exactly how they work and can detect/prevent attacks and vulnerabilities.
But the Bankless guys can absolutely and forever go fuck themselves. No one runs their own node on ETH because they did not prioritize decentralization at all whatsoever. Who gives a single fuck about the client diversity if no one runs pleb nodes anyway?
That's like saying the guy that buys healthy groceries 100% of the time but lets it rot and eats McDonald's instead is healthier than the guy that eats 1 or two home cooked meals with non-fiat food. Give me a break. It's just FUD so they can keep pumping their bags. I would love a real bitcoiner to debate those losers.
reply
The bankless guys definitely max out the arrogant scale. But who better to criticize you than your enemies? The lack of client diversity is a curious situation in bitcoin and the fact that they can say what they said, even if it's not apples to apples, is important.
reply
102 sats \ 0 replies \ @cascdr 4 Mar
  1. People that want to fund FOSS for bitcoin should seriously consider funding and using any projects that provide alternatives to bitcoin core AND encourage companies like S9 Labs & Umbrel support alternatives like Knots. That includes everyone in this thread.
  2. Bankless should be taken to the wood shed on this argument. It is so laughable. No one runs an ETH node on sovereign hardware. Period. No one gives a fuck how many flavors of node clients they have bc there's no plebs running nodes or participating in mining/staking. Because they fundamentally want a centralized system over there and will force validation software to be industry grade. Compare that with bitcoin. Concern Troll of the century.
reply
You made me curious about bitcoin core contribution and I checked. There are over 30 devs with at least one commit in the past year. That's not bad. I wasn't expecting that many. You are right, the vast majority are by two devs though.
reply
Fuck off dude, your shitcoins are disgusting, and there is zero reason to ever invoke them like this when discussing bitcoin. Just say whatever you actually want to say, no need for engagement trolling, it's a small site.
reply
Man, who took the jelly out of your doughnut?
If you are so incensed, consider the excellent downzap button. Tap the three little dots next to the post title, tap on downzap (it's red), and enter the amount of punishment you would like to inflict. You can do your part to keep the site neat and tidy.
reply
When ETH gets an ETF I wonder how centralizing ieth will be lol.
Saylor, Blackrock, etc done gain more control with each buy. Wonโ€™t be the same incentives for Proof of Shit
reply
No no no. Satoshi explicitly wrote about this! Alternative clients are a menace.
The eth heads continue to avoid Satoshis sound engineering principals for distributed systems. There should be one implementation that is in lock step with all other nodes. This alternative client business is nonsense and nothing to do with decentralization.
reply
If there was only one Bitcoin implementation I would still be 0% ETH and 100% BTC. Sure, having multiple implementations is good but I think the total number of nodes is more important because if core did something stupid there would be a lot of nodes out there that refuse to update.
reply
0 sats \ 0 replies \ @anon 4 Mar
Why would a Client for you off? Either you're running the wrong client or your settings are misconfigured?
reply
0 sats \ 2 replies \ @anon 4 Mar
ghey waste of time. hfsp
reply
I don't know if homosexuality counts as an alternate implementation...
reply
I suppose it could be if you turn your head and squint your eyes a bit.
reply
stackers have outlawed this. turn on wild west mode in your /settings to see outlawed content.
514 sats \ 1 reply \ @sdf 4 Mar
deleted by author
reply
You are right. But the larger point is that if a mining pool wants, they can use a different implementation - and that is a good thing.
reply