zkPairing:椭圆曲线配对的 zkSNARKs_以太坊:以太坊价格今日行情实时

原文作者: ?Jonathan W., Vincent H., and Yi Sun

创作者:Skyhigh Feng

审核者:DAoctor, Yofu

原文: ?zkPairing: zkSNARKs for Elliptic Curve Pairings

配对是许多加密协议的核心组成部分。本文我们介绍circom-pairing1,一种在 Circom 用于椭圆曲线配对的 zkSNARK 电路的概念验证实现。

基于配对的密码学(Pairing-based cryptography2) (PBC)建立在一个叫做椭圆曲线配对(elliptic curve pairing3)的数学对象存在的椭圆曲线密码学(elliptic curve cryptography4)之上。虽然配对的定义相对复杂,但它们是零知识密码学现代发展的许多加密对象的基础: BLS 数字签名、 KZG 多项式承诺和 zkSNARKs。

由于 ZK 生态系统中的这个关键角色,在 zkSNARKs ?中实现配对极大地扩展了可寻址密码构造的范围,并增加了 SNARKs 的反射能力。特别是,我们设想的应用程序的ZK 身份(ZK Identity5) ,区块链扩容,和可编程的 SNARKs 。最后的“解锁”可能会带来一个未来,任何人都可以在运行中自由组合和联合不同的 SNARKs 。

Web3 DEX聚合器OpenOcean集成zkSync Era:4月27日消息,Web3 DEX 聚合器 OpenOcean 宣布已集成以太坊二层 ZK-Rollup 扩展解决方案 zkSync Era,OpenOcean 的应用程序接口(API)、软件开发包(SDK)将能在 zkSync 主网上无障碍使用,后续 OpenOcean 将进一步提升对 zkSync Era 生态系统的支持,并纳入 Limit 订单和跨链 Swap 聚合等更多功能。

OpenOcean 称在 zkSync Era 上已集成 SyncSwap、Velocore、Mute、SpaceFi、iZiSwap 和 GemSwap 等 DEX 的约 1.06 亿美元流动性,用户在 zkSync Era 上交易代币时,OpenOcean 将通过分析和比较所有可用的方式并找到最佳路线实时报价。[2023/4/27 14:31:16]

由于配对涉及许多复杂的椭圆曲线操作,在 zkSNARK 中实现它们会带来许多挑战。首先,对于非自然域上的椭圆曲线算法,我们必须使用zk-ECDSA6 的大整数和 ECC 优化,但是要适应我们的曲线和 BLS12-381的配对涉及到在域扩展上操作的事实。其次,Miller 的计算配对算法Miller's algorithm7允许在标准计算模型中进行许多优化,我们将这些优化移植到 zkSNARK ?设置中。最后,由于配对计算的复杂性,即使最终优化的电路也可能相当大,这意味着需要一些基础设施的最佳实践来适应 ?Circom ?工具栈。

数据:过去2周zkSync新增超10万桥接用户:金色财经报道, 据Dune Analytics最新数据显示,zkSync宣布主网“zkSync Era”将以无许可的方式全面开放供所有人使用后桥接用户量出现增长,本文撰写时该指标已突破80万达到800,600个,是目前桥接用户量最多的以太坊Layer 2网络,当前桥接存储总价值为245,579 ETH。

历史数据显示,zkSync桥接用户量于3月26日突破70万,这意味着过去2周新增桥接用户量超过10万。[2023/4/9 13:53:34]

在这一系列的文章中,我们提出了一个在 BLS12-381曲线上的最优 Ate 配对的概念验证 Circom 实现,以及一个在 BLS 签名验证中的应用实例。然后,我们概述了其他潜在的应用,如递归 SNARK 和多项式承诺验证,我们认为这种方法很容易推广应用。

我们实现了循环配对 circom-pairing8 代码库,它为 BLS12-3819 曲线上的以下操作提供未经审核的 ZK 电路:

Tate 配对是最简单的椭圆曲线配对之一。该算法满足双线性特性,适用于密码学领域,对椭圆曲线的计算和算法的正确实现起到了很好的检验作用。

