注:原文作者是以太坊创始人VitalikButerin,以下是译文内容。
特别感谢PlasmaGroup团队提供的审阅及反馈工作。
目前2层扩容方法正从理论阶段走向实践阶段,但同时,这些扩容技术所存在的内在挑战也越来越容易被看到,也因此它们距离成为成熟的以太坊扩容技术还有一段距离。以太坊在很大程度上可以说是成功的,因为它的开发体验是非常简单的:你编写一个程序,发布该程序,任何人都可以与之交互。另一方面,设计一个状态通道或Plasma应用,依赖于很多关于激励和特定于应用的开发复杂性的明确推理。对于特定的用例,例如相同的两方之间的重复付款和二人博弈游戏,状态通道是适合的,但对于更广泛的应用而言,这被证明是具有挑战性的。而Plasma,在支付方面可以很好地发挥作用,但面对更多的应用也同样会面临挑战:即使实施一个去中心化交易所,也需要客户端存储更多的历史数据,在Plasma上应用以太坊式智能合约似乎也非常困难。
但与此同时,一个被遗忘的“半layer-2”协议类别又重新出现了——这个类别在扩展性方面的收益较小,但其具有更容易泛化和更有利安全模型的好处。在一篇被大家遗忘已久的博客文章中,我介绍了“影子链”的概念,即区块数据发布在链上,但默认情况下区块不会被验证的一种架构。相反,区块是被暂时接受的,只有在一段时间后才能最终确定。在这两周内,一个暂时接受的区块可能会受到挑战;只有这样才能验证该区块,如果该区块被证明是无效的,那么该区块所在链将被恢复,并且原始发布者的存款将受到惩罚。合约不会跟踪系统的完整状态,它只跟踪状态根,用户自己可通过从头至尾处理提交给链的数据来计算状态。而最近出现的一个ZKRollup提议,通过使用ZK-SNARKs验证区块的有效性,在没有挑战期的情况下做同样的事情。
印度新冠疫情救助基金回应V神捐赠:在一段时期内兑现这些代币:5月13日,此前V神向Polygon创始人Sandeep Nailwal上月启动的印度加密货币疫情救助基金(India's Crypto Covid Relief Fund)捐赠50万亿枚SHIB代币(价值近12亿美元)。对此,印度加密货币疫情救助基金发推感谢V神慷慨解囊。并称会在考虑周全的情况下,针对疫情救助需求,在一段时期内慢慢兑现这些代币。[2021/5/13 21:57:16]
在链上发布ZKRollup包的剖析图:影响ZKRollup系统状态的数百笔“内部交易”被压缩成一个包,每笔内部交易包含约10个字节,用于指定状态转换,再加上一个约100-300字节的SNARK。
在这两种情况下,主链用于验证数据可用性,但不验证区块有效性或执行任何重要的计算,除非有挑战被提出。因此,这种技术并不具有惊人的可扩展性收益,因为链上数据开销最终会成为瓶颈,尽管如此,它依然是一个非常重要的技术。数据比计算便宜,有很多方法可以非常显著地压缩交易数据,特别是因为交易中的大部分数据是签名数据,很多签名可通过多种形式的聚合压缩为单个签名。zkrollup通过将每笔交易压缩到仅10个字节,其可承诺每秒500笔交易,这比以太坊链本身的吞吐量高出30倍。签名不需要包括在内,因为有效性由零知识验证。而使用BLS聚合签名,可以在影子链中实现类似的吞吐量。而即将到来的以太坊伊斯坦布尔硬分叉,将把数据的gas成本从每字节68单位降低到每字节16单位,从而将这些技术的吞吐量再提高4倍。
V神报告ETH2.0存款合约已达46万枚ETH:V神刚刚发推称,以太坊2.0存款合约现在达到46万枚ETH(达成~87.7%的目标),到最早可能的启动时间还有12个小时。创世启动将在激活后7天发生,需要达到524288枚ETH才能激活。V神称,如果想要启动创世纪,请确保在激活前存款。而截至发稿,以太坊2.0存款合约地址余额已达462,208枚ETH,距离524288枚ETH启动以太坊2.0创世区块的最低要求已完成88.16%。[2020/11/24 21:52:54]
————————————————————————————————————————————————
那么,数据链上技术与数据链下技术相比有什么好处呢?首先,前者不需要半可信的运营者。在ZKRollup中,由于有效性是由加密证明验证的,所以package提交者没法实现恶意破坏。在optimisticrollup中,恶意提交者可以发布坏区块,但下一个提交者将在发布自己的区块之前立即挑战该区块。在ZKrollup和optimisticrollup中,在链上发布足够的数据,允许任何人计算完整的内部状态,只需按顺序处理所有提交的delta,并且没有可夺走此属性的“数据预扣攻击”。因此,成为一个运营者可能是完全没有权限的,所需要的只是一个用于反垃圾交易目的的保证金。
动态 | Solana创始人称V神亦无法解决分片问题,遭V神反驳:此前,Solana创始人Anatoly Yakovenko接受采访时就“分片(Sharding)”表示:我认为分片只是一个非常困难的计算机科学问题。目前为止,没有人真正解决这个问题。没有哪个数据库可以真正算得上是分片,甚至Vitalik(V神)也无法解决这个问题,这真的非常非常难。随后,V神对此回应称:“对于如何做分片,我们已经说了两年了。细节改了,基本方法没改。不知道怎么能说分片是一个还没解决的问题。”[2019/10/14]
第二,optimisticrollup特别容易概括;optimisticrollup系统中的状态转换函数实际上可以是任何可在单个区块的gas限制内计算的函数。尽管在实践中,使ZKSNARKs超过通用计算是非常困难的(至少目前而言是这样),ZKRollup在理论上也是可用同样的方式进行概括的。第三,optimisticrollup更容易构建客户端,因为其对第二层网络基础设施的需求更少,只需扫描区块链就可以完成更多的工作。
但这些优势来自于哪里呢?答案在于一个被称为数据可用性问题的高级技术性问题。基本上,在第二层系统中有两种方法。第一种是将无效数据发布至区块链,第二种方法是根本不发布数据。已发布但无效的数据很容易处理,因为一旦数据在链上发布,就有多种方法可以明确地确定其是否有效,而无效的提交则是明确无效的,因此提交者可能会受到严重惩罚。另一方面,不可用的数据会更难处理,因为即使在受到质疑时可检测到不可用性,也无法可靠地确定未发布的数据是谁的错误,尤其是在数据被默认保留的情况下,仅当某些验证机制试图验证其可用性时才按需显示。这一点在“渔夫困境”中得到了说明,它显示了一个挑战响应游戏如何无法区分恶意提交者和恶意挑战者:
声音 | V神:未来任何时候“消除” ETC在各个方面都是极具破坏性的举动:以太坊创始人V神在推特上回复网友有关“对ETC有什么看法”的提问时表示,ETC人士似乎认为PoS和分片是净损耗。因此,我看不到以太坊2.0如何为支持者服务,因此在未来的任何时候“消除” ETC似乎在各个方面都是极具破坏性的举动。[2019/10/11]
渔夫困境,如果你只在时间T3开始查看给定的特定数据,那么你不知道自己是处在Case1还是Case2中,因此谁是错误的呢?
Plasma和状态通道,通过将问题推给用户,都是围绕解决“渔夫困境”问题:如果你作为用户,你决定你正在与之交互的另一个用户不向你发布他们应发布的数据,那么你有责任退出,并转移到另一个交易对手/运营者。事实上,作为一个用户,你拥有所有以前的数据,以及关于你签署的所有交易的数据,这允许你向链证明你在layer-2协议中拥有哪些资产,从而安全地将它们带出系统。你证明了一个给了你资产的操作的存在,没有其他人能证明你批准的将资产发送给他人的操作的存在,所以你得到了资产。
这种技术很优雅,然而,它依赖于一个关键的假设:每个状态对象都有一个逻辑上的“所有者”,并且没有所有者的同意就无法更改对象的状态。这对于基于UTXO的支付而言是好的,它甚至可用于去中心化交易所,但这种“所有权”属性还远远不够。一些应用程序并不具有自然所有者,即使在那些拥有所有者的应用程序中,也常常有多个人可合法地对对象进行编辑。而且,如果不引入拒绝服务攻击的可能性,就无法允许任意第三方退出资产,准确地说这是因为无法证明发布者或提交者是否有过错。
声音 | V神:现专注于POS和分片机制的研究上:近日V神在接受采访时表示,他最近花大量精力在权益证明(POS)和分片机制的研究上。以太坊的研究机构现在在这两方面投入了最多的资源。POS和分片机制都很重要,过去几个月已突破进展。同时,他也在从经济分析的角度研究交易费用,意在通过改良交易费用算法来降低交易费用、使协议对准中心更好、更有效。[2018/8/19]
另外,Plasma和状态通道也存在各自特有的问题。状态通道不允许已不是通道一部分的用户进行链外交易。Plasma要求用户存储大量的历史数据,当不同的资产可相互缠结时,这些数据会变得更大买单机制的去中心化交易所中发生的那样)。
由于数据链上计算链下第2层技术没有数据可用性问题,所以它们没有这些弱点。ZKrollup和optimisticrollup非常小心地在链上放置足够的数据,以允许用户计算第2层系统的完整状态,确保如果任何参与者消失,新的参与者都可轻松取代他们。它们唯一存在的问题,是在不进行链上计算的情况下验证计算,这是一个更容易解决的问题。而且,扩展性获得了显著的提高:在ZKRollup中,每笔交易大约有10个字节,通过使用BLS聚合签名,可以在optimisticrollup中实现类似级别的可扩展性。这相当于目前理论上每秒最多可支持500笔交易,而在伊斯坦布尔硬分叉后,就可实现超过2000TPS。
————————————————————————————————————————————————————
但如果你想要实现更多的可扩展性呢?然后,在数据链上layer2和数据链下layer2协议之间有一个很大的中间地带,有很多混合方法可以为你提供这两者的一些好处。举个简单的例子,可通过发布一个映射来防止在PlasmaCash上实现的去中心化交易所的历史存储爆炸问题,该映射表示哪些订单与链上的哪些订单匹配:
左边:如果PlasmaCash用户拥有1个币,他们需要存储的历史数据。中间:如果PlasmaCash用户拥有1个使用原子交换与另一个币进行交换的币,他们需要存储的历史数据。右边:如果订单匹配在链上发布,PlasmaCash用户需要存储的历史数据。
即使在去中心化交易所的环境之外,用户需在Plasma中存储的历史数据量,也可以通过让Plasma链定期在链上发布每个用户的一些数据来减少。我们还可以想象一个平台在某些状态没有逻辑“所有者”的情况下像Plasma一样工作。Plasma开发人员已开始着手这些优化工作。
因此,对于layer2可扩展性解决方案的开发人员来说,这种混合方案极大地提高了开发的易用性、通用性和安全性,并减少了每个用户的负载。这样做的效率损失也被夸大了:即使在完全脱链的layer-2结构中,用户在不同的交易对手和供应者的存款、取款和移动将是不可避免的,并且会经常发生,因此,不管怎样,都会有大量的每用户链上数据。混合路由为在半layer-2体系结构中快速部署完全通用的以太坊式智能合约打开了大门。
另请参见:
IntroducingtheOVM
BlogpostbyKarlFloersch
RelatedideasbyJohnAdler
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。