Commit Graph

11 Commits

Author SHA1 Message Date
dapplion 7f9a0264ce Update specs with state.whisk_trackers 2023-07-05 17:18:54 +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
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
Lion - dapplion cc4c810b8f
Whisk: complete TODO items in fork logic (#3427)
* Complete TODO items in fork logic

* Simpler underflow protection

* Add saturating_sub
2023-06-19 17:08:51 +03:00
Lion - dapplion 834f6f70e7
Whisk: assert zeroed values during selection gap (#3425)
* Assert zeroed values during selection gap

* Update comment
2023-06-15 14:33:28 +03:00
Lion - dapplion 65a28b6d69
Whisk: Move validator whisk trackers and commitments to state (#3407)
* Move validator whisk trackers and commitments to state

* Move comment
2023-06-14 18:58:57 +03:00
Lion - dapplion 0ab160bc28
Add initialize_beacon_state_from_eth1 (#3428) 2023-06-14 18:55:07 +03:00
Lion - dapplion 7b132c20d1
Fix typos in get_shuffle_indices (#3426) 2023-06-14 18:52:22 +03:00
Lion - dapplion efd2429b3f
Move whisk_opening_proof to block body (#3408) 2023-06-09 11:28:06 +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