voting-circuits 0.7.0

Governance ZKP circuits (delegation, vote proof, share reveal) for the Zcash shielded-voting protocol.
Documentation
//! Share Reveal ZKP circuit (ZKP #3).
//!
//! Proves that a publicly-revealed encrypted share came from a valid,
//! registered vote commitment — without revealing which one.
//!
//! The circuit verifies 5 conditions:
//! - **Condition 1**: VC Membership (Poseidon Merkle path).
//! - **Condition 2**: Vote Commitment Integrity (ConstantLength<5> Poseidon).
//! - **Condition 3**: Shares Hash Integrity (blinded per-share commitments,
//!   then ConstantLength<16> Poseidon over the 16 commitments).
//! - **Condition 4**: Share Membership (custom mux gate).
//! - **Condition 5**: Share Nullifier Integrity (four-input Poseidon hash with
//!   round binding through `vote_commitment`).

mod builder;
mod circuit;
mod prove;

pub use builder::{build_share_reveal, ShareRevealBundle};
pub use circuit::{domain_tag_share_spend, share_nullifier_hash, Circuit, Instance, K};
pub use prove::{
    create_share_reveal_proof, share_reveal_cached_keys, share_reveal_params,
    share_reveal_proving_key, warm_share_reveal_keys,
};