Practical overview
When it fits
Use it when a Rust application needs the implemented BLS12-381 aggregated or threshold-signing protocols and can provide the message-delivery layer those protocols require.
Who it is for
- Rust developers building multi-party cryptographic key-generation and signing workflows.
- Teams prototyping threshold or aggregated BLS signatures over BLS12-381.
Documented uses
- Generate a shared public key and separate local key shares through a multi-party protocol.
- Coordinate parties to create a threshold BLS signature over data.
- Verify a signature using the resulting public key.
- Integrate protocol execution into a Tokio async application by supplying incoming and outgoing message handling.
Requirements & limits
The public GitHub repository reports a GPL-3.0 license.
- The library implements two protocol approaches: aggregated BLS based on MSP and threshold BLS based on Threshold GLOW signatures.
- The asynchronous integration pattern requires application-provided streams for incoming messages and sinks for outgoing messages.
- The repository specifies encryption for peer-to-peer messages and signed broadcast messages as message-delivery security assumptions.
Check current requirements in the official documentation. Source-based guidance does not mean OpenViST has run or independently tested this project.
Use the demo CLI for key generation, signing and verification
Run the documented example workflow to generate distributed key shares, sign data with parties and verify the resulting signature.
Before you start
- Rust and Cargo to run the repository's example CLI.
- A mediator server through which parties can exchange protocol messages.
- Encrypted peer-to-peer messages and signed broadcast messages, as required by the stated security assumptions.
Steps
Start the mediator server with the command below; the documented default listener is 127.0.0.1:8333.
cargo run --example cli -- mediator-server runLaunch the required party processes with the command below, changing the output path for each party as in the example.
cargo run --example cli -- keygen -t 1 -n 3 --output target/keys/key1Run signing for the participating parties with the command below, using each party's key share.
cargo run --example cli -- sign -n 2 --key target/keys/key1 --digits some-dataVerify the signature with the command below, substituting the produced signature and public key.
cargo run --example cli -- verify --digits some-data --signature SIG --public-key PK
Expected outcome
The example workflow produces local key shares and a shared public key, outputs a signature from participating parties, and checks whether that signature is valid.
Guide limitations
- The example uses a mediator server; applications using the protocols must provide their own message-delivery logic.
- The CLI example's sample parameters are t=1, n=3 for key generation and two parties for signing; they are not a general deployment recommendation.
- Assign a unique
--room-idwhen running multiple protocols concurrently.
Sources & review
Source record details
- Source availability
- Active
- Sources checked
- 18 October 2026
- Original website title
- ZenGo-X/multi-party-bls · Official homepage title · retained in its source language

