Monthly research note. Theme: Quantum-Resilient Systems Engineering.
TL;DR
A focused memo on PQC for Blockchain Signatures: Wallet UX, Size, and Verification Cost: define the model, state the properties, then design the system so those properties remain true under failure and adversaries.
Most failures are boundary failures: parsing, persistence, concurrency, retries, and upgrades.
Key takeaways
- Hybrid is an operational mode: deploy, monitor, rollback—not a paper design.
- Measure cost shifts (CPU/bandwidth) and adapt DoS defenses accordingly.
- Define success metrics beyond “enabled”: cohorts, failures, and evidence.
- Bind security decisions to evidence (audit, invariants, telemetry).
- Prefer protocols and APIs that make invalid states hard to express.
Why this matters
- Migration risk is operational: inventory, rollout, rollback, and monitoring.
- Long-lived devices and PKI lifecycles are the hard constraint.
- Quantum risk is uneven: some secrets must last decades, others do not.
- Hybrid protocols fail if binding is unclear or downgrade is possible.
Key questions
- How do you stop downgrade under active adversaries?
- Which protocols need hybrid now, and which can wait without regret?
- What secrets must remain confidential for 10–30 years (and where are they today)?
- How do you define success metrics for PQ readiness beyond “enabled”?
- What does rotation look like at fleet scale (devices, certs, tunnels, identities)?
- How do you manage mixed deployments across regions and vendors?
Assumptions
- Rollouts happen under partial adoption; compatibility matters.
- Adversaries record traffic today (HNDL) and attack later.
- Some environments require constrained implementations (no_std, embedded).
- Key and certificate lifecycles outlive application versions.
Non-goals
- Assuming performance impacts will be negligible.
- Relying on ‘automatic’ negotiation without downgrade resistance.
Observability pipelines can be attacked (cardinality explosions, log injection). Protect them.
Model & invariants
Hybrid composition should be explicit and transcript-bound:
Make downgrade resistance explicit and test it like a security feature.
Treat ops as part of the protocol: monitoring, rollback, and incident response.
Make the “impossible state” observable: a metric or alert that fires when invariants drift.
Security properties
- Integrity: invalid transitions are rejected (and detectable).
- Replay resistance: duplicated inputs do not change outcomes.
- Least authority: privileges are scoped by purpose and time.
- Authenticity: actions are bound to identity and purpose.
Failure modes
- Resource exhaustion (CPU/bandwidth/storage) turning into correctness failures.
- Mixed-version behavior that violates assumptions silently.
- Observability gaps during incidents (missing evidence).
- Recovery paths that only work when nothing is broken.
A recovery plan that isn’t exercised will fail when you need it.
Design sketch
flowchart TD
inventory["Inventory"] --> prioritize["Prioritize"]
prioritize --> hybrid["Hybrid Deploy"]
hybrid --> monitor["Monitor"]
monitor --> cutover["Cutover"]
cutover --> deprecate["Deprecate Old"]Implementation notes
PQ readiness is a systems program: crypto, networking, ops, and UX must compose.
Make rollbacks boring: if rollback is a hero move, it will fail.
// PQ migration note: "enabled" is not "safe" unless binding and downgrade resistance are explicit.Verification strategy
- Interop tests across stacks and versions.
- Rotation drills: certificates, tunnels, device identities.
- Side-channel audits for constrained implementations.
- Downgrade simulations with active attackers.
- Performance profiling under load to quantify DoS risk.
Operational notes
- Practice emergency deprecation (turn off broken algorithms quickly).
- Maintain an inventory of long-lived secrets and their lifetimes.
- Define compatibility windows and communicate them to stakeholders.
- Roll out hybrid with canaries and explicit rollback triggers.
- Add telemetry for algorithm negotiation and failure modes.
Design playbooks as protocols: predictable steps, bounded risk, and clear ownership.
What to monitor
- Admission-control / rate-limit rejections (by reason).
- Invariant violation rate (should be ~0).
- Error budget burn + tail latency under load.
- Authz failures and policy denials (unexpected spikes).
- Rollback events and the conditions that triggered them.
Rollback plan
- Define an explicit rollback trigger (metrics + thresholds).
- Prefer backward-compatible changes; avoid “flag day” upgrades.
- Preserve evidence (configs, artifacts, audit logs) to reconstruct what changed.
- Keep dual-write / dual-verify windows where appropriate.
- Use canaries and staged rollout; stop early when signals degrade.
Evidence
- RFC 8446: TLS 1.3 (1) — A useful reference for handshake structure and downgrade resistance patterns.
- Evidence: Handshake transcript binding and downgrade resistance patterns; monitor negotiation paths and failure reasons.
- Designing Data-Intensive Applications (Kleppmann) (2) — The systems-engineering baseline for correctness, replication, and failure.
- Evidence: Replication and consistency tradeoffs as engineering constraints; use as reference when naming guarantees.
Open questions
- What is your plan for third-party dependencies that can’t migrate quickly?
- How do you prevent configuration drift from re-enabling weak modes?
- Which protocol surfaces are most exposed to HNDL risk in your environment?
- What is your minimal ‘safe mode’ when PQ paths fail?
Checklist
- Costs bounded (CPU/memory/bandwidth) under adversarial inputs.
- Failure modes enumerated with mitigations.
- Rollback plan rehearsed and automated.
- Assumptions listed and reviewed.
- Safety properties stated as invariants.
- Telemetry captures correctness signals.
Further reading
- RFC 8446: TLS 1.3 — A useful reference for handshake structure and downgrade resistance patterns.
- NIST Post-Quantum Cryptography Project — The standardization baseline for PQC readiness programs.
- Let's Encrypt Incident Reports — Operational lessons relevant to rotation and recovery at scale.
- Designing Data-Intensive Applications (Kleppmann) — The systems-engineering baseline for correctness, replication, and failure.
- Site Reliability Engineering (Google) — Error budgets, incident response, and reliability as an engineering discipline.
- Jepsen — Fault injection and correctness testing for distributed systems.