上周我们聊到什么是Rollup?Optimistic Rollup
接着本篇我们再谈谈另一种rollup方案--zk-rollup(ZR)
上周我们聊到什么是Rollup?Rollup是怎么来的之Plasma以及Plasma升级方案--Optimistic Rollup 「详情回顾:? 什么是Rollup?--上篇」
接着本篇我们再谈谈另一种rollup方案--zk-rollup(ZR)
zk在这里指的是zero knowledge(零知识),换言之,这种rollup方案基于一个叫做“零知识证明”的密码学工具。
“零知识证明”这个东西,如果比较关心区块链或者密码学的前沿技术的话可能大家已经听说过了,它的原理即便对于非专业人士太过复杂,我这里仅仅介绍一下它能做什么:
给定一个问题X,比如某数学试卷最后一道大题最后一问。
这个时候,某个学霸小明做出了这道题,但是某个学渣小白不相信小明做出了这道题,于是和小明打赌,要他证明自己确实做出了这道题。而小明其实很清楚,小白想打赌的目的实际上是想抄他的答案。
那么,有没有某种方法,能够一方面证明小明解出了这题,同时还不泄露这题的答案呢?
这种方法就是零知识证明,它可以同时满足以上两个条件。通过某个零知识证明的算法,小明生成了一个证明“P”。
给出这个证明后,小白一看到“P”,就能100%确信小明确实解开了这道题——这是零知识证明中的“证明”的意思。
但另一方面,小白看到“P”之后,仍旧完全不知道答案和小明解题的一丁点过程——这是零知识证明中的“零知识”的意思。
具体到ZR的场景里,我们主要是用到“证明”的这部分用途。
在ZR中,链上保留交易以及一批交易之后,所有状态的变化的摘要。
于是,在这里,零知识证明中需要证明的东西,就是:“我知道一系列的交易,在经过这些交易之后,所有交易的状态的摘要将从A变成B。”
就比如:
“我知道某一系列交易,在经过这些交易的所有处理步骤之后,小明和小红的账户会从(1000,1000)变成(900,1100)。”
对这条论断,验证者可以通过零知识证明生成一个证明P。
然后,将P以及状态摘要A和B以及所有的交易一起发到链上,这样,所有的节点不需要验证这些交易,只要通过验证P,就可以确定状态A到状态B的真实性了。
这种做法和OR有个显著的不同点:
同样有一堆被打包起来的交易TX,同样是这些交易会让所有账户的状态从A变成B,同样是将具体变化的计算拿到链下而用一个证明代替。
但不同的是,ZR采用的是“有效证明(Validity proof)”的逻辑而OR采用的是“作恶证明(Fraud proof)”的逻辑,即:
可能很多读者看到这里,已经在心中有了个自己的判断——
ZR似乎从很多角度看起来都比OR好啊:
的确,ZR在这两点上有着对于OR根本性的优势——OR无论再怎么完善,它只是提供了一个可选方案:你可以选择链上交易,也可以选择以低一些的安全性和很长的退出时间为代价,选择交易费更低、速度更快、吞吐量更高的OR交易。但ZR则不同,ZR是可以完完全全代替链上交易的扩容方案——甚至,ZR还能在提供安全性的同时,可以提供相比于链上交易不具备隐私保护。
但另一方面,ZR有一个根本性的缺点,就是零知识证明本身——
因此,个人认为:
Optimistic Rollup | Zk Rollup | |
---|---|---|
证明类型 | 作恶证明 | 有效证明 |
链上计算复杂度 | 高 | 低 |
TPS | 100 (有BLS签名500) | 2000 |
链下计算复杂度 | 低(能跑EVM就行) | 非常高 |
图灵完备 | 可以实现 | 目前还实现不了 |
资金撤出时间 | 两星期 | 瞬间 |
安全隐患 | 对主链的审查攻击 | 有毒废料 |
这就回到了经典的第一层网络和第二层网络之争的问题,而这个问题实在太大了,需要单开一篇来写。
但就目前语境下的以太坊Rollup方案和分片方案而言,两者确实可以进行一个限定条件下的比较:
当然,以上这些并不是说分片不行,第二层方案最好;或者是说所有人都该拥抱rollup。而我的观点是,每条区块链,都应该根据自己的需要,来选取适合的扩容方案,因为扩容方案也不会是从天上掉下来的:OR也好,ZR也好,分片也罢,其实都需要在性能和安全性之间有所取舍。现在,大家早就过了盲目追求百万TPS的时代,也越过了把DPOS当作扩容不可能三角的一角的阶段。其实我们知道在不牺牲安全性和中心化程度的基础上,TPS已经能够达到一个“够用”的水平,因此,于其追求更高的TPS,更该关心的是TPS里每条交易的意义——这些交易为什么需要放在区块链上而不是中心化数据库中。
因此,我对于ETH2.0的态度一直是“吃瓜看戏”。因为在我看来,ETH2.0从来都不是什么rollup和分片路线之争,分片只不过是Vitalik Buterin和核心开发者们在各个rollup团队们开始有些喧宾夺主的时候,画的一个“你看我们也没闲着,未来ETH2.0还是需要我们主导”的靶子而已。要不然,如果真按照一些人说的以太坊就保持PoW+rollup就好,那接下来核心开发团队要干啥去呢?
而最后,我觉得一个需要传递的最重要的信息是——虽然现在Rollup俨然已经成了扩容的代名词,甚至但无论你是初学区块链的爱好者也好,还是业界寻找方向的开发者和投资人也好,对于rollup都需要知道的一个最重要的问题是——rollup实际上不是一个通用方案,也不是一个区块链全行业的“高新技术”,它甚至不是广义上的“区块链扩容方案”中的一个重要路线,其实只是解决一个“以太坊限定”的拥堵问题的一个最合适、最现实和最容易实现的方案,并由于以太坊和DeFi的火热恰逢其会地吸引了大量的技术人员和投资者而已。
加入Colacoder,和区块链资深研究者和开发人员,一起用通俗的语言,聊一聊圈内热点话题背后的技术和逻辑,欢迎投稿!
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!