BN254 es y² = x³ + 3 sobre un primo de 254 bits, de la familia de curvas aptas para emparejamientos de Barreto y Naehrig (2005) con grado de inmersión 12. Su emparejamiento lleva G1 (puntos de esta curva) y G2 (puntos de una curva torcida sobre GF(p²)) a GF(p¹²), que es lo que necesitan los verificadores de zk-SNARK y las firmas agregadas.
Ethereum añadió en la actualización Byzantium (EIP-196, EIP-197) contratos precompilados para la suma, la multiplicación escalar y las comprobaciones de emparejamiento sobre esta curva, y los verificadores Groth16 y PLONK de Ethereum dependen de estos precompilados. Los circuitos Sprout originales de Zcash también la usaban.
Cuando se eligió, su seguridad se estimaba en 128 bits, pero la criba del campo de números en torre extendida (Kim y Barbulescu, 2016) rebajó la estimación a unos 100 bits (Barbulescu y Duquesne, 2019). Los diseños nuevos usan BLS12-381 en su lugar.