UNPKG

@zkmpa/proof

Version:

Zero-knowledge proof generation and verification for zkMPA (Zero-Knowledge Multi-Party Approval)

50 lines 1.39 kB
import { Identity } from '@zkmpa/identity'; import { Group } from '@zkmpa/group'; export interface ZKProof { merkleTreeRoot: string; nullifier: string; message: string; scope: string; points?: bigint[]; [key: string]: any; } export interface ProofParams { identity: Identity; group: Group; message: string; scope: string; } export interface VoteProofParams extends ProofParams { proposalId: string; voteType: 'approve' | 'reject'; } export interface PublicInputs { merkleTreeRoot: string; nullifierHash: string; signalHash?: string; externalNullifier?: string; } export interface VoteInputs extends PublicInputs { voteType: 'approve' | 'reject'; proposalId: string; } export interface ProofGenerator { generateMembershipProof(params: ProofParams): Promise<ZKProof>; generateVoteProof(params: VoteProofParams): Promise<ZKProof>; } export interface ProofVerifier { verifyMembershipProof(proof: ZKProof, publicInputs: PublicInputs): Promise<boolean>; verifyVoteProof(proof: ZKProof, voteInputs: VoteInputs): Promise<boolean>; verifyProof(proof: any): Promise<boolean>; } export interface ProofResult { valid: boolean; proof?: ZKProof; error?: string; } export interface VerificationResult { valid: boolean; message?: string; details?: any; } //# sourceMappingURL=types.d.ts.map