-
Notifications
You must be signed in to change notification settings - Fork 31
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Powers and authorities informational rpip #110
base: main
Are you sure you want to change the base?
Powers and authorities informational rpip #110
Conversation
RPIPs/RPIP-X.md
Outdated
|
||
A principal or agent has the authority to do X if the Rocket Pool community has explicitly or implicitly agreed that that principal or agent is allowed or supposed to be doing X. | ||
|
||
To give an example, the pDAO has the authority to make changes to the Rocket Pool Protocol due to the shared understanding of the community that registeredNodes are the ‘principals’ of the Rocket Pool protocol. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think the example here and in Power could be more concrete. Maybe the oDAO's power to report any rETH price and their authority to report an accurate blockchain price.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I like the power example a lot, I'm less sold on the authority side. I tried updating the language to convey it a little more clearly, not sure if you think this addresses this point however.
For authority the main thing I want to preserve is that it's based on shared understanding rather than physical access. I think using the same price setting bit could be confusing there and instead convey that authority is the responsibility to do something rather than the shared permission to take action.
|
||
* The oDAO has the power to replace any contract (except RocketStorage) in the Rocket Pool protocol via the oDAO upgrade power. | ||
* The oDAO has the power to modify any non-protected parameter in the Rocket Pool protocol via the oDAO upgrade power. | ||
* The oDAO has the power to call core contract functions protected by the generic ‘onlyLatestNetworkContract’ required via the oDAO upgrade power. This has several implications, most notably: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
These 3 sub-bullets are a bit weird...
- The first one would require a contract upgrade with faked up contracts with appropriate names to fool the check in RocketVault
require(etherBalances[contractName] >= _amount, "Insufficient contract ETH balance");
. I don't believe they have immediate access unless I'm missing something. - The second bullet would also require a contract upgrade for arbitrary withdrawals... or they could fake up a merkle tree, which is probably a lot easier and has no dependence on
onlyLatestNetworkContract
- The third bullet is possible via
RocketNetworkPenalties.submitPenalty
. The critical check isonlyTrustedNode
, notonlyLatestNetworkContract
Minor aside: why are we using front ticks ‘onlyLatestNetworkContract’ instead of backticks onlyLatestNetworkContract
?
* The oDAO has the power to modify oDAO settings via the oDAO settings pathway. | ||
* The oDAO has the power to take actions that modify the membership of the oDAO. | ||
* The oDAO has the power to determine the split of RPL inflation via consensus on a rewards Merkle tree. [[GitHub](https://github.com/rocket-pool/rocketpool-research/blob/v6/Merkle%20Rewards%20System/rewards-calculation-spec.md)] | ||
* The oDAO has the power to withdraw ETH at no cost from the deposit pool contract, via manipulation of the rETH exchange rate. [[Etherscan](https://etherscan.io/address/0xDD3f50F8A6CafbE9b31a427582963f465E745AF8)] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'd probably talk about the power to set the exchange rate, and have these as sub-bullets.
- The oDAO has the power to set the protocols rETH exchange rate.
- Note that manipulating this value would allow for withdrawing ETH at no cost (from both the deposit pool contract and rETH token contract).
|
||
##### Description | ||
|
||
Any individual Rocket Pool Registered Node. All Trusted Nodes (oDAO) are also Registered Nodes (pDAO). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Minor technicality... A registered node running zero minipools has no pDAO vote power.
So it's more like "All pDAO members must have a Registered Node. All oDAO members must have a registered node, which is considered a Trusted Node."
See messages in discord here. Also screencapped. |
Finally turned this into an informational RPIP any formatting or content comments and suggestions are most welcome @Valdorff