A BN254 é y² = x³ + 3 sobre um primo de 254 bits, da família de curvas amigáveis a emparelhamentos de Barreto e Naehrig (2005) com grau de mergulho 12. O emparelhamento dela leva G1 (pontos desta curva) e G2 (pontos em uma torção sobre GF(p²)) a GF(p¹²), e é disso que precisam os verificadores de zk-SNARKs e as assinaturas agregadas.
O Ethereum adicionou contratos pré-compilados para adição, multiplicação escalar e verificações de emparelhamento nesta curva na atualização Byzantium (EIP-196, EIP-197), e os verificadores Groth16 e PLONK no Ethereum dependem desses pré-compilados. Os circuitos originais do Zcash Sprout também a usavam.
A segurança dela era estimada em 128 bits quando foi escolhida, mas o crivo de campo numérico em torre estendido (Kim e Barbulescu, 2016) reduziu a estimativa para cerca de 100 bits (Barbulescu e Duquesne, 2019). Projetos novos usam a BLS12-381 em vez dela.