🤝Dual Governance
Last updated
Last updated
However, this functionality is nothing to be excited about without a mechanism to enforce this logic on protocol and contract upgrades.
Governance Proposals
Senate Approvals
This setup creates another safeguard for the users of The Staking Library.
A proposal is Geode Governance offering a change within the protocol to the Senate.
Every proposals isolates an ID for DataStore.
After the Controller is chosen, no one else can touch to the given storage ID.
A Proposal has 4 parameters:
TYPE: separates the proposals and related functionality between different ID types.
NAME:important for ID generation through DataStore.generateId()
CONTROLLER: the address that refers to the change that is proposed by given proposal ID.
This slot can refer to the controller of an id, a new implementation contract, a new Senate etc.
deadline: refers to last timestamp until a proposal expires.
All TYPEs are reserved as ID_TYPE
within globals.sol
.
0
NONE -unused
1
new senate address
2
new implementation contract for Portal
3
GAP - unused
4
Controller of a Operator
5
Controller of a Pool
21
Module: Withdrawal Contracts
31
Module: gETH interfaces
41
Module: Liquidity Pool
42
Module: Liquidity Pool Token
Currently, Governance is an internal ERC-20 token that is only owned by Geode Finance Developers and Treasury.
This internal ownership is a needed step to eliminate the risk of some attacks like Governance tak-over.
In the future, the Governance of Geode is supposed to be decentralized with the distribution of these tokens.
Currently, Senate is a Multisig of Geode developers.
But GeodeUtils Library includes a logic for changing the Senate, as well as an Election for it.
TYPE 1 proposals stand for Senate Elections.
However, the future of Senate will not be decided by elections, but with an other approach:
TYPE 2 proposals ensure Limited Upgradability on both Portal and Withdrawal Contracts.
TYPE 4 proposals stands for onboarding a new Node Operator to the Marketplace:
page link
Other TYPEs like 21, 31 etc. stands for other important parameters of Portal like default Liquidity Pool or withdrawal Contract implementation.