Somehow (probably because of a merge conflict) the last three
verify_cell_kzg_proof_batch test cases were indented too far and as a result
were part of the loop above, and as a result executed multiple times. This
doesn't change the generated tests because it would try to do the same test
with the same inputs.
* Rename column_index to cell_index in KZG spec
* Fix table of contents
* Replace list(set()) with set()
* Change coset_evals to cell_indices in some places
* Remove punctuation in table description
* Remove "row" from comments & improve docstring
* Replace unique with deduplicated
* restructure verify_cell_kzg_proof_batch a bit
* first draft of universal verification equation
* add one more empty line to make linter happy
* make linter happy
* more testcases for verify_cell_kzg_proof_batch
* verify_cell_kzg_proof_batch: derive coefficient via hash
* rename verify_cell_kzg_proof_batch_challenge -> compute_verify_cell_kzg_proof_batch_challenge
* verify_cell_kzg_proof_batch: editorial + some refactoring
* Improve documentation and variable naming.
* remove k_i from code and doc
---------
Co-authored-by: Justin Traglia <95511699+jtraglia@users.noreply.github.com>
Electra introduces two changes that affect light client data handling:
1. The `ExecutionPayloadHeader` is extended with new fields.
This is handled similarly as before with the Deneb fork.
2. The `BeaconState` generalized indices change due to lack of EIP-6493.
This is handled by making the generalized index be fork dependent via
a helper function that computes it dynamically. Furthermore, the case
where pre-Electra light client data is consumed by an Electra based
`LightClientStore` requires normalizing the shorter proof of the
pre-Electra data to fit into the Electra data structure by prepending
a zero hash.
* multi:
- Remove shift_polynomial_coeff
- Remove recover_shifted_data
- Remove recover_original_data
- Move `zero_poly_eval_brp ` under sanity check comment as its only used for sanity checking
* chore: remove sanity check -- this was doing a wasteful `compute_root_of_unity` operation
* chore: add previous sanity check as a unit test
* chore: copy values python was taking a reference, so it passes in our regular codepaths but not in isolated test
* chore: add coset_fft test
* Update specs/_features/eip7594/polynomial-commitments-sampling.md
Co-authored-by: Justin Traglia <95511699+jtraglia@users.noreply.github.com>
* Update specs/_features/eip7594/polynomial-commitments-sampling.md
Co-authored-by: Justin Traglia <95511699+jtraglia@users.noreply.github.com>
* chore: linter
* chore: asn (switch to bls_modular_inverse)
* chore: (ben) rename func to test_construct_vanishing_polynomial
* chore: (ben) rename `extended_evaluations_coeffs` to `extended_evaluation_times_zero_coeffs`
* chore: compute `roots_of_unity_extended` in recover_data method
* chore: add more comments explaining whats happening in recover_data
* chore: compute_zero_poly_coeff in recover_data
* chore: make lint
* chore: add doc comment to coset_fft_field
* chore: (ben) add code to generate the vanishing polynomial when all cells are missing
* chore: remove handling of edge case when constructing a vanishing polynomial
* chore: rename H(x) to Q_3(x)
* chore: remove trailing whitespace
* chore: add whitespace between comments
* chore: (asn) add assert that num missing cells is not 0
* chore: (justin) address comments
* chore: merge resolution
* chore: fixup remaining IDs -> indices
* chore: use indice nomenclature in tests
---------
Co-authored-by: Justin Traglia <95511699+jtraglia@users.noreply.github.com>
* Recover cells and proofs & matrix clean up
* Fix table of contents
* Update reference tests generator
* Update test format
* Remove unused imports
* Fix some minor nits
* Rename MatrixEntry's proof to kzg_proof
* Move RowIndex & ColumnIndex to das-core