Lido Proposal: #0xcdb7d84ea80d914a4abffd689ecf9bdc4bb05d47f1fdbdda8793d555381a0493
Should the Lido DAO recognize the wstETH Bridge Endpoints on Scroll as canonical?
Recognize: 100%
71,795,566 LDO
Don’t recognize: 0%
0 LDO
Voting Period
-Proposer
0xDbBC6A93ae517D3ea568C04219cbBBd025f01CB6
Discussion
Go to DiscussionDescription
The proposal is to recognize the wstETH token bridging endpoints for Scroll by the Lido DAO as canonical. If Snapshot passes, the Lido DAO will control the endpoints of wstETH token contract (including the token contract on Scroll itself) as a proxy admin. Lido DAO will only have the upgrade authority of the wstETH proxy contract, and will not be able to manage the native bridge itself.
The Scroll Team is submitting this proposal to the community for the deployment of wstETH on Scroll.
Scroll is an EVM-equivalent ZK-Rollup built upon Ethereum, designed for scaling without sacrificing security, developer, or user experience:
- EVM Equivalence & Developer Friendliness
- Ethereum-native & Community first: Scroll originated in close collaboration with the Ethereum Foundation’s zkEVM research
- Decentralization & Security: Scroll has continually made upgrades across testnets to make it more trustless, and is committed to decentralizing both its sequencing and proving.
Scroll launched mainnet on October 17th, 2023, and since then, had significant traction, seeing:
- ~70M bridged TVL / ~30M DeFi TVL
- 16M+ transactions (averaging over 100k+ tx/day)
- 3M unique wallet addresses
Motivation
Lido stETH (and wstETH) is a critical asset in the Ethereum ecosystem with a significant market capitalization, and has emerged as a crucial component in DeFi applications. Naturally, a wide variety of protocols on Scroll—both established and native—have already indicated significant demand for wstETH across various use cases. Examples of this include wstETH’s usage as collateral, in lending protocols, DEX pools, vaults, yield optimizers / farming, indexes, LST-backed stablecoins, etc.
Furthermore, already more than 3700 wstETH tokens have minted on Scroll, with over 7000 unique holders. There has been steady, organic growth of the asset with clear demand since Scroll’s mainnet launch.
Solution Overview
Scroll has already implemented the canonical wstETH L1 and L2 Gateways, and has concluded its audit. The design uses the architecture of wstETH on Optimism and Arbitrum and governance forwarder used on multiple L2s as reference. Moreover, the path forward is upgrading in response to reference architecture and governance decision-forwarding demand, not redeploying the token from scratch, significantly simplifying the necessary next steps. Further details below:
- Upgrade preparations
- Governance Forwarding
- Emergency Brakes: The upgrade architecture allows emergency pause functionality for wstETH deposits/withdrawals, activated using the established mechanism of Emergency Brakes.
The proposed components utilize Scroll’s native bridge instance for the message transfer. The token’s upgradeability is possible, due to the token proxy admin being set to Lido DAO and separate from the bridge admin (Scroll) instance. This approach aligns with the unofficial guidelines presented by NEW and is future-ready for wstETH. As such, neither the bridge or Lido DAO take any additional fees from users. The regular gas fees required for transaction execution will still be charged to the user. In case of an emergency, Lido Emergency Brakes multisig will be used to pause the deposits and withdrawals only for the wstETH transfers. In order to resume the bridging activity for wstETH, there will be a need for a Lido DAO on chain vote on Ethereum mainnet.
Audits
To better form an opinion you may consider reading through the audit report for:
- Governance crosschain bridges (ScrollBridgeExecutor)
- wstETH on Scroll (L1LidoGateway, L2LidoGateway, L2WstETHToken, LidoBridgeableTokens, LidoGatewayManager)
Mainnet contracts
- Emergency Brakes Multisigs
- Ethereum part
- L1LidoGateway: 0x6625c6332c9f91f2d27c304e729b86db87a3f504 (proxy)
- L1LidoGateway: 0xF4f2066EE72D62e3caF9678459149BA7FCf2262F (impl)
- ProxyAdmin: 0xCC2C53556Bc75217cf698721b29071d6f12628A9 for L1LidoGateway
- Scroll part
- ScrollBridgeExecutor: 0x0c67D8D067E349669dfEAB132A7c03A90594eE09
- L2LidoGateway: 0x8aE8f22226B9d789A36AC81474e633f8bE2856c9 (proxy)
- L2LidoGateway: 0x2B9beB2890DBeFC7cA25Af3164100d139B623C24 (impl)
- L2WstETHToken: 0xf610A9dfB7C89644979b4A0f27063E9e7d7Cda32(proxy)
- L2WstETHToken: 0x38224D52ecC979aEdfEb31b1EEa0cfCEbd55247e (impl)
- ProxyAdmin: 0x8e34D07Eb348716a1f0a48A507A9de8a3A6DcE45 for:
- L2LidoGateway
- L2WstETHToken
Ownership, roles, and levers Mainnet setup
Pre-vote ACL and levers setup:
- for ScrollBridgeExecuror
- getEthereumGovernanceExecutor is Lido DAO Agent (admin)
- A bridge admin and role holder on L1 is the Lido DAO Agent
owner
for L1LidoGateway- WITHDRAWALS_DISABLER_ROLE for L1LidoGateway
- WITHDRAWALS_ENABLER_ROLE for L1LidoGateway
- DEPOSITS_DISABLER_ROLE for L1LidoGateway
- DEPOSITS_ENABLER_ROLE for L1LidoGateway
- A bridge admin and role holder on L2 is the ScrollBridgeExecutor
owner
for L2LidoGateway- WITHDRAWALS_DISABLER_ROLE for L2LidoGateway
- WITHDRAWALS_ENABLER_ROLE for L2LidoGateway
- DEPOSITS_DISABLER_ROLE for L2LidoGateway
- DEPOSITS_ENABLER_ROLE for L2LidoGateway
- Emergency brakes msig on L1 is 0x73b047fe6337183A454c5217241D780a932777bD , 3/5 threshold:
- WITHDRAWALS_DISABLER_ROLE for L1LidoGateway
- DEPOSITS_DISABLER_ROLE for L1LidoGateway
- Emergency brakes msig on L2 is a new one 0xF580753E334687C0d6b88EF563a258f048384Ee6 inheriting the same EOAs as for L1, 3/5 threshold:
- WITHDRAWALS_DISABLER_ROLE for L2LidoGateway
- DEPOSITS_DISABLER_ROLE for L2LidoGateway
Post-vote (if the vote is supported) finalizing actions from the Scroll side:
- for L1LidoGateway
- assign the proposed ProxyAdmin on L1 having the Lido DAO Agent
owner
- assign the proposed ProxyAdmin on L1 having the Lido DAO Agent
- for L2WstETHToken and L2LidoGateway
- assign the proposed ProxyAdmin on L2 having the ScrollBridgeExecuror
owner
- assign the proposed ProxyAdmin on L2 having the ScrollBridgeExecuror