热门关键词:job竞博官网首页,jbo竞博电竞官网  
让我们用非技术语言告诉你,零知识证明如何改变区块链
2020-12-20 [45243]

jbo竞博电竞官网:用最简单方式说道浮「精简区块链」构建方式和极大价值。撰文:Ronald Mannak,区块链创业公司 Starling Protocol 牵头创始人兼任 CEO编译器:卢江飞关于零科学知识证明(ZKP)的技术类博客文章很多,最近我也写出了一篇文章,较为各种新的标准化目的的 zk-SNARK。我找到,关于零科学知识证明的用例,很少简单非技术语言阐释的文章。

事实上,零科学知识证明不仅能用在隐私方面,还有许多其他用途。它功能如此非常丰富,甚至有可能新的定义区块链的运作方式。

精简区块链,从 GB 传输到 KB区块链的区块可能会相当大,而且其大小在大大快速增长。这源自其最初的设计。我们也慢慢拒绝接受了这个现实。

jbo竞博电竞官网

但是,Coda 项目最近公布的测试网却有所不同。首先,Coda 的区块链是相同大小的,且会快速增长;其次,它只有 22KB!即便是上世纪 80 年代的 8 位机家用电脑 Commodore 64 或 ZX Spectrum,也能把它塞进去。而且,与传统的区块链比起,Coda 的安全性差不多,甚至更高。

类似于但功能更好的「精简区块链」项目更加多,比如 Mir 和 Starling(我本人也参予了 Starling 项目)。这究竟是如何做的呢?只要尝试部署过一个区块链节点,你就不会告诉这个过程有多伤痛:实时一个节点必须好几个小时、甚至数天时间。

区块链如此之大,以至于大多数的家用计算出来设备的磁盘空间和比特率都约将近基本拒绝。结果就是中心化。即便像以太坊这样甚广热门的区块链,其节点数量也就 10,000 个,大多数都托管地在亚马逊 AWS 上,由少数几个实体所享有。区块链并不像许多人以为的那么去中心。

为什么实时一个区块链要这么长时间呢?主要有两个原因:· 第一个原因很显著:iTunes几百 GB 或更加多数据必须很长时间;· 第二,iTunes完了之后区块链要已完成检验,因为蓄意节点可能会向你发送到不准确的数据。若要检验一个区块链,必需从创世纪区块开始纠错(replay)整条链:继续执行第一个交易,并保证计算出来出有的状态相等iTunes获得的状态。然后转至下一个交易,直到你把区块链的所有交易都坎一遍。

这不仅耗时,也浪费资源。在你之前,成千上万的节点做到着完全相同的计算出来工作。为什么要这么做到呢?因为在传统计算出来学里,要告诉一个计算出来否准确的继续执行,唯一办法就是轻做到一次这个计算出来。

如果小规模的计算出来,那就就让,但像纠错一条区块链这种「快运算」(slow calculation),情况就几乎有所不同了。可提高效率和比特率的零科学知识证明事实上,有一种方法可以低成本地检验一个计算结果,而又需要轻做到该计算出来,那就是零科学知识证明(ZKP),其中最知名的有可能要数 zk-SNARK。它是如何工作的呢?我们必须将区块链的纠错函数重写为一个 zk-SNARK。

这个 zk-SNARK 将输入两个东西:具体化的输入(就跟原本的纠错函数一样); 一个较小的数学「证明」,证明这个结果计算出来准确。这个「证明」可以小到只有 200 字节(到底,还将近 1KB)。这样一来,我们就不必须所有(或是多台)计算机跑完一遍纠错函数了。

由一台计算机去创立这个「证明」,其他不缩数量的计算机可以在它们指出适合的时间再行展开检验。无论具体化的计算出来要花费多长时间(即使是几小时、几天、甚至几年都没关系),检验却只需几毫秒才可搞定。

这个「证明」可以通过线上发给,也可以存储在 U 盘里,甚至可以印在 T 恤上。如果有蓄意节点变更了某个交易的余额,网卓新闻网,那么这个「证明」就不会和结果有所不同,所有检验者都会拒绝接受这个状态。

