BLS12-381 pairing-friendly 曲线

Posted mutourend

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了BLS12-381 pairing-friendly 曲线相关的知识,希望对你有一定的参考价值。

1. 引言

Pairing-based cryptography已发展了数十年,可用于:

paring-friendly椭圆曲线应具有:

  • 合适的embedding degree
  • 大的prime-order subgroup

同时满足以上2个要求的椭圆曲线比较稀有,根据2006年论文 A TAXONOMY OF PAIRING-FRIENDLY ELLIPTIC CURVES 可知,现有的pairing-friendly曲线族主要有:

作为ZCash Sapling升级的基石,ZCash团队Sean Bowe 2017年设计实现了一种新的 pairing-friendly 椭圆曲线——BLS12-381,其针对zk-SNARKs优化,并具有128-bit security level。

“下一代”可扩展区块链协议的激增,使得生成可高效聚合或轻松阈值化的短数字签名变得尤为重要。BLS12-381的特性经常使其成为这些协议的首选曲线。BLS12-381目前已广泛用于以下项目的数字签名和Zero-Knowledge Proof(ZKP)方案中:

  • ZCash
  • Ethereum 2.0
  • Skale
  • Algorand
  • Dfinity
  • Chia
  • 等等

详细代码实现可参看:

1.1 Barreto-Naehrig curves

Barreto-Naehrig(BN) curves为a class of paring-friendly 椭圆曲线,即base field为 F q \\mathbbF_q Fq,order为 r r r r ≈ q r\\approx q rq。当 q ≈ 2 254 q\\approx 2^254 q2254时,根据Kim–Barbulescu variant of the Number Field Sieve to compute discrete logarithms in finite fields以及 2016年论文 Challenges with Assessing the Impact of NFS Advances on the Security of Pairing-based Cryptography,其安全性约为110 bits。

可构建目标为128-bit安全性的新BN曲线,需 q ≈ 2 384 q\\approx 2^384 q2384。但,更大的group order r r r值,会损害zk-SNARK以及MPC方案中所需的multi-exponentiation、fast fourier transforms等密码学操作计算性能。

1.2 Barreto-Lynn-Scott curves

Barreto-Lynn-Scott curves(BLS)为相对更老的pairing-friendly curves class,但似乎更有助于实现目标安全级别。取 q ≈ 2 384 q\\approx 2^384 q2384,embedding degree为 12 12 12(即 r ∣ ( q 12 − 1 ) r|(q^12-1) r(q121)),可命中128-bit安全级别,其group order为 r ≈ 2 256 r\\approx 2^256 r2256,从而可避免在更大的scalar field中的性能和可用性缺陷。

2. BLS12-381

在zk-SNARK方案中,需要基于scalar field F r \\mathbbF_r Fr操作非常大的多项式。为高效进行multi-point evaluation和interpolation with fast fourier transforms,要求 F r \\mathbbF_r Fr具有large 2 s 2^s 2s root of unity。

根据2012年论文Implementing Pairings at the 192-bit Security Level,想设计具有optimal extension field towers以及simple twisting isomorphisms,并确保Montgomery reductions以及其他approximation算法是space-efficient的,取 r ≈ 2 255 r\\approx 2^255 r2255,使得以64-bit limbs表示时, r r r q q q的最高有效位为unset。

同时,为针对pairing性能优化,要求所设计的BLS曲线的参数具有low Hamming weight。从而最终选中了BLS12-381曲线,其 q ≈ 2 381 q\\approx 2^381 q2381

u = -0xd201000000010000

k = 12

q = 0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffaaab

r = 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001

E(Fq) := y^2 = x^3 + 4

Fq2 := Fq[i]/(x^2 + 1)

E'(Fq2) := y^2 = x^3 + 4(i + 1)

参考资料

[1] BLS12-381 For The Rest Of Us
[2] BLS12-381: New zk-SNARK Elliptic Curve Construction

附录A:椭圆曲线密码学入门资料

关于椭圆曲线密码学的入门资料,可参看ANDREA CORBELLINI系列文章:

附录B:基于pairing的密码学入门资料

基于pairing的密码学入门资料有:

以上是关于BLS12-381 pairing-friendly 曲线的主要内容,如果未能解决你的问题,请参考以下文章

零知识证明BLS12-381介绍译文

BLS12-381 pairing-friendly 曲线

BLS12-381 pairing-friendly 曲线

以太坊matter-labs bellman代码解析

理解 BLS 签名算法

优化EVM中的BLS多重签名