This repository contains the base library for the ZkFold project. It includes the zkFold Symbolic compiler and a number of zero knowledge proof protocols. The compiler translates a subset of Haskell into arithmetic circuits, which can be used to generate zero knowledge proofs.
The zkFold Symbolic language can be utilized to create zero-knowledge smart contracts and privacy-preserving applications.
User documentation can be found at docs.zkfold.io.
If you want to contribute to the project or find out how it works "under the hood", check out package documentation on Hackage.
The package compiles with GHC 9.6.3 and Cabal 3.10.2.1.
To run the tests, execute
cabal run -- zkfold-base-test
The examples
folder contains several code examples of arithmetizable pure functions. These examples can be compiled into the arithmetic circuits with the zkFold Symbolic compiler. In order to do it, execute
cabal run -- zkfold-base-examples
The output is placed into the compiled_scripts
folder.