再议有效性证明 vs. 错误性证明

时间:2021-07-04 03:50来源:www.fjxmjql.com作者:未知点击:

导读:
扫描关注公众号

OR:因为100个验证者互相监督基本上可以保证整个计算的正确性,因此当提到OR,验证者的数目都数以百计。到了验证阶段,每个验证人都需要进行一遍计算任务,因此在OR中做通用计算的开支是原任务的100倍。

在这种迅速撤款机制没办法应用的场景下,用户只能选择等待标准撤款窗口结束,VP则要比OR快1000倍。

可拓展性

总的来讲,OR明显要消耗更多的链上资源,也因此比StR更快地顶到拓展性天花板。

通用计算开支

STARK:因为验证过程的计算开支微不足道,它仅需一个实体——证明者——进行很多的计算。验证的计算开支有多微不足道呢?目前大家甚至可以用一台容易的智能手机对一大量计算结果做验证,因此可以忽视验证的计算消耗。大家常说证明者的计算开支是原有任务的10000倍,由于证明需要消耗很多的计算来生成。但事实上StR需要的计算开支只是100倍,因此额外的计算开支和OR大致相当。之所以说StR的计算开支仅有100倍,是基于以下理由:

对于算数/几何运算操作,大家已经达到了少于100倍的计算开支。现在应用的Pedersen哈希函数仅仅比原来的操作增加了20倍计算消耗:即用STARK来证明一个Pedersen哈希值的正确性仅仅比直接计算Pedersen慢20倍。 对于那些像SHA-256那样大家都知道计算开支非常大的操作,大家正试着把那些函数换成对STARK友好的操作。大家现在受ETH基金会的资助来进行这部分研究,而且在2020年首季,很多密码学大牛会提交给大家他们的替代策略建议。估计对STARK友好的哈希函数在证明时仅比某些高效的哈希算法的直接计算慢100倍。

然而,有时根本没办法用迅速撤款。对于非同质化资产就没法用:

非同质Token:正如早先由Vitalik介绍那样,假如一只名叫Mitzi的名贵CryptoKitty存在了链下,他的所有者没法需要在链上再收到一只Mitzi,由于世界上有且只有这一只叫Mitzi的CryptoKitty。 隐蔽买卖:Zerocash风格的承诺在某种程度上也是非同质化的。要想把隐蔽买卖中的资金迅速提到主链,用户需要要向流动性提供商揭露承诺中的数据,破坏隐蔽性。

在此特不要说明,和OR比较,VP具备以下优势:

从根本上更安全 撤款时的资本效率高1000倍 可拓展性更强 在计算方面,至少能达到相同的效率

安全性

出处:ETH喜好者

数字虚拟货币世界中流动性的一大痛点在于资金取款时的延迟。在OR中,标准取款窗口期大约为1周时间——这是给提交错误性证明的有效窗口时间。在VP中,标准取款窗口大约为10分钟——这是针对上一次计算结果来生成有效性证明的时间。因此OR的规范取款窗口时间要比VP长1000倍。用OR就要承受如此1000倍的不便,这不止是时间上的延迟,也是资金效率的减少。

近几个月以来,愈加多关注的目光放到了OptimisticRollup(OR)这个基于错误性证明的拓展框架上。大家StarkWare则使用有效性证明,由于它比错误性证明更安全。本文将在安全性讨论以外,列举一些VP较OR的额外优势,同时纠正大众对有效性证明的容易见到误解,最后介绍StarkEx——StarkWare开发、基于STARK和有效性证明的拓展引擎。

大家常常拿VP和OR的通用计算开支做对比:即对于一个给定的链下计算任务,两种不一样的系统额外需要做哪些工作?下文大家将围绕StarkWare的STARK展开,由于这是大家现在应用的VP框架。

-图源来自 Unsplash 的 ArturTumasjan-

导语

作者: AvihuLevy&UriKolodny

最后,大多数人之所以称道OR是由于它可以用到通用计算中,并且将支持EVM代码,而VP不拥有这一特质。对于将STARK用到通用计算中,大家持乐观的态度。

