Adds the canonical submission-doc shape adapted from luxfi/pulsar to
warp's nature (transport-agnostic envelope + posture gate, not a
threshold-sig primitive).
New files:
- SUBMISSION.md cover sheet, scope, headline claim
- PROOF-CLAIMS.md honest scope — what warp proves AND what it
does NOT (bridge-quorum trust inheritance,
PQ hardness of primitives, ML-DSA
aggregation primitive, transport-layer
integrity, validator-key custody)
- TRUSTED-COMPUTING-BASE.md TCB inventory (cryptographic primitives,
implementation, build, operational, OOS)
- PATENTS.md royalty-free patent grant + defensive
termination mirroring Apache-2.0 §3
- CRYPTOGRAPHER-SIGN-OFF.md APPROVED WITH GATES verdict; reviews
envelope.go, security_profile.go, the new
registry, and the e2e/fuzz harnesses; pins
4 open gates (cross-language port schedule
disclosure, transport-layer integration
shape confirmation, LP-073 §11 disclaimer
addition, warpcli completeness)
- DEPLOYMENT-RUNBOOK.md operator-facing — posture decision flow,
chain config, validator key rollout, prod
checklist, common failure modes, monitoring
- CHANGELOG.md Tier A push entry; semantic-versioning at
the wire-format level
- LEGACY-CLASSICAL.md operator-facing classical-opt-in policy +
three-phase deprecation timeline
(target 2027-Q4 for full removal)
- TRANSPORT.md transport-layer notes — warp produces
transport-agnostic signed envelopes
consumed by ZAP-transport-capable
subsystems (luxfi/zap inter-node); warp
itself does NOT import luxfi/zap (keeps
dependency direction clean)
Updates to existing:
- README.md Tier A status banner, submission-doc cross-links,
related-modules grid
- PQ_PROFILES.md two-layer-gate documentation (registry +
chain-mode), pointer to LEGACY-CLASSICAL.md
- SPECIFICATION.md PQ-native default banner, MLDSACertSet context-
binding section (FIPS 204 §5.2 / FIPS 205 §10.2
context-string requirement under the canonical tag
"lux-warp-cross-chain-v1")
The four open gates in CRYPTOGRAPHER-SIGN-OFF.md are documentation /
operational items, not algorithmic defects. The construction itself
is APPROVED.
No code changes in this commit; subsequent commit adds the e2e and
fuzz test files referenced by the sign-off.
4.9 KiB
CHANGELOG — Lux Warp Cross-Chain Messaging
All notable wire-format-affecting and posture-affecting changes
to github.com/luxfi/warp are documented in this file.
The format is based on Keep a Changelog. Lux Warp follows semantic versioning at the wire format level: a major-version bump (e.g. v1.x → v2.x) indicates a non-byte-equivalent wire format change; a minor-version bump (e.g. v1.18.x → v1.19.x) indicates a new API surface or posture knob that does not break existing wire-format consumers; a patch-version bump (e.g. v1.19.0 → v1.19.1) is a bug fix.
[v1.19.0] — 2026-05-18 — Tier A push
Added
-
PQ-native signature registry constructor.
signature.NewPQNativeRegistry()returns the canonical PQ-native registry:Config.LegacyClassicalEnabled = false,PreferredScheme = SchemeMLDSA65, classical primitives refused at install time withErrClassicalRequiresOptIn. -
Explicit classical opt-in flag.
signature.Config.LegacyClassicalEnabled(defaultfalse). Operators that want classical schemes available MUST set this flag explicitly. SeeLEGACY-CLASSICAL.md. -
PQ scheme identifiers.
signature.SchemeMLDSA65,signature.SchemePulsar,signature.SchemeCorona,signature.SchemeSLHDSA. Pre-existingSchemeBLS,SchemeEd25519,SchemeSecp256k1,SchemeHybridare preserved. -
Domain-separation context tag.
signature.SignContextWarpV1 = "lux-warp-cross-chain-v1". FIPS 204 §5.2 / FIPS 205 §10.2 context-string bound into every ML-DSA-65 / SLH-DSA signature produced for a Warp 2.0 envelope. -
PQ-vs-classical predicates.
signature.IsPQ(scheme),signature.IsClassical(scheme). Used by the chain-mode gate to distinguish classical envelopes from PQ ones. -
Deterministic scheme audit ordering.
Registry.Schemes()returns schemes inPQSchemes ∪ ClassicalSchemes ∪ {SchemeHybrid}order — PQ first, then classical, then hybrid. Audit tools can diff against a declared config. -
SUBMISSION.md, PROOF-CLAIMS.md, TRUSTED-COMPUTING-BASE.md, PATENTS.md, CRYPTOGRAPHER-SIGN-OFF.md, DEPLOYMENT-RUNBOOK.md, TRANSPORT.md, LEGACY-CLASSICAL.md, CHANGELOG.md. Tier A submission documentation pack.
Tests added
-
crypto/signature/interface_test.go— 14 tests pinning the PQ-native default posture, classical opt-in gate, PQ classification predicates, and audit ordering. -
cross_chain_envelope_e2e_test.go— 10 e2e tests covering PQ-default registry behaviour, posture-gate verification under everypq.Mode, cross-version (v1 ↔ v2) round-trip, and KAT wire-stability. -
strict_pq_test.go— 7 tests (with 8 sub-cases) covering the cross-product of (mode ×LegacyClassicalEnabled× PQ-evidence-present). -
signature_scheme_fuzz_test.go— 2 new fuzz harnesses (FuzzSignatureSchemeLegParser,FuzzCorruptedMLDSACertSet) exercising decoder panic-freedom plusHasPQEvidenceconsistency under arbitrary byte input.
Changed
-
Registry.NewRegistry(preferred)continues to work — it now internally wiresDefaultConfig()with the supplied preferred scheme. Existing callers compile without changes; the default classical opt-in isfalsefor callers that previously passedSchemeBLSas preferred (those callers will fail atRegister(SchemeBLS, ...)withErrClassicalRequiresOptIn— this is the intended Tier A migration signal). -
Registernow returnsErrClassicalRequiresOptIn(was: generic "scheme mismatch" prefix) andErrUnknownScheme(was: generic "unknown signature scheme").
Deprecated
- Classical primitives (
SchemeBLS,SchemeEd25519,SchemeSecp256k1) onstrict-pqchains. Target removal: 2027-Q4 (Phase 3 of the deprecation timeline). SeeLEGACY-CLASSICAL.md.
Wire format
- Unchanged. EnvelopeV2 wire bytes remain byte-stable. The
Tier A push affects API ergonomics and documentation, NOT the
bytes on the wire. KAT manifest at
scripts/kat/envelope_kat.jsonregenerates byte-identical.
Migration
- Callers of
signature.NewRegistry(SchemeBLS)whose chain isclassicalorhybrid: switch tosignature.NewRegistryFromConfig(signature.Config{ LegacyClassicalEnabled: true, PreferredScheme: SchemeBLS}). - Callers of
signature.NewRegistry(SchemeBLS)whose chain isstrict-pq: this is the intended migration error — pin the chain to a PQ preferred scheme (signature.NewPQNativeRegistry()).
[v1.18.0] — pre-2026-05-18
See git history (git log --oneline). Highlights:
Verifierinterface added.- EnvelopeV2 Tier B push.
- Pulsar Pulse lane wired through
pulsar.KernelVerifier.
[v1.17.0]
- L1 validator registration payloads added.
[v1.16.0]
- Enhanced signature aggregation API.
[Warp 1.x]
- BLS12-381 aggregate (Beam) only. No PQ posture. Byte-equal to Avalanche Subnet Warp Messaging upstream.
Document metadata
- Name:
CHANGELOG.md - Version: v1.0 (Tier A)
- Date: 2026-05-18