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

Add StateMachine implementation for gg20 keygen/signing #121

Closed survived closed 3 years ago

survived commented 3 years ago

Thanks for review, @elichai!

I must say this whole thing looks very complicated

The most important piece of code - {keygen/signing}/rounds.rs (1, 2) that describe the protocol round by round - should be pretty clear. These StateMachine implementations are just a glue that calls rounds in appropriate order. I find them complicated too, and eventually I want to replace with procedural macro as all SM impls are very similar. However, SM trait is not established yet to automate its implementation.