A synchronous Distributed Key Generation protocol for front-running protection on public blockchains.
The distributed key generated by Ferveo can be input into a compatible threshold encryption/decryption or a threshold signature protocol. Ferveo distributes the shared private key by relative staking weight and relies on an underlying blockchain for synchonicity.
This library is under development and has not been reviewed, audited, or prepared for use.
Documentation can be found here.
It is recommended to use mdbook to render the docs. Run mdbook serve
in the book
folder.
A preprint paper describing the construction of Ferveo and the novel cryptosystems used is available at IACR.
A Rust toolchain with version >= 1.53.0
is required. In the future, Ferveo will target the stable
toolchain.
Installation via rustup is recommended.
Run cargo build --release
to build.
Please note that performance may be significantly poorer when compiling in Debug
mode.
Run cargo test --release
to run tests. Please note that performance may be significantly poorer when testing in Debug
mode.
Run cargo bench --benches
to run benchmarks.