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
After changing the cryptography to be more higher level, certain parts of the spec now are no longer concerned with particular cryptographic invariants, since they are encapsulated inside of the cryptography module.
It seems that some parts of the spec were not updated to reflect this. In particular in networking:
[REJECT] the sidecar.blobs are all well formatted, i.e. the BLSFieldElement in valid range (x < BLS_MODULUS).
[REJECT] The KZG proof is a correctly encoded compressed BLS G1 Point -- i.e. bls.KeyValidate(blobs_sidecar.kzg_aggregated_proof)
Suggestion
Since:
[REJECT] The KZG commitments in the block are valid against the provided blobs sidecar. -- i.e. validate_blobs_sidecar(block.slot, hash_tree_root(block), block.body.blob_kzg_commitments, sidecar)
Will only pass if the blobs are all well formatted ie canonical and the proof point is correctly encoded, those two points now seem to be redundant.
Notes
If the above is accepted, then I would also question if the networking layer needs this point:
[REJECT] The KZG commitments of the blobs are all correctly encoded compressed BLS G1 Points. -- i.e. all(bls.KeyValidate(commitment) for commitment in block.body.blob_kzg_commitments)
In order to remove it, I think we would need to add it inside of verify_kzg_commitments_against_transactions . If we always validate the commitments before calling verify_kzg_commitments_against_transactions then I think it would be reasonable to move the point validation function inside of verify_kzg_commitments_against_transactions.
The text was updated successfully, but these errors were encountered:
Motivation
After changing the cryptography to be more higher level, certain parts of the spec now are no longer concerned with particular cryptographic invariants, since they are encapsulated inside of the cryptography module.
It seems that some parts of the spec were not updated to reflect this. In particular in networking:
[REJECT] the sidecar.blobs are all well formatted, i.e. the BLSFieldElement in valid range (x < BLS_MODULUS).
[REJECT] The KZG proof is a correctly encoded compressed BLS G1 Point -- i.e. bls.KeyValidate(blobs_sidecar.kzg_aggregated_proof)
Suggestion
Since:
Will only pass if the blobs are all well formatted ie canonical and the proof point is correctly encoded, those two points now seem to be redundant.
Notes
If the above is accepted, then I would also question if the networking layer needs this point:
In order to remove it, I think we would need to add it inside of
verify_kzg_commitments_against_transactions
. If we always validate the commitments before callingverify_kzg_commitments_against_transactions
then I think it would be reasonable to move the point validation function inside ofverify_kzg_commitments_against_transactions
.The text was updated successfully, but these errors were encountered: