Lido V2: Voting announcement

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 and ValidatorsExitBusOracle) with the updated setup and archive nodes.
    • All guardian committee members participated.
    • All testnet participants were able to place and claim stETH and wstETH withdrawal requests.
  • Three comprehensive Lido V2 audits have been published, targeting the same finalized commit tagged as 2.0.0-rc.2:
    • Hexens audit report
    • StateMind audit report
    • Certora audit and formal verification report
    • Reports for the remaining complete Lido V2 audit by Oxorio and an off-chain audit by Hexens will be published this month
  • 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!

21 Likes

The vote #156 has been started today at 15:15 UTC.

The updated timeline is as follows:

  • May-12-2023 (Fri) 15:15 UTC: Start Aragon voting.
  • May-14-2023 (Sun) 15:15 UTC: Main voting phase ends.
  • May-15-2023 (Mon) 15:15 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
6 Likes

The vote has been enacted successfully https://twitter.com/LidoFinance/status/1658195237280284678

We expect the first AccountinOracle report to arrive today which may finalize the first bunch of withdrawal requests.

5 Likes

The first withdrawal requests have been successfully finalized; worth mentioning that no validators exits have been requested so far

1 Like