🌙
EIP-1108: alt_bn128 プリコンパイルガスのコストを削減
簡単な概要
楕円曲線算術のプレコンパイルの価格が高すぎる。
イーサリアム上のプライバシーやスケーリング対策のためにプレコンパイルの価格を再設定する。
概要
- イーサリアムクライアントの操作の高速化はガスコストの削減に反映されるべき
- 2018年のGoのライブラリが変更されたことによって、alt_bn128楕円曲線上のコントラクトのパフォーマンスが向上した
- Parityクライアント(Rust実装)でも、2018年と最近のアルゴリズムの変更によって高速化した。
動機
Goのライブラリ変更
Goの公式リファレンス実装で使用されている基本ライブラリをCloudflareのbn256ライブラリに切り替えた。
これは以下のプリコンパイルのコントラクトの実装に使用されている
- ECADD
- ECMUL
- ペアリングチェック
切り替えたことによってコストが1桁減った。
※bn256
楕円曲線暗号(ECC)を実装するために使用されるペアリングフレンドリー(ペアリング操作を効率的に計算できる)な楕円曲線の一種。
※ECADD
楕円曲線加算。楕円曲線上の2つの点の加算を行って新しい点を生成する。
※ECMUL
楕円曲線乗算。打鍵曲線上の点とスカラー値の乗算を行い、新しい点を生成する。
※ペアリングチェック
楕円曲線上の点のペアに対して特定の操作を行い、ペアリング結果が一致するかどうかチェックすること。
Parityクライアントの最適化
2018年と2019年のbnライブラリの最適化によって大幅なパフォーマンス向上が達成された
仕様
Contract | Address | Current Gas Cost | Updated Gas Cost | 減少率(筆者追記) |
---|---|---|---|---|
ECADD | 0x06 | 500[1] | 150 | 70.00% |
ECMUL | 0x07 | 40,000[1] | 6,000 | 85.00% |
Pairing check | 0x08 | 80,000 * k + 100,000[2] | 34,000 * k + 45,000 | 57.50% |
※kはペアリング数
※ecrecover
プリコンパイル済みのコントラクトの1つ。楕円曲線暗号を使用して、与えられたデジタル署名から署名者のアドレスを復元する機能を提供する。
理論的根拠
既存プロトコルはより安価になった楕円曲線暗号から利益を得る
楕円曲線暗号はイーサリアム上に構築されたプロトコルの基盤となっている。
- AZTECプロトコル: 楕円曲線のプリコンパイル済みコントラクトを利用して、ゼロ知識トランザクションロジックを持つプライベートトークン構築している
- 典型的なAZTECの機密取引の暗号を検証するには820,000ガス必要だが、これが197,000になる
- Matter Labs: 500トランザクション/sのスループットを持つスケーリングソリューションであるlgnisを実装
- Rollup: 追加のコンセンサス層なしにmainnetによってトランザクションの正確性が保証されるL2スケーリングソリューションを作成する
- ZEther: 機密性のあるトランザクションを構築する
- 取引に6,000,000かかるところ1,000,000ガスになる
参照
Discussion