.github
ci: add benchmark report generation (#57)bandersnatch
precomp: use normalized extended points (#59)banderwagon
banderwagon: fix bytes uncompressed (#71)common
transcript: be less agressive with buffer initial sizeipa
improve documentation and point at infinity normalizationtest_helper
Merge banderwagon (#19)testdata
fuzz proofs & add errcheck linter (#61).DS_Store
replace bls with bandersnatch.golangci.yml
fuzz proofs & add errcheck linter (#61)go.mod
mod: update to gnark-crypto v0.13.0 (#72)go.sum
mod: update to gnark-crypto v0.13.0 (#72)LICENSE-APACHE
Create LICENSE-APACHELICENSE-MIT
Rename LICENSE to LICENSE-MITmultiproof_test.go
bench: force non-normalized Csmultiproof.go
improve documentation and point at infinity normalizationREADME.md
API and code improvements (#55)go-ipa
go-ipa is a library of cryptographic primitives for Verkle Trees.
Table of Contents
Description
go-ipa implements the Verkle Tree cryptography spec with extra optimizations.
The includes:
- Implementation of the Bandersnatch curve, and Banderwagon prime-order group.
- Pedersen Commitment for vector commitments using precomputed tables.
- Inner Product Argument prover and verifier implementations for polynomials in evaluation form.
- Multiproof prover and verifier implementations.
Usage in Verkle Tree client libraries
It's extremely important that clients using this library for Verkle Tree implementations only use the following packages:
commonfor general utility functions.banderwagonfor the prime-order group.ipafor proof generation and verification.
Do not use the bandersnatch package directly nor use unsafe functions to get into banderwagon internals. Doing so can create a security vulnerability in your implementation.
Test & Benchmarks
To run the tests and benchmarks, run the following commands:
$ go test ./...To run the benchmarks:
go test ./... -bench=. -run=none -benchmemSecurity
If you find any security vulnerability, please don't open a GH issue and contact repo owners directly.
LICENSE
MIT and Apache 2.0.