Security
This page summarizes the protocol-level defenses. For hostile-peer scenarios specifically, see rogue-node security. For responsible disclosure, see SECURITY.md in the repo.
Identity and signing
Section titled “Identity and signing”- ECDSA P-256 for all identity signatures.
- Canonical-bytes serialization across every SDK, verified by the
cross-SDK interop harness (
tests/interop/). - Private keys never cross the network in-protocol.
- HSM (PKCS#11) and WebAuthn/FIDO2 signer backends for hardware-backed key storage.
Replay safety
Section titled “Replay safety”- Per-signer monotonic nonces, see QDP-0001.
- Epoch anchoring so transactions signed by a rotated key do not land after the rotation is visible.
- Cross-domain nonce scoping, see QDP-0003.
Key compromise recovery
Section titled “Key compromise recovery”- M-of-N guardian recovery with time-locked veto, see QDP-0002.
AnchorInvalidationfreezes a compromised epoch immediately (when the current epoch key is still held by the subject).- Guardian resignation for prospective withdrawal, see QDP-0006.
Consensus-layer defenses
Section titled “Consensus-layer defenses”- Proof-of-Trust tiering means a hostile validator’s blocks are classified per observer, they can pollute one viewer’s tentative pool but cannot force acceptance onto a disagreeing viewer.
- K-of-K bootstrap so a fresh node seeding state requires quorum of trusted peers, not a single source.
- Fork-block activation so protocol changes land at coordinated block heights; operators opt in consciously.
Network-layer defenses
Section titled “Network-layer defenses”REQUIRE_NODE_AUTH=truewithNODE_AUTH_SECRETenforces HMAC over inter-node gossip, probe, and snapshot endpoints.RATE_LIMIT_PER_MINUTEbounds per-source ingress so a misbehaving peer cannot exhaust CPU.- Terminate TLS at the ingress; the node speaks plain HTTP.
Storage
Section titled “Storage”- State is persisted on disk under the node’s data directory; protect at rest with volume-level encryption (LUKS, eCryptfs, EBS encryption).
- No secrets are stored by the protocol itself, only public keys, signatures, and payloads.
Rate limits and DoS
Section titled “Rate limits and DoS”The reference node enforces per-IP rate limits at RATE_LIMIT_PER_MINUTE.
For adversarial deployments, front with a CDN/WAF (Cloudflare,
CloudFront, Fastly) and enable bot protection on the public surface.
Reporting vulnerabilities
Section titled “Reporting vulnerabilities”Do not open public issues. Use the disclosure channel described in
SECURITY.md.