In the case of Bitcoin, PoW devolves to centralization. So there has to be this power struggle. It was inevitable. So the lack of a BDFL in Bitcoin could be its big flaw. But I hope we can invent something that can sustain decentralization on auto-pilot. As you said, it is healthy to be very skeptical about the possibility of achieving that.
If there is a BDFL, there's no danger for centralization, it is already centralized.
And my point is that BDFL might be superior than the case of Bitcoin where instead there must be a fight which can cause uncertainty for a significant period of time (e.g. the ETH vs. ETC regression) and could even possibly permanently fracture or diminish the community.
I told you recently that I got pessimistic about decentralization. I think you're seeing my issues.
Given that the token hodlers can decide which open source software they use, that BDFL must remain benevolent, else the community can hypothetically banish him/them. However, of course there are the collectivized effects which I lamented upthread, but we must hope that the community-at-large will not choose evils such as on-the-chain enforced mandatory taxation, KYC, etc... In other words, in the interest of avoiding fracturing, the community would likely side with the BDFL (e.g. how Bitcoin's community sided with Core to large extent), but if that BDFL proposes the obscene acts then the community will fracture and fight (e.g. Core proposing to not allow an immediate blocksize increase with some technical arguments about HFs are too dangerous ... yet the likely motive is they fear/surmise they won't get all the features they want in SegWit if the community majority get what we need first).
But this is political history all over ! This is also an argument for my "immutable and frozen protocol" definition of decentralization. "the community" never chooses. If a "collective decision" is taken in a community, it is always a majority over a minority, because 100% consensus is impossible to achieve over anything else than "the past agreement". If even one person is "the minority", then that person is the victim of the majority.
If people join a decentralized system, they join, knowing the rules of the system - the protocol. In principle, it means they agree on those rules ; otherwise they wouldn't join. So there's 100% consensus of the community on the existing rules, at least at their moment of joining. Of course, you can join, but with the idea that you know how it would be improved if changed. True. But you had the choice between joining, or *creating* the better, improved system, and in the end, you joined. So *everybody* in the system agreed with the existing protocol. 100% consensus, at least at a given moment. One can consider the initial protocol as the contract everyone signed up to when joining. At least, that were the rules of the system, they were clear for everyone joining.
Change implies losers and winners ; every change will modify the economic expectations of the participants in different ways. Rationally, you would expect the winners to push for the change, and the losers trying to stop it. However, as you pointed out several times yourself, *knowing* that you are a winner or a loser is not free information. So those that are *certain* to win, can convince others to join them, even if they will be losing. The intelligent loser in change can be put in minority if an elite (those sure to win by the change) can convince a crowd (the people lacking intelligence, information and/or time to see all the implications) to a majority, vindicating the intelligent minority. The minority's "agreement on the protocol" is baffled by the elite leading a majority. This is why "totalitarianism" is not on the side of immutability, but on the side of change: a minority had agreed with a majority over a contract (the initial protocol) and that contract is *unilaterally* changed by the majority, and shoved down the throat of the minority.
Of course, in a "police-less" system, nobody can "protect" the minority against "breach of contract". The only thing that can protect the minority is the impossibility to achieve majority, and to keep with the initial 100% consensus agreement: immutability. This protection has to be an emergent dynamical phenomenon as nobody can impose it with violence.
And this is why truly decentralized systems have to remain strictly immutable, and why no leadership should emerge.
Leadership always corrupts, even "democratic" leadership (or even: most probably, democratic leadership !). Democratic leadership is much more dangerous than "enlightened genius" leadership, because there where "enlightened genius" leadership has a serious chance to become corrupted, democratic leadership is 100% sure to become corrupted, simply because intelligence (in the broadest sense of understanding the full implications of the system and the change) is not distributed uniformly over the voters. Proof: look at a random post on bitcointalk !
Suppose that I were the "democratically chosen bitcoin leader". Suppose that voting is stake-proportional (right now, it is hash power proportional). If I were an early stash holder having sold my former stash, I would propose to allow all spent transaction outputs that are less than, say, 5 transactions away from their coinbase, to be triple-spendable. As such, I would multiply the bitcoin stash by (3+6+18+52+162) = 241. I could invent a story that this has to do with too much bitcoin adoption, and the fact that poor people cannot buy a bitcoin any more, and that this is against the principles of bitcoin for everyone blah blah blah, denying the fact that bitcoin has fractional units ; I could point to the mean early adopters having too much coins and the need to create more coins, equally etc.... I could point out how unfair it is that your average Indian or African cannot obtain a bitcoin, that there should be as many bitcoins as humans at least. I could even get useful idiots of development work campaigning for me, the man "who democratized bitcoin". I could "explain" that my proposal is just and right, because bitcoin's spread is fair, and the inflation is going to compensate the creation, so "no-one is getting free money, we're just shifting the digital point" etc...
It would take a minimum of intelligence (above the average voter threshold) to understand the idiocy of my statement. And I would get the votes of all intelligent early adopters who understand that they are the big winners of this system, given that the big coin bases were long ago and they are the guys getting the most out of it !
I'm sure I could get a majority vote over that. By doing so, I would entirely "undo" the distribution of bitcoin, and reward the early adopters. I would crash the bitcoin price, but that would be largely offset by the seigniorage created in the hands of the early adopter elite. By the time the people realize I had them, destroyed their system and got a larger share of the market cap than I had earned in the market, I would be lying on the beach of my private island, slurping a cocktail served by a few local beauties
I do agree with you that to the extent possible/reasonable/effective, for the blockchain code (or more precisely the protocol) to become ossified (and pleonastically "cast in stone") in order to minimize opportunities for disagreement and harmful effects of mutability of protocol, and for the ongoing development work to proceed instead more in the ecosystem code. The Ethereum EVM smart contract language is an attempt to achieve that wherein ongoing code changes are orthogonal to the blockchain code. Of course we agree there are (at least currently) technical quagmires in that concept.
Yes. If ethereum would have had a non-Turing complete language in which contracts were always provable of finite state tree, ethereum would have been the perfect smart contract system. The main property of a contract is that it is CLEAR and unambiguous. That cannot be achieved in Turing complete languages.
The solution would have been to delegate all needs for Turing complete operation to oracles outside of the system, not part of the smart contract as such. Those ACCEPTING such a dangerous contract, would at least KNOW they were doing so.
And people who are not totally reckless, would require to see the full state tree of the contract, which is feasible in a sufficiently limited language. Ethereum confused "web application development" and "contract writing", and made a mess.
I understand that such a complex system requires continuous "maintenance", developers and hence leadership. Which is why it cannot be a decentralized project. But it is exactly this complexity which makes it also not working correctly.
Bitcoin (the protocol, not the software) was the simplicity itself. All the technical modifications to the protocol were in fact projections for future use which never came ! The basic usage of bitcoin was "direct transactions", and "multisig transactions, eventually with a timer". That's it. All the rest were in the dreams of people that never got there. THAT protocol could have remained immutable. I don't know whether the 1MB limit was SOLD as a spam measure but was conceived as something to guarantee the fees, or whether it was just "idiot leadership". I don't know whether the slow difficulty readjustment was conceived to avoid people forking, or also just "idiot leadership". But in any case, these measures shaped bitcoin in what it is in a far more important way than one would have naively thought when they were proposed.
In short, we can't entirely remove the human (organization) component (and that should be instructive as to why Kurzweil's Singularity is nonsense propaganda but we'll delay that debate to a future time when I am not rushing to code something).
Right