mirror of
https://github.com/luxfi/threshold.git
synced 2026-10-30 15:15:53 +00:00
2.4 KiB
2.4 KiB
TEST-VECTORS — FROST (Lux Profile)
KAT (Known Answer Test) format and sourcing for Lux's FROST profile.
§1 Sources
| Source | Scope |
|---|---|
| CFRG draft test vectors | draft-irtf-cfrg-frost appendix — per-ciphersuite reference vectors. Lux KATs replay these byte-identical. |
| Lux profile KATs | Lux-specific transcripts (party-id ordering, transcript-domain-separation tags). Generated by cmd/frost_oracle/ (roadmap; not yet shipped — see SUBMISSION-STATUS.md §3.1). |
| LSS-FROST integration KATs | Dynamic-resharing transcripts via protocols/lss/lss_frost.go. |
§2 Ciphersuite coverage
| Ciphersuite | CFRG vectors replayed? | Lux KATs generated? |
|---|---|---|
| FROST(Ed25519, SHA-512) | yes (via frost_*_test.go) |
roadmap |
| FROST(secp256k1, SHA-256) + Taproot | yes | roadmap |
§3 Format
Each KAT is a deterministic JSON record:
{
"ciphersuite": "FROST(Ed25519, SHA-512)",
"n": 5,
"t": 3,
"seed": "<32-byte hex>",
"keygen": {
"groupPublicKey": "<hex>",
"signerShares": [{"id": "01..", "share": "<hex>", "vk": "<hex>"}, ...],
"transcriptHash": "<hex>"
},
"sign": [
{
"message": "<hex>",
"signers": ["01..", "03..", "05.."],
"round1": [{"id": "01..", "commit": "<hex>"}, ...],
"round2": [{"id": "01..", "share": "<hex>"}, ...],
"signature": "<hex>",
"verifies_under_single_party": true
}
]
}
The verifies_under_single_party field is the per-ciphersuite
single-party verifier's accept result. For Ed25519 this is
crypto/ed25519; for secp256k1-Taproot it is BIP-340 verification.
§4 Determinism
KATs are byte-identical across runs given the same seed. Drift is a
CI failure once cmd/frost_oracle/ ships.
§5 Cross-runtime byte-equality
Lux maintains a cross-runtime KAT manifest (cf.
luxfi/corona/scripts/regen-kats.manifest.sha256). The
manifest enforces byte-equality between the Go implementation and
any other runtime (C++ port, etc.) when those exist. For FROST, the
cross-runtime port is roadmap; manifest stands ready.
§6 Open items
cmd/frost_oracle/generator — seeSUBMISSION-STATUS.md §3.1- Cross-implementation differential testing against
cfrg/draft-irtf-cfrg-frostreference repos — see §3.2
§7 Cross-references
SPEC.md— protocol specSUBMISSION-STATUS.md§3.1, §3.2 — KAT gating itemsPARAMS.md— ciphersuite enumeration