Withdrawal Credentials in Lido

Update

The Withdrawal Credentials Manager stub was deployed behind an ossifiable proxy at 0xB9D7934878B5FB9610B3fE8A5e441e8fad7E293f (source code: lidofinance/withdrawals-manager-stub).

The withdrawal credentials thus is the following byte sequence as per the ETH2.0 specification:

010000000000000000000000b9d7934878b5fb9610b3fe8a5e441e8fad7e293f

The reason for using an upgradeable proxy is that, though the Beacon chain already supports setting withdrawal credentials pointing to a smart contract, the withdrawals specification is not yet final and might change before withdrawals are enabled in the Merge network. This means that Lido cannot deploy the final implementation of the withdrawals manager contract yet.

The reason for starting with a no-op stub is that it makes no sense to implement any withdrawal mechanism based on a specification that’s likely to change before this mechanism can be used. That said, Lido team is currently working on the design of such a mechanism (but not implementation).

When Ethereum 2.0 withdrawals specification is finalized, the Lido team will prepare the new implementation contract and initiate a vote among LDO holders for upgrading the proxy to the new implementation.

Once withdrawals are enabled in Ethereum 2.0, Lido DAO members will start a vote among LDO holders for irreversibly disabling the upgradeability (i.e. ossifying the proxy) which is supported via setting administrative address of the proxy to zero.

8 Likes