Both backends are designed for asynchronous/robust settings: parties do not rely on a fixed network round clock, and the run can tolerate Byzantine parties up to the configured threshold. The backend choice determines which share representation, curve/field, preprocessing, and client I/O path Stoffel records in the bytecode manifest.
mpc-protocols has received an external audit from Zellic. Audit scope matters: validate the specific protocol version, integration code, deployment configuration, and threat model you rely on. Other Stoffel components have also had AI-assisted security review, including tools such as veria.dev. Treat audit and review coverage as component-scoped when evaluating a deployment.Choose by workload shape
Start from the shape of the secret work, not the name of the application.
Overview
HoneyBadger is an asynchronous Byzantine fault-tolerant (BFT) MPC protocol that:- Tolerates malicious parties: Up to
tparties can be actively malicious - Works asynchronously: No timing assumptions required
- Provides guaranteed output delivery: Honest parties always get results
Security Guarantees
Configuration Constraints
The number of partiesn and threshold t must satisfy:
backend = "avss" and set the curve separately:
bls12_381, bn254, curve25519, ed25519, secp256k1, and p-256.
Select a backend from the CLI
stoffel check, stoffel compile, stoffel build, stoffel run, and stoffel dev accept the same backend/field overrides when they compile source or project settings.
Select a backend from Rust
.backend(...) or .curve(...):
Current topology constraints
Stoffel validates local and network MPC configs with the current robust-MPC threshold rule:
The protocol literature often describes asynchronous Byzantine thresholds in terms of
n >= 3t + 1. Stoffel’s current configuration layer enforces the stricter 4t + 1 rule because the implemented local/network path includes preprocessing and robust execution requirements.