See BLS signature demo. This page is obsolete.

library status initializing...

optimal Ate pairing over 256-bit BN curve

pairing time : 0msec
G1 scalar mul : 0msec
G2 scalar mul : 0msec

a =
b =
ab = 0
P = hashAndMapToG1() = 0
Q = hashAndMapToG2() = 0
aP = 0
bQ = 0

e(P, Q) = 0
e(aP, bQ) = 0
e(P, Q)^ab = 0

e(aP, bQ) == e(P, Q)^ab is

Fr

x =
y =
x + y =
x - y =
x * y =
x / y =
hash() =

G1

P1 = hashAndMapToG1() = 0
P2 = hashAndMapToG1() = 0

P1 + P2 =
P1 - P2 =
P1 * x =

G2

Q1 = hashAndMapToG2() = 0
Q2 = hashAndMapToG2() = 0

Q1 + Q2 =
Q1 - Q2 =
Q1 * x =