zkLogin如何使加密学变得更快更安全

*本篇来自Mysten Labs官方blog,文中“我们”指代该组织。

zkLogin不仅是将更多用户引入Web3应用的一次革命性飞跃,其开发还使零知识(ZK)API变得更安全更快速。然而,开发zkLogin,Sui的OAuth认证原语,绝非易事。除了系统设计上的挑战外,还需要对外部ZK证明和加密库进行多方面的贡献。其中一些贡献在流行软件中识别和修复了错误,而其他一些则提供了速度优化和添加了新的有用功能,这些功能对其他开发人员应该也是有益的。以下是Mysten Lab密码团队做的所有贡献概要。

BLS的速度改进

Arkworks有一个Groth16 zkSNARKS的实现,它是曲线不可知的,这意味着它适用于Arkworks支持的所有椭圆曲线构造(BN254、BLS12–388、BLS12–377等)。对于特定的BLS12–388情况,我们通过使用Supranationals BLST crate中的椭圆曲线算术来优化这个实现,这是BLS12–381椭圆曲线构造的高度优化实现,而不是Arkworks自己的。将这两个库结合起来需要在它们的数据格式之间进行一些转换,但结果是实现的速度比原始的Arkworks Groth16实现快大约两倍。

修复kobi/phase2-bn254中错误并与snarkjs兼容

为了给Groth16可信设置提供软件多样性,我们提供了两种选项供仪式参与者贡献,即通过snarkjsKobi的Rust实现。我们修复了Kobi的实现中的错误,以便社区的永久性tau的权力可以被重复使用并减少到更小的尺寸,特别是我们的电路尺寸为2的20次方。我们还修改了这两个库,使生成的贡献文件与彼此兼容。我们的更改可以在Mysten Lab对这些仓库的分支(snarkjs-forkkobi的fork)中找到。

适用于任何曲线的Poseidon

Lurk Lab的Neptune库包含了zk友好的Poseidon哈希函数的快速实现。Neptune是针对BLS12–381曲线构造进行了实现和优化的,但原则上可以支持其他曲线。它比直接实现(例如poseidon-ark)更快,因为它使用了Poseidon的优化实现,在每一轮中减少了乘法的数量。

当尝试将Neptune用于另一个曲线,即BN254曲线构造时,我们注意到该实现期望用于计算Poseidon哈希的MDS矩阵是对称的,如果不是这种情况,则会产生意外结果。我们向Neptune存储库提交了此错误的修复,该修复已包含在Neptune版本13.0.0中。

升级ark-circom(现已更名为circom-compat)

Arkworks和Circom是ZK开发领域的两个主要生态系统。例如,Sui的Groth16验证是基于arkworks构建的。另一方面,circom在ZK开发人员中非常流行。我们希望为使用circom的ZK开发人员提供一种在Sui上轻松构建的方法。值得庆幸的是,大部分工作已经由开源ark-circom库的作者完成。我们通过确保与最新的arkworks 0.4.0兼容性、对circom和witness模块进行增强、纠正缓冲区类型问题以及各种外观改进,为该库做出了贡献

关于 Sui Network

Sui是基于第一原理重新设计和构建而成的L1公有链,旨在为创作者和开发者提供能够承载Web3中下一个十亿用户的开发平台。Sui上的应用基于Move智能合约语言,并具有水平可扩展性,让开发者能够快速且低成本支持广泛的应用开发。获取更多信息:https://linktr.ee/sui_apac

官网英文Twitter中文TwitterDiscord英文电报群

中文电报群

最近更新

  1. TCP协议是安全的吗?

    2024-02-21 16:14:02       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-02-21 16:14:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-02-21 16:14:02       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-02-21 16:14:02       20 阅读

热门阅读

  1. Mysql全局级别修改SQL模式的详细教程

    2024-02-21 16:14:02       33 阅读
  2. Go的闭包理解

    2024-02-21 16:14:02       28 阅读
  3. 华为配置STA双栈业务覆盖业务示例

    2024-02-21 16:14:02       31 阅读
  4. SpringBoot整理-错误处理

    2024-02-21 16:14:02       31 阅读
  5. 前端构造树算法优化

    2024-02-21 16:14:02       22 阅读
  6. 正则表达式预查寻也称断言,限定左右相邻内容

    2024-02-21 16:14:02       33 阅读
  7. QT day2

    QT day2

    2024-02-21 16:14:02      24 阅读
  8. 2.20数据结构与算法学习日记(二叉树第一部分)

    2024-02-21 16:14:02       33 阅读
  9. vitepress做自己的组件库文档

    2024-02-21 16:14:02       35 阅读