Appendix D: Solutions for Chapter 32
This page collects solutions and editorial notes for the exercises in Chapter 32: PQ-secure commitment schemes. Compute and derivation exercises have worked solutions; open-ended exercises have an editorial note describing what a strong answer addresses.
The fuller versions of these routines are in the commitment_schemes package under solutions/ch32-commitment-schemes. From a clone of the companion repository, pytest tests/ch32 runs its suite. Appendix C has the setup.
Exercise 1
Section titled “Exercise 1”For an -bit hash:
- BHT (Brassard-Hoyer-Tapp 1998) collision bound: quantum evaluations, assuming quantum random access to a classical memory (QRACM) holding about entries.
- CNPS (Chailloux-Naya-Plasencia-Schrottenloher 2017) collision bound: time without QRACM, using only polynomial quantum memory and about classical memory.
For (BLAKE2s at 160-bit output, the ethSTARK suggested 80-bit setting): BHT gives , CNPS gives .
Adequacy assessment:
- (a) 80-bit BHT margin. falls short of by 26.7 bits. Inadequate: a BHT-capable adversary can find a Merkle collision well inside the 80-bit security budget.
- (b) 80-bit CNPS margin. falls short of by 16 bits. Inadequate even under the no-QRACM model.
- (c) 128-bit PQ margin. BHT () falls short by 74.7 bits; CNPS () falls short by 64 bits. Far from the 128-bit PQ margin in either model.
Minimum output widths:
- 80-bit BHT margin: bits ().
- 80-bit CNPS margin: bits ().
- 128-bit BHT margin: bits ().
- 128-bit CNPS margin: bits ().
The ethSTARK 160-bit BLAKE2s choice follows the document’s own rule that the digest be at least twice the target, an 80-bit classical target in the random-oracle model with the grinding (proof-of-work) bits counted, not an 80-bit quantum collision-resistance target on the Merkle hash itself. The gap above is the gap a PQ-aware reparameterization would close. Widening the hash is the reparameterization, and the widths above say how far it has to go. A 256-bit output supplies about 85.3 bits under BHT and 102.4 under CNPS, so it is wider than the 160-bit setting without meeting the 128-bit collision target. Meeting that target takes 320 bits under CNPS and 384 bits under both. Which production pipeline has adopted which width is a deployment claim that needs the deployment and its date, and this solution makes none.
for n in (160, 200, 240, 256, 320, 384): bht = n / 3 cnps = 2 * n / 5 print(n, round(bht, 1), round(cnps, 1))# ==> 160 53.3 64.0# ==> 200 66.7 80.0# ==> 240 80.0 96.0# ==> 256 85.3 102.4# ==> 320 106.7 128.0# ==> 384 128.0 153.6Exercise 2
Section titled “Exercise 2”The exercise simulates the Shor break with brute force at small parameters. For , the safe-prime structure means with prime. The subgroup of order generated by is where the SRS lives. Brute-force search for : enumerate and find such that . Once is recovered, forge_opening constructs algebraically: given a target evaluation claim at , where is the commitment, equivalently using the scalar ; , so the inverse exists. The verifier’s pairing equation is satisfied by construction since the forger computed from the equation. The exercise demonstrates that recovering trivially forges any opening. KZG’s evaluation binding is proved under the -strong Diffie-Hellman assumption (Kate et al., 2010), which a discrete-log solver breaks; recovering is therefore sufficient to forge, and the exercise shows that direction only.
Exercise 3
Section titled “Exercise 3”Editorial note. The exercise is a literature-survey check, so the answer moves with the reader’s date. What the five abstracts said on 13 August 2026:
- (a) Lowest univariate proof size at 128-bit PQ. Greyhound, at 53 KB for degree at most , with its concrete sizes set to reach a security level of about 128 bits. Among the five papers this exercise names, none claims a smaller univariate figure at that degree bound, so Greyhound is still the anchor rather than a superseded baseline.
- (b) Lowest multilinear proof size at the same target. Hachi, at approximately 55 KB for a 30-variable polynomial. Note the direction: that is slightly larger than Greyhound’s univariate figure, not smaller. A reader who assumes the newer paper wins on every axis gets this one backwards.
- (c) Lowest verifier time at 128-bit PQ. Hachi, by its own comparison table: an asymptotic improvement over Greyhound, which it puts at 2.8 seconds down to 227 milliseconds. The two wall-clock numbers do not share a measurement: Hachi’s 227 milliseconds is a first-round timing of 96.5 milliseconds on a Mac Mini M4 plus a 130 millisecond estimate for the Greyhound stage from a private communication, and Greyhound’s 2.8 seconds is a whole-verifier time on an AVX-512 Xeon. The asymptotic improvement is the answer. The timings are not a like-for-like comparison.
Two traps sit in the exercise. Jindo does report proof size: it is one of the three metrics in the abstract and one of the three panels of its Table 1. But it is not the size winner, and its own table says so. At that table gives zk-Jindo 1,207 KB against Greyhound’s 46 KB, and Jindo’s smallest entry, 315 KB at , is still an order of magnitude above Greyhound. Jindo optimizes client-side proving instead: its headline is about an order of magnitude over CELPC across proof generation, verification, and size together, its evaluation protocol is built for multilinear polynomials, and its figures carry evaluation hiding where Greyhound’s do not. A reader who reaches for the newest lattice polynomial commitment scheme on question (a) picks it for the wrong axis.
The second trap is HyperWolf, withdrawn from the eprint archive on 3 October 2025. The live paper is Serval, whose own eprint note calls it an optimization of the same work. Its abstract headlines , but its own table also places Greyhound beside it at and , so the comparison with (a) is in the paper. Those sizes are computed from proof-size formulas rather than measured, and its verifier comparison is in ring operations rather than wall-clock time.
Cite the paper’s claimed value, name the parameter set, and date-stamp it. The three answers above are pinned to abstracts read on one day, which is the habit the exercise exists to build.
Exercise 4
Section titled “Exercise 4”Binius belongs to the Merkle family. The commitment is a Merkle root over the codeword of a multilinear polynomial. Binding rests on the collision resistance of the Merkle hash, which is exactly the Merkle-family security argument. The binary-field tower changes the field arithmetic but not the commitment structure. Binary fields make the hashing and the Reed-Solomon encoding cheap, but the prover still produces a Merkle root and the verifier still queries Merkle paths.
Quantum posture: same as any Merkle commitment. The hash needs -bit output for -bit BHT collision security, since BHT gives a -query collision attack in the quantum-accessible-memory model. The relation is the classical birthday one and understates the requirement by a third. Binius’s choice of hash function determines the concrete margin, and at the 128-bit PQ target the same 384-bit floor applies that Exercise 1 derives. A pipeline that runs a FRI-style proximity test above the commitment raises a separate soundness question, and it is a question about the test rather than about the commitment. The two are worth keeping apart: a low-degree extension is an encoding step that evaluates a polynomial on a larger domain, and FRI is the interactive test that a committed word is close to that code. Ch 34 develops FRI soundness over a prime field and does not treat Binius, so no Binius-specific accounting is available in this book. The commitment itself classifies as Merkle either way, which is what the exercise asks.