You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: src/engine/experimental/blob-extension.md
+4-2Lines changed: 4 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -56,6 +56,7 @@ The fields are encoded as follows:
56
56
57
57
-`blockHash`: `DATA`, 32 Bytes
58
58
-`kzgs`: `Array of DATA` - Array of `KZGCommitment` as defined in [EIP-4844](https://eips.ethereum.org/EIPS/eip-4844), 48 bytes each (`DATA`).
59
+
-`proofs`: `Array of DATA` - Array of `KZGProof` as defined in [EIP-4844](https://eips.ethereum.org/EIPS/eip-4844), 48 bytes each (`DATA`).
59
60
-`blobs`: `Array of DATA` - Array of blobs, each blob is `FIELD_ELEMENTS_PER_BLOB * BYTES_PER_FIELD_ELEMENT = 4096 * 32 = 131072` bytes (`DATA`) representing a SSZ-encoded `Blob` as defined in [EIP-4844](https://eips.ethereum.org/EIPS/eip-4844)
60
61
61
62
## Methods
@@ -105,7 +106,7 @@ Refer to the specification for `engine_getPayloadV2`.
105
106
106
107
### engine_getBlobsBundleV1
107
108
108
-
This method retrieves the blobs and their respective KZG commitments corresponding to the `versioned_hashes`
109
+
This method retrieves the blobs and their respective KZG commitments and proofs corresponding to the `versioned_hashes`
109
110
included in the blob transactions of the referenced execution payload.
110
111
111
112
This method may be combined with `engine_getPayloadV2`.
@@ -133,6 +134,7 @@ The separation of concerns aims to minimize changes during the testing phase of
133
134
3. The call **MUST** return `kzgs` matching the versioned hashes of the transactions list of the execution payload, in the same order,
134
135
i.e. `assert verify_kzgs_against_transactions(payload.transactions, bundle.kzgs)` (see EIP-4844 consensus-specs).
135
136
136
-
4. The call **MUST** return `blobs` that match the `kzgs` list, i.e. `assert len(kzgs) == len(blobs) and all(blob_to_kzg(blob) == kzg for kzg, blob in zip(bundle.kzgs, bundle.blobs))`
137
+
4. The call **MUST** return `blobs` and `proofs` that match the `kzgs` list, i.e. `assert len(kzgs) == len(blobs) == len(proofs)` and `assert verify_blob_kzg_proof_batch(bundle.blobs, bundle.kzgs, bundle.proofs)`
138
+
137
139
138
140
5. The call **MUST** return `blockHash` to reference the `blockHash` of the corresponding execution payload, intended for the caller to sanity-check the consistency with the `engine_getPayload` call.
0 commit comments