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