package
1.8.9
Repository: https://github.com/celo-org/celo-blockchain.git
Documentation: pkg.go.dev

# README

BLS12-377 Implementation in Go

This library is adapted from BLS12-381 implementation

Pairing Instance

A Group instance or a pairing engine instance is not suitable for concurrent processing since an instance has its own preallocated memory for temporary variables. A new instance must be created for each thread.

Base Field

x86 optimized base field is generated with kilic/fp and for native go is generated with goff. Generated codes are slightly edited in both for further requirements.

Scalar Field

Standart big.Int module is currently used for scalar field elements. x86 optimized faster field implementation is planned to be added.

Benchmarks

on 2.3 GHz i7

BenchmarkPairing  1089696 ns/op

# Functions

NewG1 constructs a new G1 instance.
NewG2 constructs a new G2 instance.
NewGT constructs new target group instance.
NewPairingEngine creates new pairing engine instance.

# Constants

No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author

# Variables

No description provided by the author
No description provided by the author

# Structs

Engine is BLS12-381 elliptic curve pairing engine.
G1 is struct for G1 group.
G2 is struct for G2 group.
GT is type for target multiplicative group GT.

# Type aliases

E is type for target group element.
PointG1 is type for point in G1.
PointG2 is type for point in G2.