1 of 20

EthCatHerders: EIP-7825 EIP-7934

the EIPs that scale the L1

2 of 20

What is actually the bottlenecks in Ethereum

the EIPs that scale the L1

3 of 20

State growth

the EIPs that scale the L1

4 of 20

Bandwidth

5 of 20

Bandwidth

  • Each blob is 128Kb
  • Each Block is around 100-200 KB
  • There is around 2Mb/s of data being gossiped by the CL�
  • Suggested bandwidth is 50Mbps

6 of 20

History size

  • Grows more than State
  • Can be easily solved
  • Takes 2 TB to store but it is still affordable

7 of 20

Computation

  • Ethereum runs at 2.5 Mgas/sec
  • Most clients can do 250- 1500 Mgas/sec

8 of 20

The actual bottleneck: Protocol rules

9 of 20

The actual bottleneck: Protocol rules

EIP-7825: Caps worst case transactions and make parallelization easier

EIP-7934: Removes MESSAGE_TOO_LARGE attack on the Gossip layer for Block limits >100Mgas

10 of 20

EIP-7825

11 of 20

EIP-7825: reasons

  • We need to cap worst case for single-txs in a reasonable way
  • It makes the block parallelizable by forcing people to split their transactions into many transactions instead of having a 1-tx-per-block case.

12 of 20

Why capping tx limit?

  • Each Tx has a gas limit representing the amount of gas they are willing to use
  • This limit is currently unbounded
  • It has some exponential cases that comes with it

13 of 20

Capping the tx Limit

Add a new clause to block validation:

  • each tx must not buy more than 30mn gas.
  • if they do the tx is impossible and the block is invalid.
  • Implies filtering in the mempool
  • Implies filtering in block building

In short… it makes us sleep well at night!

14 of 20

EIP-7934: RLP Execution Block size limit

15 of 20

EIP-7934: RLP Execution Block size limit

  • Adds a limit to the Execution Block RLP size
    • This limit already exists at the network level
    • It is correctly reflected at the protocol level

16 of 20

EIP-7934: Network specs

  • Adds a limit to the Execution Block RLP size
    • This limit already exists at the network level
    • It is correctly reflected at the protocol level

17 of 20

EIP-7934: Network specs

No such thing as a “block limit” in the Core Protocol.

18 of 20

EIP-7934: Preventing MESSAGE_TOO_LARGE

When we e.g 10x the gas limit an attacker can make a “MESSAGE_TOO_LARGE” attack

  • Large blocks are technically valid but not accepted by the network layer
  • How does the attack work?
    • Builder creates a block full of Calldata and propagate the transactions
    • Execution accepts the block and the block is forwarded
    • Network fail to propagate the valid block while the txs run rampant
    • Since the payload is technically valid, such payload can be built by other proposers too
    • Network might experience partial shutdown

19 of 20

EIP-7934: Preventing MESSAGE_TOO_LARGE

How do you fix it?

  • You fix the Protocol Layer <> Network Layer inconsistency

20 of 20

EIP-7934+EIP7825

These EIPs are designed to reach a gas limit of 150Mn.

This is a 5x in L1 throughput by just tweaking protocol rules