你知道区块链的热门主力方案Rollup是什么吗?
最近,以太坊的创始人Vitalik Buterin在一篇题为“混合式二层协议的曙光” 的文章里对Rollup该方案大加赞赏,认为它为智能合性。
那么什么是Rollup?主流方案是什么?这些方案各有优缺点?它们未来的发展前景如何?
Rollup的出现
近年来,以太坊二楼(Layer-2)扩容技术发展迅速。
所谓二楼,就是把一部分资金存入主链智能合同,在保证足够安全的前提下,把一部分交易放在主链之外,就像链下多了一层网络。
状态通道和 在二层方案中表现突出Plasma侧链。这两种方案虽然诞生较早,但发展缓慢。归根结底,这背后的原因是数据的可用性。
就在二层扩容技术举步维艰的时候,一种叫 Rollup的新方案被提了出来。
但与状态通道和Plasma不同之处在于,它可以打包交易,并将打包后的交易数据连同起来SNARK在链上发布零知识证书。
包装的正确性可以通过零知识证明来见证,负责包装的操作人员不能发布恶意或无效的交易。这就是后来Vitalik Buterin称之为ZK Rollup 二层扩容方案。
ZK Rollup它不是万能的。它遇到的最大问题是通用性。创建它,除非要证明的交易非常简单SNARK成本会很高。
所以,一个名字Optimistic Rollup提出了折中方案。
Optimistic Rollup交易数据也放在链上,但不是用的SNARK相反,采用加密经济学有效性博弈来验证有效性。
作为一种提高区块链吞吐量的技术,Rollup在有效提高网络吞吐量的同时,可以避免协议层的大量变更和部署Rollup不需要硬分叉升级网络。
以太坊已经有很多项目(比如Celer,ANON等)采用了Rollup协议来提高Dapp吞吐量和用户体验。
Rollup怎样工作?
链条上有一个维护状态根的智能合约:rollup状态的Merkle根(指余额中的账户余额、合同代码等。
任何人都可以以高压缩的形式发布批处理、交易集合、以前的状态根和新的状态根(交易后的)Merkle根)。
合同检查批处理中的先前状态根是否与当前状态根相匹配;如果是这样,它将状态根切换到新的状态根。
为了支持存款和提款,我们增加了输入或输出rollup状态以外交易的功能。
如果批次有外部输入,则需要将这些资产转移到提交批次的事务中rollup合同中。
如果一批有外部输出,智能合约将在处理该批时启动这些提款。
就是这样!除了一个主要细节:如何知道批次中的状态后根是正确的?
如果有人能在没有任何后果的情况下提交具有任何后期状态根源的批次,那么他们就可以了rollup中的所有Token转移给自己。
这个问题非常关键,因为有两个非常不同的解决方案系列,而这两个解决方案系列导致了两个rollup方式。
Optimistic Rollup与ZK Rollup
Rollup的两种类型分别是Optimistic rollup和ZK Rollup。
1
Optimistic Rollup
Optimistic rollup,使用欺诈证明—rollup合同将跟踪其根历史和每批哈希值。
如果有人发现某一批次的状态是不正确的,则发布需要链的证明,以证明该批次的计算是不正确的。合同将验证证书,并恢复该批次及以后的所有批次。
2
ZK rollup
ZK rollup,使用有效性证明-每批包含一个名称ZK-SNARK加密证明(例如,使用PLONK协议),证明后状态是批次执行的正确结果。
无论计算量有多大,链可以在链上快速验证。
总的来说,我个人认为,在短期内,对于通用EVM就计算而言,乐观可能会赢;对于简单的付款、交易和其他特定的应用程序,ZK可能会赢。
随着ZK-SNARK中长期技术改进ZK赢得所有用例。
Rollup工作细节
在Optimistic Rollup首先,我们需要建立一个可靠的节点,负责收集所有的交易信息、验证和包装.
将该节点的签名发送到区块链网络中。
设置可信节点成功后,节点将成为Rollup该节点需要下载整个块数据,并像整个节点一样实时更新块状态。
以前的公司为例,假设目前有2000笔交易等待实施,公司员工将发送2000笔交易Rollup节点。
之后,Rollup节点需要根据已有的状态和区块数据,对交易进行验证,并保存以下数据集(交易内容,交易前状态,交易后状态)。
当Rollup在验证和执行所有交易并生成数据集后,节点需要签署该数据集Sig Rollup节点(交易内容、交易前状态、交易后状态)。
最后,将签名和数据集合到交易中,称为断言Assertion,将其发送到区块链网络其他节点验证。
需要注意的是,网络中的其他节点不会被验证Rollup节点发送的数据集只验证其签名,并根据数据集更新区块链网络状态。
就像它的名字Optimistic Rollup事实上,一切Rollup因为协议将交易验证从链上转移到链下,所以都是基于乐观的假设——假设在大多数情况下Rollup节点不会作恶。
但光有乐观假设是不够的,节点总是因为各种原因而出现问题。
为避免恶意行为,增加作恶成本,Optimistic Rollup还有以下机制:
一方面,Rollup节点需要向网络质押一定的金额Token,这些Token并且会有一定的解锁时间Rollup恶意行为时节点被罚没。
另一方面,Rollup网络不会立即认可节点提交的断言,因此有一定的窗口期(一般为1周)。
假如其他节点认为是这样Rollup节点提交的断言有恶意行为,节点可以质押一定的押金,挑战断言。
区块链中的块/验证节点将重新验证和执行断言中的所有内容(包括数据集),并比较交易状态的差距。
若有恶意行为,那么Rollup节点押金将被罚没,挑战节点将获得一定的奖励。如果没有恶意行为,挑战节点的押金将被罚没。
此外,如果窗口期结束时没有其他节点挑战断言,断言中的状态信息将被系数更新为区块链状态。
Optimistic Rollup由于交易中的状态变化是由链下节点验证的,而不是链上节点验证的状态变化是由链下节点而不是链上节点验证的。
因此,区块链上节点的验证难度降低(只需要验证Rollup节点提交的签名可以更新节点提交的状态信息)。
虽然数据集似乎并不比单个交易的叠加小,但数据集不需要支付高昂的手续费,因为它不会被链上的节点验证。
依靠这种Layer处理方案可以轻松提高区块链的有效吞吐量。
ZK rollup怎样工作?
以太坊交易简单(发送)ETH)大约需要110个字节。Rollup上的ETH传输只占用约12个字节。
ZK一个独特的重要压缩技巧是,如果事务的一部分只用于验证,而与计算状态更新无关,则该部分可以留在链下。
这不会完全乐观,因为如果以后需要在欺诈证明中检查数据,仍然需要在链上包含数据。
而在ZK中,SNARK证明批次的正确性经证明了批次的正确性。
另一个重要的例子是隐私保护。在乐观状态下,每笔交易中约需要保留500字节的隐私ZK覆盖整批ZK-SNARK不见了。
这些压缩技巧是Rollup可伸缩性的关键。没有它们,Rollup可能只会使基础链的可伸缩性提高约10倍,而采用压缩技巧时,缩放系数几乎可以超过100倍所有应用程序。
链金分析
Rollup基本概念现在已经被很好地理解了,但我们可以肯定它们基本上是可行和安全的,并且有多个Rollup在主网上部署。
但仍有很多Rollup设计领域尚未得到很好的探索,充分利用以太坊的可伸缩性,充分整合以太坊生态系统的大部分Rollup中还将面临很多挑战。
Rollup在短期和中期的未来(以及可能是长期的)中,它有望成为以太坊伸缩的基石。
本文的观点和意见仅代表作者本人,不构成任何建议。
- 免责声明
- 世链财经作为开放的信息发布平台,所有资讯仅代表作者个人观点,与世链财经无关。如文章、图片、音频或视频出现侵权、违规及其他不当言论,请提供相关材料,发送到:2785592653@qq.com。
- 风险提示:本站所提供的资讯不代表任何投资暗示。投资有风险,入市须谨慎。
- 世链粉丝群:提供最新热点新闻,空投糖果、红包等福利,微信:juu3644。