This PR adds a version to the commitments generated by Steel. This allows us to distinguish between regular block commits (verified using the blockhash opcode) and beacon commits (verified using the EIP-4788 beacon roots contract) based on the commitment data alone.
It uses the top 2 bytes of the commitment's blockID field as the version. This leaves a uint240 for the actual identifier, which is more than sufficient for the block number or block timestamp.
This PR adds a version to the commitments generated by Steel. This allows us to distinguish between regular block commits (verified using the
blockhash
opcode) and beacon commits (verified using the EIP-4788 beacon roots contract) based on the commitment data alone.It uses the top 2 bytes of the commitment's
blockID
field as the version. This leaves auint240
for the actual identifier, which is more than sufficient for the block number or block timestamp.