zkSync:资金被卡合约的项目为Gemholic,已找到解决方案解冻:4月7日消息,zkSync 回应zkSync 上一项目因使用 transfer() 函数将 921 ETH 代币销售融资卡至合约中,zkSync Era 上多合一平台 Gemholic 遇到智能合约问题,资金是安全的,目前已找到一个解决方案来解冻合约,可以解决更广泛的与 Gas 相关的问题,这将需要对协议的 Gas 计量进行最小的更改,但会允许完全回收资金,将在明天发布更多详细信息。

zkSync 解释称,任何使用 transfer() 或 send() 的智能合约都严重依赖 Gas 成本(硬编码 2300 Gas),但这不能保证在以太坊上工作,fallback() 函数可以消耗超过 2300 Gas,opcode Gas 定价在以太坊的未来版本中可能会发生变化,合约将会中断。zkSync Era 不等同于 EVM,Era 有一个发散的、动态的 Gas 计量方案,允许一些交易类型比任何其他 EVM rollup 便宜 10 到 1000 倍。按照 Era 主网当前的 Gas 水平,ETH 转账将花费超过 2300 gas。这就是为什么任何没有明确 Gas stipend 的 .transfer() 调用目前都会失败的原因。zkSync 一直很清楚这个问题可能会出现,所以直接向编译器添加了关于 .transfer() 的警告。

此前,The Block 研究主管 Eden Au 表示,zkSync 上的一个项目通过代币销售筹集到 921 ETH(170 万美元),但资金会被永远卡在智能合约中。[2023/4/7 13:49:40]

最佳配对:最佳配对是实践中最常用的配对。计算类似于Tate配对(使用Miller的算法,我们将在以后的文章中讨论) ; 然而,涉及的步骤较少,而每一步的算法更加复杂,最终的结果是一个较短的总计算。

数据:zkSync桥接存储总价值突破20万枚ETH:金色财经报道,据 Dune Analytics 数据显示,以太坊 Layer2 扩容解决方案 zkSync 跨链桥接存储总价值已突破 20 万枚 ETH,截至目前达到 200,003 ETH(按照当前 ETH 价格计算超过 3.3 亿美元),参与桥接交易的用户量为 530,753 个。其他 L2 存储总价值方面,当前 Arbitrum 跨链桥存储总价值约为 211.23 万枚 ETH,Optimism 约为 46.65 万枚 ETH,StarkNet 约为 1.04 万枚 ETH。金色财经此前报道,zkSync 开发公司 Matter Labs 于去年 11 月中旬完成 2 亿美元 C 轮融资,Blockchain Capital 和 Dragonfly 共同领投。[2023/1/21 11:24:26]

BLS10 签名验证(短公钥) : 签名验证允许检查一个BLS 签名. 给定签名 s,生成元 G,公钥 xG,和哈希 hash ,验证电路转换 hash 到椭圆曲线点 H(m), ? 使用maptoG2 下面的电路,然后验证 s 确实是由给定的公钥和消息生成的签名。BLS 签名验证涉及到评估两个最优的 Ate 配对来验证这一点 e(s,G) = e(H(m), xG) , e 表示最佳的 Ate 配对

zkTube 于9月3日启动主网权益映射:据zkTube Labs最新消息:9月3日,zkTube启动主网权益映射,持有主网ZKTR令牌的用户需在9月10日之前转入最新版V1.0.9 PayTube 钱包内,参照官方教程即可完成ZKT映射。

注:PayTube钱包最新版本(V1.0.9)将9月3日提交至(IOS)APP Store与(Android) Google Play,具体最新版钱包可下载时间以服务商通过审核为准。[2021/9/3 22:56:54]

散列hash到曲线: maptoG2 的 BLS 签名验证操作通过计算椭圆曲线上的点对。正在签名的消息必须首先散列成一个数值。然后,这个散列值被转换成椭圆曲线上的一个点; 散列到曲线电路执行这种转换。

更详细的文件,我们的电路在这里可用。这些电路没有经过审核,也不打算用作生产级应用的库。

