×
Array
(
[fid] => 6980
[description] =>
[password] =>
[icon] =>
[redirect] =>
[attachextensions] =>
[creditspolicy] => Array
(
[post] => Array
(
[usecustom] => 1
[cycletype] => 1
[cycletime] => 0
[rewardnum] => 75
[extcredits1] => 0
[extcredits2] => 0
[extcredits3] => 0
[extcredits4] => 0
[extcredits5] => 0
[extcredits6] => 0
[extcredits7] => 0
[extcredits8] => 0
[rid] => 1
[fid] => 6980
[rulename] => 发表主题
[action] => post
[fids] => 32,52,67,447,1120,1151,1156,6750,6762,6763,6766,6769,6772,6773,6787,6796,6808,6809,6810,6813,6814,6820,6829,6830,6846,6856,6864,6865,6827,6930,6931,6776,6858,6880,6764,6932,6871,6758,6905,1116,6788,6812,6798,6736,6759,6842,6966,6767,6828,6924,6935,6936,6938,6940,6941,6826,6909,6803,6919,6911,6908,6881,6920,6912,6913,6921,6925,6922,6789,6818,6819,6872,6928,6969,6889,6888,6917,6939,6947,6961,6937,6943,6970,6869,6900,6902,6783,6817,1111,6870,6821,6951,6876,6952,6954,6960,6942,6910,6949,6962,6963,6964,6927,6926,6973,6728,6929,6874,6894,6896,6885,6857,6868,1113,6778,56,6844,6878,6802,6933,6811,6923,6877,6875,6918,6892,6757,6832,6833,6795,6793,6848,6837,6849,6850,6851,6852,6853,6854,6863,6882,6836,6790,6838,6794,6791,6873,555,6895,6934,6958,6944,6945,6907,6779,6886,6950,6904,6956,6862,6957,6855,6955,6959,6914,6965,6971,6972,6953,6975,6976,6799,6974,6824,6815,6891,6866,6979,6977,6765,6903,6948,6845,6879,1121,6980
)
[reply] => Array
(
[usecustom] => 1
[cycletype] => 4
[cycletime] => 0
[rewardnum] => 0
[extcredits1] => 0
[extcredits2] => 0
[extcredits3] => 0
[extcredits4] => 0
[extcredits5] => 0
[extcredits6] => 0
[extcredits7] => 0
[extcredits8] => 0
[rid] => 2
[fid] => 6980
[rulename] => 发表回复
[action] => reply
)
[digest] => Array
(
[usecustom] => 1
[cycletype] => 4
[cycletime] => 0
[rewardnum] => 0
[extcredits1] => 0
[extcredits2] => 0
[extcredits3] => 0
[extcredits4] => 0
[extcredits5] => 0
[extcredits6] => 0
[extcredits7] => 0
[extcredits8] => 0
[rid] => 3
[fid] => 6980
[rulename] => 加精华
[action] => digest
)
)
[formulaperm] => a:5:{i:0;s:0:"";i:1;s:0:"";s:7:"message";s:0:"";s:5:"medal";N;s:5:"users";s:0:"";}
[moderators] =>
[rules] =>
[threadtypes] => Array
(
[status] => 1
[required] => 0
[listable] => 0
[types] => Array
(
)
)
[threadsorts] => Array
(
)
[viewperm] =>
[postperm] =>
[replyperm] =>
[getattachperm] =>
[postattachperm] =>
[postimageperm] =>
[spviewperm] =>
[seotitle] =>
[keywords] =>
[seodescription] =>
[supe_pushsetting] =>
[modrecommend] => Array
(
[open] => 0
[num] => 10
[imagenum] => 0
[imagewidth] => 300
[imageheight] => 250
[maxlength] => 0
[cachelife] => 0
[dateline] => 0
)
[threadplugin] => Array
(
)
[replybg] =>
[extra] => a:2:{s:9:"namecolor";s:0:"";s:9:"iconwidth";s:0:"";}
[jointype] => 0
[gviewperm] => 0
[membernum] => 0
[dateline] => 0
[lastupdate] => 0
[activity] => 0
[founderuid] => 0
[foundername] =>
[banner] =>
[groupnum] => 0
[commentitem] =>
[relatedgroup] =>
[picstyle] => 0
[widthauto] => 0
[noantitheft] => 0
[noforumhidewater] => 0
[noforumrecommend] => 0
[livetid] => 0
[price] => 0
[fup] => 6974
[type] => sub
[name] => 币圈资讯
[status] => 1
[displayorder] => 0
[styleid] => 0
[threads] => 84891
[posts] => 84962
[todayposts] => 0
[yesterdayposts] => 0
[rank] => 56
[oldrank] => 56
[lastpost] => 2760085 The Smarter Web Company 筹集 500 万美元,用于增持比特币 1756189025 比推快讯
[domain] =>
[allowsmilies] => 1
[allowhtml] => 1
[allowbbcode] => 1
[allowimgcode] => 1
[allowmediacode] => 0
[allowanonymous] => 0
[allowpostspecial] => 1
[allowspecialonly] => 0
[allowappend] => 0
[alloweditrules] => 0
[allowfeed] => 0
[allowside] => 0
[recyclebin] => 1
[modnewposts] => 0
[jammer] => 0
[disablewatermark] => 0
[inheritedmod] => 0
[autoclose] => 0
[forumcolumns] => 0
[catforumcolumns] => 0
[threadcaches] => 0
[alloweditpost] => 1
[simple] => 16
[modworks] => 0
[allowglobalstick] => 1
[level] => 0
[commoncredits] => 0
[archive] => 0
[recommend] => 0
[favtimes] => 0
[sharetimes] => 0
[disablethumb] => 0
[disablecollect] => 0
[ismoderator] => 0
[threadtableid] => 0
[allowreply] =>
[allowpost] =>
[allowpostattach] =>
)
三分钟了解 zkPairing:椭圆曲线配对的 zkSNARKs
[复制链接]
|
当前离线
经验:
天策币:
活跃币:
策小分:
总在线: 分钟
本月在线: 分钟
|
|
配对是许多加密协议的核心组成部分,是零知识密码学现代发展的许多加密对象的基础:BLS 数字签名、 KZG 多项式承诺和 zkSNARKs。 原文标题:《DAOrayaki |zkPairing:椭圆曲线配对的 zkSNARKs》(zkPairing: zkSNARKs for Elliptic Curve Pairings) 撰文: Jonathan W.,Vincent H.,and Yi Sun 编译:Skyhigh Feng 配对是许多加密协议的核心组成部分。本文我们介绍 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 。 由于配对涉及许多复杂的椭圆曲线操作,在 zkSNARK 中实现它们会带来许多挑战。首先,对于非自然域上的椭圆曲线算法,我们必须使用 zk-ECDSA6 的大整数和 ECC 优化,但是要适应我们的曲线和 BLS12-381 的配对涉及到在域扩展上操作的事实。其次,Miller 的计算配对算法 Miller's algorithm7允许在标准计算模型中进行许多优化,我们将这些优化移植到 zkSNARK 设置中。最后,由于配对计算的复杂性,即使最终优化的电路也可能相当大,这意味着需要一些基础设施的最佳实践来适应 Circom 工具栈。 在这一系列的文章中,我们提出了一个在 BLS12-381 曲线上的最优 Ate 配对的概念验证 Circom 实现,以及一个在 BLS 签名验证中的应用实例。然后,我们概述了其他潜在的应用,如递归 SNARK 和多项式承诺验证,我们认为这种方法很容易推广应用。 循环配对我们实现了循环配对 circom-pairing8 代码库,它为 BLS12-3819 曲线上的以下操作提供未经审核的 ZK 电路: Tate 配对是最简单的椭圆曲线配对之一。该算法满足双线性特性,适用于密码学领域,对椭圆曲线的计算和算法的正确实现起到了很好的检验作用。 最佳配对:最佳配对是实践中最常用的配对。计算类似于 Tate 配对 ( 使用 Miller 的算法,我们将在以后的文章中讨论 ) ; 然而,涉及的步骤较少,而每一步的算法更加复杂,最终的结果是一个较短的总计算。 BLS10 签名验证 ( 短公钥 ) : 签名验证允许检查一个 BLS 签名. 给定签名 s,生成元 G,公钥 xG,和哈希 hash ,验证电路转换 hash 到椭圆曲线点 H(m), 使用 maptoG2 下面的电路,然后验证 s 确实是由给定的公钥和消息生成的签名。BLS 签名验证涉及到评估两个最优的 Ate 配对来验证这一点 e(s,G) = e(H(m), xG) , e 表示最佳的 Ate 配对 散列 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 )文档中有详细说明。 我们能用 zkPairing 做什么?因为配对是许多加密协议的核心组成部分,所以用于配对计算的 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 的实现技术! 参考1.https://github.com/yi-sun/circom-pairing2.https://en.wikipedia.org/wiki/Pairing-based_cryptography3.https://medium.com/@VitalikButerin/exploring-elliptic-curve-pairings-c73c1864e6274.https://en.wikipedia.org/wiki/Elliptic-curve_cryptography5.https://0xparc.org/blog/zk-id-26.https://0xparc.org/blog/zk-ecdsa-27.https://crypto.stanford.edu/pbc/notes/ep/miller.html8.https://github.com/yi-sun/circom-pairing9.https://hackmd.io/@benjaminion/bls12-38110.https://datatracker.ietf.org/doc/html/draft-irtf-cfrg-bls-signature-0411.https://zkpairing.xyz/12.https://hackmd.io/V-7Aal05Tiy-ozmzTGBYPA?view来源:金色财经 |
|
|
|
|
|
|