Skip to content

Make so EffSc can be consumed without Spongefish#104

Merged
z-tech merged 1 commit into
mainfrom
z-tech/transcript-feature-split
May 14, 2026
Merged

Make so EffSc can be consumed without Spongefish#104
z-tech merged 1 commit into
mainfrom
z-tech/transcript-feature-split

Conversation

@z-tech
Copy link
Copy Markdown
Collaborator

@z-tech z-tech commented May 14, 2026

Summary

Splits the spongefish Cargo feature out of arkworks so downstream crates can consume effsc with arkworks fields but no Fiat-Shamir backend. Adds the missing VerifierTranscript blanket on spongefish::VerifierState (symmetric to the existing ProverTranscript blanket) so consumers no longer need a hand-written verifier adapter. Drops the now-redundant SpongefishTranscript wrapper struct.

Breaking change

effsc::transcript::SpongefishTranscript is removed — replace SpongefishTranscript::new(state) with the raw state (the blanket impl makes &mut ProverState<H, R> directly usable wherever &mut impl ProverTranscript<F> is expected).

Changes

  • Cargo.tomlspongefish is now its own feature (implies arkworks); arkworks no longer pulls spongefish. Promotes rand_core from a transitive to a direct dep so sanity.rs can name RngCore without going through ark-std.
  • src/transcript/mod.rs — ungates sanity; gates spongefish module on the new feature; drops the SpongefishTranscript re-export.
  • src/transcript/sanity.rsF: ark_ff::FieldF: SumcheckField, R: RngR: RngCore, F::rand(rng)F::from_u64(rng.next_u64()). Now compiles under --no-default-features.
  • src/transcript/spongefish.rs — deletes the wrapper struct and its inherent methods; adds the VerifierTranscript blanket on VerifierState<'a, H>.
  • src/coefficient_sumcheck.rs — test passes raw &mut prover_state instead of wrapping it.

Test plan

  • cargo build --no-default-features --features=arkworks succeeds; cargo tree confirms no spongefish in the dep graph
  • cargo build --no-default-features succeeds
  • cargo build (default features) succeeds
  • cargo test --all-features — 128 tests pass
  • cargo clippy --all-features --lib clean (pre-existing lints in test files unchanged)

@z-tech z-tech merged commit d37cba5 into main May 14, 2026
5 checks passed
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