区块链:如何利用零知识证明改造区块链

编者按:本文来自:以太坊爱好者,作者:RonaldMannak,翻译&校对:曾汨&阿剑,Odaily星球日报经授权转载。已经有许多技术博客发表了关于零知识证明的文章。最近,我自己写了一篇文章,比较了新的通用型zk-SNARK。我注意到,用浅白的语言来解释ZKP用例的文章还寥寥无几。其实,ZKP不仅仅可以用于保护隐私,由于其丰富多样的功能,ZKP甚至可以改变区块链运行的方式。首先:简洁的区块链,从GB到KB

因为区块链的数据规模会随着新区块的产生而不断增长,所以其规模可能会变得很大。这是设计使然,我们已经开始接受这一现实。然而,最近上线的Coda测试网却有些与众不同。首先,Coda的区块链数据规模恒定,并不会增长。其次,它的整条区块链大小只有22kb!这意味着哪怕你用一台上世纪80年代的Commodore64或者ZXSpectrum来跑节点也毫不费力。然而,相较于传统的区块链而言,Coda的安全性有过之而无不及。还有越来越多的项目正在朝着这方面发展:Mir和Starling将在不久后启动与Coda相似但功能更加丰富的“简洁的区块链”。那它们到底是怎么做的呢?任何一个运行过区块链节点的人都经历过这样的痛苦:同步一个节点需要耗费几个小时甚至数天。区块链的数据量往往非常巨大,以至于绝大多数家庭的电脑硬盘和带宽都达不到运行节点的要求。这就导致了中心化。即便是像以太坊这样广受欢迎的区块链,全网也只有大约10,000个节点。其中大部分节点还是被托管在AWS上的,并且归属于少数实体。区块链并没有许多人认为的那样去中心化。为什么同步一条区块链要花这么长的时间?有两个原因。第一个原因显而易见:下载数百GB甚至更多的数据需要耗费一段时间。其次,当节点下载完数据后,还需要对整条区块链进行验证,因为可能会有恶意的节点给你发送错误的数据。要想验证一条区块链,必须从创世区块开始重放:执行第一笔交易,确认计算出的状态与下载到的状态一致。然后验证下一笔交易,直到你验证完整条区块链中所有的交易。这样做既耗时费力;而且在你之前,已经有成千上万的节点执行过同样的计算。但这样做是必要的,因为在传统的计算模式中,知道计算是否正确的唯一方法就是重新再算一次。这对于小型计算来说还好,但对于比较大的计算量而言就不太友好了,比如重放区块链。利用ZKP改善效率及带宽利用

维珍银河董事长:PayPal消息传出后各大银行讨论如何支持比特币:维珍银河董事长Chamath Palihapitiya今晨发推表示,PayPal消息传出后,各大银行都在开会讨论如何支持比特币。它不再仅作为一个选项。[2020/10/22]

事实证明,有一种技术可以在无需重新计算的前提下降低验证计算结果的成本:零知识证明,而zk-SNARK可能是所有零知识证明技术中最出名的。所以到底怎么结合呢?我们必须将区块链的重放函数用zk-SNARK重写一遍。zk-SNARK将输出两样结果:初始输出和一个小型的数学证明,用于证明该计算结果是正确的。这个证明可以小到只有200Bytes(是的,你没看错,不到1KB)。无需让所有的计算机都执行重放函数。只需要有一台计算机创建证明,其它所有计算机都可以按自己的需要验证结果。验证只需要花费几毫秒,不论初始的计算花了多长时间。这些证明可以发布到网络上、通过U盘传播,甚至打印在T恤上。如果有一个恶意的节点改动了余额,那么其证明就会和结果不匹配,所有验证者都会拒绝该状态。如果恶意的节点对zk-SNARK的代码动了手脚,其结果也会被其它节点拒绝。我们已经摆脱了对重复进行昂贵计算的依赖,同时也不再需要下载整条区块链了。你只需要下载当前的状态加上一个很小的证明,用于证明当前状态是有效区块链的一部分,然后花费几毫秒来验证计算结果。递归组合

伏泰昊:JUST主动思考如何在波场上建立完善的DeFi体系:据最新消息显示,波场大航海时代4.0全球线上发布会正在进行中,JUST项目负责人伏泰昊在发布会中表示:“JUST旨在打造基于波场TRON的稳定币借贷平台,一个好的金融产品离不开下面应用层的稳定输入与输出,会有多个协议与应用的交叉集合,长期来看,JST代币作为整个治理体系的代币,我们会提供多种底层借贷协议和报价协议等,为用户提供全面的金融服务。作为DeFi明星项目,JUST不仅致力于开拓波场的稳定币市场,也在主动思考如何在波场上建立完善的DeFi体系。”[2020/7/7]

