#pairing #eip1962 #big #integer #representation #derivation #fixed

eth_pairings_repr_derive

固定大小大整数表示推导宏

1 个不稳定版本

0.1.0 2019 年 7 月 11 日

#40 in #derivation


用于 eth_pairings

Apache-2.0

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 在 此处

贡献者

可咨询和使用的资源

依赖项

~2.5MB
~60K SLoC