APP:小白也能看懂的“零知识证明”原理

编者按:本文来自hackernoon.com,作者:OscarW译者:星球日报茶凉

零知识证明或零知识协议是一种基于概率的验证方法,包括两部分:宣称某一命题为真的证明者和确认该命题确实为真的验证者。零知识证明指的是证明者能够在不向验证者提供任何有用的信息的情况下,使验证者相信某个论断是正确的,在密码学中非常有用。顾名思义,零知识证明就是既能充分证明自己是某种权益的合法拥有者,又不把有关的信息泄漏出去,即给外界的“知识”为“零”。“能够在不知道用户是谁,或者他们有多少钱的情况下判断‘一个用户是否有足够的钱发送给另一个用户’的问题,是零知识证明在区块链中的主要应用之一。”——DemiroMassessi为何零知识证明如此重要?数据隐私是当今社会最重要的课题之一。保护与个人身份有关的个人资料(出生日期、银行月结单、交易记录、学历)极为重要,并会不断增加其重要性。在科技时代,我们正在生成前所未有的海量数据,而我们不断创造的关于我们自己的数据也在不断被获取。像谷歌和Facebook这样的大公司已经利用我们的数据成为了今天主宰世界的科技巨头。然而,最近密码学的突破和区块链的兴起使一种新的方法能够帮助保护我们的数据和身份,甚至保护我们与之交互的组织。零知识证明可能就是如何保护数据隐私的答案。零知识证明的原则零知识证明是麻省理工学院研究人员在20世纪80年代提出的一种加密方案。零知识证明协议是一方(证明者)向另一方证明(验证者)某件事情是真实的一种方法。除了该特定声明是真实的以外,没有披露任何其他信息。例如,当前网站将用户密码的哈希值存储在其web服务器中。为了验证客户端是否真的知道密码,大多数网站目前使用的方法是对客户端输入的密码进行哈希值计算,并将其与存储的结果进行比较。零知识证明可以保护用户的帐号信息不被泄露。如果零知识证明可以实现,那么在客户的密码是未知的情况下,仍然可以在客户端登录进行身份验证。当服务器受到攻击时,用户的帐户仍然是安全的,因为客户的密码没有存储在web服务器中。交互式零知识证明零知识证明协议的基础是交互式的。它要求验证者不断地提出一系列关于证明者所知道的“知识”的问题。例如,如果有人声称知道九宫格谜题的答案,零知识证明就是验证者随机指定按列、行或九个正方形进行验证。每个测试不需要知道具体的答案,只需要检测数字“1”到“9”是否包含在其内。只要验证的次数足够多,就有可能判断证明者是否知道九宫格谜题的答案。然而,这种简单的验证方式并不能使人们相信证明者和验证者都未做伪证。在九宫格游戏中,两者可能会事先串通,以便证明者在不知道答案的情况下通过验证。如果他们想说服第三方相信这个结果,验证者还必须证明验证过程是随机的,并且它不会将答案泄露给证明者。因此,第三方很难验证交互零知识证明的结果,需要第三方的参与,等额外的努力和成本才能向多人证明某件事是真实的。非交互式零知识证明非交互式零知识证明,顾名思义,不需要交互式过程,避免了验证者和证明者串通的可能性,但可能需要第三方机器和程序来确定验证的顺序。例如,在九宫格游戏中,由第三方程序决定要验证哪一列或哪一行。验证序列必须保密,否则验证者可能在不知道真实“知识”的情况下通过验证序列。零知识证明在区块链中的应用比特币和以太坊网络都使用公共地址来代替验证者和证明者的真实身份,使得交易部分匿名;只有发送和接收地址,以及交易数量是公众知道的。但是,通过区块链上提供的各种信息,如交互记录等,可以发现地址的真实身份,存在隐私暴露的隐患。用了零知识证明之后,发送方、接收方和第三方的细节信息可以保持匿名,同时保证交易有效。最早使用零知识证明技巧的区块链叫做Zcash,实际的作法叫做Zk-Snarks,这是许多零知识证明的做法之一,也是最有名的一个。Zk-Snarks是“零知识简洁无交互知识认证”的简称,是一种在无需泄露数据本身情况下证明某些数据运算的一种零知识证明。Zk-Snarks技术缩减了证明所需的时间和验证它们所需的计算量。它能够证明有效交易的条件已经满足,而不需要透露交易所涉及的地址或交易量的任何关键信息。Zcash可以将交易纪录上的汇款者、收款者和金额都经过加密隐藏起来,因此矿工无从得知这些交易上的细节,但仍然可以验证交易。不过,目前多数使用者在Zcash上的交易,还是选择未经加密的作法,因为花费的成本比较高。另外,以太坊上的智能合约目前也已经可以运用Zk-Snarks这套零知识证明的作法。但以太坊不完全是从隐私的角度切入,而是从节省运算成本的角度应用零知识证明。透过Zk-Snarks,以太坊矿工可以不用再重新执行交易的运算,而是只要对方提得出证明即可。大概就像我不需要真的知道你会高一到高三的数学,而只要看到高中毕业证就能确定你懂高中数学。不过,这只有在制作证明的成本,远低于实际运算成本的情况下才划算。Zk-Snarks将需要验证的交易内容转化为两个多项式乘积相等的证明,并结合同态加密等高级技术,在执行事务验证的同时保护隐藏的事务量。其过程可简单描述为:将代码分解为可验证的逻辑验证步骤,然后将这些步骤分解为由加减乘除组成的计算流程。进行一系列变换,将待验证代码转换为多项式方程,如t(x)h(x)=w(x)v(x)。为了使证明更加简洁,验证者事先随机选择几个检查点s,检查这些点上的方程是否为真。通过同态编码或加密,验证者在计算方程时不知道实际输入值,但仍然可以验证。在等式的左右两边,乘以一个不等于0的密值k。当验证(t(s)h(s)k)=(w(s)v(s)k)时,具体的t(s)、h(s)、w(s)、v(s)是不可知的,可以对信息进行保护。当前履行Zk-Snarks算法的一个缺陷是需要在advanced中内置参数。如果这些参数泄露,整个网络将面临毁灭性的破坏。因此,用户必须信任在使用这些网络时不会泄露的信息。可能的解决方案包括使用现代的“可信执行环境”,如IntelSGX和ARMTrustZone。对于Intel的SGX技术,即使应用程序、操作系统、BIOS或VMM受到威胁,私钥也是安全的。此外,最近的一份白皮书揭示了它在零知识密码学中的创新:Zk-Snarkss(零知识可伸缩透明知识参数)。根据Zk-Snarks白皮书,Zk-Snarks是第一个不依赖任何信任设置实现区块链验证的系统,而随着计算数据数量的增加,计算速度呈指数增长。它不依赖于公钥加密系统,而且更简单的假设使它在理论上更安全,因为它唯一的加密假设是哈希函数(如SHA2)是不可预测的。零知识证明和Zk-S(T|N)ARK等技术的测试和采用需要时间。