在上一篇剖析中,大家比较了VP和OR,前者只能在某状况转换被严格证明有效的状况下实行该状况转换,而后者则允许任意的状况转换,参与方可以针对无效的状况转换提交错误性证明。大家的上一篇文章聚焦安全性剖析,明确指出了一种能在OR中推行、且会致使OR中所有资金失窃的攻击方法。区块链上的基础构造解决方法需要足够健壮,要能支撑来自金融世界、天天万亿级别的资金交互负载。VP和OR分别如何胜任?因为在OR中窃取资金的本钱和收益大小无关,所以一旦系统承载了足够多的资本,使得破坏系统变得有利可图,那理性的参与者一定会挖空心思通过攻击牟利。与OR相反,VP不会转换到任何无效的状况,使得无论承载多少资金都不会失窃。对于大规模的金融系统,VP更健壮,而OR更脆弱。

感谢DanRobinson,JohnAdler与VitalikButerin对本文的反馈。

翻译&校对: 安仔C1int&阿剑

也可以站在数据集一旦遗失的角度剖析系统的安全性。和VP相比,OR中的数据更为敏锐。一旦数据遗失,OR中的资金就可能失窃——也正因这样,现在的设计策略都集中在链上数据可用性挑战上。而对于VP,因为使用了链上数据,资金就跟存在Layer-1中一样安全。至于VP的链下数据部分,资金最多被冻结,而不会被盗。

资金效率

大家先前描述过一个免信赖的迅速提款机制:想要立刻提款的用户需要给流动性提供商打一份链下资产的欠条,即签名了的条件支付买卖,然后流动性提供商从我们的“存钱罐”智能合约中垫付这笔资金,在链上把欠条金额上的资金转给提款用户,整套操作需要的时间和区块链互联网的转账时间差不多。流动性提供商会按期把累积的链下资产转移到链上的“存钱罐”中。

在这一部分大家将对比不一样的rollup系统,因为相同种类事物间的比较才有意义,因此大家只比较提供链上数据可用性的rollup系统,即:ORvs.STARKZK-Rollup。虽然大家不想,但所有在链上存储数据的rollup系统都将伴随rollup买卖的增多而线性增大消耗的资源量。链上数据包含一些 状况与 见证数据。OR和StR有什么区别在于伴随买卖量的增加,前者的见证数据线性增长,而后者把这部分见证替换成了一个证明,这个证明的大小只能多项式对数级别增长。划重点,对于足够大、足够多的批量买卖,StR的链上数据指纹要比OR小不少…

有必要说明,验证人集合越小或者越多预先指派的状况,验证人就越容易互相勾结,或者遭到外面的贿赂、攻击。

从细则出发:在StR中,见证数据能核实rollup运营者所进行的查验,因此一批计算仅需一则见证,而无需在每一份买卖后面都附一份证明。更出色的是,在现代zkp系统中,这个证明的大小是固定的。因此伴随批量买卖的增大,分摊到每一条买卖头上的资源消耗反而降低。在OR中,每一条买卖都需要附上一则见证,使验证人能核实买卖的正确性。因此对于大量量的买卖,并没均摊降低的优势。更要紧的是。OR中的见证要比买卖本身大不少:比如OR见证需要包含所有用户的签名 1,而VP无需。在单纯的支付中,见证要比支付的数据量大3到5倍;而对于复杂的应用场景,见证一般会比状况的数据大10倍以上,有时甚至更多。

¹ BLS一般被觉得是一种高效的聚合签名机制。大家相信BLS不会只应用在这个用例中,由于它是整理多个签名到一则消息中的最好方法。在OR的用例中,很多消息都需要由买卖收/发方签名;而BLS签名的验证耗时10ms/签名,这不止是验证人的负担,主链在辨别欺诈时也需要处置这种消耗。

VP和OR都能应用迅速取款机制。但在OR系统中,流动性提供商需要在“存钱罐”中筹备1000倍的资金,由于他们收到链下资产等待的时间窗口要长1000倍。这个1000倍的比率和“存钱罐”流动性算法中的各种假设都无关:无论是基于取款金额期望值,或提款-存款差额,再或者是峰值流动性需要、平均撤款金额等等,OR需要的储备金数目都是VP的1000倍。

相关文章
推荐文章

热门标签

区块链赚钱是骗人的吗?_说一说的我亲身经历感受_雄安网

Copyright © 2002-2021 雄安网 (http://zhengdepeixun.com) 网站地图 TAG标签 备案号:

声明: 本站文章均来自互联网,不代表本站观点 如有异议 请与本站联系 本站为非赢利性网站