Updated 433 days ago

zkFold

Unlock Cardano smart contract true potential with zero-knowledge proofs!

  • Crypto / Web3
  • Cardano
  • L2
  • Infra / API
  • ZK

zkFold is a new scaling solution for Cardano based on zero-knowledge proofs (ZKPs). We have an extensive roadmap with four key points (products):

  1. zkWrapper
  2. Validium Rollups
  3. Zero-knowledge Rollups
  4. Sidechain data compression

For this Hackathon’s submission, we are happy to present you with our first product: zkWrapper. We have devised a detailed development plan and built early prototypes of some of its components.

zkWrapper is a developer tool that turns any Untyped Plutus Core (UPLC) script into a zero-knowledge version of it (i.e., the zk-wrapped script). This tool unlocks the following features for Plutus smart contract developers:

  • No script length limit. Normally, UPLC scripts are limited by the Cardano transaction size (currently, 16KB).
  • No CEK execution budget limit. The original script execution happens off-chain. The zk-wrapped script only checks the proof of execution, which requires a fixed amount of ExUnits.
  • No redeemer size limit. Redeemers are the input data to Plutus scripts. We supply short polynomial commitments to the zk-wrapped scripts instead of the actual data. This allows us to circumvent the Cardano transaction size limit.
  • No datum size limit. Similarly to redeemers, polynomial commitments (or hashes) can be used in datums to reduce the overall transaction size. The difference is that datums usually also contain public data that is critical for determining the on-chain state of the smart contract. This public data cannot be hashed without changing the smart contract trust model (data availability problem).

During the Hackathon, we zeroed in on the tools, frameworks, and algorithms we will be using for the project and developed early prototypes of the UPLC verification arithmetic circuit and ZKP witness generation tool. See the zkWrapper webpage for more details.