This repository contains zksnark constarint systems for twisted edwards curve point addition, point multiplication, eddsa signature verification and pedersen commitments. As well as python scripts for test case generation.
This is a naive implmentaion and considerable optimizations are possible.
get dependencies git submodule update --init --recursive
mkdir build
cd build
cmake .. && make
Start your preferred ethereum node, cd tests
and run python3 test*
will generate all the
test variables that you can confirm in src/main.cpp
You can run the test after building by
cd build
./src/main
Lecture 16 and [Lecture 17] (https://www.youtube.com/watch?v=zTt4gvuQ6sY) of this course should help you get a good understanding of the basics of what we are doing here. . . . . .
- run generator.cpp main() from root -- generates pk, vk and pvk in libsnark format and vk.json in keys/ folder
python3 tests/test_eddsa.py
from root generateskeys/signature
files with a signature- run prover.cpp main() creates and verifies the proof using keys/signature for public and private inputs
- ...