本文へスキップ
ecdsa.com
許容短縮ワイエルシュトラス形式

BLS12-381

BLS12-381 は、Ethereum のコンセンサスレイヤー、Zcash、Filecoin で使われているペアリングフレンドリー曲線です。

BLS12-381 は、381 ビットの素体上の短縮ワイエルシュトラス形式の曲線 y² = x³ + ax + b で、位数が 255 ビットの素数である部分群とコファクター 76329603384216526031706109802092473003 を持ちます。推定セキュリティレベルは 117 ビットです。ステータス:安全(ただし地域限定またはニッチな用途向け)。

BLS12-381 は埋め込み次数 12 の Barreto–Lynn–Scott 曲線で、2017年に Sean Bowe が Zcash のために設計しました。G1 は 381 ビットの素数上の y² = x³ + 4 で、G2 は GF(p²) 上のツイスト曲線上にあり、どちらも 255 ビットの素数位数の部分群を使います。BN254 を弱めた数体ふるい法の改良を踏まえ、安全性は約 117〜120 ビットと見積もられています。

Ethereum のプルーフ・オブ・ステークのコンセンサスでは、この曲線上の BLS 署名(draft-irtf-cfrg-bls-signature)でアテステーションに署名するため、数千の署名を 1 つに集約できます。また EIP-2537 は、実行レイヤーにこの曲線用のプリコンパイルを追加します。Zcash Sapling、Filecoin、drand の乱数ビーコンもこの曲線を使っています。

G1 のコファクターは大きい(上記の h)ため、実装では受け取った点を使う前に、その点が素数位数の部分群に属していることを確認しなければなりません。

規格での名称

規格名称
draft-irtf-cfrg-pairing-friendly-curvesBLS12-381
EIP-2537BLS12_381

ドメインパラメーター

381 ビットの素体 · 約 117 ビットセキュリティ

有限体の素数 p
0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffaaab
係数 a
0x0
係数 b
0x4
ベースポイントの x 座標
0x17f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb
ベースポイントの y 座標
0x8b3f481e3aaa0f1a09e30ed741d8ae4fcf5e095d5d00af600db18cb2c04b3edd03cc744a2888ae40caa232946c5e7e1
ベースポイントの位数 n
0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001
コファクター h
0x396c8c005555e1568c00aaab0000aaab

採用例

  • Ethereum consensus (BLS signatures)
  • Ethereum precompiles (EIP-2537)
  • Zcash Sapling
  • Filecoin
  • drand

規格と参考文献

すべての曲線