最近,Vitalik在社交媒体上发布了《以rollup为中心的以太坊路线图》一文,让Rollup这一技术重新回到了大众视野中。Rollup同其它Layer2技术一样,诞生的目的便是为了让孱弱的以太坊性能达到可堪一用甚至可堪重用的地步。Layer2技术发展近5年,从闪电网络到Plasma,再到Rollup,为何只有Rollup得到了Vitalik的认可?背后有着深刻的原因。
什么是Rollup?
Rollup,顾名思义,是将交易像卷蛋卷一样卷在一起,通过一次交易发送到网络上,这样既可以确保以太坊1.0区块链的稳定性(不必大幅更新),同时也能让网络的交易吞吐量大幅上升。Rollup一般由以下几个部分组成:Rollup节点,负责监听并收集用户的Rollup交易,同时也负责对Rollup交易进行验证;验证节点,负责在必要时对Rollup交易及其内部所有进行验证,并将验证结果同Rollup所提交的结果对比;交易确认窗口期、质押奖惩机制和Rollup节点竞选机制。
Rollup根据具体的技术分支,可以细分为Optimistic Rollup、ZK Rollup和Fuel Rollup等,而整个以太坊生态中又以前两种Rollup技术最为广泛应用。
Optimistic Rollup
该Rollup方案以“Optimistic”作为特点,整个网络的Rollup设计是基于乐观环境的——即假设网络的整体环境相对安全,不存在恶意的情况。在这种假设下,网络可以以非常高效的方式完成交易验证,大幅提高TPS及验证效率。
但完全无恶意的假设是不存在的,复杂的网络社会环境不可能长期存在“无恶意行为”,因此Optimistic Rollup设计了DTD(挑战期)及挑战,如果有用户发现Rollup节点存在恶意行为,打包了恶意交易或者篡改了交易,那么它可以在挑战期结束前发起一次挑战交易,指明某一Rollup区块存在恶意交易。
如果验证节点进行验证后发现确有此事,那么不仅该Rollup区块会无法上链,所有基于该Rollup区块延伸的区块都会被回滚,而打包该Rollup区块的节点也会被罚没资金,并在一段时间内无法再次当选Rollup节点。
为了避免用户方潜在的“审查攻击”可能(通过反复提交审查请求瘫痪网络),一般会要求用户发起审查前质押一定数量的资金。
但Optimistic Rollup目前存在着无法推广到智能合约的瓶颈,这并非由其设计导致,而是执行并验证合约结果,相比单纯的交易验证会更加消耗节点资源,不论是Rollup节点还是验证节点都会如此,因此Rollup节点的利益收入和用户发起审查请求的质押金额都必须上升,这显然会提高网络的交易门槛。
不过随着网络Gas费用的下降以及资金流动性的提升,或智能合约验证带来的门槛上升并不致命。
Optimistic Rollup设计简单,推广方便,目前Optimism是推动Optimistic Rollup的主力,而使用该方案的项目目前已知的则有Synthetix、Uniswap还有Chainlink。截止到发文时间,Optimism已经推出了他们的测试网。
ZK Rollup
ZeroKnowledge Rollup(ZK Rollup)是另一种Rollup方案,因其采用了零知识证明而得名(准确的说,是ZK-SNARKs)。
同其它零知识证明一样,该方案需要可信节点提前进行可信配置(Trusted Setup)来明确用于零知识证明的相关函数。之后,所有的节点在运行零知识证明计算时都会使用该函数。
在ZK Rollup中,资金/资产是储存在链上的智能合约,而计算和储存则由链下的节点执行,节点每创建一个Rollup区块,就会进行一次零知识证明计算,将该区块所附带的状态变更生成零知识证明断言(Assertion)并随区块提交给网络。
由于采用了有效性证明(ZK),不同于Optimistic Rollup方案,ZK Rollup不再需要验证节点及用户实时监视Rollup区块的正确性(因其已由ZK体系所保障),也因此资金效率和整体安全性会远高于Optimistic Rollup。
但ZK Rollup也和其它零知识项目一样,对于Rollup节点的计算能力要求非常高(相比于Optimistic),每一次Rollup区块上链,节点都需要对整个区块的状态进行一次零知识证明计算,这导致ZK Rollup无法轻易部署在拓展性不强的区块链,同时也难以大规模应用。
目前ZK Rollup最具代表性的项目是Loopring和ZK Sync。
Wisdom Chain的Rollup
Rollup方案的根本目的是缓解以太坊1.0阶段的性能问题,对于Wisdom Chain而言,由于本身的交易效率已经数十倍于以太坊,似乎Rollup方案并没有部署的必要……
但是,区块链的可用性问题往往只有在性能捉襟见肘时才会体现。
Wisdom Chain的如若在将来需要承担联盟链等高频交易,或项目本身的使用率大幅上升,按照目前的TPS而言是难以为继的。
诸如Optimistic Rollup方案等简单易行的Layer2方案,可以相对容易部署在链上,并在合理的经济机制设计下做到10x性能的提升(不包含复杂事务逻辑),虽然目前没有动力对该方案进行推动部署,但进行一些基础性研究仍然是非常有必要的。