Commit Graph

31 Commits

Author SHA1 Message Date
Hsiao-Wei Wang 4f32fd95d6
Enable EIP4844 lint and fix Pylint 2022-11-28 20:01:50 +08:00
inphi 104cba06a6
replace get_blobs_and_kzg_commitments 2022-11-11 00:21:56 -05:00
Hsiao-Wei Wang 95ee291f58
Merge branch 'dev' into pr3052 2022-11-07 10:10:16 -05:00
George Kadianakis 86e15764ad
EIP4844: Update cryptography API (#3038)
This commit changes the public API of the KZG library to the following high-level API:

```
- verify_kzg_proof()
- compute_aggregate_kzg_proof()
- verify_aggregate_kzg_proof()
- blob_to_kzg_commitment()
```

compared to the previous much more low-level API:

```
- compute_powers()
- matrix_lincomb()
- lincomb()
- bytes_to_bls_field()
- evaluate_polynomial_in_evaluation_form()
- verify_kzg_proof()
- compute_kzg_proof()
```

This means that all the cryptographic logic (including Fiat-Shamir) is now isolated and hidden in the KZG library and the `validator.md` file ends up being significantly simplified, only calling high-level KZG functions.

Some additional things that this commit does:

- Moves all EIP4844 cryptography into polynomial-commitments.md
- Improves the Fiat-Shamir stack by removing the need for SSZ and by introducing simple domain separators

Co-authored-by: Kevaundray Wedderburn <kevtheappdev@gmail.com>
Co-authored-by: Hsiao-Wei Wang <hsiaowei.eth@gmail.com>
Co-authored-by: Dankrad Feist <mail@dankradfeist.de>
2022-11-03 17:01:32 +02:00
inphi 2ac57c7e7b
Fix py setup
And remove the ENABLE_WITHDRAWALS feature-flag. The Testing section in
the spec has been updated to specify how withdrawals is to be disabled
2022-10-24 12:44:11 -04:00
terence tsao e2d0a4fa9a Fix ToC and test 2022-10-22 08:36:46 -07:00
terence tsao 9f4ae4c6ee Update validator spec with `SignedBeaconBlockAndBlobsSidecar` 2022-10-21 17:33:55 -07:00
inphi 242e1b73bb
Rebase Capella on EIP-4844
This also introduces an `ENABLE_WITHDRAWALS` feature-flag to allow
implementers test EIP-4844 without including Capella-specific state
changes.
2022-10-20 10:36:08 -04:00
Ramana Kumar 807650e8a1
Fix some type annotations for blobs
blobs should not be Sequence[BLSFieldElement], it should be
Sequence[Sequence[BLSFieldElement]]. But we can be more specific and use
Sequence[Blob].
2022-10-01 15:25:47 +01:00
terence tsao 93cb17dc7f Eip4844: various fixes 2022-09-29 07:36:39 -07:00
George Kadianakis d197ed1451 EIP4844: Introduce bytes_to_bls_field() helper
Improves separation between BLS cryptography and Ethereum SSZ logic.

Now the BLS library just implements bytes_to_bls_field(). Then hash_to_bls_field() does the Ethereum SSZ magic and
calls bytes_to_bls_field().
2022-09-26 19:01:01 +03:00
Dankrad Feist b35155005b
Rename matrix_lincomb to vector_lincomb and lincomb to g1_lincomb 2022-09-19 20:16:19 +01:00
Dankrad Feist b63ed22588
Fix signature of compute_aggregated_poly_and_commitment 2022-09-19 20:10:48 +01:00
Hsiao-Wei Wang 109250b963
Replace `hash_tree_root(x)` with `hash(ssz_serialize(x))` 2022-08-22 16:00:40 +08:00
Hsiao-Wei Wang 0e82acfd61
Merge pull request #2945 from Inphi/eip4844-nit
Fix Polynomial container size
2022-07-22 19:48:02 +08:00
Michael de Hoog b2c647f2b2
Remove triple m 2022-07-21 11:11:30 -05:00
inphi 9016b92691
Fix Polynomial container size 2022-07-21 01:58:22 -04:00
Hsiao-Wei Wang 808f9c7f7f
Use `validate_*` for the valdiation functions that return `None` 2022-07-16 00:54:01 +08:00
Hsiao-Wei Wang a205e9314d
Make block proposal direction more clear 2022-07-15 23:33:31 +08:00
George Kadianakis 5b9bf41de6 EIP-4844: Further improvements on the spec
- Move constants around
- Implement missing functions to make the spec executable

Co-authored-by: Hsiao-Wei Wang <hsiaowei.eth@gmail.com>
2022-07-13 13:13:30 +03:00
George Kadianakis 221f3687bd EIP-4844: Improve the cryptographic parts of the spec
- Move more code into polynomial-commitments.md
- Implement aggregated sidecar verification logic from PR #2915
- Rename `kzgs` to `kzg_commitments`

Co-authored-by: Hsiao-Wei Wang <hsiaowei.eth@gmail.com>
2022-07-13 13:12:31 +03:00
Hsiao-Wei Wang d4a2bdcea0
Merge pull request #2915 from asn-d6/consensus-4844-proofs-optimization
Optimizing EIP-4844 block validation (using KZG proofs)
2022-06-26 13:55:17 +02:00
Hsiao-Wei Wang 94da861d9c
Fix ToC 2022-06-23 18:44:37 +08:00
Hsiao-Wei Wang 0ab280d396
minor suggestions 2022-06-23 18:40:09 +08:00
George Kadianakis 534a9d1d95 Move EIP-4844 cryptography code to its own file 2022-06-22 15:42:03 +03:00
George Kadianakis 4be0b9d6bc Add needed math/crypto functions to validate KZG aggregated proofs
All code pretty much straight up copied from https://github.com/ethereum/EIPs/pull/5088
2022-06-14 16:37:08 +03:00
George Kadianakis e4c75d67ce Introduce high-level logic of new efficient block validation 2022-06-14 16:37:08 +03:00
inphi dbac7b1582
EIP-4844: Remove shard field from BlobsSidecar 2022-06-13 16:32:18 -04:00
terence tsao 36b0044569
EIP4844: fix a minor typo 2022-03-20 08:20:08 -07:00
protolambda 45e207be4d
EIP-4844 consensus-specs review fixes
Co-Authored-By: terenc3t <terence@prysmaticlabs.com>
Co-Authored-By: djrtwo <dannyjryan@gmail.com>
2022-03-14 18:57:11 +01:00
protolambda 8ec4773339
EIP-4844: consensus layer changes 2022-03-10 06:52:27 +01:00