4.0 KiB
PROOF-CLAIMS — CGGMP21 (Lux Profile)
Honest scope. Mirrors
corona/PROOF-CLAIMS.md §3template.
§1 What is claimed
1.1 Construction correctness
The Lux CGGMP21 implementation realizes the construction defined in Canetti-Gennaro-Goldfeder-Makriyannis-Peled (CCS 2021 / ePrint 2021/060) for secp256k1.
Evidence:
- Unit + threshold test coverage across
cmp_*_test.gofiles - Integration tests under
cmp_integration_test.go - Quick + threshold tests covering 2-of-3 through 20-of-32 configurations
1.2 Byte-identical to single-party ECDSA
The signature output verifies byte-identical under any single-party
secp256k1 ECDSA verifier (crypto/ecdsa, Bitcoin Core ECDSA,
Ethereum/geth ECDSA).
This is the analogue of Pulsar's FIPS 204 byte-equality claim, but for ECDSA rather than ML-DSA. Critical for bridge / custody use cases where the receiving chain runs an unmodified secp256k1 ECDSA verifier.
1.3 Identifiable abort
Round-N signature shares + ZK subprotocols are individually verifiable per CCS '21 §5. Misbehaving signers are blamable.
1.4 Paillier soundness checks
Biprime testing per CCS '21 Appendix C is implemented at keygen
time (in pkg/paillier).
§2 What is NOT claimed
2.1 No mechanized refinement proof
- No EasyCrypt theories
- No Lean bridges
- No Jasmin constant-time-verified sources
- No formal refinement against a NIST-standard verifier (NIST has not standardized threshold-ECDSA)
Path to closure: SUBMISSION-STATUS.md §3.7 (multi-month research).
2.2 No dudect-class CT analysis
The threshold layer's constant-time story is asserted by
construction (no data-dependent branches on secret shares or
nonces) but not statistically measured. The underlying secp256k1
primitive (luxfi/crypto/secp256k1) has its own CT posture.
Path to closure: SUBMISSION-STATUS.md §3.7.
2.3 No independent cryptographer sign-off
No formal sign-off doc (cf. Pulsar's CRYPTOGRAPHER-SIGN-OFF.md). The construction's security is inherited from CCS '21; the Lux profile's correctness is asserted by tests + LP authorship.
Path to closure: SUBMISSION-STATUS.md §3.8.
2.4 No formal Paillier-modulus audit
Biprime testing is implemented but has NOT been audited against CCS '21 Appendix C exhaustively, especially the Blum-prime property required for the ZK subprotocols.
Path to closure: SUBMISSION-STATUS.md §3.3.
2.5 No security analysis of the Lux-profile deltas
Lux pins the curve (secp256k1), Paillier modulus size (2048), and transcript-binding tag. These deltas are NOT separately analyzed.
2.6 No UC-game implementation in code
CGGMP21's UC framework guarantees are paper-side; the Lux implementation realizes the construction but does not codify the UC simulator. Mechanizing the UC argument is part of §3.7.
§3 Comparison to siblings
| Repo | Mechanized refinement | Standard byte-equal | CT analysis | Sign-off |
|---|---|---|---|---|
luxfi/pulsar |
✅ EC + Lean + Jasmin | ✅ FIPS 204 | dudect wired | ✅ APPROVED WITH GATES |
luxfi/corona |
❌ honest gap | ❌ no FIPS anchor | ❌ | ❌ |
protocols/cmp (this) |
❌ | ✅ secp256k1 ECDSA byte-equal | ❌ | ❌ |
protocols/frost |
❌ | ✅ ciphersuite verifier | ❌ | ❌ |
protocols/bls |
❌ | ✅ BLS aggregate verifier | ❌ | ❌ |
CMP, FROST, and BLS all share the "byte-identical to single-party verifier" property (analogous to Pulsar's N1 claim) but lack the mechanized refinement that Pulsar has.
§4 What an external reviewer should read
README.md— purpose + tier labelSPEC.md— Lux profile pinning + secp256k1 + PaillierSUBMISSION-STATUS.md— gating items + Tier A pathPROOF-CLAIMS.md(this) — honest scopePARAMS.md— secp256k1-specific parametersTEST-VECTORS.md— KAT scopeSECURITY.md— threat model- Upstream: CCS '21 + ePrint 2021/060
- Code:
cmp.go,keygen/,presign/,sign/,pkg/zk/*
§5 Cross-references
SUBMISSION-STATUS.mdcorona/PROOF-CLAIMS.md— honest disclosure templatepulsar/PROOF-CLAIMS.md— Tier A reference