MCPcopy Index your code
hub / github.com/anoma/ferveo

github.com/anoma/ferveo @main

Chat with this repo
repository ↗ · DeepWiki ↗ · + Follow
163 symbols 358 edges 26 files 46 documented · 28%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Ferveo

ci-badge

Ferveo

A synchronous Distributed Key Generation protocol for front-running protection on public blockchains.

About

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.

Security Warning

This library is under development and has not been reviewed, audited, or prepared for use.

Documentation

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.

Build

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.

Testing

Run cargo test --release to run tests. Please note that performance may be significantly poorer when testing in Debug mode.

Benchmarks

Run cargo bench --benches to run benchmarks.

Extension points exported contracts — how you extend this code

Aggregate (Interface)
Trait gate used to add extra methods to aggregated PVSS transcripts [1 implementers]
ferveo/src/vss/pvss.rs
Rng (Interface)
(no doc) [1 implementers]
ferveo-common/src/lib.rs
ThresholdEncryptionParameters (Interface)
(no doc)
tpke/src/lib.rs

Core symbols most depended-on inside this repo

setup_dkg
called by 18
ferveo/src/dkg/pv.rs
share
called by 9
ferveo/src/dkg/pv.rs
deserialize
called by 9
ferveo-common/src/lib.rs
setup_dealt_dkg
called by 8
ferveo/src/dkg/pv.rs
inverse_lagrange_coefficients
called by 8
subproductdomain/src/lib.rs
serialize
called by 7
ferveo-common/src/lib.rs
cmp
called by 6
ferveo-common/src/lib.rs
public
called by 5
ferveo-common/src/keypair.rs

Shape

Function 90
Method 40
Class 25
Enum 5
Interface 3

Languages

Rust100%

Modules by API surface

ferveo/src/dkg/pv.rs33 symbols
subproductdomain/src/lib.rs21 symbols
ferveo/src/vss/pvss.rs14 symbols
ferveo-common/src/lib.rs13 symbols
tpke/src/hash_to_curve.rs11 symbols
tpke/src/lib.rs8 symbols
tpke/src/key_share.rs8 symbols
tpke/src/ciphertext.rs8 symbols
ferveo-common/src/keypair.rs7 symbols
ferveo/src/dkg.rs6 symbols
ferveo/examples/pvdkg.rs5 symbols
ferveo/benches/benchmarks/pvdkg.rs5 symbols

For agents

$ claude mcp add ferveo \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact