火星链 火星链
Ctrl+D收藏火星链
首页 > TUSD > 正文

ZKP:一文盘点ZKP主流实现方案技术特点

作者:

时间:1900/1/1 0:00:00

概述

在研究区块链系统的工作原理时,我们需要了解各种各样密码学知识,比如secp256k1,它是一种曲线和非对称签名算法,在比特币和以太坊系统中用于签名和验证账号。比如sha256,它是一种哈希算法,用于把变长信息压缩成定长编码。比如base58,它可以把信息编码转换成可打印字符表示的字符串。比如ECDH,它是一种Diffie-Hellman密钥交换算法,用于在P2P节点间安全交换通讯密钥。零知识证明也是一种密码学算法,简称为ZKP或者ZK,它的特点是可以在不泄露任何其他信息的前提下证明一个命题的正确性。ZKP最早在1985年就已经被提出,然而长期以来一直没有找到大规模应用的场景,所以技术的发展也十分缓慢。一直到2009年比特币诞生后,人们发现它非常适合用于解决区块链中的隐私和扩展性问题,至此大量的资本和人才投入到了这项技术的开发和工程应用中。ZKP有很多实现,例如:Groth16、PlonK、STARK等,至今还没出现真正的行业标准,本文将为大家盘点各种ZKP实现的技术特点,希望能给大家的学习研究和工程开发带来帮助。ZKP应用领域

1.隐私证明

Zcash可能是ZKP的第一个被广泛使用的应用,它在比特币源代码的基础上,将ZKP应用于代币的转移,使得交易的信息完全保密,但同时能被区块链上的节点验证。TornadoCash是在以太坊运行的混币器,它使用ZKP证明Merkle-Tree上的节点,用户可以将固定金额的代币存入资金池,然后使用ZKP生成的Proof证明自己曾经存入过资金,但不需要暴露自己存入时的交易信息。2.计算外包

在区块链中,每个节点的计算能力有限,但借助ZKP技术,节点可以将大量的计算外包给链下节点,这时只需要验证外包提交的计算结果和计算证明就可以知道计算是否正确。zksync1.0就是一个很好的例子,它在链下进行以太坊代币转账和交易,然后将结果提交给节点,节点通过验证ZKP证明就可以知道它是否按照它声明的方法进行计算。3.数据压缩

CoinGecko推出追踪Base生态系统的加密代币列表:金色财经报道,CoinGecko推出了一个新列表,追踪Base生态系统上的加密货币。包括Balancer(BAL)、Axelar(AXL)、Ethos Reserve Note(ERN)等。[2023/8/10 16:18:05]

Filecoin运用ZKP构造了时空证明系统,能证明用户在本地存储了特定文件,目前已经证明存储的文件已经达到18EiB。Mina是另一个例子,在很多高速区块链系统中,交易的数据十分庞大,系统需要保留所有的区块以备共识协议的验证,所以系统对硬件的要求极高,永久保存意味着区块链节点将需要不断增大磁盘空间和数据索引能力。这时候可以借助ZKP,将验证数据压缩,Mina通过递归零知识证明,将账本压缩到11KB,但依旧可以验证区块的正确性。ZKP证明系统

证明系统是ZKP的底层算法实现,可分为交互式和非交互式两种:1.交互式证明系统

交互证明系统由两方参与,分别称为证明者和验证者,其中P知道某一秘密,P希望使V相信自己的确掌握这一秘密。交互证明由若干轮组成,在每一轮,P和V可能需根据从对方收到的消息和自己计算的某个结果向对方发送消息。比较典型的方式是在每轮V都向P发出一个询问,P向V做出一个应答。所有轮执行完后,V根据P是否在每一轮对自己发出的询问都能正确应答,决定是否接受P的证明。2.非交互式证明系统

