. Profile picture
13 Jan, 21 tweets, 4 min read
2021 will be the most innovative year for the Ethereum protocol since 2016. Here are the EIPs to keep an eye on this year (thread):
The next hardfork is named "Berlin" & is scheduled to ship with 4 EIPs:

* EIP-2929: Gas cost increases for state access opcodes
* EIP-2930: Optional Access List Txs
* EIP-2718: Typed Transaction Envelope
* EIP-2315: Simple Subroutines
EIP-2929: Gas cost increases for state access opcodes

Storage accessing opcodes have historically been underpriced & malicious txs which take 20-80 seconds to execute can be created today.

This EIP increases the cost of state accesses by ~3x.
EIP-2930: Optional access lists

Roughly 0.18% mainnet txs will be broken by EIP-2929. In an effort to mitigate this breakage, this EIP introduces a new type of tx which can specify which storage slots will be read & pay a discounted fee (~10% off) upfront.
EIP-2718: Typed Transaction Envelope

This EIP specifies a new format for txs which begin with a "discriminator" to allow for clients to interpret different txs. EIP-2930 is the first use of this EIP & EIP-1559 will likely be the second user.

New format = `type || payload`
EIP-2315: Simple Subroutines

The last EIP scheduled for Berlin adds support for subroutines. Traditionally, contracts that wanted to emulate this functionality need to juggle general stack data & return addresses. This adds a new stack solely for tracking addresses to return to.
After Berlin, things are less concrete. If the ice age isn't increased in the upcoming fork, it is scheduled to kick in early July. Based on recent ACD calls, another fork sometime this summer seems likely. There are many candidate EIPs for this fork, most notably EIP-1559.
EIP-1559: Fee market change for eth1

Gas is broken into two parts: base fee and tip. The base fee portion is burnt and the tip is sent to the miner. The base fee is dynamically determined in the protocol depending on demand. This should smooth out spikes & improve gas UX.
EIP-1559 (cont)

@TimBeiko has done an excellent job shepherding the EIP. Here's what he thinks about its mainnet readiness (spoiler: it's close, but still a bit to go):

EIP-2982: Serenity Phase 0

For the first time since EIP-1011, eth1 and eth2 have united under the EIPs repository. This EIP is just the beginning of the reintroduction of eth2 governance/standardization to eth1. The main changes it specifies is new issuance of ether in eth2.
EIP-?: The Merge

2021 may be an optimistic timeline for a consolidation of eth1 & eth2 and the deprecation of PoW. However, R&D will ramp up significantly over the next few months. Expect this to happen in the next 18 months.
EIP-3102: Binary trie structure

This EIP will transition out the current hexary state trie & move to a binary tree. This will make merkle proofs more efficient. The migration will likely be resource intensive & so it may be preferable to occur before The Merge.
EIP-2937: SETINDESTRUCTIBLE opcode

This opcode will cause any following SELFDESTRUCTs to act as a noop in the current frame. It will allow for better reasoning about the dependability of contract. It also is an early step towards supporting Account Abstraction.
EIP-2938: Account Abstraction

Allows a contract to be a top-level account that pays tx fees and initiates tx execution. This provides a flexible framework for defining arbitrary tx validity conditions. Originally proposed in EIP-86, this EIP provides a concrete path to mainnet.
EIP-?: EVM384

Although this isn't yet a formal EIP, it is heading in that direction. It proposes adding native 384 bit arithmetic operators (likely other widths too) to support efficient implementations of new cryptosystems in EVM.
EVM384 (cont)

With the rapid innovation happening in modern crypto systems, EVM384 provides a framework for eth to support them *without* necessitating a hard fork & precompile for each. They can be implemented as EVM contracts instead by anyone.
EIP-2537: BLS12-381 precompile

There are still debates as to whether this EIP makes sense in a world with EVM384. Although EVM384 is a better long-term solution, BLS is a first class citizen in the ecosystem (due to eth2) & probably deserves a native precompile.
Batched txs

There are many EIPs that aim to replace meta-txs with L1 primitives. Expect significant progress on that front this year. A few such EIPs:

EIP-2711: Sponsored, expiring and batch txs
EIP-2733: Transaction Package
EIP-2803: Rich Txs
EIP-3074: Sponsored Tx Precompile
EIP-2464: eth/65: transaction announcements and retrievals

This EIP significantly reduces the bandwidth eth1 clients used by propagating tx hashes to most peers, instead of the full tx. Geth plans to deprecate support for < eth/65 sometime this year.
2021 is going to bring a lot of change to the Ethereum protocol. There is so much more happening than just this list. The entire eth2 and stateless ethereum groups have their own ambitious agendas for the year. It's such an exciting time to be working on Ethereum.
If this list excites you & you want to contribute to core ethereum development / research, please send me a DM. My team is hiring.

• • •

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

Keep Current with .

. 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 @lightclients

12 Jan
What are the most exciting new(ish) ERCs? cc @0xMaki @bantg @nicksdjohnson @thegostep @AndreCronjeTech @kaiynne @danfinlay
so far, the most interesting IMO (as a non-dapp dev) are EIP-2535 Diamond Standard (@mudgen), EIP-3009 Transfer with Authorization (@petejkim), EIP-3000 Optimistic enactment of governance (@izqui9), and EIP-3156 Flash Loans (@acuestacanada)
but i feel like there are interesting conversations happening in some lower number EIPs that I'm just not following. any standards to improve the readability of tx data when signing (or signing standards in general)?
Read 4 tweets
12 Nov 20
Yesterday's chain split will be cemented in Ethereum's history as an inadvertent hard fork. Let's look at exactly what the vulnerability was & how this transaction exploited it (thread): etherscan.io/tx/0x57f7f9ec3…
I also want to preface that this is completely an outsiders account of the incident & therefore everything posted here is only to the best of my knowledge. I look forward to the go-ethereum team's full disclosure of the vulnerability!
On 2019-11-07, Geth v1.9.7 was released. It contained a few fixes and optimization, including PR #20177 titled "core/evm: avoid copying memory for input in calls".
Read 25 tweets
1 Nov 20
Geth's transaction pool (aka mempool) can be boiled down to a few key data structures and processes. Transactions are the main building block. They are stored on the heap while references to them populate four objects: "all", "priced", "queue", and "pending".
The "all" object is a mapping of the transaction's hash to the actual transaction object on the heap. It is the canonical source of transactions in the mempool and is used to build (and rebuild) the "priced" object.
The "priced" object is a heap (data structure) that orders the transactions in the mempool highest to lowest priced. When the mempool is completely saturated, "priced" is asked to find the N cheapest transactions so that they can be fully evicted from the mempool.
Read 16 tweets
18 Jun 19
I'm going to live tweet as I read the @Libra_ whitepapers & relate it to Eth 2.0 where I can. [THREAD]
@Libra_ Please correct & discuss any of my thoughts, thanks!
Read 78 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

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

Donate via Paypal Become our Patreon

Thank you for your support!

Follow Us on Twitter!