ZenGo-X / multi-party-ecdsa

Rust implementation of {t,n}-threshold ECDSA (elliptic curve digital signature algorithm).
GNU General Public License v3.0
966 stars 309 forks source link

`pk` from `DLogProof` from keygen's Round4 is now verified against VSS. #136

Closed DmytroTym closed 2 years ago

DmytroTym commented 2 years ago

In party_i.rs verify_dlog_proofs method changed so it could also check if pk from the proofs are consistent with VSS. Keygen's rounds.rs changed accordingly.

elichai commented 2 years ago

Thanks for opening the PR!

The CI seems to currently fail for unrelated reasons (https://github.com/rust-lang/rust/pull/88582, https://github.com/rust-num/num-bigint/issues/218), we should probably lock a specific rustc version using a rustup-toolchain file and then bump it manually when needed (and look into working towards stable rust)

elichai commented 2 years ago

Code review ACK 292b4dac1b6bb641c67dc8dad7482f979c64cbb7 I actually needed the same in some other projects, maybe we should add a VerifiableSS that cotains DLog proofs with the commitments. (although mine actually needs Pedersen/Elgamal Commitments+proofs so it might still not fit)

DmytroTym commented 2 years ago

Sorry, I'm not sure I understood you correctly. Do you want to change curv's VerifiableSS struct to contain DLog proof, or just add a new struct with a vector of VerifiableSS and a DLog proof to multi-party-ecdsa or curv?

DmytroTym commented 2 years ago

About the failed build - the issue seems to have been solved here: https://github.com/rust-num/num-bigint/pull/220, I ran the build again, it should succeed now.