就以太坊二层扩容方案的评估,我们从诸多因素出发提供了指导。
由于各种扩容方案层出不穷,开发者们发现以太坊的二层扩容生态系统越来越难以掌控。所有的解决方案都宣称他们的方案是去信任化、安全、更经济且易用。但我们不应该把这些说法简单地当做事实,而应进行全面的尽职调查,以探究每种解决方案做出的不可避免的权衡。
为了简化这一任务,我们列了一张问题表,帮助开发者们评估不同的扩容方案,根据自己的需求选择最适合自己的方案。这些问题可以分为以下四个方面:
· 安全
· 性能/经济性
· 可用性
· 其他
除了这些问题之外,我们还汇总了一张对照表,作为与方案提供商对话的起点。尽管我们已经尽量保持中立和客观的对比,但用表格简明扼要地表达不同方法间的细微差别仍是一项艰巨的任务。我们希望用更多的情境弥补这一问题。
非常感谢Georgios Konstantopoulos(二层独立研究员)、John Adler(Fuel)、Ben Jones(Optimism)、JD Kanani(Matic)、Patrick McCorry(any.sender)、Justin Drake(以太坊基金会)和Brecht Devos(Loopring)对此表的审核及更正。
安全
1. 活性假设(例如望楼)
协议是否对用户活性有要求?换句话说:是否需要用户自己或通过受信任的代表(例如望楼)监控扩容解决方案在链上(即一层上)的所有活动?
在某些情况下,可以将其委派给受信任的各方,并提供与其服务用户一致的激励措施(例如通过担保)。但是需要注意,如果受信任的代表出现行为不当,其损失将始终是相应“存款”(即保证金)的金额。大家应考虑受信任的代表是否有机会窃取比保证金更多的价值,以及能在多大程度上承受这种风险。
2. 大规模提款退出假设
扩容解决方案的安全性假设是否包括所有用户在短时间内成功通过退出交易(提款)回到一层?
如果出于安全原因,二层扩容方案的所有用户需要在短时间内退出二层时,二层就出现大规模退出情况。如果他们选择留下,则操作者可能会进行一些操作,耗尽滞留在二层中的资金。例如,在Matic方案中,所有用户的提款窗口为1周。
由于网络拥塞和DoS攻击的存在,这一点可能会成为很严重的问题。例如,在给定时间内大规模的退出,可能会造成以太坊网络严重拥堵,导致交易无法及时打包。即便不拥堵,攻击者也可以尝试操纵gas价格或eclipse节点,致使交易不能及时处理。这是一种值得考虑的攻击途径。
3. 托管
达到法定人数的二层验证者能否将用户的资金无限冻结?他们可以占用用户资金吗?如果希望项目不受审查,那么这点尤其重要。
4. 易受热钱包密钥攻击
二层扩容方案的资金安全是否取决于操作者保护密钥(即热钱包密钥)的能力?而密钥又必须时刻在线才能保持系统正常运行?众所周知,热钱包的保护难度巨大。
5. 易受加密经济攻击
扩容方案在加密经济学攻击面前有多脆弱?是否基于博弈论假设?
涉及加密经济学诱因的攻击方式有很多,包括:构陷二层验证者(或其操作人员),贿赂一层上的矿工,创建黑暗 DAO等。这些攻击手段在迅速发展,而依赖于博弈论假设的扩容系统难以杜绝这些攻击。
此外,还包括从技术上讲不属于盗窃但实质相同的场景。例如,对Validium的双重支付攻击,尽管从设计上杜绝了攻击者窃取他人资金的机会,但攻击者仍然可以对自己实现双重支付。
6. 加密原语
解决方案依赖于标准密码学,还是利用了SNARK、STARK等新型的密码学研究?
通常,越早创造的密码学原语,越难破解。越是先进的、近期的原语,则对团队的能力要求越高,越应该审计。
性能/经济性
1. 最大吞吐量
在以太坊1.0上扩容方案的最大吞吐量是多少?以太坊2.0呢?
尽管当今方案的吞吐量令人满意,但是有理由展望未来,并预测对更大吞吐量的要求,以及计划采用的解决方案是否能够适应未来要求。
2. 资本效率
扩容解决方案的资本效率如何?是否需要大量资金才能运作?
对用户而言,资本效率较低的系统成本会更高,并且可能会由于缺乏即时流动性而导致运营中断。例如,支付通道的资金效率相对较低,因为通道运营商必须锁定其平均通道数量的倍数,以确保通道不会达到容量上限。
3. 开设新账户的成本
新用户要想开始使用二层上的账户,是否需要在一层链上提交交易?
在对照表中,我们指出了各系统的最佳实现场景,但是各方案的实现可能会有差异。例如,zkSync和Loopring都使用了zkRollups,但是,Loopring要求用户进行一层交易来开设账户,然而 zkSync却不需要。
可用性
1. 提款时间
提款到一层需要多长时间?
为了解决争议,在某些解决方案下,可能需要等待一周或更长时间才能取款。为了应对这种漫长的等待时间风险,是否有流动性提供者为用户提供流动性以换取风险溢价?如果存在这样的流动性提供者,他们可靠吗?费用多少?由于快速提款需要付出一定的代价,所以使用这种解决方案的真正代价是什么?
2. 主观最终性时间
在协议的安全性假设下,一笔交易需要多久才能达到不能在一层上被撤销的状态?
主观最终性(subjective finality)指的是说服外部观察者相信交易的不可逆性,即便一层智能合约仍不能依赖此状态。例如,在Optimistic Rollups中,需要在以太坊上进行1次确认后才能达到一层最终性,而完全最终确定则需要大约1周的时间。
3. 主观最终性的客户端验证
轻客户端(浏览器/手机钱包)能否核实达到主观最终性时间(参见前面的问题)?
继续上面的示例,在Optimistic Rollups中,进行1次确认就能达到一层最终性,但要确认交易最终确定,则必须下载整个Rollup状态并执行上周的所有交易,以确保所有的Optimistic Rollups区块都是有效的。
4. 即时交易确认
扩容方案可以提供完整的还是仅担保下的即时确认?
大多数二层协议实现了“即时表观最终性”,即交易看似将在UX(用户)上得到了立即确认。只有支付通道(状态通道)为这些确认提供完整的安全担保,而在其他协议中,在一层上进行确认之前,仍有一段时间可以撤销这些交易。不过,撤销交易不是免费的,无论是否成功撤销,这些方案的验证人都会因此失去其保证金(即抵押存款)。
此特性取决于扩容解决方案的具体实现细节。
其他
智能合约
二层是否支持任意可编程的智能合约,或者仅支持使用某些谓语实现的有限子集?
EVM-bytecode可移植性
能否几乎不做任何改动就移植现有以太坊合约的EVM-bytecode?
原生隐私支持
协议是否提供原生的隐私支持?
在默认情况下没有低成本的屏蔽式交易,隐私得不到非常有效的保护,关于各种平台的去匿名研究都毫无疑问地证明了这一点(参考1、2)。
*我们希望本文能帮助您探索扩容方案,让您对未来充满信心。如有任何疑问或观点,请随时通过电子邮件hello @ matter-labs.io、Twitter和Telegram联系我们。
Matter Labs致力于加速公共区块链的大规模应用。我们正在构建zkSync,一种适用于以太坊的安全且快速的扩容平台。
附言:关于zkRollups的旁注
这里提供了两种基于zkRollups的扩容解决方案,您可以立即试用:Loopring(在主网上线了)和zkSync(Matter Labs的平台将于6月发布)。两者的主要区别是选择了不同的底层证明系统:Loopring使用了Groth16 SNARK,采用了针对特定应用程序的可信设置,而zkSync使用了较新的证明系统PLONK,采用了通用的可信设置。考虑到该证明系统在设计领域的最新突破,我们相信PLONK将成为zkRollups的主要加速器,并将在以后的文章中进行详细介绍。