在上述交互式证明系统中,P和V不进行交互,证明由P产生后直接给V,V对证明直接进行验证,这种证明系统称为非交互式证明系统。我们在区块链中使用的证明系统一般都是NIZK,区块链中的节点就是验证者V,终端用户或者二层网络就是证明者P。文末参考链接描述了近十年来公开发表的NIZK方案及特点。在实际工程应用中我们主要关注的是性能和通用性,因此我们对一些常见证明系统进行更细致的分类对比,见文末参考链接:Bulletproofs特点:简洁证明大小,无需可信设置,但证明生成和验证耗时相比较长。代表项目:Bulletproofs,Halo,Halo2。SNARKs(SuccinctNon-interactiveARgumentsofKnowledge)特点:简洁证明大小,证明验证耗时相比较短,但需要对每一个电路进行可信设置。代表项目:Groth16。SNORKs(SuccinctNon-interactiveOecumenical(Universal)aRgumentsofKnowledge)特点:简洁证明大小,只需要进行一次可信设置即可用于所有电路。代表项目:Sonic,PlonK,Marlin,Plonky2。STARKs(Succinct(Scalable)TransparentARgumentsofKnowledge)特点:证明十分庞大,不需要进行可信设置,具有良好的可扩展性。代表项目:STARK。以上分类也不是绝对的,比如Halo/Halo2项目,它们在设计时也借鉴了很多Plonk的思路,另外,SNORKs通常会被归入到SNARKs,因为它们都需要可信设置。3.性能对比

韩国数字资产交易所联合咨询机构DAXA已开通官方网站:5月23日消息,由韩国五大加密交易所Upbit、Bithumb、Coinone、Korbit 和 Gopax组成的韩国数字资产交易所联合咨询机构(DAXA)已开通官方网站。该网站包含简介、新闻、资料室等栏目,提供代币公布、自律规定履行内容等信息。[2023/5/23 15:20:02]

电路编程

电路是ZKP系统的业务逻辑实现,开发ZKP应用需要进行电路编程,为什么ZKP逻辑代码被称为“电路”?主要有以下几个原因:ZKP证明的代码会被转换成一系列简单约束条件的表达式R1CS,然后使用拉格朗日插值法,转换为一个巨大的多项式QAP,最终以门电路的形式被约束。与硬件电路类似,所有分支的代码将被一起执行。与硬件电路类似,ZKP证明电路中没有递归和复杂的循环,循环的数量只能是恒定的。我们不需要从头去用密码学实现ZKP应用,有很多开发库已经实现了这些底层证明系统,我们只需要关注业务逻辑的实现。当然每一种库都有不同的抽象程度,有的需要去学习描述电路的表达式,有的只需要按流程定义好代码就可以轻松实现。1.常用开发库

libsnark用C++语言实现了通用证明系统、基础电路库和应用示例。证明系统:BBFR15、BCCT12、BCCT13、BCGTV13、BCIOP13、BCTV14a、BCTV14b、CTV15、DFGK14、Groth16、GM17、GGPR13、PGHR13。链接:https://github.com/scipr-lab/libsnark。gnark用Go语言实现的证明系统,提供高级API来设计电路。证明系统:Groth16、PlonK。链接:https://github.com/consensys/gnark。bellmanRust实现的证明系统,它提供电路接口、基础结构以及一些基本电路实现,例如布尔和数值抽象。证明系统:Groth16。链接:https://github.com/zkcrypto/bellman。snarkjsJavascript和WASM实现的证明系统,可用于可信设置、生成证明并验证证明。snarkjs使用iden3自己的circom编译器对DSL定义的电路进行编译。证明系统:Groth16、PlonK。链接:https://github.com/iden3/snarkjs。ethsnarks使用Python实现,可以在用户浏览器生成证明,使用以太坊智能合约做为验证者。目前项目开发不活跃,相同的场景下使用Circom可能是更好的选择。证明系统:Groth16。链接:https://github.com/HarryR/ethsnarks。bulletproofs使用Rust实现的证明系统,具有单一和聚合范围证明、强类型多方计算,正在开发中用于证明任意语句的可编程约束系统API。证明系统:bulletproofs。链接:https://github.com/dalek-cryptography/bulletproofs。halo2一个基于Rust的实现的证明系统,由ZCash团队维护。Halo2特定于PLONKish,可以非常直接地控制电路在算术运算中的表示方式,非常适合编写高度优化的电路。证明系统:Halo2。链接:https://github.com/zcash/halo2。2.开发流程

