Files
consensus/engine
zeekay f651395f50 Wire consensus PQ end-to-end: real BLS+Corona+ML-DSA
- protocol/quasar/types.go: QuasarCert MarshalBinary/UnmarshalBinary
  (length-prefixed wire layout, leading byte CertSchemeQuasar=0x04),
  VerifyWithRealKeys cryptographic verification, EncodeMLDSASigs helper
- protocol/quasar/corona_gob.go: gob serializer for pulsar/threshold
  Signature
- protocol/quasar/engine.go: Certifier.AttachSigner; generateCert drives
  signer.TripleSignRound1 (real BLS share + MLDSAProof). Falls back to
  legacy SHA-256 only when no signer attached
- engine/pq/engine.go: AttachSigner/AttachVerifyKeys; VerifyQuantumSignature
  decodes QuasarCert + runs VerifyWithRealKeys; GenerateQuantumProof
  emits serialized QuasarCert
- engine/pq/crypto.go: ML-DSA-65 keypair; real GeneratePQSignature
- engine/pq/consensus.go: PQMode field; resolves via config.PQModeFromEnv
- config/pq_mode.go: PQMode enum (BLSOnly | BLSPlusMLDSA | BLSPlusCorona
  | BLSPlusGroth16 | TripleQuantum), LUX_CONSENSUS_PQ_MODE env support
- pkg/wire/policies.go: QuantumPolicy serializes real QuasarCert into
  cert.Proof; Verify decodes via UnmarshalBinary; VerifyWithKeys does
  cryptographic verification
- engine/gpu_batch_pipeline.go: gpuAvailable() wired to accel.Available();
  verifyBLSBatchGPU calls accel.BLSBatchVerify
- bench/pq_modes_bench_test.go: 5 PQ mode benches with real BLS aggregate,
  real ML-DSA-65, real Corona 2-round threshold. Storage projection
  comparison.

1237 tests pass.

Bench results (Apple M1, n=21):
  Mode             Sign     Agg      Verify   Cert     Storage 10K
  bls              312µs    8.6ms    714µs    123 B    1.17 MB
  bls-mldsa        369µs    8.5ms    3.4ms    69 KB    665 MB
  bls-rt           39ms     3.3s     1.6ms    33 KB    318 MB
  triple           40ms     3.3s     4.3ms    102 KB   981 MB
2026-05-05 10:14:09 -07:00
..
2025-12-19 08:49:11 -08:00