Skip to content

test-vectors feature replaced by runtime Domain::without_blinding - #93

Merged
davxy merged 1 commit into
masterfrom
davxy/drop-test-vectors-feat
Aug 4, 2026
Merged

test-vectors feature replaced by runtime Domain::without_blinding#93
davxy merged 1 commit into
masterfrom
davxy/drop-test-vectors-feat

Conversation

@davxy

@davxy davxy commented Aug 4, 2026

Copy link
Copy Markdown
Member

Audit context: https://github.com/paritytech/srlabs_findings/issues/710


Replaces the test-vectors cargo feature with a runtime Domain::without_blinding method.

The feature was a footgun due to cargo feature unification: features are additive and resolved once per build graph, so a downstream crate enabling test-vectors (e.g. to generate its own test vectors) would silently disable column blinding for every other dependent of w3f-plonk-common in the same build. Proofs would still verify, so nothing fails visibly, but they become deterministic and lose the zero-knowledge property, potentially leaking witness data in production.

Blinding is now a per-instance runtime property. Domain::without_blinding() disables it explicitly for that domain only, while preserving the layout (zk_rows, capacity) so the resulting deterministic proofs remain valid for verifiers using the regular blinding-enabled configuration. Intended for reproducible test vector generation.

A regression test checks that columns are reproducible without blinding and randomized with it, with an unchanged domain layout.

@davxy
davxy requested a review from swasilyev August 4, 2026 08:15
@davxy
davxy merged commit 7519cda into master Aug 4, 2026
7 checks passed
@davxy
davxy deleted the davxy/drop-test-vectors-feat branch August 4, 2026 10:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant