timbeiko.eth Profile picture
May 25 30 tweets 33 min read Twitter logo Read on Twitter
Another @ethereum #ACDE today! We covered SELFDESTRUCT removal, 4844 spec changes, opcode management and potential final Cancun additions 🏖️

Agenda: github.com/ethereum/pm/is…
Stream:

Recap below 😄
@ethereum First on the call, we had the @dedaub team share the impact analysis they did around SELFDESTRUCT removal: docs.google.com/document/d/1HD…

Their presentation was thorough and accessible - recommend the livestream if you want to get the full picture 😄
@ethereum @dedaub At a high level, they were tasked with determining what would break if SELFDESTRUCT semantics changed, and whether trying to accommodate certain breaking cases would be worthwhile. Image
@ethereum @dedaub First, they clearly explained how SELFDESTRUCT works today, and then contrasted this with what EIPs 4758 and 6780 propose. ImageImageImage
@ethereum @dedaub TL;DR SELFDESTRUCT currently sends ETH in a contract to the beneficiary address, then clears the runtime bytecode, nonce and storage of the contract where it is called.
@ethereum @dedaub As previously discussed, the problems with this are (1) unbounded execution time (SELFDESTRUCTING a big contract requires much more computation than a small ones (2) the incompatibility with Verkle Tries & stateless and (3) whether we want mutable contracts at all 😅
@ethereum @dedaub EIP-4758 proposes to aggressively remove SELFDESTRUCT, converting it to SENDALL, and having it only send funds back to the beneficiary address, but not clear any bytecode/storage/nonce.
@ethereum @dedaub EIP-6780 does the same, with an exception: contracts which are created and destroyed within a single transaction. This was previously identified as a large usage pattern for the opcode. The Dedaub analysis looked at the "reduced + remaining breakage" from this.
@ethereum @dedaub Assuming we went the more aggressive way of 4758, here's the projects which would be affected. Image
@ethereum @dedaub But, if we do 6780, we greatly reduce the impact: we go from 400k transactions over the past 2.5m blocks that would have been impacted to ~700! Image
@ethereum @dedaub Here is some more context on these from the audit: Image
@ethereum @dedaub @willmorriss4 felt the report understated the impact in that last line about MEV bots, and shared a statement about why + how to mitigate it: docs.google.com/document/d/16G…
@ethereum @dedaub @willmorriss4 In short, his proposal is to add another opcode, SETCODE, alongside the removal of SELFDESTRUCT to allow for programmatic accounts to still be updated: Image
@ethereum @dedaub @willmorriss4 Yoav Weiss discussed this with him async over the past day, and shared some of his concerns with SETCODE: notes.ethereum.org/@yoav/SETCODE-…

In short, it introduces some new mutability risks related to DELEGATECALL.
@ethereum @dedaub @willmorriss4 There were some more questions about SETCODE on the call, and some concerns about the implications of the feature. After some back and forth, client teams agreed to still move forward with EIP-6780, independently of making a decision on SETCODE.
@ethereum @dedaub @willmorriss4 Next up, we discussed EIP-4844! There were a bunch of spec issues on the agenda. I won't go over all of them here - you can watch the livestream for the full overview, or wait for @terencechain's recap of Monday's 4844 call 😄
@ethereum @dedaub @willmorriss4 @terencechain The one we spent the most time on is a proposal from the geth team to change how blob gas usage is tracked: github.com/ethereum/EIPs/…

The PR would align 4844 with 1559 in terms of what information is needed to derive a block's excess_data_gas Image
@ethereum @dedaub @willmorriss4 @terencechain Aside from this, we reviewed PRs confirming two changes we had agreed to: moving the precompile to use big endian (like the rest of the EL), and removing SSZ from 4844.
@ethereum @dedaub @willmorriss4 @terencechain The SSZ -> RLP change also implied that the two SSZ EIPs for Cancun are no longer required: EIPs 6475 and 6493 are therefore being respectively removed from the Included & CFI lists

github.com/ethereum/execu…
@ethereum @dedaub @willmorriss4 @terencechain Then, @BarnabasBusa gave an update on 4844 devnet-5: in the past two weeks, we had a non-finalization event on it which forcefully exited 900 validation. The devnet then finalized, and new validators are being activated. New nodes can sync to it successfully!
@ethereum @dedaub @willmorriss4 @terencechain @BarnabasBusa He also started drafting a spec for devnet 6, which will be the main topic for our 4844 call Monday: notes.ethereum.org/@bbusa/dencun-…
@ethereum @dedaub @willmorriss4 @terencechain @BarnabasBusa With Dencun shaping up, it's likely devnet-6 will be the last 4844-exclusive devnet, and that after that, we'll start pulling in other EIPs to test as well!
@ethereum @dedaub @willmorriss4 @terencechain @BarnabasBusa After this, @shemnon came on to help us try and make sense of all the proposed opcodes for Cancun, Prague and more. He shared this doc which makes suggestions for opcode usage based on a holistic view of all proposed EVM changes: hackmd.io/@shemnon/Cancu…
@ethereum @dedaub @willmorriss4 @terencechain @BarnabasBusa @shemnon Everyone agreed this was very useful to have! We'll be merging it into the execution specs repo, similarly to how there's a list of transaction types: github.com/ethereum/execu…
@ethereum @dedaub @willmorriss4 @terencechain @BarnabasBusa @shemnon Most directly relevant to Cancun, the opcodes allocated for EIP-1153 were changed: Image
@ethereum @dedaub @willmorriss4 @terencechain @BarnabasBusa @shemnon Lastly, we briefly discussed a set of proposed Cancun EIPs. @ralexstokes shared some updates on the 4788 design, modifying it to use a stateful precompile over an opcode, and we briefly discussed the MCOPY, PAY and "revamped CALL" opcode proposals
@ethereum @dedaub @willmorriss4 @terencechain @BarnabasBusa @shemnon @ralexstokes While we didn't make final decisions about inclusion, we agreed that these proposals should be the final ones formally considered for the upgrade.... with perhaps SETCODE as an exception?

The spec has been updated to reflect this: github.com/ethereum/execu… Image
@ethereum @dedaub @willmorriss4 @terencechain @BarnabasBusa @shemnon @ralexstokes And that was it! SELFDESTRUCT is being deactivated, 4844 is chugging along, and we should finalize the full scope for Dencun in the next few weeks 😄

Next ACDE is scheduled for June 8 - see you then!
@ethereum @dedaub @willmorriss4 @terencechain @BarnabasBusa @shemnon @ralexstokes And a note by William about how the SETCODE spec has been updated to address the DELEGATECALL concerns:

• • •

Missing some Tweet in this thread? You can try to force a refresh
 

Keep Current with timbeiko.eth

timbeiko.eth Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

PDF

Twitter may remove this content at anytime! Save it as PDF for later use!

Try unrolling a thread yourself!

how to unroll video
  1. Follow @ThreadReaderApp to mention us!

  2. From a Twitter thread mention us with a keyword "unroll"
@threadreaderapp unroll

Practice here first or read more on our help page!

More from @TimBeiko

May 11
Had another @Etherum #ACDE call today: most of it focused on 4844, with some brief discussion of L2 EIPs, and overall Cancun planning 🏖️

Agenda: github.com/ethereum/pm/is…
Stream: youtube.com/live/s6q5z53SI…

Recap below 👇
@Etherum On the 4844 front, we first discussed some issues with the input format to the precompile. They use little-endian, which isn't used on the EL (but is the default on the CL), while the output is big endian, the default for the EL.
@Etherum @yperbasis asked if we could harmonize this, ideally using big endian to match the rest of the EL. After some discussion, we agreed to move forward with this! We'll open a PR to the spec and merge it if no objections come up ✅
Read 25 tweets
Apr 27
We wrapped up @ethereum ACDE 160 just now - lots of discussion and decisions about Cancun, the next upgrade.

Agenda: github.com/ethereum/pm/is…
Stream: youtube.com/live/ajLQVC3E_…

Recap below 👇
@ethereum Full tweetstorm will be a bit delayed today, but here's a short summary of the call, from the R&D discord: Image
@ethereum And here is the PR reflecting the changes mentioned above: github.com/ethereum/execu…

The @EthMagicians thread for the fork has also been updated 🧙‍♀️

ethereum-magicians.org/t/cancun-netwo…

Full recap 🔜
Read 28 tweets
Mar 30
We wrapped up another @ethereum #ACDE today: covered Shapella, EOF, SELFDESTRUCT, EL -> CL state access, local block building & verkle tries 🌳

Agenda: github.com/ethereum/pm/is…
Recording:

Recap below 👇
@ethereum First, Shapella is coming! The announcment came out earlier this week:
@ethereum Note that @ErigonEth has had a version update since the initial announcement:

2.42.0 is what you want to be running if you use the client!
Read 30 tweets
Mar 30
Looking at the numbers, it seems like about 2/3rd of funds allocated to client teams went to the *teams* vs. 1/3rd to PG (individuals) 👀

Results skew more towards individuals if you add the 4844 collection, which had some interesting pushback: gov.optimism.io/t/feedback-on-…
Not sure how explicit badge holders where about these splits, but it seems reasonable? Could argue that individuals vs. teams should be closer to 50-50, or maybe flip to 2/3rd towards individuals (idk what's best!), but it's encouraging to not see a 10x skew either way!
The results of this round have made me more optimistic about public goods "interop": it feels more like "legos" than "competition", and I think it's worthwhile to keep going that route to allow capital allocators to mix & match as they please 🧱
Read 4 tweets
Mar 30
@optimismFND I also like that both @ProtocolGuild and client teams can get allocations: PG goes directly to individuals, and some of them who fall between clearly delineated teams, and most teams' funding go back to the "org", which helps pay for both the engineers, but also everyone else!
@optimismFND @ProtocolGuild We started PG in part because ~every funding system in the space is biased towards orgs vs. individuals, and so it's great to see something like RPGF allocating to both ends of the spectrum 😄
Read 4 tweets
Mar 28
It's happening 🎊

Shapella is scheduled on mainnet for epoch 194048, scheduled for 22:27:35 UTC on Apr. 12, 2023 📆

Client releases compatible with the upgrade are listed in the announcement below 👇

blog.ethereum.org/2023/03/28/sha…
If you're a validator, you should check out our Withdrawals FAQ to make sure you are ready for the upgrade 🤖notes.ethereum.org/@launchpad/wit…
For the security/vulnerability-minded folks, note that from now until April 5th, the Ethereum Bug Bounty rewards have been doubled for Shapella vulnerabilities 🐞

ethereum.org/en/bug-bounty/
Read 6 tweets

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3/month or $30/year) and get exclusive features!

Become Premium

Don't want to be a Premium member but still want to support us?

Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal

Or Donate anonymously using crypto!

Ethereum

0xfe58350B80634f60Fa6Dc149a72b4DFbc17D341E copy

Bitcoin

3ATGMxNzCUFzxpMCHL5sWSt4DVtS8UqXpi copy

Thank you for your support!

Follow Us on Twitter!

:(