Commit Graph

1767 Commits

Author SHA1 Message Date
Luke Parker
e098369fdf Merge branch 'develop' into one-round-dkg 2024-08-15 08:48:28 -07:00
Luke Parker
5f1fcff75c Correct shimmed setting of a secq256k1 key 2024-08-15 11:44:44 -04:00
Luke Parker
843396fe8f Add necessary calls to set_embedded_elliptic_curve_key in coordinator set rotation tests 2024-08-15 11:39:23 -04:00
akildemir
a2df54dd6a merge genesis complete block with genesis ended 2024-08-15 08:15:40 -07:00
akildemir
efc45c391b update emissions pallet author email 2024-08-15 08:12:47 -07:00
akildemir
cccc1fc7e6 Implement block emissions (#551)
* add genesis liquidity implementation

* add missing deposit event

* fix CI issues

* minor fixes

* make math safer

* fix fmt

* implement block emissions

* make remove liquidity an authorized call

* implement setting initial values for coins

* add genesis liquidity test & misc fixes

* updato develop latest

* fix rotation test

* fix licencing

* add fast-epoch feature

* only create the pool when adding liquidity first time

* add initial reward era test

* test whole pre ec security emissions

* fix clippy

* add swap-to-staked-sri feature

* rebase changes

* fix tests

* Remove accidentally commited ETH ABI files

* fix some pr comments

* Finish up fixing pr comments

* exclude SRI from is_allowed check

* Misc changes

---------

Co-authored-by: akildemir <aeg_asd@hotmail.com>
Co-authored-by: Luke Parker <lukeparker5132@gmail.com>
2024-08-14 23:12:04 -04:00
Luke Parker
0fe7360ce5 Further contextualize DkgConfirmer by ValidatorSet
Caught by a safety check we wouldn't reuse preprocesses across messages. That
raises the question of we were prior reusing preprocesses (reusing keys)?
Except that'd have caused a variety of signing failures (suggesting we had some
staggered timing avoiding it in practice but yes, this was possible in theory).
2024-08-14 15:21:10 -04:00
akildemir
bf1c493d9a add missing prevotes (#590)
* add missing prevotes

* remove the TODO

* add missing current step checks

---------

Co-authored-by: akildemir <aeg_asd@hotmail.com>
2024-08-14 15:00:48 -04:00
Luke Parker
756db823df Correct construction of signature_participants in serai-client tests
Fault identified by akil.
2024-08-11 22:27:06 -04:00
Luke Parker
470b5f7d9e Increase time allowed for the DKG on the GH CI 2024-08-06 05:44:49 -04:00
Luke Parker
01de73efd9 Updating existing TX size limit test for the new DKG parameters 2024-08-06 05:43:56 -04:00
Luke Parker
dbf32d515f Correct ThresholdKeys serialization in modular-frost test 2024-08-06 05:37:19 -04:00
Luke Parker
e9d09ef4e2 Send/Recv Participation one at a time
Sending all, then attempting to receive all in an expected order, wasn't working
even with notable delays between sending messages. This points to the mempool
not working as expected...
2024-08-06 03:03:12 -04:00
Luke Parker
ec629308d6 Update a few comments in the validator-sets pallet 2024-08-06 01:14:29 -04:00
Luke Parker
f27fb9b652 Correct error in the Processor spec document 2024-08-06 01:10:43 -04:00
Luke Parker
c790efa212 Update TX size limit
We now no longer have to support the ridiculous case of having 49 DKG
participations within a 101-of-150 DKG. It does remain quite high due to
needing to _sign_ so many times. It'd may be optimal for parties with multiple
key shares to independently send their preprocesses/shares (despite the
overhead that'll cause with signatures and the transaction structure).
2024-08-06 01:10:28 -04:00
Luke Parker
8c50a31633 Improve documentation on functions 2024-08-06 00:27:54 -04:00
Luke Parker
d943e037e5 Remove bad panic in coordinator
It expected ConfirmationShare to be n-of-n, not t-of-n.
2024-08-06 00:27:19 -04:00
Luke Parker
3042697243 Update orchestration 2024-08-06 00:27:07 -04:00
Luke Parker
8de696f169 Add an extra sleep to ensure expected ordering of Participations 2024-08-05 23:50:23 -04:00
Luke Parker
b8912e4b7b cargo machete 2024-08-05 23:43:38 -04:00
Luke Parker
89fc88b283 Get clippy to pass across the repo 2024-08-05 23:29:51 -04:00
Luke Parker
2ae2883106 Update spec to the new DKG 2024-08-05 06:58:44 -04:00
Luke Parker
3de1e4dee2 Remove stray file in docs/ 2024-08-05 06:52:15 -04:00
Luke Parker
e74c8f38d5 Get coordinator tests to pass 2024-08-05 06:50:26 -04:00
Luke Parker
9e8e134ef7 Replace Interpolation::None with Interpolation::Constant
Allows the MuSig DKG to keep the secret share as the original private key,
enabling deriving FROST nonces consistently regardless of the MuSig context.
2024-08-05 06:32:37 -04:00
Luke Parker
f08faeadff Have the DKG explicitly declare how to interpolate its shares
Removes the hack for MuSig where we multiply keys by the inverse of their
lagrange interpolation factor.
2024-08-05 06:06:56 -04:00
Luke Parker
1b7613329c Add sensible Debug to key_gen::[Processor, Coordinator]Message 2024-08-05 04:04:02 -04:00
Luke Parker
54eefbde0c Update the coordinator binary for the new DKG
This does not yet update any tests.
2024-08-04 04:48:12 -04:00
Luke Parker
58a435d4e9 Have set_keys take signature_participants, not removed_participants
Now no one is removed from the DKG. Only `t` people publish the key however.

Uses a BitVec for an efficient encoding of the participants.
2024-08-04 01:19:08 -04:00
Luke Parker
5ed355902b Update processor key gen tests to the eVRF DKG 2024-08-03 03:17:55 -04:00
Luke Parker
2591b5ade9 Update Gemfile.lock to silence a rexml disclosure 2024-08-03 02:57:56 -04:00
Luke Parker
fc51c9b71c Add embedded elliptic curve keys to Substrate 2024-08-03 02:24:08 -04:00
Luke Parker
9e716c07fc Correct amount of yx coefficients, get processor key gen test to pass 2024-08-02 05:03:14 -04:00
akildemir
e6620963c7 update author email 2024-08-02 01:50:33 -07:00
Luke Parker
b5bf70bdb1 Update serai-processor tests to the new key gen 2024-08-02 00:53:24 -04:00
Luke Parker
d3f0378f66 Deduplicate and better document in processor key_gen 2024-08-02 00:53:24 -04:00
Luke Parker
2f564c230e Finish routing the new key gen in the processor
Doesn't touch the tests, coordinator, nor Substrate yet.
`cargo +nightly fmt && cargo +nightly-2024-07-01 clippy --all-features -p serai-processor`
does pass.
2024-08-02 00:53:24 -04:00
Luke Parker
12f74e1813 Rewrite processor key-gen around the eVRF DKG
Still a WIP.
2024-08-02 00:53:24 -04:00
Luke Parker
fb7e966b94 Only participate once per key, not once per key share 2024-08-02 00:53:24 -04:00
Luke Parker
65efbf46c7 Support participating multiple times in the eVRF DKG 2024-08-02 00:53:23 -04:00
Luke Parker
c5cc0dc883 Add Ristretto eVRF trait impls 2024-08-02 00:53:23 -04:00
Luke Parker
a6775d7dc5 Implement eVRF traits, all the way up to the DKG, for secp256k1/ed25519 2024-08-02 00:53:23 -04:00
Luke Parker
681010f422 Ban zero ECDH keys, document non-zero requirements 2024-08-02 00:53:23 -04:00
Luke Parker
f93bd42b99 Resolve various TODOs
Supports recovering multiple key shares from the eVRF DKG.

Inlines two loops to save 2**16 iterations.

Adds support for creating a constant time representation of scalars < NUM_BITS.
2024-08-02 00:53:23 -04:00
Luke Parker
c960d6baaf Start using a proper error for the eVRF DKG 2024-08-02 00:53:23 -04:00
Luke Parker
31ac0ac299 Improve eVRF DKG
Updates how we calculcate verification shares, improves performance when
extracting multiple sets of keys, and adds more to the test for it.
2024-08-02 00:53:23 -04:00
Luke Parker
4bd0d71406 Add initial eVRF DKG test 2024-08-02 00:53:23 -04:00
Luke Parker
ef68885600 Finish routing the eVRF functionality
Still needs errors and serialization, along with a few other TODOs.
2024-08-02 00:53:23 -04:00
Luke Parker
00dc3087bd Update to the new eVRF proof 2024-08-02 00:53:23 -04:00