LIP-37: Execution Delegation Framework (EDF)

Upgrade process

The vote is a single Aragon vote with two items.

Item 1 submits one Dual Governance proposal that atomically switches the protocol to EDF and DepositSecurityModule v5 in a single Agent.forward call (78 actions):

  • for each of the four oracle committees and each of the nine oracle operators: remove the operator’s EOA hot key from the HashConsensus and add the operator’s DelegationContract, keeping the quorum of 5 (72 actions);
  • upgrade the LidoLocator implementation so that its depositSecurityModule entry points to the new DSM v5, all other entries stay the same (1 action);
  • move STAKING_MODULE_UNVETTING_ROLE on StakingRouter from DSM v4 to DSM v5 (2 actions);
  • move TOP_UP_ROLE on TopUpGateway from the depositor bot EOA to the depositor bot DelegationContract (2 actions);
  • grant BUFFER_RESERVE_MANAGER_ROLE on Lido to the Easy Track EVMScriptExecutor (1 action).

Item 2 is executed by the Aragon Voting directly: add the SetDepositsReserveTarget Easy Track factory with the permission limited to Lido.setDepositsReserveTarget(uint256), per the CMC deposit reserve target proposal.

DSM v5 is already deployed with the guardian set moved to DelegationContracts (see the deployment post), so the vote does not touch the guardians: it only switches the protocol to the new module. The guardian quorum stays 4 of 6, Stakely takes the seat of Kiln.

Oracle committees

# Committee HashConsensus Quorum
1 AccountingOracle 0xD624B08C83bAECF0807Dd2c6880C3154a5F0B288 5
2 ValidatorsExitBusOracle 0x7FaDB6358950c5fAA66Cb5EB8eE5147De3df355a 5
3 CSFeeOracle 0x71093efF8D8599b5fA340D665Ad60fA7C80688e4 5
4 Curated Module FeeOracle 0x902D64c93F6595339aA46105627a085591051aFb 5

Oracle members (the same rotation on every committee)

DSM guardians (already set on DSM v5, not changed by the vote)

Contracts and roles

What Before After
DepositSecurityModule (LidoLocator entry) v4 0xF573E9E3de1f86B085417ab294f56E7920B4e9Be v5 0x39BB5d491e98A44D1bfe8047A737a81E296a63E0
LidoLocator implementation 0xF2Ffb952e129a63F0614Ff87126E1d4a494A2313 0x60E09F1791F1168d0450E4F100616B4a3F95119C
STAKING_MODULE_UNVETTING_ROLE on StakingRouter DSM v4 DSM v5
TOP_UP_ROLE on TopUpGateway depositor bot EOA 0xF82aC5937A20dC862F9bc0668779031E06000f17 depositor bot DelegationContract 0x6Aa249bA53A3abcaC52F91146583B3eE2Ee4C7F5
BUFFER_RESERVE_MANAGER_ROLE on Lido Agent Agent and Easy Track EVMScriptExecutor 0xFE5986E06210aC1eCC1aDCafc0cc7f8D63B3F977
Easy Track factories - SetDepositsReserveTarget 0x62E9Dc68BDCBC46362f40e0bb9c154C9a42E62b0, trusted caller CMC multisig, cap 9,600 ETH

The vote script and the fork tests: lidofinance/scripts#682.

5 Likes