Skip to content

Public ZSA testnet still verifies with the pre-fix Orchard circuit (halo2_gadgets < 0.5 soundness advisory) #164

Description

@0xpierre-dev

Hi! An observation from building against the public testnet, and a question about redeploy plans.

What we observed

The halo2_gadgets soundness advisory (missing copy constraint in variable-base scalar multiplication) is fixed in 0.5, and your current zsa1 lines already pin it:

Repo Rev Requires
QED-it/librustzcash @ zsa1 c5c232db patches orchard to cf801a5d
QED-it/orchard cf801a5d (0.14.0) halo2_gadgets = "0.5"
QED-it/halo2 ef3d0ba2 gadgets 0.5.0 (fixed circuit)

We migrated our client stack onto exactly that set: Cachet, a browser prover and verifiable registry for ZSA, live at cachetzec.com. It compiles cleanly and all tests pass, but proofs from the fixed circuit are rejected by the deployed consensus:

  • our regtest node (zebra-regtest-txv6, built from 2b036fd6) rejects them with could not validate orchard proof
  • dev.zebra.zsa-test.net (Zebra 4.2.0) accepted our old-circuit proofs as recently as yesterday, so it verifies with the pre-fix key too

Which makes sense: the soundness fix changes the verifying key, so it is a consensus change, and no client can ship it unilaterally.

Questions

  1. Is a testnet redeploy on the fixed circuit planned, and roughly when?
  2. Would it be a chain reset (rules enforced from genesis, as at launch)?

Our migration branch is ready and tracked in cachet-zec/cachet#3. Happy to test against a new network the day it exists.

Note

Adjacent question: is a rebase of the ZSA branches onto the current trait generation (ff 0.14) on the roadmap? That is what would let browser provers pick up Zakura Common's speedups by changing version pins.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions