如何评估六大以太坊LAYER2扩容方案
随着越来越多的扩容方案崭露头角,以太坊第2层扩容生态系统对网络建设者来说已变得难以取舍。棘手的问题在于,每个解决方案都承诺向用户保证去信任、安全性、经济适用性以及易于使用,这不可避免地会让开发者们眼花缭乱,难以抉择。因此我们建议建设者不要轻易相信每个方案的一面之词,而是应该全面地调查比对清楚,然后在各种方案之间做出权衡。
为了让这项工作不那么复杂,我们整理了一系列问题,以帮助网络建设者评估不同的扩容解决方案,从而采用最适合其需求的解决方案。这些问题分为以下几类:
安全性
性能/经济适用性
可用性
其他方面
除了这些问题之外,我们还汇总了一张对照表,为读者搭建一座桥梁,让其能够窥探到不同扩容方案设计者的想法。尽管我们已尽最大的努力保持中立和公正,但想要简明扼要地比对不同方案的异同,仅靠一张表格是不够的。我们希望后文的补充问题与假设能够弥补表格的不足。(见图1)
安全性
活性假设 (例如瞭望塔)
该协议需要用户活性吗?换句话说:用户需要自己监测扩容方案上所有链上 (比如Layer-1) 活动吗?还是说通过可信任的代理方 (瞭望塔) 来监测呢?
在某些情况下,可以通过一些措施激励可信任的各方负责保证链上活性,激励措施需要与其用户一致
(即担保)。然而,值得注意的是,这些可信任代表方会因为行为不当而承担经济损失,而损失的金额不超过他们成为委托方所提交的“押金”
(即保证金)。用户应该考虑委托方是否有机会攫取超过保证金金额的利益,以及对风险的承受度如何。
大规模提款退出假设
该扩容性方案的安全性假设允许所有用户在短时间内成功退出交易 (即提款) 并将资金转移到Layer-1上吗?
当某个Layer-2扩容方案出现安全漏洞时,所有用户需要在短时间内退出Layer-2,这便是大规模提款退出假设。如果用户选择留在Layer-2,则运营者可能会暗中操纵并没收Layer-2上剩下的资金。比如Matic支持大规模提款退出假设,留给用户提款的期限是一周。
但是由于网络堵塞和拒绝服务攻击 (Denial-of-Service, DoS),实现大规模提款退出假设相当困难。比方说,在给定用户退出Layer-2的时间范围内,以太坊网络可能会高度拥挤,因此交易也许无法及时打包。即使不会出现网络拥堵的情况,也可能会有攻击者操纵gas费或者对以太坊日蚀节点(eclipse nodes) 进行攻击,导致交易无法及时打包。该攻击向量值得我们深思。
托管
Layer-2的验证者若是达到一定数量,能否长期使用户无法访问自己的资金?他们可以窃取用户的资金吗?
如果你想要你的项目保持抗审查性的话,这一点尤其重要。
热钱包密钥易受攻击
layer-2解决方案中的资金安全性是否取决于运营者保障密钥安全性的能力?密钥是否必须保持在线才能维持系统运作(即热钱包密钥)?
有的密钥必须保存在线上以保持系统运作 (如热钱包密钥)。那么Layer-2解决方案上的资金安全性是否取决于运营者保障密钥安全性的能力?
众所周知,保护热钱包是很难的。
易受加密经济攻击
解决方案应对加密经济攻击时脆弱性如何?以及方案设计是否基于博弈论的假设?
受加密经济激励诱发的攻击形式多样,包括损害Layer-2上验证者(或他们的运营人员)的声誉,贿赂Layer-1的矿工,建立恶意DAO等。这些攻击向量进化得非常快,并且经证实难以在基于博弈论假设架构的系统里消除这些向量。
这里还包括一些非技术性盗窃但产生同等后果的情况。例如这种对Validium的双花攻击:攻击者无法通过设计窃取其他人的资金,但仍然可以重复使用自己的资金。
密码学基元
解决方案是基于标准密码学还是较新的密码学研究,比如SNARKs或STARKs?
通常来说,面世时间越长的加密学架构,越难被破解。如果使用的加密学技术越先进、越新颖,那么就需要能力更强的团队来对其进行实现和审计。
性能/经济适用性
最大吞吐量
在以太坊1.0的解决方案中,能实现的最大吞吐量是多少?以太坊2.0呢?
尽管某个解决方案的吞吐量在今天看来可能令人满意,但你自然会展望未来,对将来所需的额外吞吐量进行预测,考虑你计划采用的方案是否能满足未来的需求。
资本效率
扩容方案的资本效率如何?它需要锁定大量资金才能运作吗?
与其他解决方案相比,资金效率较低的系统用户成本会更高,并且可能由于缺乏即时的流动性而发生运行中断。比如,支付通道的资金效率相对较低,因为通道运营者必须锁定其通道平均交易量几倍的资金才能确保交易金额不超出容量上限。
开新账户的成本
新用户在Layer-2开账户时需要Layer-1的链上交易记录吗?
在对比图表里,我们展示的是每个系统在最好情况下的表现,但在个别实现里,效率可能没那么高。例如,zkSync和Loopring都用zkRollups,但Loopring要求用户用Layer-1的一笔交易来开新账户才可以使用支付功能,而zkSync则不需要。
可用性
提款时间
在Layer-1上提款需要多长时间?
为了解决纠纷,一些解决方案的提款期限可能要花上一周或更长的时间。为了缓解长时间等候的问题,有没有流动资金提供者可以为用户提供流动资金以换取风险溢价?由于快速提款需要支付一定的金额,那使用这个方案的真实价格是多少?
获得主观最终确定性的耗时
基于协议的安全性预设,一笔交易多快能够达到在Layer-1中无法被回滚的状态?
主观确定性的意思是,即使Layer1的智能合约还不能信赖该交易,但外部的观察者能信服交易的不可逆性。例如,在Optimistic Rollups里,为了得到Layer-1的确定性,你需要一个以太坊上的证明,然而完全获得确定性需要大约1周时间。
客户端对主观确定性的可验证性
轻客户端(浏览器/移动钱包)可以验证主观确定性时间吗?
继续optimistic rollups的例子,当你需要以太坊上的一个证明来得到Layer-1的确定性和验证你的交易不可更改时,你必须下载整个rollup状态并执行上周的所有交易,以确保打包的区块都是有效的。
即时交易确认
解决方案能否提供真正的即时交易确认?还是提供担保下的即时交易确认?
“即时表面确定性”可以在大多数Layer-2协议上实现,例如,交易会在用户交互中显示即时的确认。只有支付通道(状态通道)对这些证明提供完全的安全性保证,而在其他协议里,这些交易在Layer-1上被确认之前仍然可以被撤销。撤销这些交易不是没有代价的,无论成功与否,这些方案上的验证者都将失去他们的安全保证金(即存款)。
即时交易确认这一特性取决于扩容方案具体实现上的细节。
其他方面
智能合约
Layer-2支持任意可编程的智能合约还是仅限于使用predicate实现的子集。
字节码的可移植性
你可以将以太坊合约上的既有EVM字节码几乎原封不动地移植吗?
本地隐私支持
协议提供本地隐私支持吗?
如果没有默认的低成本屏蔽交易,隐私保护将会非常低效,在关于在多个平台上去匿名化的大量研究里, 这一点已得到充分有力的证明(1,2)。
P.S.对zkRollups的一个边注
现在有两个扩容方案是使用zkRollups的,现在可以试用——路印(主网上线)和zkSync(Matter Labs旗下平台,现已上线)。两者的主要区别在于对底层证明系统的选择。路印用的是Groth16 SNARK,配以一个特定应用信任设置,而zkSync使用了更新的PLONK,配以通用信任设置的证明系统。考虑到最近这个证明系统在设计上获得的突破,我们相信PLONK会成为促进zkRollups应用的一个主要因素,我会在即将发布的文章里详细说明。
转自 Jun.C @oleander8226