Commit Graph

310 Commits

Author SHA1 Message Date
Hsiao-Wei Wang db89e2981a
Clean up Deneb specs. Add some type casting for using fft function 2024-01-09 01:37:24 +08:00
Hsiao-Wei Wang 75b1bf515a
Add `KZG_SETUP_G1_MONOMIAL` to trusted setup files 2024-01-05 18:21:15 +08:00
Hsiao-Wei Wang bf09b9a7c4
Merge pull request #3442 from dapplion/whisk-tests
Add WHISK fork only tests
2023-12-08 18:56:03 +09:00
Hsiao-Wei Wang 1657d16afd
Add `BLOB_KZG_COMMITMENTS_GINDEX` to "Constant". Use pyspec parser trick to add assertion in pyspec 2023-10-29 02:33:07 +08:00
Hsiao-Wei Wang 63aa303c5a
consistent naming 2023-10-16 21:31:12 +08:00
Hsiao-Wei Wang 9257ad28ac
Rename `KZG_SETUP_LAGRANGE` to `KZG_SETUP_G1_LAGRANGE` and `KZG_SETUP_G2` to `KZG_SETUP_G2_MONOMIAL` 2023-10-16 17:41:46 +08:00
Hsiao-Wei Wang 01fa0fe64a
Replace `ROOTS_OF_UNITY` with runtime-computed `compute_roots_of_unity(FIELD_ELEMENTS_PER_BLOB)` 2023-10-16 17:38:09 +08:00
Hsiao-Wei Wang c5785899f7
Use official KZG ceremony output `trusted_setup_4096.json` trusted setups 2023-10-12 19:54:18 +08:00
dapplion 4eca8e4292 Add CRS files 2023-09-12 10:23:31 +02:00
Hsiao-Wei Wang 3eaa184fc7
Pin `curdleproofs==0.1.1` 2023-09-06 11:36:35 +08:00
dapplion a74b4fca10 Use published curdleproofs version 2023-08-18 17:52:39 +02:00
dapplion db502ddd6a force install correct version of curdleproofs 2023-08-17 13:52:15 +02:00
dapplion 07ab00431d Bump curdleproofs to fix upstream types 2023-07-28 19:55:26 +02:00
dapplion 211376e35c Update curdleproofs usage 2023-07-24 20:15:46 +02:00
dapplion c0c453df2a Bump curdleproofs to use py_arkworks_bls12381 2023-07-20 16:45:40 +02:00
dapplion 91ff707887 Fix test lint issues 2023-07-05 17:18:52 +02:00
dapplion 4ce2b02b44 Add whisk tests 2023-07-05 17:18:34 +02:00
Hsiao-Wei Wang f1aabcd718
Refactor `setup.py` (#3393)
* Refactor setup.py

* Update doc with the new file path

* Rearrange spec_builders

* Update doc
2023-06-26 18:01:56 +08:00
Hsiao-Wei Wang cc021de553
Merge pull request #3436 from dapplion/auto-spec-builder-dependency
Auto manage SpecBuilder prev fork inheritance
2023-06-26 16:36:00 +08:00
dapplion dba5d991a6 start with phase0 hardcoded code 2023-06-22 21:02:54 +02:00
Alex Stokes 2660af0539
move 4788 feature to deneb specs 2023-06-22 09:00:50 -06:00
Danny Ryan 95f36d99cf
Merge pull request #3360 from ethereum/att-slot-range
EIP-7045: Increase max attestation inclusion slot
2023-06-21 08:30:26 -06:00
dapplion e7e2282348 Auto manage SpecBuilder prev fork inheritance 2023-06-20 18:02:39 +03:00
Lion - dapplion c90d724392
Whisk: add preset files (#3424)
* Add Whisk preset files

* Use N=8 for minimal preset

* Update spec_object var location
2023-06-19 17:10:15 +03:00
djrtwo ec4bdae2d4 build EIP 7045 into Deneb fork 2023-06-14 15:03:28 -06:00
djrtwo 559b89c447 Merge branch 'dev' into att-slot-range 2023-06-14 09:35:30 -06:00
Hsiao-Wei Wang 4985d1c164
Merge pull request #3415 from dapplion/lock-curdleproofs
Lock nalinbhardwaj/curdleproofs.pie version
2023-06-13 01:20:56 +08:00
dapplion 7cf55c138c Lock nalinbhardwaj/curdleproofs.pie version 2023-06-12 15:34:05 +03:00
Hsiao-Wei Wang 3442dbb3e9
Merge pull request #3412 from dapplion/setup-file-decl
Drop need to declare spec feature files
2023-06-12 15:44:21 +08:00
William Dowling cfd44dac56 Update lru-dict package to latest stable release.
lru-dict build fails when building under clang version 16 (6badf6376d). This bumps the version to the latest stable release.

Tested on MacOS M2 and Ubuntu Jammy x86-64.
2023-06-11 15:07:39 +02:00
dapplion 706824cf95 Drop need to declare spec feature files 2023-06-08 20:34:07 +03:00
Lion - dapplion 241e52a202
Whisk (SSLE) with Curdleproofs - rebased (#3342)
* Introduce consensus code for Whisk

* polish, simplify, clean up (~100 fewer lines)

@asn-d6: As discussed, I fixed a few bugs along the way but likely also introduced some bugs :)

* minor cleanups and fixes

* simplify is_k_commitment_unique

* Update beacon-chain.md

* Update beacon-chain.md

* Initialize `k` in `get_validator_from_deposit()`

* minor cleanups

* Update beacon-chain.md

* Create beacon-chain.md

This PR changes the Whisk tracker format to be of the form `(r * pubkey, r * BLS_GT_GENERATOR)` instead of `(r * k * BLS_G1_GENERATOR, r * BLS_G1_GENERATOR)`. This allows for non-interactive tracker registrations from validator pubkeys, removing ~50 lines the code. It also significantly reduces the amount of state overhead. This PR also removes permutation commitments, though those can be easily readded if deemed necessary.

* A couple of fixes to the no-registration simplification

@asn-d6: Readded a consistency check for `IsValidWhiskOpeningProof` (involving `pubkey` instead of `k_commitment`).

* remove unused helpers

* use Mary's suggested tracker

* Update beacon-chain.md

* Revert G_t element optimization

This needs its own ethresearch post, and some additional analysis to see if we can do the shuffle ZKP in the allowed
timeframe.

This reverts commit 8517acabfc1dbb1a35789e6170b5db0bb2c19c9a.

* Implement new shuffling strategy

Ditch the Feistel logic and instead have each shuffler pick the row they shuffle using their RANDAO reveal.

* Curdleproofs edits

* working whisk eth2spec

* working whisk dummy test

* add more boilerplate set up code

* rebase constants

* Implement even newer and simplified shuffling strategy

This commit further simplifies 0faef30fc131d1b471b63a7f16772eeeef548ef8 by removing the entire squareshuffle.

The latest version of https://eprint.iacr.org/2022/560 proposes that each shuffler picks random indices from the entire
candidate set instead of organizing validators into a square.

* Move to _features

* remove dummy test

* Run doctoc

* Change Whisk's previous fork to Capella instead of Bellatrix. Make linter happier.

* Fix lint

* Fix pylint

* Fix mypy issues

* Clean-up get_beacon_proposer_index

* Fix doc headers

* Fix capella link

* Update apply_deposit

* Rename process_shuffled_trackers

---------

Co-authored-by: George Kadianakis <desnacked@riseup.net>
Co-authored-by: Justin <drakefjustin@gmail.com>
Co-authored-by: Nalin Bhardwaj <nalinbhardwaj@nibnalin.me>
Co-authored-by: Hsiao-Wei Wang <hsiaowei.eth@gmail.com>
2023-06-08 15:35:03 +08:00
Hsiao-Wei Wang aeca477398
Merge branch 'dev' into att-slot-range 2023-06-01 18:20:24 +08:00
Hsiao-Wei Wang 0d4b07f63c
Merge pull request #3389 from ethereum/fork-settings
Turn off light client tests for feature specs
2023-06-01 14:59:27 +08:00
Hsiao-Wei Wang 30da14e9b4
Create `LIGHT_CLIENT_TESTING_FORKS` to limit the light client tests 2023-05-25 13:49:41 +08:00
Hsiao-Wei Wang 6b5513b43a
Merge branch 'dev' into engine-versioned-hashes 2023-05-24 11:19:56 +08:00
Hsiao-Wei Wang 289d8147be
Move `verify_and_notify_new_payload` to Bellatrix 2023-05-24 11:12:03 +08:00
Hsiao-Wei Wang 738b9818b3
Merge pull request #3375 from ethereum/networking-configs
Add networking configs to config files
2023-05-24 10:38:35 +08:00
Hsiao-Wei Wang dd5e6f813f
Add `make_function_abstract` to make it more general 2023-05-24 01:59:02 +08:00
Hsiao-Wei Wang 2192882faa
Merge pull request #3354 from g11tech/kzg-big-endian
Update the endianness of the polynomial commitments to be big endian
2023-05-23 23:43:19 +08:00
Hsiao-Wei Wang 73df1935b1
Use `verify_and_notify_new_payload` approach 2023-05-23 23:37:42 +08:00
Hsiao-Wei Wang 2eab6bfdaa
Merge branch 'dev' into engine-versioned-hashes 2023-05-23 15:21:00 +08:00
djrtwo 3550821577 Merge remote-tracking branch 'origin' into att-slot-range 2023-05-22 08:06:57 -06:00
Hsiao-Wei Wang f87e1436bf
Add networking configs to config files 2023-05-19 22:39:18 +08:00
djrtwo 6679b8a1ae attslotrange -> eip-7045 2023-05-18 10:49:57 -06:00
Hsiao-Wei Wang e18e9743ed
Merge pull request #3347 from ethereum/testgen-refactor
Multiprocessing testgen runner
2023-05-18 23:03:17 +08:00
djrtwo bce45c5671 working through att slot range fix 2023-05-15 11:35:29 -06:00
Hsiao-Wei Wang 058137327a
Use new `engine_newPayloadV3` 2023-05-16 00:28:49 +08:00
Hsiao-Wei Wang eea04704d4
Fix tests 2023-05-15 17:16:41 +08:00
Hsiao-Wei Wang f7352d18cf
Merge pull request #3341 from ethereum/add-GetPayloadResponse
Add `GetPayloadResponse` dataclass for `get_payload` API
2023-05-10 23:33:57 +08:00