不用以太坊做DA层就不算Rollup?从Danksharding提出者的视角理解Layer2

This article is not available in the current language yet. Showing the original version.
本文打算从Dankrad的视角出发,通过对Layer2的细节作进一步分析,来深入理解为何Validium不是严格意义上的“Layer2”。

作者:Faust,极客web3

导语:近日,Danksharding的提出者、以太坊基金会的研究员Dankrad Feist在推特上发表了一番颇具争议的言论。他明确指出,不采用ETH作DA层(数据可用性层)的模块化区块链不是Rollup,同时也不是以太坊Layer2。如果按照Dankrad的说法,Arbitrum Nova和Immutable X、ApeX、Metis都可能从Layer2名单里“除名”,因为它们只在ETH之外(自己构建了名为DAC的链下DA网络)披露交易数据。

不用以太坊做DA层就不算Rollup?从Danksharding提出者的视角理解Layer2

同时,Dankrad还表示,像Plasmas和状态通道这种不需要链上数据可用性(Data Availability)来确保安全的方案仍算是Layer2,但Validium(不用ETH作DA层的ZKRollup)不算Layer2。

不用以太坊做DA层就不算Rollup?从Danksharding提出者的视角理解Layer2

不用以太坊做DA层就不算Rollup?从Danksharding提出者的视角理解Layer2

Dankrad此言一出,便引来了诸多Rollup领域的Founder或Researcher质疑。毕竟有许多“Layer2”项目为了节约成本,并没有采用ETH作为DA(数据可用性)层,如果把这些项目踢出L2名单,必然波及到相当多的扩容网络;同时,如果validium不算L2,Plasma应该也没资格算作L2。

对此,Dankrad表示,Plasma用户在DA不可用时(就是指链下的DA层网络搞数据扣留,不公开交易数据),仍然可以把自己的资产安全撤出至L1;但相同的情况下,Validium(大多数采用StarkEx方案的项目都是validium)却可以让用户无法撤资至L1,把钱冻住。

不用以太坊做DA层就不算Rollup?从Danksharding提出者的视角理解Layer2

显然,Dankrad打算从“是否安全”来界定一个扩容项目是否为以太坊Layer2。如果从“安全性”的角度来考量,Validium在定序器故障 + DA层发动数据扣留攻击(隐瞒新数据)的极端情况下,的确可以把用户资产冻结在L2无法提到L1;Plasma因在设计上与Validium不同,虽然多数时候安全保障不及Validium,但在定序器故障 + DA层发动数据扣留攻击(隐瞒新数据)时,却允许用户把资产安全撤离至L1。所以Dankrad的说辞不无道理。

本文打算从Dankrad的视角出发,通过对Layer2的细节作进一步分析,来深入理解为何Validium不是严格意义上的“Layer2”。

到底怎么定义Layer2?

不用以太坊做DA层就不算Rollup?从Danksharding提出者的视角理解Layer2

按照ethereum.org网站和多数以太坊社区成员的定义,Layer2是“给以太坊扩容+继承以太坊安全性 的独立区块链”。首先,“给以太坊扩容”就是指分流以太坊无法承载的流量,分担TPS方面的压力。而“继承以太坊安全性”,其实可以转译为“借助以太坊保障自身安全性”。

比如,Layer2上所有的交易Tx都要在ETH上完成最终结算Finalize,数据有错误的Tx不会被放行;如果要回滚Layer2的区块,要先回滚以太坊区块,只要以太坊主网不发生类似51%攻击的区块回滚,L2区块就不会回滚。

如果我们更进一步探讨Layer2的安全性,其实还要考虑许多极端情况。比如,如果L2项目方跑路、定序器Sequencer故障、链下DA层挂掉,在这些极端事件发生时,用户能否把自己在L2上的资金安全撤出到L1上?

Layer2的“强制提款”机制

不考虑L2合约升级/多签隐患等因素,其实如Arbitrum或StarkEx都有为用户设置强制提款的出口。假设L2的定序器发动审查攻击,故意拒绝用户的交易/提款请求,或干脆永久宕机,Arbitrum用户可以调用L1上Sequencer Inbox合约的force Inclusion函数,将交易数据直接提交至L1;如果在24小时内,定序器没有处理这笔需要“强制包含”的交易/提款,该交易会被直接包含进Rollup账本的交易序列中,这就为L2用户创造了一个可强制提款的“安全出口”。

