Port to whir PR #215 + PR #217 with SHA-256#288
Merged
Conversation
Replace IOPattern-based transcript with whir's DomainSeparator/ProverState/ VerifierState API (rev 246dae28). Update spongefish to v1.0.0-rc1 with byte-oriented Permutation<64> interface. Proof now carries narg_string + hints instead of a single transcript blob. Key changes: - Sponge: Permutation<64> with U=u8, WIDTH=64, RATE=32 - PoW: PoWSolution return type, solution() method - Prover: config.commit()/config.prove() replacing CommitmentWriter/Prover - Verifier: config.receive_commitment()/config.verify() replacing readers - Public weights use Weights::geometric (non-deferred) on both sides - Cross-evaluation hints for dual-commitment path - NTT registration via global type-map for ark_bn254::Fr - Clippy clean on prover/verifier crates
Propagate whir's debug_assertions transcript pattern through WhirR1CSProof so in-process prove→verify (bench tests) passes in debug builds. Add register_ntt() call in bench tests. Point whir to 22efa1b2 (px/reduce-tracing-noise branch).
Replace ark-crypto-primitives-based SkyscraperCRH/SkyscraperMerkleConfig with a whir HashEngine implementation that registers Skyscraper for leaf hashing, internal nodes, and proof-of-work. Uses block4 NEON SIMD on aarch64 for batched compression, with a stack-allocated pair buffer to avoid heap allocation in the hot path.
ashpect
requested changes
Feb 16, 2026
Bisht13
added a commit
that referenced
this pull request
Feb 16, 2026
- Remove redundant challenge_u64 field in SkyscraperPoW, inline transmute - Add SAFETY comment for unsafe block in SkyscraperHashEngine - Add PoW unit test for Skyscraper - Move coeffs_to_evals and covector_dot to common/utils/zk_utils - Derive Debug on WhirR1CSScheme (WhirConfig now supports it) - Call register_ntt() in create_domain_separator for robustness - Remove unnecessary clones on prover hint submissions - Reuse pre-computed evaluations instead of redundant recomputation - Remove unused _public_weights_challenge from verifier destructuring - Remove dead offset variable in deferred eval checks - Use cfg-based LevelFilter (TRACE debug, INFO release) in CLI - Add TODO for FFI tracing initialization - Restore doc comments on GnarkConfig and WHIRConfigGnark fields - Restore comment about arbitrary no-public-inputs hint
- Remove redundant challenge_u64 field in SkyscraperPoW, inline transmute - Add SAFETY comment for unsafe block in SkyscraperHashEngine - Add PoW unit test for Skyscraper - Move coeffs_to_evals and covector_dot to common/utils/zk_utils - Derive Debug on WhirR1CSScheme (WhirConfig now supports it) - Call register_ntt() in create_domain_separator for robustness - Remove unnecessary clones on prover hint submissions - Reuse pre-computed evaluations instead of redundant recomputation - Remove unused _public_weights_challenge from verifier destructuring - Remove dead offset variable in deferred eval checks - Use cfg-based LevelFilter (TRACE debug, INFO release) in CLI - Add TODO for FFI tracing initialization - Restore doc comments on GnarkConfig and WHIRConfigGnark fields - Restore comment about arbitrary no-public-inputs hint
e17c47c to
ac651c1
Compare
ashpect
requested changes
Feb 16, 2026
- Use 4 * skyscraper::WIDTH_LCM instead of hardcoded 48 for GROUP constant - Fix verifier weight size to match prover (cfg_nv, not cfg_nv + 1) - Restore doc comments on gnark_parameters functions
ashpect
approved these changes
Feb 16, 2026
xrvdg
reviewed
Feb 16, 2026
xrvdg
requested changes
Feb 16, 2026
ashpect
approved these changes
Feb 16, 2026
xrvdg
approved these changes
Feb 16, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Ports provekit to whir's PR #215 transcript API and PR #217 Weights trait. Uses SHA-256 for Merkle tree hash, transcript sponge, and proof of work.
Changes
IOPattern→DomainSeparator/ProverState/VerifierState. Spongefish v1.0.0-rc1 (byte-oriented).Weightsenum →Covector<F>+dyn Weights<F>trait objects.whir::hash::SHA2), transcript sponge (spongefish::instantiations::SHA256), and PoW. Skyscraper code retained for future use.release-fastprofile, jemalloc, reduced tracing noise.SumcheckIOPattern,WitnessIOPattern,witness_io_pattern.rs.Tested
Prepare → Prove → Verify on
complete_age_check.