Try   HackMD

EIP 7594 mempool change

Networking

During transaction gossip responses (PooledTransactions), the EIP-4844 wrapper of the blob transaction is modified to:

rlp([tx_payload_body, blobs, commitments, cell_proofs])

cell_proofs = [cell_proof_0, cell_proof_1, ...]

The tx_payload_body, blobs and commitments are as in EIP-4844, while the proofs field is replaced by cell_proofs, defined as follows:

  • cell_proofs - lists of cell proofs for all blobs, including the proofs for the extension indices, for a total of CELLS_PER_EXT_BLOB proofs per blob

In other words, cell_proofs[i * CELLS_PER_EXT_BLOB + j] is the proof for cell j of blobs[i].

The node MUST validate tx_payload_body and verify the wrapped data against it. To do so, ensure that:

  • There are an equal number of tx_payload_body.blob_versioned_hashes, blobs, commitments, and cell_proofs.
  • cell_proofs contains exactly CELLS_PER_EXT_BLOB * len(blobs) cell proofs
  • The KZG commitments hash to the versioned hashes, i.e. kzg_to_versioned_hash(commitments[i]) == tx_payload_body.blob_versioned_hashes[i]
  • The KZG commitments match the corresponding blobs and cell_proofs. This requires computing the extension cells for all blobs, and verifying all cell_proofs. (Note: all cell_proofs can be batch verified at once)