Ethereum All Core Developers Execution Call #153 Writeup
On January 19, Ethereum developers gathered for All Core Developers Execution (ACDE) call #153. Chaired by the Ethereum Foundation’s Tim Beiko, the ACDE calls are one of two bi-weekly meeting series where Ethereum developers discuss and coordinate changes to the protocol of Ethereum. The other meeting series is called ACD Consensus (ACDC) calls and focus on discussions related to the consensus, as opposed to execution, layer of Ethereum.
Usually, ACD calls are an hour and a half in duration. However, the 153rd All Core Developers Execution (ACDE) call was short, lasting roughly 45 minutes. On the call, developers shared updates around testing for Ethereum’s next upgrade Shanghai and re-confirmed their decision to change the unit of account for staked ETH withdrawals from wei to gwei to match the unit of account used on the consensus layer (CL) of Ethereum. In addition, developers agreed to add EIP 6049 to the official specifications for Shanghai. EIP 6049 does not make any code changes to Ethereum, but it does warn against the use of the SELFDESTRUCT opcode. For more information about SELFDESTRUCT, read prior call notes here. Developers also agreed to move all EOF related EIPs that were rejected from Shanghai to the Cancun upgrade. For more information about EOF, read prior call notes here. Finally, developers discussed new processes for organizing network upgrades starting with Cancun and shared a few housekeeping announcements.
Shanghai Testing Updates
The Shanghai/Capella upgrade is currently being tested on its third developer-focused test network. The prior devnet, which has since been deprecated, uncovered minor issues in the Geth EL client. These issues have since been fixed and all CL-EL client pairs running on devnet 3 are stable. Devnet 3 notably includes the code change updating the unit of account for staked ETH withdrawals. Developers are planning on launching Devnet 4 sometime next week. Barnabas Busa, a DevOps Engineer at the Ethereum Foundation, said on the call that Devnet 4 will be a larger test network, running about 500,000 or 600,000 validators, and will focus on testing validator withdrawal credential updates.
In addition, developers are launching shadow forks to further test the Shanghai upgrade. As background, shadow forks a specific type of devnet created by forking an existing blockchain with a small number of nodes. The resulting shadow fork shares the same state and history as the originating chain and can replay transactions. All of this helps simulate the upgrade in a more dynamic and real-world setting than regular devnets. Parithosh Jayanthi, another DevOps Engineer at the Ethereum Foundation, said that his team launched a shadow fork of the Sepolia test network on January 19, 2023. The Sepolia shadow fork tested withdrawal credential updates, as well as withdrawals. The only client that was not tested on the Sepolia shadow fork was the Erigon (EL) client. Next Monday, developers plan on launching a shadow fork of mainnet Ethereum with all CL-EL client combinations.
CL-EL Withdrawals Harmonization
Last week, during ACDC call #101, developers discussed the harmonization of data field formatting between EL and CL block headers. Given that CL block headers rely on a serialization format that is more modern, known as SSZ, developers are keen on updating EL data fields to reflect the same format. Harmonizing the formatting between EL and CL block headers has several benefits, one of the main ones being support for light client development. However, making changes to existing fields is an involved process and may result in breaking tooling created or used by decentralized application (dapp) developers and other infrastructure providers. Therefore, developers had discussed last week delaying the change and only updating the unit of account for staked ETH withdrawals from wei to gwei in the EL to match that of the CL. Given that staked ETH withdrawals are not yet enabled, changing its format before Shanghai will not impact any network stakeholders.
Micah Zoltu, founder of Serv.eth Support, questioned whether the minor wei/gwei conversion was in the best interest of the network and purported that it felt more like a short cut to speed up the activation of staked ETH withdrawals for the interests of investors. “We’re not thinking of the long-term health of Ethereum. We’re thinking about how do we do what the public wants today,” said Zoltu on the call, adding, “I think that doing the right thing means no adding technical debt that we know is going to be technical debt in six months. …. If we care about just giving investors what they want, then sure, given them withdrawals right now but I really don’t think that’s what we should be optimizing for.”
To this, Danny Ryan, Chair of the ACDC calls, agreed with Zoltu’s sentiment but pushed back on the reasoning for delaying a deeper and more involved change in Shanghai for EL block headers. “My point is doing the withdrawals route [change] is premised upon that being the common solution to handle these couple of routes and we don’t know precisely how we will handle the other routes even though we have an intention on how we are going to be able to handle the other routes so doing them [all] together seems appropriate.” In other words, Ryan is opposed to going beyond a minor wei/gwei conversion and implementing a more involved change to the formatting for staked ETH withdrawals in the EL to match that of the CL because developers haven’t yet fully decided on how to re-format other existing data fields between the EL-CL block headers. Zoltu and other core developers on the call agreed that they shouldn’t pre-emptively start enforcing a new format in a certain way through staked ETH withdrawals in Shanghai unless they are confident about implementing it across the board for all the other discrepant data fields.
Given that developers will only be making a minor change to the EL specifications for staked ETH withdrawals in Shanghai, it is important that dapp developers and other infrastructure providers, especially liquid staking protocols, recognize that there may be changes in the future to these specifications impacting tooling and dapps, especially liquid staking protocols. Etan Kissling, a developer of the Ethereum Nimbus (CL) client team, volunteered to draft the Ethereum Improvement Proposal (EIP) for making larger changes to harmonize data field formatting between EL and CL block headers in preparation for Cancun. (Cancun is the EL name for the upgrade after Shanghai.)
Signaling the Deprecation of SELFDESTRUCT
SELFDESTRUCT is an operation on Ethereum that dapp developers can use to terminate a smart contract and send contract funds to a specified address. It has been around since the very beginning of Ethereum but was quickly discovered to be a dangerous operation. “SELFDESTRUCT is the only opcode which causes an unbounded number of state objects to be altered in a single block,” founder of Ethereum Vitalik Buterin wrote in a blog post. Developers have been researching ways to deprecate the operation in Shanghai but failed due to push back from certain dapp developers about the backwards incompatibility of the code change and the repercussions a full deprecation would have on their applications. Therefore, Tim Beiko, Chair of the ACDE calls, presented EIP 6049 on the call. This EIP does not make any code changes to Ethereum but is simply a document discouraging the use of the opcode and warns about a potential change to the opcode’s behavior in the future. There were no strong objections to including EIP 6049 to Shanghai and so Beiko said he would move forward with its inclusion in the upgrade.
EOF CFI’d For Cancun
The EVM Object Format (EOF) represents a handful of code changes designed to make EVM execution more efficient, consistent, and easily upgradeable. During a prior ACDE call, developers agreed that EOF implementation should be left out of the Shanghai upgrade to allow for more research, development, and testing time. Certain developers were keen on making a commitment to prepare EOF implementation for Cancun. During this week’s call, Tim Beiko raised this issue and asked developers whether EOF implementation should be considered for inclusion (CFI) for Cancun. The other upgrade that has already been CFI’d for Cancun is EIP 4844, proto-danksharding. Given that there were no objections on the call, EOF implementation was successfully CFI’d for Cancun.
Beiko then presented a plan to facilitate higher-level discussions about the scope of Ethereum upgrades, starting with the Cancun upgrade. “We do a pretty good job on [this] call of discussing individual EIPs and their pros and their technical details but when it comes down to figuring out what the overall scope of a fork and what that should look like, between two EIPs the community wants, which one should be prioritized, these are all conversations that ended up being a bit more awkward on this call,” said Beiko. Therefore, Beiko proposed opening an Ethereum Magicians thread, which is an online and public discussion forum, every time there is a network upgrade where all network stakeholders can chime in about what the scope and priorities of an upgrade should be. Beiko mentioned in his written proposal that competing opinions about upgrade scope and priorities would still be resolved on ACD calls. The Ethereum Magicians thread would be “used as input into [ACD] calls, but not serve as venue for the final decision about upgrades’ scope. ACD would still be where the decision is made,” Beiko wrote. There were no strong objections to Beiko’s proposal and so Beiko said that he would move forward with opening one up for the upcoming Cancun upgrade.
There were several announcements shared on this week’s ACDE call. First, Ethereum developers will be hosting their first community call about the Shanghai/Capella upgrade on January 20, 2023. All Ethereum stakeholders are encouraged to participate and ask questions. Second, the Ethereum Cat Herders, an independent group dedicated to supporting Ethereum core developers with project management, has launched an initiative to assess client diversity on the network. There is a survey that node operators on Ethereum are encouraged to fill out to here. The information will be used to assess the network’s client distribution and ways to improve client diversity.
Third, Ethereum’s KZG ceremony kicked off last week. The ceremony is a requirement for the implementation of EIP 4844. It is a trusted setup ceremony that all Ethereum stakeholders are encouraged to learn more about and participate in by going to this website. Currently, there is a queue of over 2,000 participants in the KZG ceremony. Trent Van Epps, an Ecosystem Person for the Ethereum Foundation, asked participants to bear through the queue. He also mentioned that the current period of open contributions would last roughly 2 months before switching to a period of special contributions from individuals with their own unique contribution methods. Then, the ceremony will switch back to accepting open contributions until EIP 4844 is ready for implementation in Cancun. Finally, Beiko announced that there would be no ACDC call next week. Developers will reconvene on February 2nd.