正如我们之前所讨论过的那样,以太坊以及与之相关的社区都在寻求模块化的方式来实现区块链扩容。
数据可用性。一个公共公告板,保证所有在线方都可以访问最近发布的有序数据。结算层。一种共识协议,根据有序的交易列表,集体商定所有账户的余额。执行层。负责执行复杂交易和智能合约代码等所有艰难的工作。在以太坊,甚至比特币中,数据可用性层和结算层是结合在一起的。这种组合对于区块链网络的实际部署非常重要。
这种组合允许网络通过与收费市场纠缠在一起来限制数据的发布。如果用户愿意支付有竞争力的网络费用,并且数据符合约定的限制,那么用户可以发布他们想要的任何数据。
举个例子:
比特币blobs。由于与隔离见证见证相关的额外见证数据限额和费用折扣以及Taproot的进一步放宽,OrdinalNFT被开启了。以太坊blobs。EIP-2028降低了CALLDATA的gas成本,以支持初始版本的rollup。目前正在与EIP-4844合作,为CALLDATA创建一个单独的费用市场,并允许以进一步的折扣率发布数据blobs。有趣的是,甚至令人惊讶的是,这两个网络都在有意无意地降低发布数据blobs的成本。
然而,我们需要知道,虽然比特币和以太坊都可以作为数据可用性层,但在结算层方面,它们并不具有相同的功能。
这其中有一个小小的区别,对rollup的安全性有巨大的影响,也可以说是它作为一项技术部署的实用性如何。
如何看待Rollup的安全性?
图:一个验证Rollup有一个持有所有资产的验证桥,并独立地验证对链下数据库的所有更新是否有效。
正如我们之前所说,评估一个rollup的安全性,需要从两个关键部分来考虑:
验证桥。一个可信的第三方,它将执行一个固定的规则集来评估链下系统的数据库更新是否有效。一个诚实的助手。诚实的一方,可以挺身而出,协助验证桥,并代表所有参与者挽救局面。关于rollup安全性,几乎所有的讨论都集中在诚实的一方如何协助验证桥。这对rollup是一组独特的新挑战,涉及到参与欺诈证明游戏,在链上发布数据blobs,或如何协调prover提交有效性证明。这些挑战可以概括为数据可用性、状态转换完整性和抗审查性。
我们通常假设验证桥能够正常工作,因为它是可信的第三方。它可以访问底层区块链中的所有资产,它可以作为智能合约实现,我们只需要向以太坊支付一笔费用,就可以利用它来保护链下系统。
当然,桥的设计和实现可能会遇到挑战,但我们可以相信,正在执行验证任务的桥将诚实地遵循协议。
验证桥将继承什么样的安全性?
如果我们深入研究验证桥和底层区块链的假设,真正理解我们可以继承的安全属性是至关重要的。
图:决定一条链的安全性有四大特点:抗重组,抗审查,数据可用性以及有效性。
SreeramKannan?的一条长推很好地总结了这些假设:
抗重组。底层区块链能够决定并且保护所有交易排序的最终性。抗审查。任何人,无论他们是谁,都可以发起一笔交易——只要他们能够支付合适的网络费用。数据可用性。一个公共公告板,保证所有在线方都可以访问最近发布的有序数据。有效性。底层区块链可以独立验证rollup上的所有操作都是有效的。要实现上述属性,我们必须依赖于底层区块链的共识协议和更广泛的网络效应。
在比特币和以太坊中,我们假设有诚实的大多数区块生产者积极参与,并且有不同的验证者网络实时检查所有发布的区块的有效性。
区块生产者诚实的大多数假设可以总结为:
以高费用为先。无论其内容如何,区块生产者将始终选择能够得到最多手续费的交易。尊重分叉选择规则。区块生产者总是会根据网络的分叉选择规则扩展区块链。总而言之,其允许任何人进行交易——只要他们能够支付一笔有竞争力的费用,同时确保所有区块生产者最终汇聚在同一条区块链分叉上。
有趣的是,只要区块链在进行,我们就不需要信任区块生产者会发布有效的区块。所有的区块都可以被运行节点软件的验证者检查并立即拒绝。
只要有足够数量和多样化的具有重要经济意义的代理人运行验证者,那么价值就会被赋予遵守规则的一个真正的区块链。
Rollup可以继承比特币的安全吗?
这就将我们导向了一个问题:
SreeramKannan所说的安全属性实际上适用于比特币和以太坊吗?在比特币和以太坊中,我们之前已经介绍了这两个网络如何很好地实现这些安全目标。
总之,这两个网络都提供了抗重组、抗审查和数据可用性,程度类似。他们都提供了一个平台,在这里,任何人都能发布数据,只要他们愿意支付一笔费用。
一个题外话:我们在2014年做了我的第一个项目ZombieCoin,由于看中了上述属性,我当时就用了比特币来协调僵尸网络的指令和控制中心。
两个网络之间的一个微小差别在于有效性,这在比特币和以太坊之间有很大的不同。
如前所述,我们可以在以太坊上部署一个验证桥智能合约,并继承有效性属性。另一方面,在比特币中,脚本语言和UTXO模型缺乏构建验证桥梁的表现力。该平台不能用于检查数据blob或链下数据库的有效性。
换句话说,除了对发布数据收取费用之外,我们应该将比特币视为缺乏任何形式计算的数据可用性层,如果不对比特币进行巨大的改变,我们就无法像在以太坊上那样在比特币上构建各种rollup。
所幸——这并不是结局。
TaprootWizards?的崛起、EricWall的演讲?以及现在?RollKit?的发布都表明,在比特币上构建不同类型的rollup是有可能的。
主权Rollup?
图:用户将把他们的交易发布到数据可用性层,客户端软件根据全球范围商定的规则集解析这些数据,以计算链外数据库。
这就又引出了一个问题——到底什么是主权Rollup——为什么它可以被部署在比特币以及Celestia等其他网络上?
“Rollup”部分的灵感来自?BarryWhitehat?,它解决了Plasma的数据可用性问题。它本质上是“卷起交易”并将数据blobs发送到底层区块链。只要数据被发布——任何人都可以这样发布数据,那么它就可以被使用。
图:最终由网络的用户决定哪个规则集应该具有赋予它的真实世界的价值。
“Sovereign”部分涉及如何检查数据blobs的有效性,并用于计算链下数据库。它依赖于一个外部社区运行一个软件客户端,该客户端可以获取数据blobs,根据固定的规则集解析数据blobs,并计算链下数据库。
更进一步说,主权Rollup的安全性依赖于大多数,甚至是超级多数,经济上重要的代理同意同一套解析数据的共识规则。如果他们达成集体共识,那么他们都可以计算相同的链外数据库,赋予其真正的经济价值,并信任资产将得到保护。
这种安全性假设有时解释起来有点抽象。多数人或超级多数人赋予价值意味着什么?它与比特币和以太坊等区块链网络的治理规则非常相似。例如,为什么BTC比BCH更有价值?或者为什么ETH比ETC更有价值?
这最终取决于买方市场,以及他们如何将价值归于给定的规则集。
在继续下面的内容之前——这里的关键点在于——安全性并不取决于谁来向底层区块链发布数据或者数据是如何发布的,而在于经济代理如何解析已发布的数据以及谁来决定解析这些数据的规则。
主权Rollup和以太坊Rollup对比如何?
图:以太坊Rollup和主权Rollup的对比
比较这两个系统的一个有趣的方法是,考虑用一个外部软件客户端取代验证桥智能合约的影响,这个外部软件客户端由经济上重要的代理运行,并且底层区块链不知道。
基于此,我们做了一个对比的表格来快速指出简单的一个差异——验证桥VS外部软件客户端——如何影响rollup的特定属性。
我们来一条一条说。
安全假设:
主权rollup取决于经济上重要的代理首选哪个规则集。底层区块链对有效性规则集没有影响。它只能保证数据是公开可用的以及它的总排序。验证桥继承了底层协议的所有安全属性,新的安全性挑战在于诚实的助理。可升级性:
主权rollup依赖于社区共同商定用于解析数据的固定规则集。其升级依赖于经济上重要的代理商同意新规则的过程。它可能反映了“粗略的共识”或软件客户端采用的外部治理协议。验证桥将强制执行所有规则,而更改规则只能通过在智能合约代码中实现的升级过程来执行。系统升级规则对所有人都是公开可验证的。桥资产:
除了数据可用性之外,主权rollup不能使用底层rollup。像BTC这样的原生资产在继承底层区块链的安全性时不能转移。它必须依赖于具有自己信任假设的外部桥接协议。验证桥全权负责保护它从底层区块链传输到rollup的所有资产。共识分叉:
这是一个有趣的讨论——社区中是否存在关于规则集的冲突,以及链下系统是否可以一分为二。BTC/BCH和ETH/ECH已经发生了这种情况,因为两个社区可以各自走自己的路,让市场决定哪一个应该是有价值的。
这里需要考虑的资产有三类:
原生桥接资产。从底层区块链桥接到rollup的资产。Rollupmint资产。在rollup上发行并原生于rollup的资产。桥运行者。支持将资金从一个区块链系统转移到另一个区块链rollup的外部运行者。它有自己的信托假设来保护资产。简单来说:
在主权rollup中,规则集和链下数据库的信任由社区决定。如果存在一个基于共识的分叉,那么在rollup中生成的资产将在不同的分叉上复制,并且由外部桥运行者选择其中一个分叉。在验证桥中,共识分叉是不可能的。智能合约将决定规则集、链下数据库,并最终保护原生桥接到rollup上的所有资产。抗审查:
这在两个rollup上是相同的——必须实现强制包含机制,允许用户将他们的交易提交给数据可用性层,并由其他人拾取。
共识协议:
共识协议在rollup中很有用,它允许一组sequencer在数据blob发布到数据可用性层之前就交易的排序达成一致,或者帮助协调执行者在执行数据blob之后验证新的数据库状态。
然而,共识协议对于这两种类型的rollup来说都并非是必选项,这其中甚至可能产生的争议在于是否应该将其称为“共识”,而不是“预约/排序”协议。
在共识协议的情况下,我们可以依靠强制包含机制,允许用户直接向数据可用性层提交数据blob,其在总排序中的位置将由平台决定。任何人都可以获取有序的数据blob,执行这些blob,然后计算链下数据库。
因此,如果我们想在rollup中添加共识协议,可以将用于解析数据blob的额外规则编码到验证桥或外部软件客户端中。例如,智能合约中可以实现循环协议或公平排序协议。
Gossip协议:
代理不需要通过点对点网络进行协调。所有数据都可以发布到数据可用性层,所有代理都可以读取发布的数据。是否存在验证桥或外部软件客户端对如何在rollup中发送消息没有影响。
主权Rollup=结算层?
可扩展性通常被认为是执行→结算→数据可用性的不同层。每一层都应该直接依赖于下一层,但除此之外,它们在本质上是独立的。
通过评估如何在数据可用性层上部署rollup,它确实突出了这认知的一些问题。
如果没有费用市场来限制数据blob的发布,那么它很容易导致垃圾信息,必须由主权rollup来解析和丢弃。同时,结算层缺乏可表达性会影响我们部署验证桥的能力,并依赖于结算层来保护构建在其之上的所有系统。
在实践中,至少对我来说,我们似乎希望将结算层和数据可用性结合起来,因为这允许用户为发布数据的特权付费,同时启用验证桥的部署。
比特币和以太坊之间的微妙区别——平台能够验证数据blob,以证明执行——对我们如何部署rollup产生了巨大的影响。
你是否希望部署一个验证桥,并允许底层区块链强制执行规则集,以确定链下系统的表现?你是否希望部署一个外部软件客户端,并将该平台用作获取有序数据blob的公告板?换句话说,问题就在于谁应该负责验证数据。
我们能否信任来自底层平台的诚实多数人来验证数据blob是否会导致已证明的执行?我们是否应该引入一组新的经济参与者来检查数据blob是否会导致已证明的执行?除了重新使用大部分底层平台以保证数据blob可用之外。由于区块链的开放性和无需许可的特点,我很兴奋,这两种rollup方法都可以由不同的初创公司进行试验评估。市场将会决定哪种方法是长期有效的。
对我来说,以及我自己关于这些系统如何演化的理论,我确实认为我们应该尽量减少引入积极参与保护系统完整性的不同参与方。毕竟,一个系统的安全性取决于它最薄弱的环节。
在主权rollup的世界里,我们需要信任底层区块链中诚实的大多数对数据blob进行排序,并信任其他参与方来保护数据blob解析方式的完整性。每次部署都需要一组新的参与者,我们需要一种方法在数百/数千个rollup部署中扩展这个人工流程。
这看起来比以太坊的rollup要困难得多,或者我应该称之为验证rollup。项目只需部署一个验证桥,并解决寻找一个诚实的助手来帮助桥的问题。不需要引入一组额外的决策者来保护链下系统,因此它允许我们依靠软件来扩展和支持数百/数千个rollup的部署。
关于主权rollup,还有另一个很有趣的思想实验。如果我们仔细观察就会发现,它们看起来非常熟悉我们如何在数据可用性层之上构建新的结算层。
如果代入比特币的情况,该平台的费用市场可以用于防止数据可用性层上的垃圾信息,同时允许在其之上部署主权rollup。此rollup允许用户生成资产、转移资产,并将验证桥部署到其他链下系统。
当然,原生资产BTC不能以去信任化的方式转移到主权rollup,但它允许在比特币之上出现一个生态系统,同时允许BTC用于支付网络费用。
无论如何,我希望你们喜欢这篇文章。我一直不喜欢用“离散rollup”这个词来描述部署在以太坊上的rollup类型。它实际上应该被称为验证rollup,因为底层验证桥负责保护锁在链下系统中的所有资产。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。