BN254 ist y² = x³ + 3 über einem 254-Bit-Primkörper und gehört zur Familie der paarungsfreundlichen Kurven von Barreto und Naehrig (2005) mit Einbettungsgrad 12. Die Paarung bildet G1 (Punkte auf dieser Kurve) und G2 (Punkte auf einem Twist über GF(p²)) nach GF(p¹²) ab – genau das brauchen Verifizierer von zk-SNARKs und aggregierte Signaturen.
Mit dem Byzantium-Upgrade (EIP-196, EIP-197) hat Ethereum Precompiled Contracts für Addition, Skalarmultiplikation und Paarungsprüfungen auf dieser Kurve eingeführt, und Verifizierer für Groth16 und PLONK auf Ethereum stützen sich auf diese Precompiles. Auch die ursprünglichen Sprout-Schaltkreise von Zcash nutzten die Kurve.
Als die Kurve ausgewählt wurde, lag ihre geschätzte Sicherheit bei 128 Bit, doch das Extended Tower Number Field Sieve (Kim und Barbulescu, 2016) senkte die Schätzung auf etwa 100 Bit (Barbulescu und Duquesne, 2019). Neuentwicklungen setzen stattdessen auf BLS12-381.