zero-knowledge validity proofs