The GPC PCD is a generic proof of a configurable set of constraints about one or more POD objects. The GPCPCDClaim specifies the proof configuration, and a redacted view of the proof inputs. The GPCPCDProof contains a cryptographic proof of the validity of this proof.

The proofs supported by this PCD are not tied to a single ZK circuit, but can be generated using one of several circuits in a supported family, depending on the needs of the configuration and inputs. Picking the right circuit and formatting the inputs is handled automatically using the @pcd/gpc package.

Verifying a GPCPCD indicates that the proof config and revealed inputs match those used to generate the proof. Since GPCs are very configurable, the caller must separately check whether the proof config and revealed values properly reflect the needs of their use case. E.g. they should check that the PODs were signed by a trusted public key, and that the config matches their expectations.

Implements

Constructors

Properties

Constructors

  • Create a PCD to encapsulate the given ID and GPC info.

    Parameters

    Returns GPCPCD

Properties

Information encoded in this PCD that is intended to be consumed by the business logic of some application. For example, a type of PCD that could exist is one that is able to prove that its creator knows the prime factorization of a really big number. In that case, the really big number would be the claim, and a ZK proof of its prime factorization would go in the PCD#proof.

id: string

Uniquely identifies this instance. Zupass cannot have more than one PCD with the same id. In practice this is often a UUID generated by the PCDPackage#prove function.

A cryptographic or mathematical proof of the PCD#claim.

type: string = GPCPCDTypeName

Refers to PCDPackage#name - each PCD must come from a particular PCDPackage. By convention, this is a string like 'semaphore-identity-pcd', or 'rsa-ticket-pcd'. These type names are intended to be globally unique - i.e. no two distinct PCD types should have the same type name.

Generated using TypeDoc