Hitting a milestone on Ethereum’s next upgrade, the network’s devs on Monday deployed a shadow fork supporting staked ETH withdrawals.
Marius Van Der Wijden of the Go Ethereum (Geth) client tweeted that the first shadow fork of Ethereum’s upcoming Shanghai upgrade is close to being finalized. He said that all nodes are correctly synced on the shadow fork after making configuration changes to the Go Ethereum client.
Van Der Wijden added that Ethereum’s developers will now stress test the shadow fork by spamming the network with invalid blocks.
“For now, the chain is finalizing correctly, let’s see if Potuz and I can break it,” Van Der Wijden said.
The news comes after Ethereum’s devs said they plan to enable Staked ETH withdrawals by the end of the first quarter — more than two years after staking went live. The upgrade will be shipped as part of the Shanghai upgrade, Ethereum’s next major upgrade following The Merge last September.
Shadow forks are private deployments of Ethereum that core developers use to test pending upgrades while the code is still highly experimental. They are used to finalize code before it is launched on public testnets.
Developers hope to launch public testnet deployments of the upgrades in February. Shanghai will be accompanied by the Capella fork, with the two forks upgrading Ethereum’s execution and consensus layers respectively. The forks will enable the launch of staked ETH withdrawals.
ETH holders have been able to stake their coins since the Beacon Chain, Ethereum’s Proof of Stake consensus layer, went live in Dec. 2020. The stakers cannot withdraw their assets, which has spurred criticism from Ethereum detractors, highlighting that many stakers expected withdrawals to be enabled last year.
More than 16M Ether worth more than $26B is staked on the Beacon Chain. Analysts say the launch of withdrawals will bolster staking participation.
However, some of Ethereum’s devs believe the team is rushing the Shanghai upgrade, arguing that the code could be more future-proof if Shanghai is postponed by a few more weeks to make it compatible with multiple encoding techniques.
During a Jan. 19 All Core Developers call, Micah Zoltu, an Ethereum dev, pushed back against Shanghai’s current timeline. Zoltu warned that the upgrade may create more work for Ethereum’s devs to do in the future should the code exclusively support recursive-length prefix serialization (RLP) encoding.
Zoltu pointed out that the current Shanghai code does not allow ETH withdrawals to be compatible with simple serialize (SSZ), an emerging coding method that some analysts describe as the future of Ethereum encoding. The developer said the rise of SSZ could result in RLP being phased out in the near future.
“It feels like we’re not thinking about the long-term health of Ethereum, we’re thinking: ‘How do we do what the public wants, today?’” Zoltu said. “I feel like as core devs, our job is to think about the long-term health of Ethereum, and not to capitulate to people’s lobbying or demands… I think that doing the right thing means not adding technical debt that we know is going to be technical debt in like six months.” Ethereum developer Danny Ryan said that while he agrees with Zoltu’s sentiment, devs have not done enough work into exploring what impacts migrating to SSZ could have on Ethereum.
“We should be moving the transaction route to SSZ, but we have not done the diligence there, so I could not confidently say that that is what we are doing to do because there is an alternative,” Ryan said.
Tomasz Stańczak chimed in that supporting SSZ would necessitate much larger changes than Zoltu’s comments suggested, asserting that the work associated with moving to SSZ will be “small” compared to many of the upcoming changes on Ethereum’s roadmap.
“Delays… for the sake of better [a] long-term network would be very convincing,” the developer said. “But this particular change… will be a larger process… I would prefer us to… give ourselves the proper time [to prepare].”