Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Do you have a source for this? As I understand from the spec[1], any block proposer can submit a slashing report while including their block in the chain, and the protocol (ie: the client software that everybody runs) will reward them automatically if the slashing conditions are satisfied.

The majority of validators could perhaps block this by all running forks of the various consensus client software, with some code changed to set the reward to zero, but why would they do that?

[1] https://github.com/ethereum/consensus-specs/blob/dev/specs/p...



Anyone can include a slashing report in their block, but it does nothing unless the block is approved by a majority.

If we imagine a 90/10 split of opinions that leads to a hard fork, the 90 majority can either be satisfied and with their fork and be nice or they can stonewall the 10% fork and refuse to approve any blocks that supports the idea that they deserve to be slashed. Because the only thing that can punish the majority is the approval of the majority. And because allowing another fork to exist reduces the value of the other forks. And because it would just be nicer if instead of having two forks we just kicked out all those annoying validates we don’t agree with.


In your scenario, the 10% who are running forked software risk losing all their deposit by double-signing blocks on the same network and chain ID as the majority 90%. In practice, if 10% wanted to split off from the majority and run incompatible clients, they would be forced to use a different network or chain id, which means they are running a different blockchain.


In my scenario the it is the 90% that is double signing, and they are risking nothing because it is the same 90% that gets to punish them.

If the 10% wants to fork off and do a completely different blockchain, what happens to the folks who aren’t colluding either way? I mean, while we’re down to just throw away people’s stakes, why not do so for everyone who isn’t explicitly on our side?


The scenario sounds extremely implausible; a chain with 90% colluding actors would be worthless, and the remaining 10% of honest users would likely exit to another chain that is not majority run by malicious nodes.

For example: migrating to a new chain ID and restarting with a validator set limited only to the public keys of the 10% who are acting honestly, and loosening that restriction slowly over time.

The attack would end up being extremely costly: not only because it makes the original chain’s token price worthless (who wants to be on a malicious chain?), but because the attacker may also have their deposit slashed in the new chain by the now-majority of honest users defending it.


The 90% is an arbitrary and unnecessary figure. Note it is not 90% of actors either. It is the bag holders of the bulk of the wealth. Far easier to imagine. And if you try to fork off into a world where the most important financial players have nothing, you will not be taken seriously. The money is more important than the crypto.


I don't think there is any consensus protocol that can survive an attack by 90% of nodes.


That is true. However, to the point made above, proof of work is actually using a scarce resource. If you fork a proof of work chain, the amount of mining power remains the same. You can’t mine both chains with the same resources. If you fork a proof of stake chain… everything just copies over. And then maybe if people place nicely in the name of the being good crypto citizens they agree to only focus on one chain.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: