计划执行与检查节点
executing-plans
按既定实施计划完成工作,保持过程检查和反馈。
bitcoin-frost【效率与协作】FROST (Flexible Round-Optimised Schnorr Threshold): t-of-n threshold signing on secp256k1. n participants share a key via Distributed Key Generation (DKG) or trusted dealer; any t can produce a Schnorr signature. Differs from MuSig2 (which is n-of-n). USE WHEN: t-of-n threshold custody (e.g., 3-of-5 board signatures) with single-sig appearance on cha…
独立 GitHub 快照 · 自动分类 · 以原作者文档为准
FROST is the standard t-of-n threshold Schnorr signature scheme suitable for Bitcoin. Like MuSig2, it produces a single 64-byte BIP340 signature under one aggregated pubkey. Unlike MuSig2 (which requires all n parties to sign), FROST allows any t ≤ n parties to sign.
n parties run a DKG protocol to set up shares of a common private key
d corresponding to public key P = d * G. No single party ever
knows d itself.
DKG variants:
d, hands shares out.
Acceptable for some custody models.After DKG, each party i has:
s_i (Shamir share of d).S_i = s_i * G.P = d * G.When t parties want to sign message m:
Each signer i:
(d_i, e_i).(D_i, E_i) = (d_i*G, e_i*G).(D_i, E_i) to coordinator.Coordinator:
ρ_i = H(i, m, ((D_j, E_j) for all signers)).R = sum(D_i + ρ_i * E_i).Each signer i:
λ_i for the cooperating subset of
size t.c = TaggedHash("BIP0340/challenge", R.x || P.x || m).z_i = d_i + ρ_i*e_i + λ_i * s_i * c mod n.z_i to coordinator.s = sum(z_i) mod n.(R.x, s).| Aspect | MuSig2 | FROST |
|---|---|---|
| Threshold | n-of-n | t-of-n |
| Setup | trivial (just sum keys) | requires DKG |
| Round trip | 2 rounds + nonce setup | 2 rounds + DKG once |
| Partial sigs | per-signer-key contribution | Lagrange-based with subset selection |
| BIP | 327 | 445 (draft, PR open) |
| Bitcoin-specific | yes (BIP340 alignment) | yes (BIP340 alignment) |
Use MuSig2 when all n parties always sign together (e.g., 2-of-2 joint custody). Use FROST when subset signing is needed (e.g., 3-of-5 board, 2-of-3 multisig with social recovery).
frost-secp256k1 (Zcash / ZF FROST) — Rust reference.secp256k1-frost (bancaditalia/secp256k1-frost) — third-party Banca
d'Italia (itcoin) fork of libsecp256k1 adding a secp256k1_frost_* C
API; self-described "testing and experimentation" only, and not an
upstream module as of September 2026 (see Status below).chillDKG (Blockstream research) — practical DKG with state recovery;
now a submitted BIP draft (see Status below).frostsnap — Rust FROST stack behind the Frostsnap hardware wallet,
MIT-licensed firmware + coordinator app (github.com/frostsnap/frostsnap).frost-dalek (Ristretto, not Bitcoin-relevant).frost-cli proof-of-concept.bitcoin/bips#2070 (opened 2026-01-03, still open — no BIP 445 file in
the bips repo yet; the README table skips 443 → 446). Specifies the
FROST3 variant and adds what RFC 9591 lacks: BIP340 compatibility
and key tweaking for BIP32 derivation and BIP341 Taproot. Key
generation is explicitly out of scope for BIP 445.Requires: 445, spec version 0.3.0-dev, no BIP number assigned yet. Submitted as
bitcoin/bips#2227 on 2026-07-30, still open as of September 2026.
Dev repo: BlockstreamResearch/bip-frost-dkg.FROST(secp256k1, SHA-256)
ciphersuite — but its signatures are not BIP340-compatible, because
BIP340 uses x-only public keys, and it specifies no key tweaking. An
RFC 9591 library dropped into a Bitcoin wallet produces signatures
Bitcoin will not accept. Use BIP 445 for signing; for key generation
BIP 445 points at either ChillDKG or RFC 9591's own trusted-dealer
setup (Appendix C).secp256k1-frost
fork above is not production-ready (last push 2026-06-11).d.ρ_i factor) — defeats the same Wagner-style
attack that MuSig2 mitigates.(d_i, e_i) nonces across signing sessions → key leak.