tl;dr: Over the past few days, some L2s have noticed that their Sepolia deployments are no longer working properly. This is due to EIP-7594 which changes the format of proofs. In anticipation of Fusaka, we invite all blob creators to update their software to create Cellular evidence instead of blob proofs.
Background
An under-discussed aspect of EIP-7549 (PeerDAS) is that it changes the format of proofs from blob proofs to cellular proofs. This allows downloading a specific part of the blob instead of the entire blob for data availability sampling.
This change may break user applications that send blob transactions. Already signed transactions are still valid, they just need to recalculate the cellular proofs. Some clients (notably go-ethereum) will do this via RPC on eth_sendTransaction And eth_sendRawTransaction (1). This conversion from blob evidence to cellular evidence takes approximately one second. We therefore encourage blob transaction initiators to move to cellular proofs to reduce overhead at the RPC level.
Transactions that are in the txpool at the time of the fork will be deleted by some implementations, while others will convert them to cell proofs. So it would be prudent to return your transactions with cell proofs soon after the fork, if they are not included by the chain. Some implementations allow blob-proof transaction distribution up to a few minutes after the hard fork on the network layer for stability purposes.
Concrete changes
If you are the originator of a blob transaction (for example an L2), you must update your transaction sending code to create cell proofs.
All major client libraries expose functionality for creating these proofs via ComputeCellsAndKZGProofs() which is available in all major languages (2). Usage examples can also be found in all major languages in client libraries (3).
Outlook
We will try to communicate these user-impacting changes more clearly through the Ethereum blog in the future and try to raise more awareness in the community to prevent Ethereum users from feeling blindsided by changes in the protocol.
We also encourage L2s and other entities that rely heavily on the Ethereum roadmap to follow the ACD process and engage more directly with the community. We also want to encourage teams to deploy their contracts and test their infrastructure on devnets shortly before moving on to the first testnets. Another great tool to keep your changes up to date is to use the Ethereum package provided by Kurtosis which can be used to create local networks with the latest specifications (4).
While it’s unfortunate that the blob creators learned of this late in the hard fork process, it also shows that the testnet process works very well and that these issues are detected well before they appear on the mainnet.
(1): go-ethereum will only do the conversion on eth_sendRawTransaction from current master and version 1.16.5
(2): see
(3) Example for Go-Ethereum:
(4) Ethereum package for flattening: