ethereum / consensus-specs

Ethereum Proof-of-Stake Consensus Specifications
Creative Commons Zero v1.0 Universal
3.53k stars 959 forks source link

Change on maximum ETH issuance starting with phase 1 #1784

Open lightuponlight opened 4 years ago

lightuponlight commented 4 years ago

After a discussion with others in the Ethereum community on economic parameters, some of us feel a reduction in maximum issuance for ETH2 would be appropriate.

The current parameters are set for a curve approximated by this table:

Staked Issued Inflation ROI
1,000,000 181,019 0.17% 18.10%
3,000,000 313,534 0.30% 10.45%
10,000,000 572,433 0.54% 5.72%
30,000,000 991,483 0.94% 3.30%
100,000,000 1,810,193 1.71% 1.81%

This results in a maximum theoretical issuance of slightly below 2% for year 1.

Given that Ethereum exists in competition with other platforms and that an overall approach to security budget termed "minimum necessary issuance" or "minimum viable issuance" is the guiding principle, we would suggest an adjustment to these parameters.

First, we would recommend leaving the current issuance in place for ETH staked less than or equal to 10 million Ether. For amounts greater than 10 million staked ETH, we suggest bending the issuance curve down so that maximum theoretical issuance is slightly below 1% (actual issuance will be lower, and fee burns will reduce it further).

The revised table would look something like:

Staked Issued Inflation ROI
1,000,000 181,019 0.17% 18.10%
3,000,000 313,534 0.30% 10.45%
10,000,000 572,433 0.54% 5.72%
30,000,000 742,043 0.70% 2.47%
100,000,000 954,055 0.90% 0.95%

This change in the curve accomplishes two goals:

1) It does not reduce security payments until 10,000,000 ETH are staked, thereby not affecting total security until that milestone is reached. Ten million ETH staked is substantially more than any researchers have argued is necessary to secure Ethereum.

2) It reduces the maximum security budget for Ethereum below 1%, regardless of how many people choose to stake. This is important as Ethereum is in competition with other crypto systems for users and capital. A maximum of 1% security budget provides a good Schelling point for a tangible maximum for "Minimum Necessary Issuance" that increases Ethereum's credibility in the marketplace.

3) Many existing proof-of-stake crypto blockchains have total percent of tokens staked at 50% or more of token supply. This change protects Ethereum from dilution even if very large amounts of Ether are staked.

Since the phase zero specification is locked and various testnets are in place, and phase zero ETH staked is likely to be less than 10 million ETH, it is recommended that this change to issuance is added to the phase 1 spec and gets deployed with the phase 1 release.

sassal commented 4 years ago

I think this proposal makes sense and I agree that we're unlikely to see more than 10 million ETH staked in phase 0 so it would be prudent to include this change in phase 1 of eth2.

I think Vitalik has also stated that anything after 30 million ETH staked doesn't really add much to security so ideally we'd want to design it so that 30 million is the absolute maximum stake at any given time.

nathan-at-least commented 2 years ago

Has there been any update on this proposal?

I came here hunting for the design, rationale, and specification specific to issuance, so for me and posterity it would be awesome if we could back-edit the issue description to provide a link for @lightuponlight 's statement:

Ten million ETH staked is substantially more than any researchers have argued is necessary to secure Ethereum.

Where's the best reference for those arguments? A search for closed issues in this repo w/ keyword 'issuance' looks promising. Is that the best source or is there a better one?

It appears the fundamental spec for issuance is in Phase 0 -- The Beacon Chain (Rewards and Penalties) get_base_reward, correct? This matches @vbuterin's Serenity Design Rationale on Base Rewards. The latter is somewhat helpful for rationale, but it doesn't spell out the security metric (ie: how much staked ETH is "sufficient" by what arguments).

Meanwhile, I feel like this proposal is hitting on a key "crypto-economic" design issue:

I would love to see Ethereum design rationale or any other exploration of that tension.