美国CFTC官员:国会正在考虑解决匿名和数字身份问题的新法律:金色财经报道,美国商品期货交易委员会 (CFTC) 委员Christy Goldsmith Romero 在伦敦举行的 2023 年城市周上发表关于非法金融和数字金融的其他主要风险的主题演讲。Romero表示,减少加密货币的匿名性,以此作为管理与数字资产相关风险的一种手段。必须管理与数字资产相关的风险,因为市场诚信、国家安全和金融稳定至关重要,不能妥协。?减少加密货币市场的非法金融风险需要解决身份验证的挑战。

Romero补充称,尽管公共区块链提供了一定的透明度和可追溯性,但混合器和匿名增强技术的使用增加了潜在的重大风险。而国会正在考虑解决匿名和数字身份问题的新法律。[2023/4/25 14:26:11]

以gnark为例,一个典型的工作流程如下图:

1)用代码描述需要解决的问题。2)编译成R1CS约束系统。3)对R1CS进行可信设置,得到Provingkey和Verifykey。4)证明者使用R1CS和Provingkey计算私密数据,生成证明Proof。5)验证者使用Verifykey验证Proof。电路编程专用语言

1.基于以太坊平台

CairoCairo是一种用于编写可证明程序的编程语言,其中一方可以向另一方证明某个计算已正确执行。Cairo和类似的证明系统可用于为区块链提供可扩展性。StarkNet将Cairo编程语言用于其基础设施和编写StarkNet合约。证明系统:STARK。链接:https://www.cairo-lang.org/docs/。ZokratesZoKrates采用DSL描述电路,提供了一些常用的电路库,它可以帮助你在DApp中使用可验证的计算,从用高级语言规范您的程序到生成计算证明,再到在Solidity中验证这些证明。证明系统:GM17、Groth16、Marlin。链接:https://zokrates.github.io/。CircomCircom语言采用DSL描述电路,可以配合snarkjs在用户浏览器生成证明,使用以太坊智能合约做为验证者。证明系统:Groth16、PlonK。链接:https://iden3.io/circom。NoirAztec基于Rust的隐私编程语言,采用DSL描述电路,允许安全、无缝地构建隐私保护零知识电路。证明系统:PlonK。链接:https://noir-lang.org/index.html。zkEVM与EVM一样,zkEVM是一个虚拟机,它作为程序操作的结果在状态之间转换,但是zkEVM通过生成证明来证明计算的每个部分的正确性。本质上,zkEVM使用一种机制来证明执行步骤遵循规则。目前有zkSync、Polygon、Scroll、Starkware等团队正致力于zkEVM的实现,已取得重大进展。2.基于公链平台

ShapeShift回应美参议员:从不处理用户资金,无法促进非法融资:2月20日消息,去中心化交易平台ShapeShift于2月19日在推特上表示,在情人节(2月14日)那天,Elizabeth Warren(美国参议员)试图以ShapeShift为例,推动她最新的加密法案。不幸的是,参议员的分析中有错误,我们想借此机会澄清事实。关于Warren关于非法融资的评论,ShapeShift从不处理用户资金,因此没有能力促进这一点。讽刺的是,我们关心的事情和沃伦参议员一样:即用户安全(需要自我保管)和获得创新(DeFi而不是CeFi)。FOX社区始终对围绕加密货币和shapesshift平台的基于事实的对话持开放态度。我们鼓励Warren和其他人建设性地参与金融自由和创新的关键问题。

