mirror of
https://github.com/luxfi/crypto.git
synced 2026-07-27 01:54:50 +00:00
Replace github.com/luxfi/crypto/ipa/banderwagon with the canonical github.com/luxfi/crypto/banderwagon in ipa/batch.go and its test, plus the verkle-ipa docs example and the rust spec_vectors comment. The old ipa/banderwagon subdirectory was deleted in 5a1479b; banderwagon now has a single canonical home at the top level of luxfi/crypto. go.mod adds the indirect entries for go-verkle and go-ipa that the rerouted test_helper graph now exercises. The luxfi-mirror replace directives remain in place so all upstream go-ipa/go-verkle traffic still flows through luxfi-maintained sources. Build: go build ./... clean (one ld linker warning unrelated). Tests: ./banderwagon/... ./ipa/... pass (7 ok, 2 no-test-files). Pre-existing failure in ./verkle/ is unrelated: verkle_test.go references BatchProof/VerifyBatch/ErrBatchLengthMismatch symbols that were never implemented in the verkle package (separate gap, present on main before this fix).
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 -benchmem
Security
If you find any security vulnerability, please don't open a GH issue and contact repo owners directly.
LICENSE
MIT and Apache 2.0.