
Protocol Architecture
Protocol architecture
Current backend support
Both backends use the same high-level Stoffel application model, but they are not interchangeable at the cryptographic layer. HoneyBadgerMPC is field-arithmetic oriented. AVSS is group/scalar oriented and is the backend to use when the output boundary needs public commitments, curve-encoded values, or scalar responses that match an external verifier.
Integration points
Stoffel VM
- Secret register operations map to backend share operations.
- Clear-to-secret transitions create backend share data.
- Reveal/open operations reconstruct values through the selected backend.
Share.random,Share.open,Share.get_commitment, andMpc.*builtins route through backend capabilities.
CLI and bytecode
Stoffel.tomlstores[mpc] backend, optionalcurve,parties, andthreshold.- CLI flags such as
--backend,--field,--parties, and--thresholdoverride project settings. .stflbbytecode records backend and curve/field metadata so execution can validate the runtime configuration.
Rust SDK
MpcConfig::builder()configures parties, threshold, instance ID, and backend.- Program builders accept
.backend(...)and.curve(...). NetworkDeploymentand off-chain client configs carry backend selection into generated network/client TOML.
Security model
Each backend has its own threat model and assumptions. Do not treat “MPC backend” as a single security claim.
Current Stoffel local/network config validates:
Data protection flow
- Inputs become secret shares through ClientStore or direct secret-value paths.
- Computation proceeds over backend share data.
- Intermediate secret values remain secret unless the program opens/reveals them.
- Outputs are returned, opened, or sent to client slots only where the program explicitly does so.