Skip to content

Port to whir PR #215 transcript API#288

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

Port to whir PR #215 transcript API#288
Bisht13 wants to merge 2 commits intomainfrom
px/whir-pr215-compat

Conversation

@Bisht13
Copy link
Collaborator

@Bisht13 Bisht13 commented Feb 13, 2026

Ports provekit to whir's new transcript API from WizardOfMenlo/whir#215 (rev 246dae28). Also bumps spongefish to v1.0.0-rc1.

What changed

  • Transcript: IOPattern replaced by DomainSeparator::protocol(config). Proof now carries narg_string + hints instead of a single transcript blob.
  • Sponge: Now byte-oriented (Permutation<64>, U=u8) instead of field-element-oriented.
  • Prover/Verifier: Old CommitmentWriter/Prover/Statement API replaced by config.commit() / config.prove() / config.verify() with weights + evaluations passed directly.
  • Public weights: Both sides now use Weights::geometric (non-deferred) — this was the key bug fix during the port.
  • NTT: ark_bn254::Fr registered in whir's global type-map via register_ntt().
  • Cleanup: Deleted SumcheckIOPattern, WitnessIOPattern, witness_io_pattern.rs — no longer needed. Clippy clean on prover/verifier.

Tested

Prepare → Prove → Verify on complete_age_check. Protocol logic unchanged, only the serialization layer is different.

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
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