Skip to content
ecdsa.com
AcceptableShort Weierstrass

BLS12-381

BLS12-381 is the pairing-friendly curve of Ethereum's consensus layer, Zcash and Filecoin.

BLS12-381 is a short Weierstrass curve y² = x³ + ax + b over a 381-bit prime field with a 255-bit prime-order subgroup and cofactor 76329603384216526031706109802092473003; its estimated security level is 117 bits. Status: secure, but regional or niche.

BLS12-381 is a Barreto–Lynn–Scott curve with embedding degree 12, designed by Sean Bowe for Zcash in 2017. G1 is y² = x³ + 4 over a 381-bit prime, G2 lives on a twist over GF(p²), and both use a 255-bit prime-order subgroup. Its security is estimated at about 117–120 bits after the number field sieve improvements that weakened BN254.

Ethereum's proof-of-stake consensus signs attestations with BLS signatures on this curve (draft-irtf-cfrg-bls-signature), so thousands of signatures aggregate into one, and EIP-2537 adds precompiles for it to the execution layer. Zcash Sapling, Filecoin and the drand randomness beacon use it too.

G1's cofactor is large (h above), so implementations must check that received points lie in the prime-order subgroup before using them.

Names in standards

StandardName
draft-irtf-cfrg-pairing-friendly-curvesBLS12-381
EIP-2537BLS12_381

Domain parameters

381-bit prime field · about 117-bit security

Field prime p
0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffaaab
Coefficient a
0x0
Coefficient b
0x4
Base point x
0x17f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb
Base point y
0x8b3f481e3aaa0f1a09e30ed741d8ae4fcf5e095d5d00af600db18cb2c04b3edd03cc744a2888ae40caa232946c5e7e1
Order n of the base point
0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001
Cofactor h
0x396c8c005555e1568c00aaab0000aaab

Used in

  • Ethereum consensus (BLS signatures)
  • Ethereum precompiles (EIP-2537)
  • Zcash Sapling
  • Filecoin
  • drand

Standards and references

All curves