Introduction

This document is a companion to the Post-Quantum Safety Analysis of the Logos Bedrock Layer, which identified the quantum-vulnerable components across the Bedrock stack — Ed25519 signatures at five sites, the four coupled Groth16/BN254 circuits, and the libp2p TLS transport — and classified each under the shared threat-model taxonomy. This document evaluates specific post-quantum candidate primitives for those components: digital signature schemes, zero-knowledge proof systems, and the key encapsulation mechanism for the shared transport.

The purpose of this document is to present the pros and cons of candidate primitives along the relevant trade-off axes — not to select one, and not to recommend any particular combination. Deployment decisions (security category per component, lattice-vs-non-lattice posture, specific candidate selection, multi-signature construction, ZK compression strategy) are deferred to dedicated decision documents and RFCs. Critically, several of these decisions cannot be made by Bedrock in isolation: the ZK proof system is a single coupled choice spanning four circuits across Cryptarchia, Blend, and Mantle, and the transport KEM is shared with Blend. The analysis below is intended as input to those decisions, providing a consistent comparison baseline aligned with the companion Post-Quantum Primitive Candidates for the Blend Protocol.

This document deliberately reuses the Blend candidate framework — the same NIST Category 3 comparison reference point, the same candidate algorithms, and the same hardness-assumption families — and extends it with the candidates that Bedrock’s structure additionally admits (stateful hash-based signatures for single-use keys, and threshold/aggregating constructions for the multi-signature channel operations). Where a candidate’s evaluation is identical to the Blend treatment, we summarize and cross-reference rather than repeat.

<aside> 💡

On performance figures. Absolute timings are platform- and implementation-dependent and are reported in the shared companion benchmark document — measured on a Raspberry Pi 5 (the validator baseline) and an Apple M3 MacBook, through three independent implementations (the liboqs C library, the pure-Rust RustCrypto crates, and aws-lc-rs) and two TLS stacks (OpenSSL and rustls, the stack the Logos libp2p transport uses) — not here. Throughout this document, performance is characterized only by order of magnitude (microsecond / millisecond / sub-second) and by relative comparison between candidates, both of which the benchmark shows to be stable across platforms and implementations. The benchmark additionally quantifies the worst-case latency of the operations whose running time is intrinsically variable (rejection-sampled signing and key generation) — the figure that matters wherever a Bedrock operation sits inside a deadline, such as the leader’s slot budget. Sizes (public key, signature, proof) are deterministic functions of the parameter set and are reported in full.

</aside>

The evaluation criteria are driven by Bedrock’s specific constraints, which differ from Blend’s in instructive ways:

Migration Phases

The Bedrock analysis adopts the same four-phase threat framing as the Blend baseline, with one structural difference: Bedrock has no per-message confidentiality surface, so the message-level KEM phase (Blend’s Phase 1) has no Bedrock analogue. We restate the phases here for self-containment, noting Bedrock’s relationship to each: