Environment
Understanding which Verifiable Data Processing Environment (VDPE) is right for you depends on your use case.
- The IC VDPE is designed for rapid data processing on a public replicated compute network. This means that data cannot be sensitive, or private in nature as it’s shared to a network of node operators (ie. The Internet Computer).
- The ZK VDPE is designed for private data processing. This means that data can be sensitive, or private in nature as it’s processed within a zkVM. The tradeoff is that ZK Proving times are typically 40 seconds or more on GPU-accelerated hardware, and can be north of an hour on CPU-only hardware.
If you have an enterprise use case, and require additional hands on support to determine how best to utilise Verity, please contact Usher Labs for support.
IC VDPE
If you have chosen the IC as the VDPE, then the ic
module is the most important for you.
verify-remote
or verify-local
modules.The IC-ADC repository offers the best reference implementation for Developers choosing public replicated compute as their VDPE.
Within the IC-ADC, we can observe sections of code that illustrate the verification process entirely within the IC. To review a walkthrough of the IC-ADC implementation, please refer to the IC-ADC Implementation page.
ZK VDPE
If you have private or sensitive data that you must retain full data privacy over, even during data processing, and TLS proof redactions are not enough, then the ZK VDPE is the most appropriate choice for you.
Here, we will be using the verify-remote
and verify-local
modules.
- The
verify-remote
allows the host environment to prepare and optimise TLS proofs on remote replicated compute for compatibility with our zkVM. We extract and verify only public facets of the TLS proofs to do this. - The
verify-local
operates within the zkVM. With our prepared remote proof, we can present the TLS proof, and the remote prepared proof to the zkVM, and verify using theverify-local
module.
The Verity DP Framework repo includes a full zkTLS demo, where ZK VDPE is used. Furthermore, the X (Twitter) NFTs prediction market mini-game is an active working example of this same approach to implementing Verity.
To review a walkthrough of the zkTLS implementation, please refer to the zkTLS Implementation page.