OpenSea推出全新的市场协议Seaport Protocol:金色财经消息,NFT市场OpenSea周五宣布推出一个全新的Web3市场协议Seaport Protocol,用于安全高效地买卖NFT,OpenSea表示,“Seaport核心智能合约是开源的,本质上是去中心化的,没有合约所有者、具有可升级性以及其他特性”。与一些平台只能用加密货币换取NFT不同,Seaport协议允许用户以一系列新方式获取NFT,投标人(或报价者)可以捆绑不同的资产(如提供ETH/ERC20/ERC721/ERC1155物品)以换取NFT。例如,假设某用户拥有一个40ETH的Doodle NFT,但想交易100ETH的BAYC NFT,用户可以用拥有的Doodle NFT和60ETH来出价。OpenSea表示,不控制或运营Seaport协议,并与code4rena合作开始为期两周的协议审计竞赛,奖金池为100万美元。(THE BLOCK)[2022/5/21 3:32:14]

Algorand基金会发布全新代币模型 将ALGO释放时间延长至2030年:北京时间12月10日,Algorand基金会上线全新官网,并同时发布了一个全新的ALGO通证长期发展动态模型。从现在起,基金会将把总供应量固定不变的100亿ALGO的分配时间跨度,从现在的4年延长到10年,直至2030年结束。[2020/12/10 14:46:04]

火币将于7月28日开启全新FastTrack (第11期):7月22日,火币全球站发布公告表示,将于7月28日开启全新FastTrack(第11期),并分为”充值投票“和”HT投票“两个阶段。

在“充值投票”阶段,所有实名用户均可参与,充值即投票。用户充值任意候选项目的代币至火币全球站,充值投票结束后会基于用户的累计充值量瓜分对应项目价值10万USDT的代币。

在“HT投票”阶段,用户可享半价购买资格。“HT投票”沿用往期FastTrack规则,用户可选择一个候选项目进行投票,1 HT记为1票。投票完成之后基于用户的票数以5折价格瓜分对应项目的代币,本轮每个项目各释放价值15万USDT的代币。

火币全球站CEO七爷表示,开启FastTrack 是赋能HT生态发展的全新起点。市场分析人士认为,近期火币全球站已推出DeFi狂欢季,成为投资DeFi的一站式交易平台,回归后的FastTrack 或与DeFi项目有关。[2020/7/22]

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

链链资讯

[0:15ms0-3:520ms