ethereum/EIPs

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.