为了说明我们的电路,我们在zkpairing.xyz11 实现了一个演示,它允许用户生成任何 BLS 签名(以特定的输入格式)有效性的证明。如果用户没有一个特定的 BLS 签名他们可以指定以太坊信标链上的任何块号,并且演示会将块数据解析为适当的格式,并生成一个验证该验证者签名的证明区块。对于每个证明,我们提供所有的数据-在三个小文件中-任何人都可以用来在自己的计算机上验证证明!

所有基准测试都运行在32核3.1 GHz、256G RAM、1T 硬盘和400G 交换机(AWS r5.8 xlarge 实例)上。

请注意,验证和Tate 配对是非常大的电路,因此它们需要特殊的硬件和设置来运行。特别是,必须使用 C++ 生成见证服务器,使用 rapidsnark 进行证明,使用补丁版本的 Node.js而不使用垃圾收集生成密钥。所有这些都必须在具有大容量内存的机器上完成; 我们的设置工作流程在《大电路最佳实践》( Best Practices for Large Circuits12 )文档中有详细说明。

因为配对是许多加密协议的核心组成部分,所以用于配对计算的 zkSNARKs 允许我们将以下高级原语放入 SNARK 中:

BLS 签名验证: Boneh-Lynn-Shacham (BLS)数字签名是一种基于椭圆曲线配对的签名方案。由于能够使用 BLS 有效地计算聚合签名和阈值签名,它目前被用于区块链,如 Etherum 2.0、 ZCash ?和 ?Dfinity 。验证 BLS 签名涉及到一个配对检查,检查两个椭圆曲线配对是否相等,因此通过 zkPairing 直接启用。这解锁了潜在的可伸缩应用程序,比如轻型客户机和桥接的签名聚合。

递归 SNARK 验证: 因为 Groth16证明验证只涉及配对检查,所以 SNARK-ing 配对允许 SNARK-ing 整个验证算法,称为递归验证。这使我们能够构建一个 zkSNARK 的 zkSNARK 的... 无限广告,使开发人员能够构建不同的 SNARK 证明,而不是构建一个单一的大型 SNARK 和大大增加可能的 SNARK 的复杂性。我们正在调整我们的电路,以递归 Groth16验证 BN254,并希望在不久的将来发布一个概念证明。

KZG 多项式承诺验证: KZG 多项式承诺是 PlonK 的基础,PlonK 是具有通用可信设置的新一代 zkSNARK 之一。因为验证 KZG 承诺涉及到一个配对检查,zkSNARK-ing 配对使我们能够验证任何建立在 SNARK 中的 KZG 承诺之上的东西,包括 PlonK 验证本身!

很快就会看到第2部分讨论了 zkPairing 的实现技术!

该项目是在 ZKxZK Gitcoin 基金的支持下,在0xPARC 的 ZK 身份工作组期间构建的。

我们借鉴并分享了很多与 circom-ecdsa 相关的技术,特别是在大整数和椭圆曲线算法的优化方面。例如,我们使用 xJsnark 的大整数乘法优化。

我们也从最初的创作者 Jordi Baylina 和 snarkjs 的研究中获益匪浅。他教了我们很多关于 circom/snarkJS 工具栈的知识,并分享了很多关于如何有效地构建大型 ZK 电路的见解。

参考

https://github.com/yi-sun/circom-pairing

https://en.wikipedia.org/wiki/Pairing-based_cryptography

https://medium.com/@VitalikButerin/exploring-elliptic-curve-pairings-c73c1864e627

https://en.wikipedia.org/wiki/Elliptic-curve_cryptography

https://0xparc.org/blog/zk-id-2

https://0xparc.org/blog/zk-ecdsa-2

https://crypto.stanford.edu/pbc/notes/ep/miller.html

https://hackmd.io/@benjaminion/bls12-381

https://datatracker.ietf.org/doc/html/draft-irtf-cfrg-bls-signature-04

https://zkpairing.xyz/

https://hackmd.io/V-7Aal05Tiy-ozmzTGBYPA?view

DeFi之道

财经法学

成都链安

金色早8点

Bress

链捕手

PANews

Odaily星球日报

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

金宝趣谈

[0:15ms0-7:444ms