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

中文电报群

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/2808885.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

全网唯一基于共享内存的C++ RPC框架

首先声明:我不是标题党,我是在找遍全网,没有找到一个基于共享内存实现、开源且跨平台的C RPC框架之后,才着手开发的这个框架。 项目地址:https://github.com/winsoft666/veigar 1. Veigar Veigar一词来源于英雄联盟里…

彩虹全新 SUP 模板,卡卡云模板修复版

彩虹全新 SUP 模板,卡卡云模板,首页美化,登陆页美化,修复了 PC 端购物车页面显示不正常的问题。下载地址:彩虹全新 SUP 模板.zip 模板截图

vscode 设置打开中断的默认工作目录/路径

vscode 设置打开终端的默认工作目录/路径** 文章目录 vscode 设置打开终端的默认工作目录/路径**打开vscode,打开设置UI 或是设置JSON文件,找到相关设置项方式1:通过打开settings.json的UI界面 设置:方式2:通过打开设置settings.j…

音视频开发之旅(69)-SD图生图

目录 1. 效果展示 2. ControlNet介绍 3. 图生图流程浅析 4. SDWebui图生图代码流程 5. 参考资料 一、效果展示 图生图的应用场景非常多,比较典型的应用场景有风格转化(真人与二次元)、线稿上色、换装和对图片进行扩图等,下面…

【前沿热点视觉算法】-RGB-D显著目标检测的边缘感知多模态变压器

计算机视觉算法分享。问题或建议,请文章私信或者文章末尾扫码加微信留言。 1 论文题目 RGB-D显著目标检测的边缘感知多模态变压器 2 论文摘要 RGB-D显著目标检测(SOD)近年来引起了广泛的关注。特别是,变压器已被使用,并…

vmware安装centos 7.9 操作系统

vmware安装centos 7.6 操作系统 1、下载centos 7.9 操作系统镜像文件2、安装centos 7.9 操作系统3、配置centos 7.6 操作系统3.1、配置静态IP地址 和 dns3.2、查看磁盘分区3.3、查看系统版本 1、下载centos 7.9 操作系统镜像文件 本文选择centos 7.9 最小化安装镜像包 这里选…

C++ //练习 8.7 修改上一节的书店程序,将结果保存到一个文件中。将输出文件名作为第二个参数传递给main函数。

C Primer(第5版) 练习 8.7 练习 8.7 修改上一节的书店程序,将结果保存到一个文件中。将输出文件名作为第二个参数传递给main函数。 环境:Linux Ubuntu(云服务器) 工具:vim 代码块 /********…

pthread_cond_timedwait()函数

绝对时间:相对于1970年1月1日0时0分0秒 相对时间:相对于当前时间,如sleep(3);相对于当前,过3s.

RK3568平台开发系列讲解(Linux系统篇)字符设备驱动:主设备和次设备

🚀返回专栏总目录 文章目录 一、主设备和次设备的概念二、设备号的分配和释放沉淀、分享、成长,让自己和他人都能有所收获!😄 字符设备通过字符(一个接一个的字符)以流方式向用户程序传递数据,就像串行端口那样。字符设备驱动通过/dev目录下的特殊文件公开设备的属性和…

STM32单片机基本原理与应用(八)

温度传感器实验 实验内容: 单片机通过代码模拟1-Wire总线并对DS18B20进行读写,并在TFTLCD屏幕上显示当前实时温度。 电路原理图: 1-Wire总线 1-Wire总线:即单总线协议,采用单根信号线,既传输时钟&#…

模型 OIIC(目标、障碍、洞察、挑战)

系列文章 分享 模型,了解更多👉 模型_总纲目录。沟通方案工具。 1 OIIC(目标、障碍、洞察、挑战)模型的应用 1.1 OIIC 驱动的汽车配件渠道优化 一家知名的汽车配件制造商,旗下品牌拥有众多产品,其销售渠道广泛,不仅在…

USB Micro引脚及相应原理图绘制

前言:博主为实现绘制USB Micro输入口原理图,首先在 GD32F103XX的数据手册中找到引脚的功能描述,找到USBDM与USBDP功能,分别为引脚PA11与引脚PA12。然后进行相应的原理图绘制。 * USBDM。USBDM 引脚是与通用串行总线 (Universal Se…

GPT Pilot - 编写 95% 代码的开发工具!

在这篇博客介绍了GPT-pilot的研发细节,原作者将探讨GPT Pilot的技术内核 —— 一款基于GPT-4编写的开发工具,可以生成生产使用代码的应用。 你有没有想过,95%的应用代码,可以由AI编写,就像《钢铁侠》里的贾维斯一样&a…

人工智能在测绘行业的应用与挑战

目录 一、背景 二、AI在测绘行业的应用方向 1. 自动化特征提取 2. 数据处理与分析 3. 无人机测绘 4. 智能导航与路径规划 5. 三维建模与可视化 6. 地理信息系统(GIS)智能化 三、发展前景 1. 技术融合 2. 精准测绘 3. 智慧城市建设 4. 可…

ElasticSearch之bool多条件查询

写在前面 在实际的业务场景中,不可能只是简单的单值查询 ,更多的是n个条件的综合查询,就像下面的搜索: 针对这种场景我们就需要依赖于bool查询了,本文就一起来看下这部分的内容。 1:bool查询介绍 bool查…

推荐Miaoo朋友圈程序全开源版源码

Miaoo朋友圈的全开源程序源码提供了一套完整的解决方案,允许用户在前台轻松发布图文、视频和音乐内容。同时,用户可以设置地理位置信息,或者选择自定义位置。此外,系统支持将发布的内容设置为广告模式,并通过站内消息或…

RK3568平台开发系列讲解(Linux系统篇)字符设备驱动:分配和注册字符设备

🚀返回专栏总目录 文章目录 一、分配和注册字符设备二、file_operations沉淀、分享、成长,让自己和他人都能有所收获!😄 一、分配和注册字符设备 字符设备在内核中表示为struct cdev的实例。在编写字符设备驱动程序时,目标是最终创建并注册与struct file_operations关联…

【海贼王的数据航海:利用数据结构成为数据海洋的霸主】顺序表

目录 1 -> 线性表 2 -> 顺序表 2.1 -> 概念及结构 2.2 -> 接口声明 2.3 -> 接口实现 2.3.1 -> 初始化 2.3.2 -> 销毁 2.3.3 -> 检查 2.3.4 -> 打印 2.3.5 -> 尾插 2.3.6 -> 头插 2.3.7 -> 尾删 2.3.8 -> 头删 2.3.9 ->…

C习题001:顺子日期【仅供参考】

题目:小明特别喜欢顺子。顺子指的是连续的三个数字:123、456等。顺子日期指的就是在日期的yyyymmdd表示法中,存在任意连续的三位数是一个顺子的日期。例如20220123就是一个顺子日期,因为它出现了一个顺子:123&#xff…

Langchain-Chatchat部署总结

项目地址: https://github.com/chatchat-space/Langchain-Chatchat 整体安装比较方便,在阿里云购买云主机,购买的国外站点机器, 该项目运行最佳坏境为 Linux Ubuntu 22.04.5Python 版本 3.11.7CUDA 版本: 12.1torch2.1.2 使…