(Vitalik曾表示,由于Rollup方案在早期启动时无法达到理论上的完善度,所以必须借助于一些辅助手段提升安全性,而这些辅助手段被称为“辅助轮”,并会引入信任假设。这些信任假设就是风险)
那么安全风险都来自于哪里?考虑到当前,无论是以太坊Layer2还是比特币Layer2,很多都依赖于中心化的节点来充当排序器,或由少数节点组成侧链形式的“委员会”,这些趋于中心化的排序器/委员会如果不受限制,可以盗取用户资产并随时跑路,可以拒收用户的交易请求,导致资产被冻无法使用。这便涉及到前文EigenLayer创始人提到的状态转换有效性和抗审查性。
同时,由于以太坊Layer2依赖于ETH链上的合约进行状态转换验证和充提款行为验证,合约控制者(其实就是Layer2官方)若能快速更新合约逻辑,在其中掺杂恶意代码段(比如,允许某个指定的地址,把L1-L2充提款合约上锁定的代币全部转走),就可以直接盗走托管的资产。
这被归结为“合约多签分配问题”,而多签分配问题一样适用于比特币Layer2,因为比特币Layer2往往依赖于“公证人桥”,需要多个节点通过多签来放行跨链请求,所以比特币Layer2身上也存在多签如何合理分配的问题,我们甚至可以把它看作比特币Layer2身上最基础的“辅助轮”。
此外,DA问题也极为重要。如果Layer2不把数据上传到Layer1,而自行选用一些不可靠的DA发布场所,假如这种链下DA层(一般称为DAC数据可用性委员会)发生串谋,拒绝对外发布最新交易数据,数据扣留攻击将导致网络报废,并可能使得用户无法顺利提款。
L2BEAT对上述问题进行了总结,并归纳出了Layer2安全模型中几个核心的要素:
1. 状态验证/证明系统是否可靠(State Validation)
2 . DA数据发布方式是否可靠(Data Avalibility)
3. 如果Layer2网络故意拒收你的交易/停机,你能否将资产强制撤出Layer2(Sequencer Faliure、Proposer Failure)
4. Layer2相关合约-官方跨链桥的控制权,是否足够分散。如果权力比较集中,发生“监守自盗”时,用户能否有足够的时间去应急(Exit Window)
(L2BEAT上为不同Layer2项目设置的“风险要素展示图”)
Anyway,当我们分析Layer2安全隐患时,其实就是在探讨,Layer2网络内存在多少可能导致用户资产受损的场景,对于这些危险情况,Layer2系统又能否通过机制设计进行有效制约。如果某些恶意行为是无法杜绝的,我们又需要引入多大程度的“信任”,需要信任一个群体中的多少个体,需要依赖于多少“辅助轮”。
下文中我们将对通用的以太坊Layer2/比特币Layer2模型中,存在的风险要素进行分析(本文所谈及的对象不包含“状态通道”或“支付通道”,也不包括铭文索引协议,因为它们比较特殊)。并且我们会尝试探讨,哪些因素是Layer2安全模型中,更基础、更底层、更重要的,这些更为基础的短板,将是比其他短板更值得我们去重视的信任风险。
Layer2的木桶效应——短板都有哪些
最短的那块板——合约/官方桥的管理权
在这里,我们不妨用“木桶效应”分析Layer2安全问题,很容易看出,最短的一块木板就是上文有所提及的“合约可升级性”(主要针对以太坊Layer2),或者更进一步的说,是“官方跨链桥的管理权”(比特币和以太坊Layer2都适用)。
对于以太坊Layer2而言,只要Layer2官方可以在Layer1链上快速升级合约,理论上可以把L2官方桥充提款地址上锁定的Token盗走,无论其DA层或证明系统有多么可靠。
可以说,桥接合约的控制权限关乎整个系统的安危,它是整个Layer2乃至模块化区块链堆栈中最基础、最关键的部分。如果桥接组件/合约是可以在多签控制下更新迭代的,那我们就要在这里引入“信任假设”,假设Layer2合约/官方桥的控制者不会作恶。