1 个不稳定版本
0.1.0 | 2019 年 7 月 11 日 |
---|
#40 in #derivation
用于 eth_pairings
20KB
485 行
状态
此 Rust 对 EIP1962 的实现已经完成大部分。当然,还可以进一步润色(例如,使其与 no_std
兼容),但大部分工作已经完成
特性
- 字段实现
- 维达曲线实现
- a = 0
- 通用情况(a ≠ 0,b ≠ 0)
- 扩展塔
- Fp2
- Fp3
- Fp4 作为 2/2
- Fp6 作为 2/3
- Fp6 作为 3/2
- Fp12 作为 2/3/2
- 配对
- BLS12 曲线族
- BN 系列
- MNT6 系列
- MNT4 系列
- 在维达形式中由 Cocks-Pinch 方法生成的曲线(Ate 配对)的 k=6
测试
- 在开发过程中(白盒测试)测试了基本属性,例如配对的二线性检查
- 在交叉检查模式下使用 C++ 和 Go 实现进行模糊测试,可以捕获任何库中的崩溃并对一致输出进行测试(用于共识目的)
- 在此类测试中,大多数检查被禁用,例如,点可以不在曲线上,因为这会使模糊器难以找到适当的测试向量。因此,此类测试覆盖了在生产环境中可能无法覆盖的更多边缘情况
EIP1962 的文档
请参阅 文档文件夹 以获取完整描述和关于 EIP 的唯一信息来源
原始提案
原始 EIP 在 此处
贡献者
- Kobi Gurkan, [email protected]
可咨询和使用的资源
依赖项
~2.5MB
~60K SLoC