Reuse sparse opening work in the IPA - #294
Conversation
|
Updated the quotient mask to three random coefficients (degree at most two) in For Complete real Orchard
All three Apple M4 six-worker mean pairs improved (0.14-0.22% for one action, Median paired isolated sparse-commitment changes:
The third quotient term crosses the multicore threshold for splitting the Protocol: Rust 1.97.1, ThinLTO, GLV enabled, Orbits disabled, Criterion 10 flat Artifact SHA-256:
|
63929d0 to
d4b8c3d
Compare
d04d072 to
523e60e
Compare
Rebased onto latest
main; #267 and #298 are now merged.Summary
Wblinding table in the sparse quotient and IPA maskcommitments. The quotient mask now has three random coefficients (degree at
most two), so its three-term body is large enough to overlap with the
prepared blind multiplication when multiple workers are active. The 12-term
IPA body uses the same path.
evaluations with
x_4. This avoids a later serial domain-sized evaluationof the already-folded IPA polynomial while retaining Track IPA power-vector folds symbolically #298's symbolic IPA
power-vector folds.
including with Orbits, and keep the public IPA API unchanged.
The transcript and proof format are unchanged. If
P = (((q_prime * x_4 + Q_0) * x_4 + Q_1) ...), then evaluation is a ringhomomorphism, so the same Horner fold over
q_prime(x_3), Q_i(x_3)is exactlyP(x_3). The sparse IPA mask has a root atx_3, so masking does not changethat value.
For the quotient mask
r(X) = a + bX + cX^2, the exposure map isIts first two columns have determinant
x_3 - x. The verifier rejects theexceptional collision, so this map has rank two and a one-dimensional kernel.
Consequently the two evaluations are jointly uniform, and fixing both still
leaves one uniformly random coefficient of excess entropy. The independent
Pedersen blind hides the coefficient commitment before the challenges.
Benchmarks
The following full-proof measurements predate the rebase. Parent:
63929d0(#267). Candidate:
d87544a. Rust 1.97.1, GLV enabled, Orbits disabled, realOrchard
k = 11proofs. Each cell is the aggregate of three alternatingparent/candidate Criterion runs (10 flat samples, 2 s warm-up, 15 s
measurement) admitted only after host-idle, swap, competitor, and thermal
checks.
All three Apple M4 six-worker mean pairs improved: 0.14-0.22% for one action
and 0.04-0.22% for four actions. The Apple M4 one-worker pairs and every Linux
configuration changed sign. I therefore treat the one-worker and Linux
whole-proof results as inconclusive; only the small Apple M4 six-worker change
repeated across all three pairs.
The isolated sparse-commitment harness alternates the old combined MSM and
the new path five times. The table reports the median paired change:
Moving the quotient mask from two to three terms crosses the threshold for the
parallel prepared-blind path, which explains its new six-worker improvement.
The changed commitments save only microseconds, which is consistent with the
effect being difficult to resolve inside a 68-1942 ms complete proof.
After rebasing, a release-mode smoke run of the internal paired harness on an
Apple M4 Max reconfirmed the isolated effect over five alternating repetitions:
Validation
cargo +1.97.1 test -p zakura-halo2-proofs --features multicorecargo +1.97.1 test -p zakura-halo2-proofs --features orbitscargo +1.97.1 check -p zakura-halo2-proofs --no-default-featuresAPI surface
No downstream-public API changes. This adds the internal
pub(crate)methodParams::try_commit_sparse_with_prepared_blind. It also adds anevaluationargument to the existing
pub(in crate::poly)commitment::create_proof_with_powershelper; that helper remains confined tothe
polymodule.