Future of the Curated Module | CMv2 Landscape

SRv3 + CSMv3 + CMv2 Voting Structure

The on-chain Aragon vote is an omnibus proposal with two distinct parts:

Part 1: Voting Items (11 items) — Execute Immediately

These items are executed when the Aragon vote passes (no Dual Governance delay):

# Action Contract Target Permission Granted
2 Remove CSMSettleElStealingPenalty factory from Easy Track EasyTrack
3 Remove CSMSetVettedGateTree factory from Easy Track EasyTrack
4 Add UpdateStakingModuleShareLimits (for CSM) factory to Easy Track EasyTrack UpdateStakingModuleShareLimits.validateParams, stakingRouter.updateModuleShares
5 Add AllowConsolidationPair factory to Easy Track EasyTrack consolidationMigrator.allowPair
6 Add SetMerkleGateTree CSM factory to Easy Track EasyTrack SetMerkleGateTreeForCSM.validateInputData, icsGate.setTreeParams, idvtcGate.setTreeParams
7 Add ReportWithdrawalsForSlashedValidators CSM factory to Easy Track EasyTrack csm.reportSlashedWithdrawnValidators
8 Add SettleGeneralDelayedPenalty CSM factory to Easy Track EasyTrack csm.settleGeneralDelayedPenalty
9 Add SetMerkleGateTree CM factory to Easy Track EasyTrack SetMerkleGateTreeForCM.validateInputData, setTreeParams on all CM gates (PO, PTO, PGO, DO, EE, IODVTC, IODVTC+)
10 Add ReportWithdrawalsForSlashedValidators CM factory to Easy Track EasyTrack curatedModule.reportSlashedWithdrawnValidators
11 Add SettleGeneralDelayedPenalty CM factory to Easy Track EasyTrack curatedModule.settleGeneralDelayedPenalty
12 Add CreateOrUpdateOperatorGroup CM factory to Easy Track EasyTrack CreateOrUpdateOperatorGroupForCM.validateInputData, metaRegistry.createOrUpdateOperatorGroup

Part 2: Dual Governance Items (69 items) — Subject to DG Veto Period

These items go through Dual Governance and execute only after the veto period:

Preparation items

# Action Purpose
1.1 Call UpgradeTemplate.startUpgrade() Lock upgrade window, record initial state

Lido Core upgrade items

# Action Purpose
1.2 Upgrade LidoLocator implementation Point to new contract registry
1.3 Upgrade StakingRouter implementation and call finalizeUpgrade_v4 New contract version supporting ETH-based accounting and 0x02 validators
1.4 Upgrade AccountingOracle implementation and call finalizeUpgrade_v5 New contract version supporting ETH-based accounting
1.5 Upgrade ValidatorsExitBusOracle implementation and call finalizeUpgrade_v3 New contract version supporting ETH-based accounting and 0x02 validators
1.6 Upgrade Accounting implementation New contract version supporting ETH-based accounting
1.7 Upgrade WithdrawalVault implementation and call finalizeUpgrade_v3 New version supporting consolidations
1.8 Grant Aragon APP_MANAGER_ROLE to the AGENT Temporary permission
1.9 Set Lido implementation in Kernel Upgrade stETH contract to support new pull method for deposits to validators
1.10 Revoke Aragon APP_MANAGER_ROLE from the AGENT Temporary permission cleanup
1.11 Create Aragon BUFFER_RESERVE_MANAGER_ROLE and grant role manager to the AGENT New permission to manage deposit reserve size
1.12 Call finalizeUpgrade_v4 on Lido Migrate to new storage layout and set initial deposit reserve size
1.13 Grant Staking Router STAKING_MODULE_SHARE_MANAGE_ROLE to EasyTrack executor Permission for modules share management via EasyTrack
1.14 Revoke Staking Router STAKING_MODULE_UNVETTING_ROLE from old DSM Remove permission from the old contract
1.15 Grant Staking Router STAKING_MODULE_UNVETTING_ROLE to new DSM Grant permission to the new contract
1.16 Grant TWG TW_EXIT_LIMIT_MANAGER_ROLE to AGENT Permission to manage TWG limits
1.17 Set TWG exit request limits Set new TWG limits to support ETH-based accounting
1.18 Register CircuitBreaker pauser for ConsolidationGateway CB pauser for the new contract
1.19 Register CircuitBreaker pauser for TopUpGateway CB pauser for the new contract

CSM upgrade items

# Action Purpose
1.20 Upgrade CSM to v3 and call finalizeUpgradeV3 New implementation of CSM with several improvements listed in LIP-33
1.21 Upgrade CSM ParametersRegistry to v3 and call finalizeUpgradeV3 New implementation with fine graded roles model
1.22 Upgrade CSM FeeOracle to v3 and call finalizeUpgradeV3 New implementation with technical improvements and solidity version bump
1.23 Upgrade CSM VettedGate implementation New implementation for the ICS Gate (previously called VettedGate) with referral program removed
1.24 Upgrade CSM Accounting to v3 and call finalizeUpgradeV3 New implementation of Accounting with several improvements listed in LIP-33
1.25 Upgrade CSM FeeDistributor to v3 and call finalizeUpgradeV3 New implementation with support for reward splitters
1.26 Upgrade CSM ExitPenalties implementation New implementation with technical improvements and solidity version bump
1.27 Upgrade CSM ValidatorStrikes implementation New implementation with technical improvements and solidity version bump
1.28 Point CSM ValidatorStrikes to the New CSM Ejector Use updated version of Ejector contract
1.29 Revoke CSM REPORT_EL_REWARDS_STEALING_PENALTY_ROLE from CSM Committee Removal of the deprecated role
1.30 Grant CSM REPORT_GENERAL_DELAYED_PENALTY_ROLE to CSM Committee New role introduced in CSMv3
1.31 Revoke CSM SETTLE_EL_REWARDS_STEALING_PENALTY_ROLE from Easy Track executor Removal of the deprecated role
1.32 Grant CSM SETTLE_GENERAL_DELAYED_PENALTY_ROLE to Easy Track executor New role introduced in CSMv3
1.33 Revoke CSM VERIFIER_ROLE from the Old CSM Verifier Detach old verifier contract
1.34 Grant CSM VERIFIER_ROLE to the New CSM Verifier Attach new verifier contract
1.35 Grant CSM REPORT_REGULAR_WITHDRAWN_VALIDATORS_ROLE to the New CSM Verifier Attach new verifier contract
1.36 Grant CSM REPORT_SLASHED_WITHDRAWN_VALIDATORS_ROLE to Easy Track executor New permission to allow for slashing penalty reporting via EasyTrack
1.37 Revoke CSM CREATE_NODE_OPERATOR_ROLE from the Old CSM PermissionlessGate Detach old PermissionlessGate contract
1.38 Grant CSM CREATE_NODE_OPERATOR_ROLE to the New CSM PermissionlessGate Attach new PermissionlessGate contract
1.39 Revoke VettedGate START_REFERRAL_SEASON_ROLE from AGENT Deprecated role removal
1.40 Revoke VettedGate END_REFERRAL_SEASON_ROLE from CSM Committee Deprecated role removal
1.41 Set name Identified Community Stakers for CSM VettedGate gate Add a human-readable name for the ICS Gate
1.42 Unregister CircuitBreaker pauser for Old CSM Verifier Detach old verifier contract
1.43 Unregister CircuitBreaker pauser for Old CSM Ejector Detach old ejector contract
1.44 Register CircuitBreaker pauser for New CSM Verifier Attach new verifier
1.45 Register CircuitBreaker pauser for New CSM Ejector Attach new ejector
1.46 Register CircuitBreaker pauser for CSM Identified DVT cluster gate Attach new IDVTC gate
1.47 Grant CREATE_NODE_OPERATOR_ROLE to Identified DVT cluster gate Attach new IDVTC gate
1.48 Grant CSM Accounting SET_BOND_CURVE_ROLE to Identified DVT Cluster gate Attach new IDVTC gate
1.49 Grant CSM Accounting MANAGE_BOND_CURVES_ROLE to Identified DVT Cluster curve setup Temporary permission for the curve setup contract. Is renounced by the contract itself.
1.50 Grant CSM ParametersRegistry MANAGE_CURVE_PARAMETERS_ROLE to Identified DVT Cluster curve setup Temporary permission for the curve setup contract. Is renounced by the contract itself.
1.51 Execute Identified DVT cluster curve setup Create IDVTC bond curve and set additional parameters. Renounce roles granted above.
1.52 Grant CSM ParametersRegistry MANAGE_GENERAL_PENALTIES_AND_CHARGES_ROLE to CSM Committee Permission to manage penalty and charge sizes for certain cases in CSM. More in LIP-33
1.53 Revoke Burner REQUEST_BURN_SHARES_ROLE from CSM Accounting Remove broad burn permission (Replace REQUEST_BURN_SHARES_ROLE with REQUEST_BURN_MY_STETH_ROLE for All Staking Modules · Issue #871 · lidofinance/core · GitHub)
1.54 Grant Burner REQUEST_BURN_MY_STETH_ROLE to CSM Accounting Grant limited burn permission (Replace REQUEST_BURN_SHARES_ROLE with REQUEST_BURN_MY_STETH_ROLE for All Staking Modules · Issue #871 · lidofinance/core · GitHub)
1.55 Revoke TWG ADD_FULL_WITHDRAWAL_REQUEST_ROLE from the Old CSM Ejector Detach old ejector
1.56 Grant TWG ADD_FULL_WITHDRAWAL_REQUEST_ROLE to the New CSM Ejector Attach new ejector

CMv2 addition items

# Action Purpose
1.57 Add Curated Module v2 to StakingRouter Add a new curated module to SR to allow for stake migration from 0x01 keys to 0x02 keys.
1.58 Grant Burner REQUEST_BURN_MY_STETH_ROLE to Curated Accounting The role is required to penalize node operator’s bond
1.59 Grant TWG ADD_FULL_WITHDRAWAL_REQUEST_ROLE to Curated Ejector The role is required to support voluntary and forced ejections via EIP-7002 from CMv2
1.60 Grant CM RESUME_ROLE to AGENT Temporary permission
1.61 Resume Curated Module v2 Enable Node Operator creation and keys upload to the new module
1.62 Revoke CM RESUME_ROLE from AGENT Remove temporary permission
1.63 Update Curated HashConsensus initial epoch Initial epoch is required to define the beginning of the first frame for CMv2 performance Oracle
1.64 Register CircuitBreaker pauser for Curated Module v2 Attach new contract
1.65 Register CircuitBreaker pauser for Curated Accounting Attach new contract
1.66 Register CircuitBreaker pauser for Curated FeeOracle Attach new contract
1.67 Register CircuitBreaker pauser for Curated Verifier Attach new contract
1.68 Register CircuitBreaker pauser for Curated Ejector Attach new contract

Finalization items

# Action Purpose
1.69 Call UpgradeTemplate.finishUpgrade() Finalize upgrade. Migrate Sanity Checker data. Perform final assertions
3 Likes