1
0
Fork 0
mirror of synced 2025-09-23 12:18:44 +00:00
A toolbox for zkSNARKs on Ethereum
Find a file
2018-02-26 19:52:28 +01:00
examples Merge fixes and example extensions from master. 2018-02-13 17:46:53 +01:00
lib fix rust and cpp warnings 2018-02-15 21:37:37 +01:00
src add expected, change witness to btree 2018-02-26 11:48:25 +01:00
templates Contract renamed 2017-10-30 09:55:54 +01:00
tests read arguments from json, walk folder to run tests 2018-02-26 19:52:28 +01:00
.dockerignore Add Sub to R1CS; Add Dockerfile 2017-02-01 17:24:44 +01:00
.gitignore add .DS_Store to gitignore 2018-02-26 11:49:35 +01:00
build.rs upgrade rust to 2018-02-10, adjust C build 2018-02-13 00:14:42 +01:00
Cargo.lock read arguments from json, walk folder to run tests 2018-02-26 19:52:28 +01:00
Cargo.toml read arguments from json, walk folder to run tests 2018-02-26 19:52:28 +01:00
Dockerfile remove nolibsnark flag 2018-02-15 21:41:46 +01:00
README.md Add Gitter badge 2017-11-09 09:59:27 +00:00

ZoKrates

Join the chat at https://gitter.im/ZoKrates/Lobby

Zokrates is a toolbox for zkSNARKs on Ethereum.

This is a proof-of-concept implementation. It has not been tested for production.

Using ZoKrates

ZoKrates provides a command line interface. To see an overview of the available subcommands, run

./zokrates

Example

To execute the program, perform the setup for the program, generate a proof

def add(a, b, c):
  return a + b + c

with add(1, 2, 3), call

./zokrates compile -i 'add.code_path'
./zokrates compute-witness -a 1 2 3
./zokrates setup
./zokrates generate-proof
./zokrates export-verifier

Building

Currently needs to be build with nightly Rust.

Example usage:

docker build -t zokrates .
docker run -ti zokrates /bin/bash
cd ZoKrates
./target/release/zokrates compile -i examples/add.code

Without libsnark

Build with the feature nolibsnark

cargo build --features nolibsnark

Environment Variables

Set the libsnark library path in LD_LIBRARY_PATH

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib

Testing

Run normal tests with

cargo test

and run long and expensive tests with

cargo test -- --ignored