The issue right now is game theory encourages client homogeneity. This is because the more people that are also using your client, the more people will be advocating for a hard fork to fix any consensus penalties. Unfortunately, this is a tragedy of the commons as client diversity is positive to the security of ETH2.
I believe correcting this must be done on the protocol level -- the reality is there is no popular blockchain in the world that has client diversity. ETH1 is geth, bitcoin is bitcoin-core, etc. Whilst the correlated penalty nature of ETH2 seems designed to counter this on paper, in practice the expectation of a hard fork negates any increased penalties (because c'mon, if 5 million ETH is slashed then there will be a hard fork, don't delude yourself).
Here is my proposal that would lead to a continuous rewards penalty on using over-represented clients, while being robust enough so it's never in anyone's interests to lie about it (e.g. recompile code, change byte):
-
Each proposal adds another byte: self-reported client.
-
Proposal rewards will start decaying if a proposal comes from a significantly over-represented client. For example, the penalties could begin at nil for 33%, and ramp up to half rewards at >60%. (This is only proposal rewards, so the actual impact on rewards will be far less -- e.g. -12.5% of total rewards if a client is at >60%).
-
In the event of a consensus failure caused by an over-represented client implementation: clients that see correlated failures, but self-report a different client to the over-represented client, would be subject to a "Lying Penalty" of 16 ETH.
The practicalities about whether we fork away consensus failure penalties can be left out-of-band (as a decentralised community can never make future behavioral promises anyway), but the important part is:
-
If you are running an over-represented client, you WILL earn less every block proposal.
-
If you choose to recompile the code and lie about your client, and keep running an over-represented client, you WILL lose at least half your staked ETH if there is a consensus failure. Even if the community bails out the over-represented client, because you lied about it, you'll still lose the "Lying Penalty" independent to what a hard fork resolves.
-
Thus, game theory encourages everyone running over-represented clients, to switch to alternate clients (it's a strictly better option than either of the previous two options).
-
Because the penalties are a gradient, it is OK if you are a novice and not experienced with switching clients -- the penalties will keep on increasing until enough people switch to reduce it, and eventually the market will find the right "cost" of running an over-represented client.
Thoughts on this proposal? I believe it is an actually workable way of encouraging client diversity on the protocol.
No comments:
Post a Comment