hyperproofs-go

command module
v0.0.0-...-64c8fa5 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 26, 2023 License: Apache-2.0 Imports: 14 Imported by: 0

README

Hyperproofs

Hyperproofs, the first vector commitment (VC) scheme that is efficiently maintainable and aggregatable. This repo contains the implementation of Hyperproofs in go.

This repo depends on:

  • go-mcl for elliptic curve operations.
  • kzg-go for KZG commitments.
  • gipa-go for proof aggregation.

Instructions

Software requirements
  • Install golang, python
    $ sudo apt-get install git python curl python3-pip libgmp-dev libflint-dev
    $ sudo add-apt-repository ppa:longsleep/golang-backports
    $ sudo apt-get install golang golang-go golang-doc golang-golang-x-tools
    $ pip3 install -U pip pandas matplotlib
    
  • Install mcl
    $ git clone https://github.com/herumi/mcl
    $ cd mcl/
    $ git checkout caf27db2 #herumi/mcl v1.86.0
    $ cmake -S . -B build -DCMAKE_BUILD_TYPE=Release
    $ cmake --build build
    $ sudo cmake --build build --target install
    $ sudo ldconfig
    
Hyperproofs
  1. See v1.0.0 for the USENIX 2022 version
  2. Run time bash scripts/hyper-go.sh to setup PRK, VRK, UPK, etc.
  3. Run time bash scripts/hyper-bench.sh to replicate the benchmarks reported in the paper.
    • Does not benchmark OpenAll and Commit by default. Uncomment the corresponding lines in the shell script to run the benchmarks.
  4. Copy pedersen-30-single.csv and poseidon-30-single.csv from bellman-bignat to hyperproofs-go/plots. Then, run cd plots; time python3 gen-plots.py to generate the plots.

Reference

Hyperproofs: Aggregating and Maintaining Proofs in Vector Commitments
Shravan Srinivasan, Alexander Chepurnoy, Charalampos Papamanthou, Alin Tomescu, and Yupeng Zhang
ePrint, 2021

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
All the functionalities when only pruned proof and pruned UPK tree is available.
All the functionalities when only pruned proof and pruned UPK tree is available.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL