EIP-4844: Explicit Clarification on Block Validity with Blob Transactions using an Invalid Versioned Hash
marioevz opened this issue · 2 comments
Pull Request
No response
What happened?
Currently in the definition of the new transaction type of 4844, there is a paragraph that defines the execution invalidity properties of a block that includes this new transaction type.
The sole invalidity property for a block is currently that it cannot contain transactions of this new type that contain zero blobs.
Some client implementations have also included the check All hashes in blob_versioned_hashes must start with the byte BLOB_COMMITMENT_VERSION_KZG
as part of execution block verification.
The paragraph describing the execution block verification should explicitly state whether or not the commitment version byte is a reason to invalidate a block.
If it should be a reason to invalidate:
Blob transactions with empty blob_versioned_hashes, or blob_versioned_hashes that don't start with the byte BLOB_COMMITMENT_VERSION_KZG, are also considered invalid during execution block verification, and must not be included in a valid block.
If it's not:
Blob transactions with empty blob_versioned_hashes are also considered invalid during execution block verification, and must not be included in a valid block.
Blob transactions with a value different than BLOB_COMMITMENT_VERSION_KZG as starting byte are not considered invalid during execution block verification.
Relevant log output
No response
I think its better to always include the version as it would keep things straightforward and clean, especially when something goes wrong (and cost is hardly 1 byte per blob)
This is the wrong place to discuss changes to EIPs. Please open a PR making the relevant changes and share it to the discussions-to
thread.