# 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)