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.
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