[0]: https://www.techspot.com/news/91937-bitcoin-largely-controll... [1]: https://news.ycombinator.com/item?id=29008910
But really it's the pools who would decide and as long as they don't control 51% of the network hashrate they can't dictate.
Also the miners can just take their ball and go home, and they already have see: Ethereum Classic
edit: [1] https://etherchain.org/miner
However, the move to PoS will probably change this, as a valid block containing a "banned" transaction can't be easily disputed even by a majority, as long as the block is correct. The only way to try to fight it is to burn lots of ETH, meaning any pool that engages in such behavior becomes weaker.
(Again, please correct me if I am wrong).
Proposed blocks must conform to the rules. If not, bad faith actors can get their stake slashed by anyone else. Anyone doing anything outside that framework is not following consensus. Whatever they are doing, is not Ethereum. I'm not fully up to date on what could happen if part of the stakers keep on doing that, but I think that the result of that kind of contested fork would be that each part would be able to slash the funds of the opposing part in their own consensus. In short, it results in a split, with the good faith actors in one side. After that split, the good faith actors would now control 100% of the staked funds.
Btw, you're absolutely right on your last sentence. Consensus was and is always a social contract between humans. The protocol is just a neat way to distribute it.
Edit: BTW, isn't this what stealing a token would be?
> overpowering and replacing some of the blocks at the top of the chain.
Regarding "stealing a token": remember that even in the case a block gets replaced by another, both have to be valid blocks, containing valid transactions. This is why the most famous attack is a just a "double spend attack" and not any kind of money steal. Problems with tokens, that is, transactions that run arbitrary code, happen due to bugs in such code, not because of fundamental issues with the protocol.
This is the bit I don't understand. A block is a set of transaction information which is chosen by the miner/staker. What's stopping them from just making it up? It will still be a valid transaction.
Transactions are signed using public key cryptography. A miner can't modify a transaction present in the pool or make it up. Transactions need to be correct in order to be part of blocks.