Skip to content

Port to whir PR #215 + PR #217 with Skyscraper HashEngine#288

Open
Bisht13 wants to merge 5 commits intomainfrom
px/whir-pr215-compat
Open

Port to whir PR #215 + PR #217 with Skyscraper HashEngine#288
Bisht13 wants to merge 5 commits intomainfrom
px/whir-pr215-compat

Conversation

@Bisht13
Copy link
Collaborator

@Bisht13 Bisht13 commented Feb 13, 2026

Ports provekit to whir's PR #215 transcript API and PR #217 Weights trait. Restores Skyscraper as Merkle hash via whir HashEngine.

Changes

  • Transcript: IOPatternDomainSeparator/ProverState/VerifierState. Spongefish v1.0.0-rc1 (byte-oriented).
  • Weights: Weights enum → Covector<F> + dyn Weights<F> trait objects.
  • Merkle hash: Skyscraper via whir HashEngine with NEON SIMD batched compression.
  • Build: Added release-fast profile, jemalloc, reduced tracing noise.
  • Cleanup: Removed SumcheckIOPattern, WitnessIOPattern, witness_io_pattern.rs.

Tested

Prepare → Prove → Verify on complete_age_check.

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).
@Bisht13 Bisht13 changed the title Port to whir PR #215 transcript API Port to whir refactor transcript API Feb 14, 2026
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.
@Bisht13 Bisht13 changed the title Port to whir refactor transcript API Port provekit to whir PR #215 transcript API + PR #217 Weights trait + Skyscraper HashEngine Feb 14, 2026
@Bisht13 Bisht13 changed the title Port provekit to whir PR #215 transcript API + PR #217 Weights trait + Skyscraper HashEngine Port to whir PR #215 + PR #217 with Skyscraper HashEngine Feb 14, 2026
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