Перейти к содержимому
ecdsa.com
УстаревающаяКороткая форма Вейерштрасса

alt_bn128

BN254 (alt_bn128) — подходящая для спариваний кривая Баррето — Наэрига, встроенная в прекомпилированные контракты Ethereum.

alt_bn128 — кривая в короткой форме Вейерштрасса y² = x³ + ax + b над 254-битным простым полем с 254-битной подгруппой простого порядка и кофактором 1; оценочный уровень стойкости — 100 бит. Статус: всё ещё безопасна, постепенно выводится из употребления.

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.

Названия в стандартах

СтандартНазвание
EIP-196alt_bn128
Barreto–NaehrigBN254
librariesBN256

Параметры кривой

254-битное простое поле · примерно 100-битная стойкость

Простой модуль поля p
0x30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47
Коэффициент a
0x0
Коэффициент b
0x3
Координата x базовой точки
0x1
Координата y базовой точки
0x2
Порядок n базовой точки
0x30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001
Кофактор h
0x1

Где используется

  • Ethereum precompiles (EIP-196, EIP-197)
  • Groth16 and PLONK zk-SNARKs
  • Zcash Sprout (historical)

Стандарты и ссылки

Все кривые