mirror of
https://github.com/ethereum/consensus-specs.git
synced 2026-01-09 23:38:07 -05:00
1.3 KiB
1.3 KiB
Test format: Verify KZG proof
Verify the KZG proof for a given blob and an evaluation point z that claims
to result in a value of y.
Test case format
The test data is declared in a data.yaml file:
input:
commitment: KZGCommitment -- the KZG commitment to the data blob
z: Bytes32 -- bytes encoding the BLS field element at which the polynomial should be evaluated
y: Bytes32 -- the claimed result of the evaluation
proof: KZGProof -- The KZG proof
output: bool -- true (valid proof) or false (incorrect proof)
zhere is encoded as a string: hexadecimal encoding of32bytes representing a big endian encoded field element, prefixed with0x.yhere is encoded as a string: hexadecimal encoding of32bytes representing a big endian encoded field element, prefixed with0x.
All byte(s) fields are encoded as strings, hexadecimal encoding, prefixed with
0x.
Condition
The verify_kzg_proof handler should verify the KZG proof for evaluating the
polynomial represented by blob at z resulting in the value y, and the
result should match the expected output. If the commitment or proof is invalid
(e.g. not on the curve or not in the G1 subgroup of the BLS curve) or z or y
are not a valid BLS field element, it should error, i.e. the output should be
null.