Category: Uncategorized

  • Understanding Ethereum Withdrawals with Shanghai Upgrade

    The Ethereum Shanghai/Capella upgrade is allowing stakers to withdraw their staked ETH.

    Shanghai will offer 3 withdrawal functionalities:

    1. Updating withdrawal credentials: Validators can now transition from the 0x00-type credentials to the newer 0x01-type ones.
    2. Partial withdrawals: Validators can access consensus layer rewards above 32 ETH in their account.
    3. Full withdrawals: Validators can reclaim the entire balance of an exited validator.

    Only validators with the new 0x01-type withdrawal credentials can perform these withdrawals. Validators using the older 0x00-type credentials can become eligible by updating their credentials. Notably, validators using the old credentials aren’t under any immediate pressure to switch as they will continue earning rewards, as they have since the Beaconchain’s genesis.

    The Ethereum protocol utilizes an automated process to handle both types of withdrawals. Every 12 seconds, it sweeps through the validator set, identifying the first 16 eligible for either a partial or a full withdrawal. There can be up to 16 withdrawals per slot, with full withdrawals requiring extra steps and time.

    A significant advantage is that executing either type of withdrawal will not incur any gas costs, as they aren’t considered transactions by Ethereum’s Execution Layer (EL).

    These system-level operations act more like account balance top-ups, akin to coinbase transactions paid to miners in Proof of Work (PoW) blockchains.

    How withdrawal credentials work

    Activating a new Ethereum validator involves depositing 32 ETH, along with other data, into Ethereum’s deposit contract. The withdrawal credentials, part of this data payload, dictate where a validator’s withdrawn balance goes.

    Ethereum validators can have one of two versions of withdrawal credentials. These versions are differentiated by their withdrawal prefix: either 0x00-type or 0x01-type. Only validators with 0x01-type credentials can have their balances partially or fully withdrawn. This is because 0x00 credentials derive from a BLS public key, whereas 0x01 credentials point to a standard Ethereum address.

    To have ETH locked on Ethereum’s consensus layer (CL), i.e., validator balances, withdrawn and credited to an Ethereum address on the Execution Layer (EL), the validator must have a corresponding Ethereum execution address. The 0x01-type withdrawal credential provides this corresponding execution address, which the 0x00-type does not.

    As of February 2023, about 58% of active Ethereum validators had 0x00-type withdrawal credentials. When the Beacon chain launched in 2020, these credentials were the only option, with the 0x01 credentials being introduced in March 2021. Hence, validators activated before this date had 0x00 credentials.

    Around 20% of newly activated validators still set their withdrawal credentials to the older, 0x00-type. This could be due to solo stakers or institutions using outdated guides or a conscious choice by stakers avoiding potential tax implications. However, the tax implications of staking are not yet well-defined in many jurisdictions, and this is not tax advice. Consult a certified professional in your jurisdiction for advice.

    The Capella upgrade includes a mechanism for 0x00-credentialed validators to update their withdrawal credentials to the 0x01-type. This requires the validator’s owner to sign and submit a withdrawal credentials change message to Ethereum’s CL via a consensus layer client.

    Withdrawal credentials Update Process

    Validators wishing to update their withdrawal credentials must use their owner key to sign a withdrawal credentials change message. This message contains the validator’s public key, new withdrawal credentials, and the message’s signature. Upon submission, the CL processes these change messages to update the validator’s withdrawal credentials.

    To minimize the processing power required and to maintain network stability, Ethereum’s consensus layer limits the number of withdrawals processed each block (12 seconds) to 16. For stakers in the back of the queue, it could take some time before their change message is processed and they can begin withdrawals.

    What are Partial Withdrawals?

    Partial withdrawals are a new feature introduced with the upgrade. They allow validators to withdraw earned rewards exceeding the 32 ETH deposit without having to stop validating. This option provides stakers with access to liquid rewards while keeping their validator active.

    Validators can only have a partial withdrawal processed if they have a validator balance of more than 32 ETH. When partial withdrawals are processed, the validator’s balance is reduced by the amount withdrawn but never below the original 32 ETH deposit.

    Validators are not required to request a partial withdrawal. If the validator is eligible for a partial withdrawal and its turn in the queue comes up, the CL will automatically process the withdrawal.

    Full withdrawals and validator exit process

    Full withdrawal is reclaiming the entire balance of an exited validator, including the initial 32 ETH deposit and any rewards earned while validating. This process requires the validator to exit first from Ethereum’s CL.

    To execute a full withdrawal, the validator must signal its intent to exit by submitting a voluntary exit message. Validators must still perform their assigned duties until they are officially exited, which involves waiting in an exit queue.

    Full withdrawal process and rate limits

    To maintain network stability, the number of validators exiting is controlled by a churn limit. The length of time a validator must wait in the exit queue depends on this churn limit and the number of validators already in the queue.

    After a validator is exited and a delay of 256 epochs (around 27.3 hours), the validator’s status changes to “withdrawable.” The validator will then undergo the same automated sweep as in partial withdrawals to complete the full withdrawal.

    In summary, Ethereum’s Shanghai/Capella upgrade is a significant milestone in Ethereum’s development. It offers important enhancements to the network’s staking mechanism, providing validators with more control over their staked ETH and enabling a smoother, more efficient withdrawal process.

  • Lido V2 launches with significant upgrades

    Ethereum Withdrawals Now Active

    Lido V2 is now live on Ethereum’s mainnet. The successful launch followed an affirmative on-chain vote, marking the most pivotal upgrade to the Lido protocol to date.

    The Lido V2 update not only enhances the Ethereum staking experience but also propels the Lido protocol towards a future of further decentralization.

    The most noticeable aspect of this update for users is the activation of Ethereum withdrawals, enabling Ethereum stakers with Lido to directly unstake ETH through the protocol.

    Unraveling Lido V2

    The Lido V2 upgrade introduces an array of intriguing features, with the main focus on two key components:

    1. Withdrawals: The upgrade empowers Ethereum stakers to burn their stETH and leave the protocol on a 1:1 ratio, thereby creating an open on/off ramp into the Ethereum staking ecosystem.
    2. Staking Router: The new design architecture enables the development of on-ramps for new Node Operators, from solo stakers to DAOs and Distributed Validator Technology (DVT) clusters, fostering a more diverse validator ecosystem.

    The upgrade also incorporates several other changes, including a major rewrite of the Oracle smart contract and off-chain daemon software necessary to support the withdrawals functionality and enable more Node Operators.

    The most notable addition to Lido V2 is the in-protocol ETH withdrawals functionality.

    This feature, developed in line with the recent Ethereum Shapella Upgrade, simplifies the Lido staking experience, allowing users to unstake their ETH directly from the Lido protocol.

    This streamlines the staking process, mitigates previous inconveniences, and facilitates a more efficient utilization of Lido’s staked ETH throughout the Ethereum DeFi ecosystem.

    V2 Security Assurance

    As part of its commitment to security, Lido V2 underwent extensive security audits, with Sigma Prime auditing the updated dc4bc version, ChainSecurity auditing the Staking Router code, and further audits conducted by Oxorio, Statemind, HEXENS, MixBytes(), and Certora.

    These checks ensured that the protocol upgrade rendered Lido on Ethereum feature-complete, enabling stETH to Ether withdrawals and providing opportunities for experimentation and collaboration with the Staking Router architecture.

    What’s ahead for Lido

    The Lido community has expressed excitement over the progress of Lido V2, eagerly anticipating how these new features will augment the staking experience.

    Maintaining its commitment to secure and reliable protocol for staking ETH, Lido looks forward to building on this foundation in the coming months and years.

  • Guide to EIP-4844 Proto-Danksharding and what it means for Ethereum scaling

    Ethereum has challenges in scalability since its inception, and EIP-4844 is one of the solutions to address this issue through the concept of sharding.

    What is sharding

    Sharding basically is a way of dividing up the work of processing transactions so that it can be done more efficiently. Instead of having one big computer processing all transactions, the work is split up among many smaller computers, each handling its own piece of the puzzle.

    Ethereum sharding isn’t just about processing transactions faster, it also provides more space for data. This means that the Ethereum network can handle more complex data and support high-throughput transactions.

    EIP-4844 is the first iteration of the sharding design of Ethereum, which is a way for Ethereum to have more data go through the network.

    Data availability on the Ethereum network is one of the primary scaling bottlenecks. To address this issue, EIP-4844 is trying to add data availability capacity on Ethereum without breaking composability and the execution layer on L1.

    Instead of interpreting the data in a transaction, Ethereum sharding verifies that the data is available for download from the network. This means that the Ethereum protocol doesn’t have to interpret the data, making the transaction processing faster and more efficient.

    EIP-4844 darksharding

    The above all sounds cool – but it is quite a long time away.

    In the meantime, Proto-danksharding, also known as EIP-4844, is a proposal to improve the scalability of Ethereum without implementing sharding yet.

    It introduces a new type of transaction called a blob-carrying transaction, which is similar to regular transactions but also carries a large piece of data called a blob.

    💡
    A blob is an opaque, raw, byte string attached to a transaction.

    The blob data is not accessible to EVM execution, but it can be much cheaper than similar amounts of calldata. Although validators and clients still have to download the full blob contents, data bandwidth is limited to 1 MB per slot, which increases scalability gains without competing with existing Ethereum transactions.

    EIP4844 reduces transaction fees on L2s

    The main benefit of EIP-4844 is that it creates a cheap place for L2 solutions to post data on Ethereum and reduces overall transaction fees users pay on L2 significantly; directly impacting users as they will directly benefit as they will be paying fewer fees on their favorite L2.

    The blobs data does not have to be available forever, but for a certain period (e.g. 1-3 months), long enough that allows L2s to ensure at least one honest actor to reconstruct the state and challenge or replace the bad sequencer.

    EIP-4844 provides significant scaling relief for rollups by allowing them to initially scale to 0.25 MB per slot, with a separate fee market for blobs allowing fees to be very low – almost up to 10x cheaper.

    Summary

    In summary, EIP-4844 is a solution to address Ethereum’s scalability issues by providing data availability capacity on Ethereum without breaking composability and the execution layer on L1.

    It reduces overall transaction fees users pay on L2 and provides significant scaling relief for rollups. This is an exciting development for Ethereum, as it allows the platform to handle more data while maintaining its decentralization and security features.

    It is expected to go-live in 2H 2023 so stay tuned.