不用以太坊做DA层就不算Rollup?从Danksharding提出者的视角理解Layer2

相比之下,有逃生舱Escape Hetch机制的StarkEx方案要有过之无不及。如果L2用户在L1提交的Forced Withdrawal请求在7天窗口期结束时,未得到定序器响应,则该用户可以调用freeze Request功能让L2进入冻结期。此时,L2定序器将无法在L1上更新L2的状态,L2状态冻结后要过1年才能解冻。

不用以太坊做DA层就不算Rollup?从Danksharding提出者的视角理解Layer2

不用以太坊做DA层就不算Rollup?从Danksharding提出者的视角理解Layer2

L2状态冻结后,用户可以构造与当前状态相关的Merkle Proof,证明自己在L2上有XX数额的资金,通过L1上的逃生舱Escape Hetch相关合约来提款。这便是StarkEx方案所提供的“全额提款”服务。即便L2项目方没了,定序器永久故障了,用户还是有办法把资金撤出L2。

但这里存在一个问题:用StarkEx方案的L2大多是Validium(比如Immutable X和ApeX),并不会把DA所需的数据发布到ETH,构造当前L2状态树的信息都存在链下。如果用户无法在链下获取构造Merkle Proof的数据(比如链下DA层发动数据扣留攻击),是无法通过逃生舱来提款的。

不用以太坊做DA层就不算Rollup?从Danksharding提出者的视角理解Layer2

至此,文章开头提到的Dankrad认为Validium不安全的原因,其实很明确了:因为Validium不像Rollup一样把DA的数据发到链上,所以用户可能无法构造出“强制提款”所需的Merkle Proof。

不用以太坊做DA层就不算Rollup?从Danksharding提出者的视角理解Layer2

不用以太坊做DA层就不算Rollup?从Danksharding提出者的视角理解Layer2

Validium和Plasma在发生数据扣留攻击时的区别

事实上,Validium的定序器只在L1链上发布L2最新的Stateroot(状态树的根),再提交一个Validity Proof(ZK Proof),证明新的Stateroot生成过程涉及的状态转换(用户资金变化),都是正确的。

不用以太坊做DA层就不算Rollup?从Danksharding提出者的视角理解Layer2

不用以太坊做DA层就不算Rollup?从Danksharding提出者的视角理解Layer2

但单凭stateroot无法还原出此刻的状态树world state trie,也就无法知晓每个L2账户的具体状态(包含资金余额),L2用户就无法构造对应当前合法Stateroot的Merkle Proof。这便是Validium不利的地方。

不用以太坊做DA层就不算Rollup?从Danksharding提出者的视角理解Layer2

这里必须要强调下DAC这个东西。Validium的DA所涉数据,比如定序器最新处理的一批交易,会同步给名为数据可用性委员会DAC(Data Availability Committee)的L2专属DA网络,DAC由多台节点服务器构成,一般由L2官方和社区成员或其他单位负责运行和监督(但这只是表面上的,实际上DAC成员都有谁,外界很难查证)。

不用以太坊做DA层就不算Rollup?从Danksharding提出者的视角理解Layer2有意思的地方在于,Validium的DAC成员需要频繁在L1提交多签,证明L2定序器在L1提交的新Stateroot和Validity Proof,与DAC同步到的DA数据能对上号。DAC的多签提交后,新的Stateroot和Validity Proof才会被认为是合法的。

不用以太坊做DA层就不算Rollup?从Danksharding提出者的视角理解Layer2

目前Immutable X的DAC采用5/7多签,dYdX虽然是ZKRollup,但也有DAC,用的是1/2多签。(dYdX只在L1发布State diff即状态变化,而非完整交易数据。但获取了历史记录里的State diff,就可以还原全部L2地址的资产余额,此时就可以构造Merkle Proof来全额提款)。

不用以太坊做DA层就不算Rollup?从Danksharding提出者的视角理解Layer2

Dankrad的观点不无道理。Validium的DAC成员如果合谋,发起数据扣留攻击,不让其他L2节点同步此刻的最新数据,并且更新此刻L2的合法Stateroot,用户无法构造此刻合法root对应的Merkle Proof来提款(因为此刻往后的DA数据不可用了,可用的是以前的DA数据)。

不用以太坊做DA层就不算Rollup?从Danksharding提出者的视角理解Layer2

