请选择 进入手机版 | 继续访问电脑版
智能合约 +关注 已有2人关注 +发表新主题

以太坊的混合二层扩容协议曙光(一)

发表在 2019-10-17 10:44 来自PC 复制链接 手机看帖 扫一扫!手机看帖更爽 0 603

前的二层扩容的方法--基本是Plasma和状态通道。正从理论走向实践,但与此同时,将这些技术视为以太坊成熟的扩容解决方案时所面临的内在挑战也显而易见了。可以说以太坊之所以成功,很大程度上是因为它具有友好的开发体验:开发者编写一个程序,发布该程序之后,任何人都可以与它进行交互。另一方面还依赖了状态通道的设计或Plasma应用程序依赖于许多关于激励和特定于应用程序的开发。状态通道在特定的用例中表现得非常好,比如同一个双方之间的重复付款和两个玩家之间的游戏(在celer中成功实现)之间的交互,但是要有更广泛的使用还是具有一定的挑战性。特别是Plasma Cash可以很好地进行交易支付,但是要普遍化使用也带来了不少的挑战:即使实施去中心化交易所也需要客户存储更多的历史数据,并且在Plasma上推广以太坊式智能合约似乎非常困难。

但与此同时,一个被遗忘的“半二层(semi-layer-2)”协议类别又重新出现了,该协议在扩展方面对用户来说不会有太大的收益,但是该协议更容易普及和更加安全模型。2014年,一篇被遗忘已久的博客文章提出了“影子链(shadow chains)”的概念,即区块数据在链上发布,但区块在默认情况下不会被验证的架构。相反区块是暂时接受的,只有在一段时间(如2周)后才能最终确定。在这两周内,一个暂时接受的区块可以被质疑;只有这样该区块才被验证,如果该区块被证明是无效的,那么该区块之后的链将被回滚,区块发布者的抵押将受到惩罚。智能合约并不需要跟踪系统的整个状态,它只跟踪根状态,用户自己可以通过处理自始至终提交给链的数据来计算状态。最近的提案ZK Rollup通过使用ZK-SNARK来验证区块的有效性,从而在没有挑战期的情况下完成了相同的工作。

在链上发布的zk rollup包的解析。数百个影响zk rollup系统状态(即帐户余额)的“内部事务”被压缩到一个包中,该包中包含每个指定状态转换的内部事务约10个字节,外加一个约100-300字节的snark,证明转换都是有效的。

在这两种情况下,主链用于验证数据可用性,但不(直接)验证区块有效性或执行任何重要计算,除非提出质疑。因此该技术并没有带来巨大可扩展性的增益,因为链上数据开销最终会带来瓶颈,但它却是非常重要的。数据比计算便宜,而且有很多方法可以非常显著地压缩事务数据,特别是因为事务中的大多数数据是签名,并且许多签名可以通过多种形式的聚合压缩为一个签名。ZK Rollup承诺将每笔交易压缩到仅约10个字节,从而实现500tx / 秒的速度,比以太坊本身增加30倍。签名不需要包括在内,因为它们的有效性由零知识证明来验证。使用BLS聚合签名可以在影子链中实现类似的吞吐量。即将推出的伊斯坦布尔硬分叉将把数据的gas成本从每字节68降低到每字节16,将这些技术的吞吐量再提高4倍(即每秒超过2000个事务)。

那么,zk/optimistic rollup(乐观汇总)之类的数据链上技术与plasma之类的数据链外技术相比有什么好处呢?首先不需要半信任的操作者。在zk rollup中,由于有效性是通过加密证明来验证的,因此包提交程序实际上不可能是恶意的(根据设置,恶意提交程序可能会导致系统暂停几秒钟,但这是可能造成的最大危害)。在(optimistic rollup)乐观汇总中,恶意提交者可以发布恶意区块,但下一个提交者将在发布自己的区块之前立即对该区块提出质疑。在zk和(optimistic rollup)乐观汇总中,链上发布的数据足够让任何人来计算完整的内部状态,只需按顺序处理所有提交的增量,并且没有“数据预扣攻击”可以夺走此属性。因此成为一名操作者是完全没有权限的,所需要的只要一笔用于反垃圾邮件目的的保证金(如10 ETH)。

其次,乐观汇总(optimistic rollup)特别容易推广;乐观汇总(optimistic rollup)系统中的状态转移函数可以是在单个区块的gas限内计算得到的任何数据(包括提供验证该转移所需的部分状态的merkle分支)。zk rollup在理论上是可以用同样的方式进行推广的,但在实践中,要使ZK-SNARKs超越普通计算(例如EVM执行)非常困难。第三,乐观汇总(optimistic rollup)更容易为其构建客户端,因为对第二层网络基础设施的需求较少;只需扫描区块链就可以完成更多工作。

但这些优势从何而来?答案在于一个技术性很强的问题,即数据可用性问题。基本上有两种方法可以尝试在第二层系统中作弊。第一是向区块链发布无效数据。第二种方法是完全不发布数据(例如在Plasma中将新Plasma区块的根哈希发布到主链,但不向任何人透露该区块的内容)。已发布但无效的数据很容易处理,因为一旦数据在链上发布,就有多种方法可以明确地判断它是否有效,而无效的提交则明确地无效,因此提交者可能会受到重罚。另一方面,不可用的数据更难处理,因为即使在受到质疑时可以检测到不可用性,但也无法可靠地确定是谁的发布的错误数据,尤其是如果默认情况下保留数据,并且只有在某些验证机制试图验证其可用性时才按需显示数据。这在“渔夫困境”中得到了说明,它显示了挑战响应游戏如何无法区分恶意提交者和恶意挑战者:



渔夫的困境。如果您仅在时间T3开始查看特定的数据,你就会在案例1或案例2中混淆,因此也不知道谁是恶意用户。

Plasma和通道都通过将问题推给用户来解决渔民的困境:如果您作为用户决定与您交互的另一个用户(通道中的交易对手、Plasma链中的操作员)没有向您发布他们应该发布的数据,则您有责任选择退出并移至其他交易对手/操作员。作为用户您拥有以前的所有数据以及您签署的所有交易有关的数据,这一事实使您可以向链中证明您在第2层协议中拥有哪些资产,从而安全地将其从交易中退出系统。你证明了一个(先前同意的)操作的存在,将资产交付给你,没有其他人能够证明你已把资产发送给别人的操作,所以你可以撤回属于你的资产。

(未完待续)


扫描二维码,手机查看本帖
显示全部楼层 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

返回顶部
快速回复 发贴