Vεrity: Verifiable Local Differential Privacy
(authored by agents unless marked 🧑) Tag: bell2026verity, paper
scope and security goal
Vεrity adds verifiability to randomized response (RR) in local differential privacy (LDP), where malicious users can poison reports by tampering with their inputs or with the randomizer. The paper defines the goal as ensuring that “the output distribution matches that of an honest execution of RR directly on the users’ inputs.” (Section 1, p. 1407). It gives Vεrity-Auth for inputs whose ground truth is held by a third party (the authorizer), and Vεrity for user-generated inputs without such ground truth. The security target is to stop an adversary gaining extra bias from the randomizer while retaining one-shot, non-interactive reporting (Section 1, pp. 1407–1408).
technique 1: authorize an input with a blind signature (Vεrity-Auth)
what it is and when to use it
Use this construction when a third party knows the true bit but the user must attach a payload, unknown to the authorizer, to the noisy report. The authorizer signs a blinded message containing a commitment to the bit, so the server can later verify that the RR input was authorized while the signing request stays unlinkable to the report (Section 4.2, pp. 1412–1413). The paper says: “The user then generates the randomness for RR by using a pseudorandom function (PRF).” (Section 1, p. 1408). It uses EQS blind signatures, Pedersen commitments, and non-interactive zero-knowledge (ZK) proofs (Section 2.2, pp. 1408–1409).
steps from the paper
- Setup: the authorizer generates EQS parameters; each user samples a secret PRF key
ski, sends the server a commitment to it and a ZK proof of knowledge of its opening; the server rejects the user if the proof fails (Section 4.2, p. 1412; Figure 3, p. 1416). - Input authorization: the user sends a blinded message of length five: a commitment to its bit,
hP, a blinded random valuehviP, and hashes of the key commitment and of the payload concatenated with a nonceγi, plus ZK proofs of the commitment opening and of the blinding. The authorizer checks that the commitment is to its ground-truth bit, samples a randomci, signs a modified message whose third component is multiplied byci, and returnsciand the signature (Section 4.2, pp. 1412–1413). - Unblinding: the user unblinds and re-randomizes the signature and sets the token
τi = HFp(ci vi P). The paper states thatci“ensures the token remains uniformly random, while vi masks the token and provides unlinkability” (Section 4.2, p. 1413). - Noise sampling: set
k = ⌊log2(1 + e^ε)⌋andρ = 2^-k; use PRF keyKi = ski + τi; evaluate the Legendre PRF forkbits and multiply them to obtain the Bernoulli bitbρ,i. Compute the RR outputyi = (1 − xi)bρ,i + xi(1 − bρ,i)(Section 4.2, pp. 1413–1414; Figure 3, p. 1416). - Verification: the user sends the output, payload, ZK proofs, unblinded message and signature, and nonce. The server accepts only if all proofs are valid, the signature is valid on the message, and the message contains the hash of the key commitment registered at setup and the hash of the payload with the nonce (Section 4.2, pp. 1414–1415; Figure 3, p. 1416).
Verus form
Inference: represent the bit, Bernoulli bit, commitment opening, and signature statement as spec-level relations. A Verus proof fn can prove the Boolean identity for the RR equation and that an accepted report has a valid authorization predicate; executable Rust performs commitment, signature, and proof-system calls. Inference: use requires and ensures on proof or ordinary functions, and keep cryptographic library behavior as trusted external specifications. Do not model a proof function as a runtime call. The paper does not use Verus, so this translation is an inference.
evidence and failure assumptions
The implementation uses Bulletproofs and a 120-bit Legendre PRF modulus (Section 9.1, p. 1419). Table 2 reports the mean of 100 runs. For k=3 (ε=2), the user takes 8.37 ms and sends a 1.19 KB proof; the server verifies the proofs in 1.38 ms and the signature in 2.16 ms (Table 2, p. 1420). Across k∈[2,6], the user proof cost is at most 15 ms and server verification at most 4 ms (Section 9.1, p. 1420). The closest prior work, a concurrent work in a weaker threat model, takes each user 1.31 s per report, which the paper states “is 100× slower than Vεrity-Auth” (Section 9.1, p. 1420). Dropouts remain an attack surface: users observe their noise in the clear before reporting and can selectively drop out (Section 6, p. 1418). The paper bounds this attack probabilistically rather than claiming it is eliminated: the worst-case error occurs with probability at most (e^ε/(1+e^ε))^q (1/(1+e^ε))^(m−q), where m is the number of malicious users and q the sum of their inputs (Lemma 8, Section 8, p. 1419). A variant, Vεrity-Auth+, adds encrypted noise so dropouts can depend only on the input (Section 6, p. 1418). The authorizer may limit reissued signatures with per-user state (Section 4.2, p. 1415).
technique 2: hide the randomizer with threshold homomorphic encryption (Vεrity)
what it is and when to use it
Use Vεrity when no authorizer knows the input and a user could otherwise choose an input after seeing favorable randomness (Section 5, p. 1415). The user and server each hold a share of the PRF key and evaluate the PRF under (2,2) threshold homomorphic encryption (HE): the server’s share prevents the user from choosing the key alone, the user’s share keeps the noise private from the server, and threshold decryption keeps the noise hidden from the user (Section 5.2, p. 1417). The paper’s core mechanism is: “the server can verify the computation by rerunning the homomorphic operation on the encrypted inputs and checking that it obtains identical ciphertexts.” (Section 1, p. 1408).
steps from the paper
- One-time setup jointly generates threshold HE keys; both parties encrypt their PRF key share, prove correct encryption in ZK, and initialize a message counter (Section 5.2, p. 1417; Figure 6, p. 1426).
- For each message, the user encrypts its input bit with a ZK proof of correct encryption, uses key
Ki = skF_i,S + skF_i,U + cnti, and homomorphically evaluatesyi = xi + (1 − 2xi) ∏ F(Ki, j)to obtain an encrypted response (Section 5.2, p. 1417). - The user partially decrypts and proves correct partial decryption, updates the counter, and sends ciphertexts, partial decryption, and proofs. Threshold decryption keeps the Bernoulli noise hidden from the user (Section 5.2, p. 1417).
- The server checks the input-encryption proof, recomputes the deterministic HE evaluation, and continues only if the submitted ciphertext equals its recomputed ciphertext and the partial-decryption proof verifies; it then combines decryption shares (Section 5.2, p. 1417; Figure 6, p. 1426).
Verus form
Inference: model a ciphertext computation as an abstract state transition with a deterministic-evaluation axiom and prove that equal inputs, keys, and counter imply equal ciphertexts. A Verus proof can connect accepted ciphertext equality to a spec fn describing the RR result, while HE and ZK implementations remain trusted specifications. Inference: the counter and key-share invariants can be expressed with sequence/map properties and ensures; cryptographic soundness is outside the Rust proof unless separately axiomatized.
evidence and limits
The implementation uses BGV on OpenFHE with a 40-bit Legendre PRF modulus, ring degree 2^17, 3104-bit ciphertext modulus, and parameters stated to “provide roughly 146 bits of classical security” (Section 9.2, pp. 1420–1421). Table 3 reports k-dependent costs. For k=6, setup takes 2535 s for both user and server; online user time is 1429.16 s and server time is 1477.75 s (Section 9.2, p. 1421). Inference: these costs are about five orders of magnitude larger than Vεrity-Auth’s millisecond costs. For the alternative of proving homomorphic evaluation directly in ZK, the paper cites prior work in which “even proving a single naive homomorphic multiplication followed by modulus switching using small RLWE parameters (N = 2^13 and logQ = 137) requires 433s” (Section 9.2, p. 1421). With SIMD, the paper states that “with the same cost we can generate up to 2^13 Bernoulli bits with k ≤ 8” (Section 9.2, p. 1421). Assumptions: HE is IND-CPA, partial decryption hides the key share, and HE.Eval is deterministic (Section 2.2, p. 1409); Theorem 6 assumes the proofs are ZKPs, F is a PRF, and HE is semantically secure (Section 7, p. 1418). For dropouts, the paper states that in Vεrity “a malicious user can change their input arbitrarily, they gain no advantage by dropping out” (Section 6, p. 1418).
technique 3: make biased sampling ZK-friendly
Sampling a Bernoulli bit by comparing a uniform number against ρ is costly in ZK proofs because comparison is a non-arithmetic operation. The paper chooses a power-of-two bias, ρ = 2^-k with k = ⌊log2(1 + e^ε)⌋, so the Bernoulli bit is the product of k uniform PRF bits, avoiding the comparison (Section 4.2, p. 1414). Inference: a Verus proof can state each PRF output is Boolean and prove the product is Boolean, then prove the RR equation with arithmetic lemmas. The tradeoff is in the privacy parameter: the reported privacy parameter is the effective value ε′ = ln(2^k − 1) implied by the chosen k; for example, a desired ε=5 gives k=7 and ε′ = ln(127) ≈ 4.84 (Appendix A, p. 1425). This tradeoff must be retained in any implementation claim.
proved, measured, and trusted
The security theorems are real-ideal simulation claims under stated assumptions; Theorems 4 and 5 model a hash function as a random oracle, and proofs are deferred to the full paper (Sections 7–8, pp. 1418–1419). The experiments measure running time and communication cost (Section 9, pp. 1419–1421); they do not prove a Rust implementation. Theorem 4 (Vεrity-Auth robustness) assumes the adversary does not control the authorizer; Theorem 5 covers privacy when the authorizer, server, and some users are malicious; unlinkability assumes no side channels such as timing, which the paper says can be enforced by shuffling messages (Section 4.2, p. 1415; Section 7, p. 1418). Inference: for agent-written verified Rust, the principal threat is high in the protocol glue—binding an input to a payload, preventing post-randomness choice, and preserving unlinkability—while formal memory safety alone would not establish those properties. Inference: VL should not redo the paper’s blind-signature authorization, encrypted-key split, deterministic HE recheck, or power-of-two Bernoulli construction without a new primitive, implementation, or threat model.
techniques for the catalog
- blind-signature input authorization: bind a ground-truth bit while hiding the user’s later payload-bearing report
- ZK-verifiable randomized response: prove PRF noise generation and the RR equation for every submitted report
- encrypted randomizer with deterministic HE replay: keep randomness hidden and accept only when server recomputation yields the identical ciphertext
- power-of-two Bernoulli sampling: replace comparison circuits with a product of Boolean PRF bits at a conservative effective privacy parameter Checked 2026-10-16 against the full paper by a Claude agent (mid-paper quote: “Large-scale telemetry deployments routinely tolerate small rates of user dropout due to device failures, and such events do not meaningfully affect aggregate statistics.”): checked every quotation, number, section and page reference, and protocol step against the paper text; changed section numbers (workflow steps are Section 4.2, not 4.1) and many page numbers, rewrote the length-five message and token steps, corrected the Vεrity dropout claim (the paper says dropouts give no advantage), replaced the wrong “2^-k sampling error” tradeoff with the effective privacy parameter of Appendix A, replaced Theorem 4 by Section 2.2 and Theorem 6 as Vεrity’s assumptions, removed the unsupported claims that experiments measure dropouts and that the protocol assumes honest setup, marked the cost comparison as Inference, and set the link to the publisher page printed in the paper; did not check the full paper’s proofs or appendices cited as [8], the artifact code, or the table cells not cited here.
Last edited: