https://github.com/systemslibrarian/crypto-lab-frost-threshold
Browser-based demo of FROST threshold signatures — t-of-n signing with RFC 9591, frost-ed25519 compiled to WASM. No single party holds the key. Any valid subset signs.
https://github.com/systemslibrarian/crypto-lab-frost-threshold
cryptography digital-signatures ed25519 elliptic-curve-cryptography frost shamir-secret-sharing threshold-signatures
Last synced: 1 day ago
JSON representation
Browser-based demo of FROST threshold signatures — t-of-n signing with RFC 9591, frost-ed25519 compiled to WASM. No single party holds the key. Any valid subset signs.
- Host: GitHub
- URL: https://github.com/systemslibrarian/crypto-lab-frost-threshold
- Owner: systemslibrarian
- Created: 2026-04-05T15:23:14.000Z (about 2 months ago)
- Default Branch: main
- Last Pushed: 2026-04-06T18:14:24.000Z (about 2 months ago)
- Last Synced: 2026-04-06T20:15:38.625Z (about 2 months ago)
- Topics: cryptography, digital-signatures, ed25519, elliptic-curve-cryptography, frost, shamir-secret-sharing, threshold-signatures
- Language: TypeScript
- Homepage: https://systemslibrarian.github.io/crypto-lab-frost-threshold/
- Size: 55.7 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Threat model: THREAT_MODEL.md
Awesome Lists containing this project
README
# crypto-lab-frost-threshold
**[Live Demo →](https://systemslibrarian.github.io/crypto-lab-frost-threshold/)**
## What It Is
This demo implements FROST RFC 9591 threshold signing over Ed25519 with Schnorr-style signature shares, using Rust compiled to WASM in the browser. It walks through trusted-dealer key generation, Round 1 nonce commitments, Round 2 signature shares, and final aggregation into a standard Ed25519 signature. The protocol solves single-key concentration risk by requiring any threshold subset of participants to sign without reconstructing one private key. This is an asymmetric threshold-signature security model.
## When to Use It
- Use this when one account or service key should require multi-party approval, because threshold signing removes single-custodian control.
- Use this for distributed key custody in teams, because FROST allows any t-of-n subset to produce one normal verifier-facing Ed25519 signature.
- Use this when you need signer availability under partial outages, because signatures can still be generated if enough participants are online.
- Do not use this when one signer must act instantly without coordination, because FROST signing requires participant interaction across rounds.
## Live Demo
Open the live demo at https://systemslibrarian.github.io/crypto-lab-frost-threshold/.
You can set participant count n and threshold t, generate shares, run Round 1 and Round 2, and aggregate the signature for verification. The interface also includes message input and a simulate-failure control to demonstrate invalid aggregation when insufficient shares are provided.
## How to Run Locally
```bash
git clone https://github.com/systemslibrarian/crypto-lab-frost-threshold.git
cd crypto-lab-frost-threshold
npm install
npm run dev
```
No environment variables are required for local development.
## Part of the Crypto-Lab Suite
This project is part of the broader crypto-lab collection at https://systemslibrarian.github.io/crypto-lab/.
So whether you eat or drink or whatever you do, do it all for the glory of God. - 1 Corinthians 10:31