job竞博官网首页

如果有蓄意节点变更了 zk-SNARK 代码,结果也不会被拒绝接受。(有一个「第三参数」、一个公开发表分享的字符串,不会把这个「证明」绑到这个 zk-SNARK 代码。如果代码被改动,那么这个「证明」和分享的字符串将不给定,于是检验者就不会拒绝接受该结果。

)我们仍然必须轻做到便宜的计算出来,也不必须iTunes区块链(因为我们早已有了关于该区块链不存在且有效地的数学证明)。你必须的,只是当前状态(比如最后一个区块),再加需要证明当前状态是一个有效地区块链的一部分的少量「证明」,再行花费几毫秒检验一下结果。递归性的人组检验一个「证明」的速度迅速,但创立这个「证明」怎样呢?只不过时间不相同,与传统计算出来比起,在计算出来和和内存方面它的效率要较低不少。

实质上,虽然一个纠错函数的 zk-SNARK 版本听得一起不俗,但在实践中这个解决方案并很差。和以往的非 zk-SNARK 的纠错函数比起,它必须更大的内存,速度甚至更快。不过,还有另一个高雅的方案。我们找到,用一点点小技巧,只不过可以用于递归性 zk-SNARKs 。

有了迭代,我们就不用从头开始检验这个区块链,可以在前一个状态的基础上来建构。速度不会更快。

必须留意的是,递归性 zk-SNARK 的效率仍然不如非迭代的 zk-SNARK ,不过,最近 zk-SNARK 的结构获得了突飞猛进的变革。一个递归性的 zk-SNARK 程序,不会用归属于「前一个状态」(previous state)的「证明」和新的交易作为输出。它不会(用已被获取的证明)检验前一个状态,并检查新的状态中的交易否有效地。

如果没问题,它不会输入新的状态和一个「证明」。一旦新的状态和「证明」被发给到网络中,所有节点可以必要弃置先前的状态,这么做到会有任何负面影响。新的节点只必须iTunes近期的状态和「证明」才可。这也就是Coda、Mir 和 Starling 这些项目可以构建小的、大小相同的区块的秘诀。

在上面说道的这个例子里,只必须一个节点来创立新的区块和「证明」。似乎,我们没有适当让同一个节点来分解所有的区块。荐个例子,可以从许多节点中随机自由选择一个节点(用「可验证随机函数」,众多节点甚至可以随机自我自由选择而会有愚弄不道德)。我们甚至可以做到得更佳:将区块的分解逻辑分成多个 zk-SNARK。

最后结果就是:区块生产者不必须原始的区块链,它只必须前一个状态。这不会让区块大小降至多少呢?一个常规的 Coda 节点仅有必须 22 KB 才可存储「证明」、当前状态以及某个账户余额的 Merkle 路径。只必须 22KB,一个节点就能检验整个区块链、查找余额并创立交易。

但是,如果要分解区块,这个节点必须更加多:它必须先前状态的全部余额的 Merkle 树根。而 Merkle 树根的大小各不相同钱包的数量。如果 Coda 享有和以太坊一样多的钱包,那么,Coda 区块生产者也只必须约 1 GB 的容量。

而以太坊上大于的原始节点是 230 GB(2019 年 12 月的数据)。差距极大。利用零科学知识证明,区块链网络将有更加多活跃节点,这就提高了去中心化程度,并让各种程序有更加多有可能与区块链展开交互,而需要像 Infura 或 Metamask 这样的方案。

想想看,99% 的新用户在加装 Metamask 时自由选择了退出。所以,这种变化将带给极大的影响。感激以下各位对本文的稿件: Daniel Lubarov (Mir), Shane Vitarana, Stan van de Burgt, Taariq Lewis,和Dmitriy Berenzon。

作者许可链闻翻译成并公布该文中文版本。:jbo竞博电竞官网。

本文来源:jbo竞博电竞官网-www.s4management.com