此前,Warren在参议院听证会上表示,ShapeShift在2021年7月将自己重组为DeFi平台是别有用心的。沃伦表示,重组是为了鼓励人们在该平台上”洗黑钱”。ShapeShift的首席执行官Erik Vorhees于2月18日在他的个人推特上表示他期待“Warren向ShapeShift DAO治理过程提交提案”,以回应Warren对该平台的批评。[2023/2/20 12:17:28]

zkApp(Mina)zkApps是MinaProtocol的智能合约,由零知识证明提供支持。zkApps可以在链下执行任意复杂的计算,同时只收取固定费用以将生成的零知识证明发送到链以验证此计算,这与其他在链上运行计算并使用基于可变gas费用的区块链相反模型。zkApps使用Typescript编写。证明系统:PlonK。链接:https://docs.minaprotocol.com/zkapps。LEO(Aleo)Leo是一种函数式静态类型编程语言,专为编写私有应用程序而构建。它专为开发人员设计,可以直观地在Aleo区块链上构建,为私有的、去中心化的生态系统提供基础。证明系统:Marlin。链接:https://leo-lang.org/。ZKP常见安全问题

“丝路友好使者”文化数字藏品限量首发:5月30日消息,由中国国际文化交流中心和《环球人物》杂志社联合主办,中国国际文化艺术有限公司协办,和平文化发展集团承办的第二届“丝路友好使者”盛典即将于5月31日线上举办。盛典组委会于5月29日预先发布一款盛典主题公益文化数字藏品——《丝路绿洲》。

《丝路绿洲》数字藏品由中国国际文化交流中心、《环球人物》杂志社、人民文创及巅峰艺术中心共同面向海内外友好人士发布。藏品以同名书画作品为蓝本创作,作品由五洲书画院执行院长刘文迪、国家一级美术师郑美秋以及中国书法《兰亭奖》获得者、青年书法家马志刚共同打造,巅峰艺术中心提供数字版权,人民文创对藏品及文化卡片进行创意设计和数字化打造。(凤凰网)[2022/5/30 3:51:11]

在过去几年,慢雾安全团队已为多个知名ZKP产品进行了电路及应用安全审计,包括ZKSwap、Zkdex、Zksafe等,发现了多个中高危漏洞,对基于Circom、libsnark等流行框架开发的应用有较为深入的理解。慢雾安全团队在ZKP应用审计中发现常见的安全问题有:信任参数风险为了使用zk-SNARKs,需要一组公共参数,称为公共参考字符串。但是这些参数的创建也会产生一些私有参数,如果某一方获得这些私有参数,他们就可以伪造证明。另外,生成CRS的流程需要经过审计,确保不会有随机数后门,或者私有参数不会被蓄意保留。使用zk-SNORKs时也需要确保结构化参考字符串是可信的。可信配置阶段的安全隐患问题可以使用安全多方计算来解决,MPC的特点是只要任何一个参与者能诚实参与,那么通过这套多方计算系统最终得到的计算结果就是可信的。静态代码安全这部分主要是由于编码不规范造成的安全问题,例如:参数未校验、返回值未处理、数值溢出、边界未检查等,如果编写电路的语言是C/C++,那么还会存在内存溢出风险。供应链攻击风险供应链的风险主要来自使用了存在漏洞的代码库,例如:旧版本的仓库。通常ZKP应用还需要配合客户端或者Web前端使用,而这部分也很容易遭受多种方式黑客攻击。逻辑错误逻辑错误是电路实现中最容易出现的错误,需要结合需求文档检查电路的设计是否符合需求。双花攻击错误的设计可能导致双花攻击,例如:某些ZKP库存在延展性风险,攻击者可利用已知的Proof生成不同Proof,如果设计不当会导致双花攻击。证明伪造有效的证明是ZKP首要解决的问题,确保满足完备性和可靠性,即“假的真不了,真的假不了”,所以如果一个电路可以创建假证明,通常是由于底层库出现漏洞,通常我们会建议项目方使用公开的经过审计的ZKP库,并使用稳定的发行版。侧信道攻击如果电路设计不当,不同的隐私信息可能存在不同的计算特征,攻击者可能通过公开的输入或者证明猜解出私有输入数据。电路约束失效不恰当的电路表达式可能导致变量未被约束。特殊值攻击一些特殊的输入值可能绕过系统的验证逻辑,例如:0、null等。隐私输入猜解对于TornadoCash等应用,如果输入的信息可以被猜解,那么会导致严重的隐私泄露问题,这时需要对输入数据进行严格审计,确保不能被猜解。RugPull风险一些项目可能存在特殊的管理员权限,一旦权限被非法使用会导致项目资金和用户资产被窃取。智能合约风险一些ZKP证明使用智能合约进行验证,例如:Circom、ZoKrates等。智能合约可能出现重入、重放、逻辑错误等风险,详情可查看慢雾安全团队的智能合约安全审计服务。针对上面列举的ZKP安全问题,慢雾安全团队在攻防实战中总结出了一套安全解决方案,结合黑盒/灰盒/白盒多种测试手段,推出了面向区块链行业的ZKP电路审计服务。总结

零知识证明是解决区块链隐私性、计算扩展和数据压缩问题的有效方法,目前有很多的实现方案,这些实现方案具有不同的性能参数指标和安全基准。开发者在开发零知识证明电路时需要注意根据需求选择合适的框架,并确保在项目上线前对应用的安全性进行过全面安全审计。最后,感谢领先的一站式数字资产自托管服务商Safeheron提供的专业技术建议。参考链接:.https://en.wikipedia.org/wiki/Zero-knowledge_proof.https://github.com/matter-labs/awesome-zero-knowledge-proofs.https://docs.google.com/presentation/d/1gfB6WZMvM9mmDKofFibIgsyYShdf0RV_Y8TLz3k1Ls0/edit

标签:ZKPARKCOMHTTZKP币BeforeCoinMarketCapComponenthtt币局

TUSD热门资讯
WEB:币安的2022:合规与透明,持续建设Web3

跌宕起伏,大概是所有人对2022年的共同印记。外有俄乌之战,国际形势风云突变,全球央行加息抑制通胀;内有加密市场持续下行,Celsius、三箭资本、FTX等加密企业接连破产,由此引发不利的社会舆.

1900/1/1 0:00:00
SDC:星球日报 | Polygon PoS链硬分叉将于1月17日进行;Animoca Brands旗下NFT系列Mocaverse已开放Mocalist注册(1月16日)

头条PolygonPoS链硬分叉将于1月17日进行,验证者需提前更新节点Polygon官方近日确认,开发人员提议的PolygonPoS链硬分叉升级将于1月17日进行.

1900/1/1 0:00:00
数字资产:美国政府发布减轻加密货币风险的路线图

Odaily星球日报译者|念银思唐2022年对加密货币来说是艰难的一年。今年5月,一种所谓的“稳定币”崩盘,引发了一波破产潮。仅仅几个月后,一家大型加密货币交易所倒闭.

1900/1/1 0:00:00
SHIBA:单日涨幅最高20%,Shibarium能否带领SHIB闯入Layer2赛道?

近日,市场回暖。局部热点开始浮现,而SHIB则取得约20%的单日涨幅。不仅如此,SHIB生态的币种涨幅也颇为可观,BONE、LEASH的行情均快速上扬.

1900/1/1 0:00:00
NFT:比特币交易的「合法性」之辩:Ordinals是福还是祸?

自问世以来,比特币交易的目的一直是社区争论不休的话题。比特币主要用于金融交易,还是它应该成为一种安全的分布式数据存储系统,用来存储从应用程序数据到域名的所有内容?这场争论平静了很多年,但一种名为.

1900/1/1 0:00:00
ALA:Alameda清算账户追踪:清算人接管后已造成逾千万美元损失

原文作者:Arkham原文编译:Karen加密数据分析公司Arkham在分析AlamedaResearch清算人钱包数据后发现.

1900/1/1 0:00:00