小白也能看懂的“零知识证明”原理_ARKS:区块链

编者按:本文来自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等技术的测试和采用需要时间。

芝商所(CME)将于12月6日推出微型以太坊期货:芝商所(CME)将于12月6日推出微型以太坊期货,正等待审核。(金十)[2021/11/2 21:19:10]

以太坊2.0存款合约地址已收到12万枚ETH,进度22.89%:据欧科云链OKLink数据显示,当前以太坊2.0存款合约地址已收到120000.0ETH,有84个地址完成32ETH的抵押,距离524288枚ETH启动以太坊2.0创世区块的最低要求已完成22.89%。[2020/11/20 21:31:33]

分析 | 以太坊2.0或提高运行验证者软件的硬件成本 但ETH通胀率将低于1%:据此前消息,在听取了V神关于“减少分片数量”的建议后,以太坊开发人员似乎在最后一刻对ETH 2.0做了一些更改,将分片从1024个减少到64个。运行以太坊2.0验证者软件的硬件成本可能会因为这个新方案而增加。即便如此,其经济模型仍将把通胀率保持在1%以下,并为验证者动态调整奖励规模。在诸如以太坊2.0之类的PoS区块链上的验证者与在PoW区块链上的验证者职责相似:处理事务并追加新块。新模型将重点从计算转向控制。PoW网络有外部成本,比如算力。确保PoS网络上参与者的诚实是内部机制,如抵押价值(staked value)。在以太坊2.0上抵押ETH的人越多,其安全性就越高。以太坊2.0中的分片越少,保护整个网络所需的验证者就越少。[2019/10/25]

动态 | 简体中文已成为以太坊官网支持的第三种语言:据官方消息,以太坊基金会在上个月宣布了一项大规模的官网(ethereum.org)翻译计划,目前除了英文和韩文之外,简体中文已成为官方支持的第三种语言,目前还在继续推进日语、俄语、德语和意大利语的翻译。据上个月以太坊基金会的介绍,最终以太坊官网将被翻译为至少 15 种语言,而且将逐渐扩大范围,纳入文档、指南、博文等重要第三方资源的翻译。[2019/9/20]

分析 | 以太坊基本面保持稳定 活跃地址数增速放缓:据 TokenGazer 数据分析显示,截止至 9 月 2?日 11 时,以太坊价格为$170.83,总市值为$18,302.5M,主流交易所交易量约为$74.79M,平稳波动;以太坊对比特币汇率仍在年内低点附近波动,有持续下滑趋势;基本面方面,以太坊链上交易量、算力、链上DApp交易量保持稳定,活跃地址数增速逐渐放缓;以太坊 30 天开发者指数约为 2.26;与 BTC 180 天关联度有一定下滑,目前约为0.790;以太坊 30 天 ROI 近期有一定反弹;ERC20 代币总市值约为以太坊总市值的 70.85%,保持稳定。[2019/9/2]

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

金智博客

[0:15ms0-3:527ms