Update algorithm & remove check
This commit is contained in:
parent
228752c0d9
commit
b9e7b031b5
|
@ -511,10 +511,6 @@ def verify_cell_kzg_proof_batch_impl(row_commitments: Sequence[KZGCommitment],
|
||||||
n = FIELD_ELEMENTS_PER_CELL
|
n = FIELD_ELEMENTS_PER_CELL
|
||||||
num_rows = len(row_commitments)
|
num_rows = len(row_commitments)
|
||||||
|
|
||||||
# Given zero cells, the result is true
|
|
||||||
if num_cells == 0:
|
|
||||||
return True
|
|
||||||
|
|
||||||
# Step 1: Compute a challenge r and its powers r^0, ..., r^{num_cells-1}
|
# Step 1: Compute a challenge r and its powers r^0, ..., r^{num_cells-1}
|
||||||
r = compute_verify_cell_kzg_proof_batch_challenge(
|
r = compute_verify_cell_kzg_proof_batch_challenge(
|
||||||
row_commitments,
|
row_commitments,
|
||||||
|
@ -544,7 +540,7 @@ def verify_cell_kzg_proof_batch_impl(row_commitments: Sequence[KZGCommitment],
|
||||||
|
|
||||||
# Step 4.2: Compute RLI = [sum_k r^k interpolation_poly_k(s)]
|
# Step 4.2: Compute RLI = [sum_k r^k interpolation_poly_k(s)]
|
||||||
# Note: an efficient implementation would use the IDFT based method explained in the blog post
|
# Note: an efficient implementation would use the IDFT based method explained in the blog post
|
||||||
sum_interp_polys_coeff = [0]
|
sum_interp_polys_coeff = [0] * n
|
||||||
for k in range(num_cells):
|
for k in range(num_cells):
|
||||||
interp_poly_coeff = interpolate_polynomialcoeff(coset_for_cell(column_indices[k]), cosets_evals[k])
|
interp_poly_coeff = interpolate_polynomialcoeff(coset_for_cell(column_indices[k]), cosets_evals[k])
|
||||||
interp_poly_scaled_coeff = multiply_polynomialcoeff([r_powers[k]], interp_poly_coeff)
|
interp_poly_scaled_coeff = multiply_polynomialcoeff([r_powers[k]], interp_poly_coeff)
|
||||||
|
|
|
@ -122,6 +122,20 @@ def test_verify_cell_kzg_proof(spec):
|
||||||
assert spec.verify_cell_kzg_proof(commitment, cell_index, cells[cell_index], proofs[cell_index])
|
assert spec.verify_cell_kzg_proof(commitment, cell_index, cells[cell_index], proofs[cell_index])
|
||||||
|
|
||||||
|
|
||||||
|
@with_eip7594_and_later
|
||||||
|
@spec_test
|
||||||
|
@single_phase
|
||||||
|
def test_verify_cell_kzg_proof_batch_zero_cells(spec):
|
||||||
|
# Verify with zero cells should return true
|
||||||
|
assert spec.verify_cell_kzg_proof_batch(
|
||||||
|
row_commitments_bytes=[],
|
||||||
|
row_indices=[],
|
||||||
|
column_indices=[],
|
||||||
|
cells=[],
|
||||||
|
proofs_bytes=[],
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
@with_eip7594_and_later
|
@with_eip7594_and_later
|
||||||
@spec_test
|
@spec_test
|
||||||
@single_phase
|
@single_phase
|
||||||
|
|
Loading…
Reference in New Issue