BN254 — кривая y² = x³ + 3 над 254-битным простым полем из семейства подходящих для спариваний кривых Баррето и Наэрига (2005) со степенью вложения 12. Её спаривание отображает G1 (точки этой кривой) и G2 (точки скручивания над GF(p²)) в GF(p¹²) — именно это нужно для проверки доказательств zk-SNARK и для агрегированных подписей.
С обновлением Byzantium (EIP-196, EIP-197) в Ethereum появились прекомпилированные контракты для сложения, умножения на скаляр и проверки спариваний на этой кривой, и на них опираются контракты проверки доказательств Groth16 и PLONK в Ethereum. Эту кривую использовали и первоначальные схемы Sprout в Zcash.
Когда кривую выбирали, её стойкость оценивали в 128 бит, но расширенный башенный метод решета числового поля (Ким и Барбулеску, 2016) снизил оценку примерно до 100 бит (Барбулеску и Дюкен, 2019). В новых разработках вместо неё используют BLS12-381.