Commit Graph

1737 Commits

Author SHA1 Message Date
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
Luke Parker
e772b8a5f7 #560 take two, now that #560 has been reverted (#561)
* Clear upons upon round, not block

* Cache the proposal for a round

* Rebase onto develop, which reverted this PR, and re-apply this PR

* Set participation upon participation instead of constantly recalculating

* Cache message instances

* Add missing txn commit

Identified by @akildemir.

* Correct clippy lint identified upon rebase

* Fix tendermint chain sync (#581)

* fix p2p Reqres protocol

* stabilize tributary chain sync

* fix pr comments

---------

Co-authored-by: akildemir <34187742+akildemir@users.noreply.github.com>
2024-07-16 19:42:15 -04:00
Luke Parker
c0200df75a Add missing feature flag to dalek-ff-group 2024-07-15 21:50:43 -04:00
Luke Parker
9955ef54a5 Apply bitcoin fee per vsize, not per weight unit
This enables more precision.
2024-07-15 17:37:04 -07:00
Luke Parker
8e7e61adbd Respect maximum amount of outs per request 2024-07-14 20:28:10 -04:00
Luke Parker
0cb24dde02 cargo update
Resolves failing deny.
2024-07-14 20:27:36 -04:00