验证证明的过程非常快,可创建证明的过程呢?事实证明,创建证明所耗费的时间并不是固定的,相较于传统的计算而言,该过程在计算和内存方面要低效得多。事实上,尽管采用了zk-SNARK的重放函数听上去很美好,但它实践起来并不是一个优秀的解决方案。它会消耗巨大的内存,甚至比最初的非zk-SNARK重放函数还要慢。但如今有了另一种优雅的解决方案。通过一些小技巧,我们可以使用递归的zk-SNARK。通过递归,我们不再需要从头开始验证区块链,而可以在上一个状态的基础上构建新的状态。这要快得多。请注意,递归的zk-SNARK并没有非递归的zk-SNARK效率高,但最近zk-SNARK构建已取得了巨大的进步。递归的zk-SNARK程序使用上一个状态、该状态的证明以及新的交易作为输入。它验证上一个状态,并检查新状态中的交易是否有效。如果有效,它将输出新状态及其证明。一旦新状态和证明分发到了网络中,所有节点都可以直接抛弃旧的状态,而不用担心产生任何负面后果。新节点只需要下载最新的状态及其证明就可以了。这就为什么Coda、Mir、和Starlin能实现数据规模恒定的区块链。在我们上一个例子中,只有一个节点会创建新的区块及证明。很显然,并非所有区块都必然是同一个节点产生的。例如,可以从众多节点中随机选择一个节点来创建区块,节点们甚至可以在内部选出节点来出块,且无法作恶)。我们甚至可以做的更好。我们可以将区块生产的逻辑划分为多个zk-SNARK。最终的结果就是区块生产者不需要再保存整条区块链,而只需要保存上一个状态。这种解决方案可以小多少呢?一个常规的Coda节点只需要占用22KB的空间用于存储证明、当前状态和指向一个余额的默克尔路径。通过22KB的存储,节点可以验证整条区块链、查询余额、以及创建交易。但要想生产区块,节点需要做更多的操作:它需要上一个状态的全余额默克尔树。默克尔树的大小取决于钱包的数量。即便Coda拥有的钱包数量和以太坊一样多,一个Coda的区块生产者仍然只需要1GB大小的存储空间。而最小的以太坊全节点则需要230GB。这是一个巨大的差距。通过这种方式,网络中会有更多活跃的节点,进而增加其去中心化程度,并为与区块链交互的程序开辟了许多新的可能性,而不用再借助诸如Infura或Metamask等解决方案。考虑到99%的用户在安装Metamask之前就已经放弃了,这应该会带来巨大的影响。感谢DanielLubarov(Mir)、ShaneVitarana、StanvandeBurgt、TaariqLewis、和DmitriyBerenzon对本文的校对。

声音 | 海尔集团董事局主席:如何利用区块链改变企业未来:海尔集团董事局主席、首席执行官张瑞敏在近期参加的活动时提出:产品会被场景替代,行业将被生态覆盖。海尔以区块链为载体,以分布式账本彼此间分享基于物联网的数据资源,一方面不断优化用户体验,一方面所有生态攸关方均得到增值,多方共赢。海尔依据自身优势在区块链领域展开了3个方向的探索:第一,以先发优势,参与制定区块链标准;第二,以延伸效应,赋能产业生态;第三,以区块链思维,变革组织结构。(IT168)[2019/11/19]

动态 | Poloniex回应CLAM“闪崩事件”:无论如何损失将得到解决:Poloniex在推特发布了对于CLAM事件更新:“毫无疑问,我们致力于让受影响的债权人成为一个整体,无论遇到什么样的困境。我们正在努力实现这一目标,包括(但不限于)收回违约借款人欠贷款人的债务。无论如何,损失将得到解决。”据金色财经此前报道,用户考虑起诉Poloniex,指责其处理加密货币CLAM闪崩亏损之举为盗窃。[2019/6/8]

行情 | 救赎说币:WFEE最好不要买入,不管外界如何利好:据救赎分析,WFEE走势图可以看出,下跌之后,一直横在那里,然后后面一波上涨涨幅1.3倍左右,接着再高点跌下来7倍。无论官方怎么发文也好,外界怎么利好也好,这币没有做市值管理,如果有,就不会跌那么惨,也不会横盘那么久。所以这个币种坚决不能买入。币圈没有底线,更没有下限。技术分析来说,买盘不强,但是卖盘也几乎没有。但是卖盘只是暂时没有,项目方还是手里有币的。但是买盘没有就真的没有了。[2018/7/16]

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

地球链

[0:46ms0-1:174ms