#elliptic-curve #finite-fields #math #scalar-field

no-std ark-bn254

BN254配对友好的椭圆曲线

6个版本 (3个破坏性)

0.5.0-alpha.02024年6月20日
0.4.0 2023年1月17日
0.4.0-alpha.22022年12月28日
0.4.0-alpha.12022年11月29日
0.2.0 2021年3月25日

#1074加密学

Download history 48001/week @ 2024-05-02 50592/week @ 2024-05-09 48587/week @ 2024-05-16 44035/week @ 2024-05-23 51695/week @ 2024-05-30 52035/week @ 2024-06-06 54810/week @ 2024-06-13 56017/week @ 2024-06-20 51089/week @ 2024-06-27 45674/week @ 2024-07-04 47960/week @ 2024-07-11 49941/week @ 2024-07-18 57217/week @ 2024-07-25 68355/week @ 2024-08-01 63746/week @ 2024-08-08 46353/week @ 2024-08-15

244,748 每月下载量
用于 1,301 个crate (62 个直接)

MIT/Apache

620KB
13K SLoC

此库实现了作为[BCTV14]论文一部分采样的BN254曲线。名称表示这是一个嵌入度为12的Barreto--Naehrig曲线,定义在254位(素数)域上。标量场高度2-adic。

此曲线也在libff中以bn128的名称实现。它与在以太坊中使用的bn256曲线相同(例如:go-ethereum)。

**注意**:此曲线不再满足128位安全级别。

曲线信息

  • 基域:q = 21888242871839275222246405745257275088696311157297823662689037894645226208583
  • 标量域:r = 21888242871839275222246405745257275088548364400416034343698204186575808495617
  • valuation(q - 1, 2) = 1
  • valuation(r - 1, 2) = 28
  • G1曲线方程:y^2 = x^3 + 3
  • G2曲线方程:y^2 = x^3 + B,其中
    • B = 3/(u+9) where Fq2 is represented as Fq[u]/(u^2+1) = Fq2(19485874751759354771024239261021720505790618469301721065564631296452457478373, 266929791119991161246907387137283842545076965332900288569378510910307636690)

依赖关系

~3.5–5MB
~90K SLoC