Semacaulk
Semacaulk is a custom prover and verifier of set membership proofs which uses an on-chain polynomial commitment to enable cheap insertions, and techniques which make verification no more expensive than verifying a Groth16 proof.
For more information, please refer to this document. More documentation will be written and released soon.
Quick start
-
Install Rust using these instructions.
-
Install Foundry using these instructions.
-
Clone this repository.
git clone https://github.com/geometryresearch/semacaulk.git && \
cd semacaulk
- Build the contracts
./build_contracts.sh
- Run tests
cargo test
Documentation
We use mdbook v0.4.25 for documentation.
Install mdbook using these
instructions.
To build the Semacaulk documentation, run this in the Semacaulk project root:
mdbook serve ./docs
Demo
The Powers of Tau output from Hermez Network (11.ptau) is already in the
repository. To run a demo of Semacaulk with a maximum capacity of 2 ^ 11 = 2048, first build the demo executable:
cargo build --release
Run the demo:
./target/release/demo 11 11.ptau
To run a demo with a different maximum capacity, download a larger .ptau file and specify the log 2 of the desired maximum capacity:
./target/release/demo 16 12.ptau
A future release will integrate implement the functionality of
export-ptau-points into the setup executable, so a separate step will not
be needed.
Documentation
We use mdbook v0.4.25 for documentation To build the documentation, navigate
to the docs directory and run:
mdbook serve