cadlabs / ethereum-economic-model Goto Github PK
View Code? Open in Web Editor NEWA modular dynamical-systems model of Ethereum's validator economics
Home Page: https://cadlabs.org
License: GNU General Public License v3.0
A modular dynamical-systems model of Ethereum's validator economics
Home Page: https://cadlabs.org
License: GNU General Public License v3.0
Create an assumptions file containing assumptions we make, and adopt from the Economic Report.
See pull request #4 review comments from @marthendalnunes for some initial assumptions.
Possibly include in documentation using Jupyter Book: https://jupyterbook.org/start/overview.html
See TODO in code, from review with @danlessa
Implement either a static inflation rate, or some reasoned process of dynamic inflation, for the Eth1 inflation rate. The Eth2 inflation is a result of the rewards, penalties, and EIP1559.
Collection of resources for spec and refactors based on new Eth2 proposals:
See Economic Report spreadsheet https://docs.google.com/spreadsheets/d/1y18MoYSBLlHZ-ueN9m0a-JpC6tYjqDtpISJ6_WdicdE/, tab ETH1 Tx & Gas Analysis
:
eip1559_avg_gas_per_transaction
eip1559_avg_transactions_per_day
eip1559_basefee
eip1559_avg_tip_amount
Notes from review with Barnabe (needs to be validated):
@all-contributors please add @uta0x89 for code and maintenance
To review:
policy_phases(...)
in phases.py
Phase
enum in types.py
This issue is created to get the review and input of @danlessa
In the worksession, @rogervs suggested applying the ETH price process as a post-processing transform of ETH rewards and penalties. So essentially the model would only contain ETH states.
To summarize, this would mean:
The potential downsides of this refactor:
The benefit of removing the metrics and ETH price process, assuming we don't need to prematurely optimize the model, is in the UX of being able to swap ETH price processes in post-processing.
See https://hackmd.io/@benschza/S1gT6PvEO for worksession notes.
Currently, the model modules are as follows:
Consider refactoring if necessary to make these classifications more clear. Barnabe suggested finalization and justification as concepts worth considering: https://our.status.im/two-point-oh-justification-and-finalization/ . @rogervs suggested looking at the Eth2 spec. test suite to see what the architecture is.
Accessibility and value for learning should be prioritized, and sticking to the existing Eth2 spec and standard terminology.
See https://www.python.org/dev/peps/pep-0257/
Standard multiline docstrings. No argument descriptions apart from non-cadCAD functions.
The current hypothesis is that we will not implement phases, and will instead make the assumption that the model is operating post-merge.
The following mechanisms affect validator yield economics, and are implemented in phases:
See https://docs.ethhub.io/ethereum-roadmap/ethereum-2.0/eth-2.0-phases/
In Phase 0, 1, and 2 the main PoW chain (Eth1) will remain live while testing and transitioning is happening on the Eth2 chain. This means that rewards will be paid to both Ethereum 2.0 validators as well as the normal PoW block rewards. Therefore, the combined inflation of the two chains may spike initially but then start to trend towards the 0-1% range as the PoW chain is gradually de-emphasized.
Hey all, thanks so much for creating such a great resource for the community! A few suggestions from checking back in on the site:
As discussed in the work session on Friday 26th March, the following is a brainstorm of a MVP implementation of a validator entry/exit process that depends on the current system state or metrics. It is undecided if we will implement this, or rather suggest it as a future addition to the model.
Different scenarios for validator exit:
The question of how to model a distribution for those who decide to leave in these conditions was discussed:
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.