Luke Parker
2ae2883106
Update spec to the new DKG
2024-08-05 06:58:44 -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
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
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
Luke Parker
eca82f3f7b
Add paragraph claiming robustness
2024-08-02 00:53:23 -04:00
Luke Parker
05c26d7818
Add documentation to the eVRF-based DKG
2024-08-02 00:53:23 -04:00
Luke Parker
96175e115d
Inline the eVRF into the DKG library
...
Due to how we're handling share encryption, we'd either need two circuits or to
dedicate this circuit to the DKG. The latter makes sense at this time.
2024-08-02 00:53:23 -04:00
Luke Parker
fa31f26397
Add embedwards25519 curve
2024-08-02 00:53:23 -04:00
Luke Parker
7710da4db3
Initial eVRF-based DKG
2024-08-02 00:53:23 -04:00
Luke Parker
b7103038cb
Have the eVRF take a Zeroizing private key
2024-08-02 00:53:23 -04:00
Luke Parker
b6e688076f
Make NUM_BITS an argument for the field macro
2024-08-02 00:53:23 -04:00
Luke Parker
b8472963c9
Make DKG Encryption a bit more flexible
...
No longer requires the use of an EncryptionKeyMessage, and allows pre-defined
keys for encryption.
2024-08-02 00:53:23 -04:00
Luke Parker
772d033bb2
Add implementation of secq256k1
2024-08-02 00:53:23 -04:00
Luke Parker
49a183194d
Add the openings of the PCs to the eVRF as necessary
2024-08-02 00:53:23 -04:00
Luke Parker
db31809708
Initial eVRF implementation
...
Not quite done yet. It needs to communicate the resulting points and proofs to
extract them from the Pedersen Commitments in order to return those, and then
be tested.
2024-08-02 00:53:23 -04:00
Luke Parker
dcc26ecf33
Upstream GBP, divisor, circuit abstraction, and EC gadgets from FCMP++
2024-08-02 00:53:22 -04:00
Luke Parker
d5205ce231
Update dependencies
...
Resolves a yanked version of bytemuck.
2024-08-01 04:06:09 -04:00
Luke Parker
0f6878567f
Remove a pair of unused structs/deps
...
Caught by the most recent nightly.
2024-08-01 01:36:10 -04:00
Luke Parker
880565cb81
Rust 1.80
...
Preserves the fn accessors within the Monero crates so that we can use statics
in some cfgs yet not all (in order to provide support for more low-memory
devices) with the exception of `H` (which truly should be cached).
2024-07-26 19:28:10 -07:00
Luke Parker
6f34c2ff77
Remove unused git allowance for monero-rs
2024-07-19 23:51:05 -04:00
akildemir
1493f49416
Implement genesis liquidity protocol ( #545 )
...
* add genesis liquidity implementation
* add missing deposit event
* fix CI issues
* minor fixes
* make math safer
* fix fmt
* make remove liquidity an authorized call
* implement setting initial values for coins
* add genesis liquidity test & misc fixes
* updato develop latest
* fix rotation test
* Finish merging develop
* Remove accidentally committed ETH files
* fix pr comments
* further bug fixes
* fix last pr comments
* tidy up
* Misc
---------
Co-authored-by: Luke Parker <lukeparker5132@gmail.com >
2024-07-18 19:30:19 -04:00
Luke Parker
2ccb0cd90d
Correct version of ruby update is run with
...
Hopefully finally resolves the site build failures.
2024-07-18 16:47:59 -04:00
Luke Parker
b33a6487aa
Rename DKG specified in FROST from FROST to PedPoP
2024-07-18 16:41:31 -04:00
Luke Parker
491500057b
Update Ruby version used in GH workflow
2024-07-18 16:09:01 -04:00
Luke Parker
d9f85fab26
Update lockfiles
...
Resolves a dependabot alert about the Ruby used to generate the docs site.
2024-07-18 15:18:08 -04:00
Luke Parker
7d2d739042
Rename the coins folder to networks ( #583 )
...
* Rename the coins folder to networks
Ethereum isn't a coin. It's a network.
Resolves #357 .
* More renames of coins -> networks in orchestration
* Correct paths in tests/
* cargo fmt
2024-07-18 15:16:45 -04:00
akildemir
40cc180853
add transaction and crypto unit tests
2024-07-17 16:26:31 -07:00
Luke Parker
2aac6f6998
Improve usage of constants in coordinator p2p
2024-07-17 06:54:54 -04:00
Luke Parker
149c2a4437
Use non-pruned nodes in verify-chain
2024-07-17 06:54:26 -04:00