Skip to content

A Go implementation of cryptographic primitives for Verkle Trees

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT
Notifications You must be signed in to change notification settings

crate-crypto/go-ipa

Repository files navigation

go-ipa

go-ipa is a library of cryptographic primitives for Verkle Trees.

License Go Version

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:

  • common for general utility functions.
  • banderwagon for the prime-order group.
  • ipa for 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.