tl;dr: Over the past few days, some L2s have noticed that their deployments in Sepolia are no longer working properly. This is due to the following reason EIP-7594 Change the format of the proof. To prepare for Fusaka, all blob authors should update their software and cell proof Instead of blob proof.
background
One aspect that is not discussed enough is that EIP-7549 (PeerDAS) That is to change the form of the proof from blob proof to cell proof. This allows you to download specific parts of a 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, only the cell certificate needs to be recalculated. Some clients (particularly go-ethereum) do this via RPC. eth_sendTransaction and eth_sendRawTransaction (1). Converting a BLOB proof to a cell proof takes approximately 1 second, so initiators of BLOB transactions are encouraged to migrate to cell proof to reduce overhead at the RPC level.
Transactions that are in the txpool at the time of fork are deleted in some implementations, but converted to cell proof in other implementations. Therefore, if the transaction is not on-chain, it is wise to resubmit the transaction using cell proof immediately after the fork. Some implementations allow the distribution of blob-proof transactions for up to several minutes after a hard fork at the network layer to ensure stability.
practical changes
If you are a BLOB transaction originator (such as L2), you must update your transaction submission code to create a cell proof.
All major client libraries expose the ability to create these proofs. ComputeCellsAndKZGProofs() Available in all major languages (2). Usage examples can also be found in all major languages in client libraries (3).
outlook
Going forward, we will strive to communicate these changes that impact users more clearly through the Ethereum blog and do more community outreach to ensure that Ethereum users do not feel blindsided by protocol changes.
We also encourage L2 and other parties 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 contracts and testing infrastructure on the development net just before moving to their first testnet. Another great tool to stay up to date with changes is to use Ethereum packages provided by Kurtosis. It allows you to create local networks with the latest specifications (4).
It’s unfortunate that the creators of BLOB found out about this late in the hard fork process, but it also shows that the testnet process works very well and detects these issues long before they appear on mainnet.
(1): go-ethereum only performs conversions. eth_sendRawTransaction Current master and v1.16.5 or later
(2): Reference https://github.com/search?q=repo%3Aethereum%2Fc-kzg-4844%20ComputeCellsAndKZGProofs&type=code
(3) Go Ethereum example: https://github.com/ethereum/go-ethereum/blob/7c107c2691fa66a1da60e2b95f5946c3a3921b00/crypto/kzg4844/kzg4844_test.go#L194
(4) Ethereum package for kurtosis: https://github.com/ethpandaops/ethereum-package
