从头梳理ZKP理论和应用层面的一些变化。撰文:HashKeyCapital
当前区块链行业里零知识证明项目增速惊人,特别是ZKP在扩容和隐私保护两个层面应用的崛起,令我们接触到了各种花样繁多的零知识证明项目。由于ZKP极富数学性的特质,对于加密爱好者来说,想要深度了解ZK的难度大幅提升。因此我们也希望从头梳理ZKP理论和应用层面的一些变化,与读者一起探索对于crypto行业的影响和价值——通过几篇报告的形式共同学习,也作为HashKeyCapital研究团队的思考总结。本篇是该系列的第一篇,主要介绍ZKP的发展历史、应用和一些基本原理。
一、零知识证明的历史
现代零知识证明体系最早来源于Goldwasser、Micali和Rackoff合作发表的论文:TheKnowledgeComplexityofInteractiveProofSystems,该论文提出于1985年,发表于1989年。这篇论文主要阐释的是在一个交互系统中,经过K轮交互,需要多少知识被交换,从而证明一个证言是正确的。如果可以让交换的知识为零,则被称之为零知识证明。这里面会假设证明者具有无限资源,而验证者只具有有限资源。而交互式系统的问题在于证明不完全是数学上可证的,而是概率意义上正确的,虽然概率很小(1/2^n)。
所以交互式系统并不完美,只有近似完备性,以此为基础诞生的非交互式系统系统则具有完备性,成为零知识证明系统的完美所选。
早年的零知识证明系统在效率以及可用性方面都有所欠缺,所以一直都停留在理论层面,直到最近10年才开始蓬勃发展,伴随着密码学在crypto成为显学,零知识证明走向台前,成为至关重要的一个方向。特别是发展出一个通用的、非交互的、证明大小有限的零知识证明协议,是其中最关键的探索方向之一。
Polygon以4亿美元收购零知识初创公司Mir:金色财经报道,以太坊Layer2扩容解决方案Polygon宣布以4亿美元收购零知识初创公司Mir,这笔交易是通过2.5亿枚MATIC完成的。作为交易的一部分,Mir将更名为Polygon Zero,该项目将基于其ZK-proof技术构建一个ZK-rollup。Polygo联合创始人Sandeep Nailwal在接受采访时表示:“我们希望通过提供一系列解决方案,成为Web3平台的AWS,使开发人员能够在其上进行构建。”[2021/12/10 7:29:15]
基本上零知识证明就是要在证明的速度、验证的速度和证明体积的大小之间做取舍,理想的协议是证明快、验证快、证明体积小。
零知识证明最重要的突破是Groth在2010年的论文ShortPairing-basedNon-interactiveZero-KnowledgeArguments,也是ZKP里面最重要的一组zk-SNARK的理论先驱。
零知识证明在应用上最重要的进展就是2015年Z-cash使用的零知识证明系统,实现了对交易及金额隐私的保护,后来发展到zk-SNARK和智能合约相结合,zk-SNARK进入了更为广泛的应用场景。
在此期间,一些重要的学术成果包括:
2013年的Pinocchio(PGHR13):Pinocchio:NearlyPracticalVerifiableComputation,将证明和验证时间压缩到适用范围,也是Zcash使用的基础协议。
2016年的Groth16:OntheSizeofPairing-basedNon-interactiveArguments,精简了证明的大小,并提升了验证效率,是目前应用最多的ZK基础算法。
两位数学家因对零知识证明的研究获得数学界大奖阿贝尔奖:据DeepTech深科技消息,近日,备受瞩目的数学界大奖阿贝尔奖公布两名获奖者,一位是匈牙利数学家拉兹洛?洛瓦兹(László Lovász),一位是以色列计算机科学家阿维?威格森(Avi Wigderson)。两位数学家因为对零知识证明的研究,而获此殊荣。曾经让纯数学家看不起的零知识证明,却获得了数学界举足轻重的阿贝尔奖。正如颁奖词所说:“表彰其在理论计算机科学和离散数学方面做出的杰出贡献,以及在将之塑造为现代数学中心领域中发挥的主导作用。”零知识证明比起其他复杂算法更为简单,但这两位数学家对于零知识证明的研究,不仅对现代数学核心计算有重大贡献,还有巨大的现实意义:其一,零知识证明对数字货币的认证意义重大;其二,零知识证明还可以用于人的身份验证,即在不透露密码的前提下,验证方通过一系列问题来让对方提供 “我知道正确密码”,或在信息安全领域,提供 “我就是本人” 的证明。[2021/5/2 21:16:57]
2017年的Bulletproofs(BBBPWM17)Bulletproofs:ShortProofsforConfidentialTransactionsandMore,提出了Bulletproof算法,非常短的非交互式零知识证明,不需要可信的设置,6个月以后应用于Monero,是非常快的理论到应用的结合。
2018年的zk-STARKs(BBHR18)Scalable,transparent,andpost-quantumsecurecomputationalintegrity,提出了不需要可信设置的ZK-STARK算法协议,这也是目前ZK发展另一个让人瞩目的方向,也以此为基础诞生了StarkWare这个最重量级的ZK项目。
零知识证明系统Bulletproofs+代码获准可在门罗币协议中使用:12月30日,门罗币发推宣布,零知识证明系统Bulletproofs+的代码现已获得许可,可在Monero协议中使用,以替代现有的Bulletproofs零知识证明系统。新系统将使得门罗交易结构变得更小,钱包交易速度更快以及网络验证速度更快。此外,官方表示,该代码具有功能性并包括对基础算法的测试,若考虑将来在门罗币网络升级中进行部署,则应该由第三方进行审核。[2020/12/30 16:04:23]
其他的发展包括PLONK、Halo2等也是极为重要的进展,也对zk-SNARK做出了某些层面上的改进。
二、零知识证明的应用简述
零知识证明最广泛的两个应用就是隐私保护和扩容。早期随着隐私交易和几个有名的项目Zcash和Monero等推出,隐私交易一度成为非常重要的门类,但由于隐私交易的必要性并没有业界希望的那样突出,因此这一类代表性项目开始慢慢进入二三线的阵营。而应用层面,扩容的必要性提升到无以复加,随着以太坊2.0在2020年转变为以rollup为中心的路线,ZK系列正式又回归业界的视线,成为焦点。
隐私交易:隐私交易有很多已经实现的项目,包括使用SNARK的Zcash,Tornado,使用bulletproof的Monero,以及Dash。Dash严格意义上用的不是ZKP,而是一种简单粗暴的混币系统,只可以隐藏地址而不能隐藏金额,在此略过不表。
Zcash应用的zk-SNARKs交易步骤如下:
零知识证明研发机构StarkWare将在几周内开源ethSTARK:零知识证明研发机构 StarkWare 称,2018年我们获得以太坊基金会的资助去探索对 STARK 友好的哈希函数以及开源 ZKP 代码。我们将在几周内提前完成我们的工作。ethSTARK代码的运行速度将比现有的任何 ZKP 代码快20倍。注,2018年7月份,StarkWare称获得了以太坊基金会的资助(现金+代币),将研发对STARK 友好的哈希函数和技术,并为生态系统提供开源代码。STARK将允许区块链在兼备隐私和后量子安全的情况下进行大规模扩展(例如分片)。[2020/5/26]
Source:DemystifyingtheRoleofzk-SNARKsinZcash
Systemsetup阶段生成证明秘钥和验证秘钥,借助KeyGenfunction
CPA阶段ECIES加密方法用来生成公钥和私钥
MintingCoins阶段,生成新币的数量。公共地址和币的commitment
Pouring阶段,生成zk-SNARK证明,证明被加到了pour交易账本中
Verification阶段,验证者验证Mint和Pour的交易量是否正确
Receiving阶段,receiver接收币。如果想使用收到的币,则继续调用Pouring,形成zk-SNARK验证,重复上述4-6的步骤,完成交易。
Zcash使用零知识还是有局限性的,就是其基于UTXO,所以部分交易信息只是被shield了,而不是真正的掩盖。因为其基于比特币的设计的单独网络,所以难以扩展。真正使用shielding的使用率只有不到10%,说明隐私交易并没有很成功的扩展。
Trail of Bits计划利用零知识证明重塑漏洞披露流程:安全研究机构Trail of Bits宣布,正在与约翰霍普金斯大学的Matthew Green合作,使用零知识证明(zero-knowledge proofs)技术为科技公司和安全漏洞研究人员建立一种可信的基础设施,在新的合作方式之下,双方在针对漏洞披露(Vulnerability Disclosure)的流程中可进行合理的沟通,而不必担心受到破坏或歧视。
在接下来的四年里,Trail of Bits 将会进一步推进零知识证明的理论极限,并为安全漏洞研究人员提供相应的软件,用以产生漏洞可利用性的零知识证明。[2020/5/22]
Tornado使用的单一大混币池更加通用,而且基于以太坊这样“久经考验”的网络。Torndao本质上就是一个用了zk-SNARK的混币池,可信设置基于Groth16的论文。TornadoCash可以提供的特性包括:
只有被存进去的coin可以被提取
没有币可以被提取两次
证明过程和币的废止通知是绑定的,相同证明但不同Nullifier的哈希不会允许提币
安全性有126-bit的安全,不会因为composition而降级
Vitalik提到过,和扩容相比,隐私相对比较容易实现,如果一些扩容的protocol都可以成立的话,隐私基本上不会成为问题。
扩容:ZK的扩容可以在一层网络上做,如Mina,也可以在二层网络上做,即zk-rollup.ZKrollup的思路可能最早来自于Vitalik于2018的post,On-chainscalingtopotentially~500tx/secthroughmasstxvalidation。
ZK-rollup有两类角色,一类是Sequencer,还有一个是Aggregator。Sequencer负责打包交易,Aggregator负责将大量的交易合并并创造一个rollup,并形成一个SNARK证明,这个证明会和Layer1以前的状态进行比较,进而更新以太坊的Merkle树,计算新的状态树。
Source:Polygon
ZKrollup的优缺点:
优点:费用低,不像OP会被经济攻击,不需要延迟交易,可以保护隐私,快速达成最终性
缺点:形成ZK证明需要大计算量,安全问题,不抗量子攻击,交易顺序可能被改变
Source:以太坊research
根据数据可用性以及证明的方法,Starkware对L2有一张经典的分类图:
Source:Starkware
目前市场上最有竞争力的ZKrollup项目有:Starkware的StarkNet,Matterlabs的zkSync和Aztec的Aztecconnect,Polygon的Hermez和Miden,Loopring,Scroll等。
基本上技术路线就在于SNARK(及其改进版本)和STARK的选择,以及对EVM的支持。
Aztec开发了通用化的SNARK协议-Plonk协议,运行中的Aztec3可能会支持EVM,但是隐私优先于EVM兼容
Starnet用的是zk-STARK,一种不需要可信设置的zkp,但是目前不支持EVM,有自己的编译器和开发语言
zkSync也是用的plonk,支持EVM。zkSync2.0是EVM兼容的,有自己的zkEVM
Scroll,一种EVM兼容的ZKrollup,团队也是以太坊基金会zkEVM项目的重要贡献者
简要讨论下EVM兼容性问题:
ZK系统和EVM的兼容一直令人头疼,一般项目会在两者间取舍。强调ZK的可能会在自己的系统里做一个虚拟机,并有自己的ZK语言以及编译器,但会加重开发者的学习难度,而且因为基本上不开源,会变成一个黑箱子。一般业界目前是两种选择,一是和Solidity的操作码完全兼容,另一种是设计一种新的虚拟机同时ZK友好并兼容Solidity。业界一开始也没有想到可以这么快的融合,但是近一两年技术的快速迭代,让EVM的兼容提升到一个新高度,开发者可以做到一定程度的无缝迁移,是振奋人心的进展,这将影响ZK的开发生态和竞争格局。我们会在之后的报告中仔细讨论这个问题。
三、ZKSNARK实现的基本原理
Goldwasser、Micali和Rackoff提出了零知识证明有三个性质:
完整性:每一个拥有合理见证的声明,都是可以被验证者验证的
可靠性:每一个只拥有不合理见证的声明,都不应该被验证者验证
零知识:验证过程是零知识的
所以为了了解ZKP,我们从zk-SNARK开始,因为很多目前的区块链应用都是从SNARK开始。首先,我们先了解一下zk-SNARK。
zk-SNARK的意思是:零知识证明是zero-knowledgeSuccintNon-interactiveARgumentsofKnowledge。
ZeroKnowledge:证明过程零知识,不会暴露多余信息
Succinct:验证体积小
Non-interactive:非交互过程
ARguments:计算具备可靠性,即有限计算能力的证明者不能伪造证明,无限计算能力的证明者可以伪造证明
ofKnowledge:证明者无法在不知道有效信息的情况下构建出一个参数和证明
对于证明者来说,在不知道证据的情况下,构造出一组参数和证明是不可能的。
Groth16的zk-SNARK的证明原理和如下:
Source:https://learnblockchain.cn/article/3220
步骤是:
将问题转换为电路
将电路拍平成R1CS的形式.
R1CS转换成QAP形式
建立trustedsetup,生成随机参数,包括PK(provingkey),VK(verifyingkey)
zk-SNARK的证明生成和验证
下一篇我们将开始研究zk-SNARK的原理、应用,通过几个案例来透视ZK-SNARK的发展,并探索它与zk-STARK的关系等。
来源:金色财经
伴随市场宏观消息面的平淡,或许我们都没有足够重视即将公布的美国通货膨胀cpi数据给市场带来的影响.
NFT项目需要打破「重复造轮子」的局面。原文标题:《开放版权能否打破NFT市场死水?》 撰文:汤圆 8月5日,NFT项目Moonbirds创始人KevinRose在社交媒体推特上公开宣布,将Mo.
区块链技术被认为是21世纪最有潜力的应用领域之一。随着全球进入数字化时代,数据安全和隐私保障变得越来越重要。目前,全球数据正在呈现爆?发式增长.
据新华社早前报道,数字人民币试点从原来的“10+1”试点地区拓展到15个省23个地区,深圳、苏州、雄安新区、成都4个地方取消了白名单限制,并吸收兴业银行作为新的指定运营机构.
当我们在Google检索DID一词时,首先会跳出的是其医学解释——「多重人格障碍」,而非我们熟知的去中心化身份概念.
8月10日星期三,以太坊完成了Goerli测试网Merge升级的最后一次彩排。这为开发人员在9月19日在以太坊主网上进行Merge升级开了绿灯.