ethereum / ethereum/staking-launchpad
Launchpad issuance graph doesn't state assumptions
- Dominant language
- TypeScript
- Stars
- 304
- Forks
- 226
- PR merge metrics
- No merged PRs in 30d
Description
The issuance graph on the launchpad shows maximum validator return of 21.6% (at 524,288 ETH staked) and 4.9% return at 10m ETH staked. However, digging into the code that generates these numbers (https://github.com/ethereum/eth2.0-deposit/blob/83f34b82a967ba52532f58e7c28467982429a4a2/src/utils/calculateEth2Rewards.ts) it seems that this is based on average network participation of 95% and individual validator uptime of 99%. These assumptions are important and should be stated clearly on the launchpad.
Also the `calculateEth2Rewards` function seems to rely on a quadratic approximation of the expected inclusion delay reward using `rewardAdjModifier`. However the rationale for this approximation is not documented anywhere. How was this approximation derived? It looks as though it assumes a fixed penalty for every slot delay (`oneSlotLatePenalty`) but this isn't consistent with the spec, which indicates that inclusion delays lead to an inversely proportional scaling of the reward, not linear.
@flamingYawn
Contributor guide
No contributing guide indexed for this repository
Research direction
Start with src/utils/calculateEth2Rewards.ts and the calculateEth2Rewards function, then compare its rewardAdjModifier and oneSlotLatePenalty assumptions with the referenced Ethereum specification. Done means the launchpad graph clearly states its participation and uptime assumptions, and the approximation's rationale or discrepancy is documented.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- data-visualization, documentation, frontend
- Issue type
- Documentation
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 28/100