但Dankrad考虑的只是理论上的极端情况,现实中大多数Validium定序器都会实时的把新处理的交易数据广播给其他L2节点,其中不乏诚实节点。只要有1个诚实节点能够及时获取DA数据,用户就可以从L2全身而退。

可理论上存在于Validium身上的问题,为何不存在于Plasma身上?这是因为Plasma判定合法Stateroot的方式,和Validium不同,有欺诈证明窗口期的缘故。Plasma是OPRollup之前的L2扩容方案,与OPR一样靠欺诈证明保证L2的安全。

Plasma与OPR一样有窗口期的设定,定序器发布的新stateroot不会立刻判定为合法,要等窗口期close且没有L2节点发布欺诈证明。所以Plasma和OPR的当前合法Stateroot,都是几天以前提交的(这就好比我们看到的星光,其实都是很久以前发出的),而用户往往可以获取过去时刻的DA数据。

不用以太坊做DA层就不算Rollup?从Danksharding提出者的视角理解Layer2

同时,欺诈证明机制能在此刻生效的前提,是此刻L2的DA可用,也即Plasma的Verifier节点可以获取此刻的DA所涉数据,这样才能生成此刻的欺诈证明(如果有必要的话)。

那么一切都很简单了:Plasma正常工作的前提是此刻L2的DA数据可用。如果从此刻开始,L2的DA不可用了,用户能安全撤资吗?

这个问题不难分析,假设Plasma的窗口期是7天,如果从某个时间点T0开始,新的DA数据就不可用(DAC发动数据扣留攻击,不让诚实的L2节点获取T0往后的数据)。因为T0及此后一段时间内的合法Stateroot,是T0时刻前提交的,而T0时刻前的历史数据可追溯,所以用户可以构造Merkle Proof来强制提款。

不用以太坊做DA层就不算Rollup?从Danksharding提出者的视角理解Layer2

即便很多人无法立刻察觉异常,但因为有窗口期存在(OP是7天),只要T0时刻提交的Stateroot还未合法化,且T0之前的DA数据可追溯,用户就可以把钱安全撤出L2。

总结

至此我们大致可以理清楚Validium和Plasma在安全性上的区别:

Validium的定序器发布Stateroot后,只要立刻发布Validity Proof和DAC多签,就可以使其合法,成为最新的合法Stateroot;如果用户和诚实L2节点遭遇数据扣留攻击,无法构造当前合法Stateroot对应的Merkle Proof,就无法提款到L1。

而Plasma提交新的Stateroot后,要等窗口期结束才能合法,此时的合法Stateroot是过去提交的。因为有窗口期(ARB是3天,OP是7天)存在,即便新提交的Stateroot的DA数据不可用,用户也有当前合法Stateroot的DA数据(合法root是过去提交的),有足够的时间强制提款到L1。

所以,Dankrad说的话有道理。当发生数据扣留攻击时,Validium存在把用户资产困在L2的可能,但Plasma并不存在这个问题。

不用以太坊做DA层就不算Rollup?从Danksharding提出者的视角理解Layer2

所以,链下DA层的数据扣留攻击会造成许多安全隐患,但Celestia尝试解决的正是这个问题。此外,因为大多数Layer2项目都会提供让L2节点与定序器保持链下同步的服务端口,所以Dankrad的忧虑其实往往只是理论上的,而不是现实中的。

如果我们用鸡蛋里挑骨头的态度,再提出更极端的假设:所有的Plasma链下节点都不可用了,那么那些没跑过L2节点的普通用户都无法强制提款到L1。但这种事情发生的概率,等价于一条公链的所有节点集体永久性宕机的概率,可能永远不会发生。

所以,很多时候,大家只是在谈论一些根本就不会发生的事情。正如美剧《切尔诺贝利》里克格勃副主席对主角说的那段金句:“为何要担心根本就不会发生的事情呢?”

不用以太坊做DA层就不算Rollup?从Danksharding提出者的视角理解Layer2

不用以太坊做DA层就不算Rollup?从Danksharding提出者的视角理解Layer2

Share to:

Author: 仙壤GodRealmX

Opinions belong to the column author and do not represent PANews.

This content is not investment advice.

Image source: 仙壤GodRealmX. If there is any infringement, please contact the author for removal.

Follow PANews official accounts, navigate bull and bear markets together
PANews APP
The New York Attorney General has indicted Coinbase and Gemini, accusing them of illegally offering betting services through prediction markets.
PANews Newsflash