It’s natural that the dominant implementation, in early stages, would basically end up defining the protocol. This happened with the web as well.
However, as protocols mature, everyone realizes that there need to be other implementations and there needs to be a specification everyone can rely on, so they improve the specs. Bitcoin has been bad about this, taking the lazy route of calling core the standard. That is not a helpful way to proceed for Bitcoin as a protocol, if there are to be any other implementations.
And why are multiple implementations good? If a catastrophic bug appeared in core, and even 1/3 of the network used other implementations, things would work out ok. Otherwise we could see downtime or worse. Decentralization and redundancy prevent the brittleness of a single implementation from catastrophic failures. Anyone who says otherwise should be viewed with extreme skepticism.
If a catastrophic bug appeared in core, and even 1/3 of the network used other implementations, things would work out ok.
It depends on where the bug is. In consensus code? Then we all are fucked. But we would be less fucked if there is only one implementation out there, since then no fork was created. We can fix the issue in one place.
I prefer to put all our brain power into one implementation to make sure no bugs happen at all instead of maintaining multiple implementations where bug / incompatibilities would be more probable.
reply