mirror of
https://github.com/luxfi/consensus.git
synced 2026-09-24 00:26:58 +00:00
- 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