Intro
Lido contributors are excited to present the upcoming Aragon vote for the Lido V2 upgrade. Here are some important reminders and facts:
- The proposed Lido V2 protocol upgrade is based on the design approved by the Lido DAO through the ‘Lido on Ethereum V2 upgrade’ snapshot vote.
- The Lido V2 Görli testnet, using the proposed design, has been successfully completed:
- All Lido-participating node operators tested the new protocol mechanics and attempted signaled validator exits.
- All oracle committee members participated in running two new oracles (
AccountingOracle
andValidatorsExitBusOracle
) with the updated setup and archive nodes. - All guardian committee members participated.
- All testnet participants were able to place and claim
stETH
andwstETH
withdrawal requests.
- Three comprehensive Lido V2 audits have been published, targeting the same finalized commit tagged as 2.0.0-rc.2:
- Contracts have been deployed on the mainnet and verified by their source code, bytecode, and initial state; see the complete list of proposed contracts.
- StateMind conducted an additional audit of a dedicated upgrade template contract and deployment validation for the pre-deployed Lido V2 contracts.
- A one-time pause
GateSeal
contract has been deployed, and its maintenance committee has been established. See the Lido V2 GateSeal announcement thread for further details.
The proposed initial parameters for the upgrade can be found on the committed documentation page, which includes references and rationale for the chosen values. A machine-friendly representation is used for the voting script and the entire fork-tests suite.
Tentative upgrade timeline
- May-12-2023 (Fri) ~14:00 UTC: Start Aragon voting.
- May-14-2023 (Sun) ~14:00 UTC: Main voting phase ends.
- May-15-2023 (Mon) ~14:00 UTC: Objection phase and overall voting conclude. Enactment if passed.
- May-16-2023 (Tue) ~12:00 UTC: Time for the first
AccountingOracle
report, which could have finalized withdrawal requests
Technical details
Choosing the start time for the vote
- The vote is proposed to start on Friday, allowing for enactment to occur on Monday (at the beginning of the workweek).
- The time point (~14:00 UTC) is chosen to allow the last report gathered by the old oracle to occur on Monday at ~12:30 UTC, with the first new oracle report happening on Tuesday at the same time.
- For the first couple of reports, extra checks will be performed, so report timeframes may vary.
Initial withdrawal requests and skimmed rewards
Lido on Ethereum protocol uses ETH from Withdrawals vault for withdrawal requests fulfillment, and restakes this ETH if no requests are queued. Right after the upgrade the ~270k ETH currently residing in the vault will be available for withdrawal requests finalization, allowing for fulfilling withdrawal requests without a lengthy validator exit process.
On the other side, to deal with possible gas surpasses for new deposits, the proposed vote script tops up the depositor bot with 50 stETH
. This item is included in the proposed vote script.
First withdrawal requests timeframe
Withdrawal request placement will be available starting from the block of the vote enactment. The vote enactment is a permissionless operation, so it can happen anytime if the vote is supported and once the 72-hour voting period has passed.
First withdrawal finalization timeframe
The first withdrawals are expected to be finalized when the first AccountingOracle
report arrives on May 16, somewhere after 12:00 UTC.
GateSeal
There is a single GateSeal
instance covering two contracts that affect withdrawals:
-
WithdrawalQueueERC721
: can pause the ability to place new requests together with the finalization of already pending requests -
ValidatorExitBusOracle
: can pause validator exit signals
It’s worth noting that neither pause affects already finalized withdrawals (i.e., claims are not restricted).
GateSeal can be triggered only once (no matter which contracts are paused), and the pause duration is fixed for 6 days precisely, after which the contract(s) is unpaused automatically if no further action by the Lido DAO is taken. The deployed GateSeal
instance has built-in self-expiration mechanics, and the expiration date is set to May 1, 2024
.
Voting script items
The vote items are presented in the voting script.
A brief overview of the script:
- Item 1 — Upgrade the stub contract under Lido withdrawal credentials to
WithdrawalVault
to enable the protocol to use Ether coming to withdrawal credentials. - Item 2 — Start the upgrade procedure via a dedicated upgrade template contract
- Items 3-9 — Upgrade Lido Aragon apps
- Item 10 — Finalize upgrade procedure via the upgrade template contract
- Items 11-27 — Revoke obsolete roles
- Items 28-30 — Set the backend address for the stETH Withdrawal NFT (
unstETH
) - Item 31 — Top-up Gas Funder multisig for 50 stETH to use for depositor bot gas spending
Note on timings and contingencies
In case of last-minute security findings, the Lido V2 upgrade will be rescheduled, and new dates will be communicated.
An invitation to discussion
Please let us know if you have any questions or concerns about this proposal.
We’re happy to provide any additional context.
Fasten your seatbelts and get ready for the Lido V2 take-off!