以太坊的扩容革命:ETH2.0
不扩容,毋宁死
扩容,是区块链专业领域所面临的最大的挑战之一。
--v 神
拿区块链来说,虽然就是说在区中心化和保持安全方面能够很奏效,但是区块链它只能够处理非常小的交易量,也就是它 tps 非常有限,大概在几年之前,其实这样的区块链的状态没有造成太多的问题,因为几年之前用户并不是非常的多,但是最近几年我们看到了,随着以太坊应用场景的多样化,各种 Dapps,代币发行 ICO,去中心化金融 Defi,非同质化代币 NFT,等等,越来越多的人想要使用区块链,并且这个数字还在于增长。现在以太坊每秒处理大约 15-17 笔交易(tps)。相比于激增的区块链服务需求,明显是捉襟见肘。非常限制整个以太坊生态的发展。也就是说有很多的这种场景,很多的人们想要实现的应用都无法实现,那么这就意味着区块链必须要实现扩容。
降本增效,宽门窄门
分片技术:闪电网络还有状态通道,
rollup:最通用的技术,并且以太坊 2.0 的升级也是以 rollup 为中心的,背后的理念就在于说它存在于非常多的不同的形态,能够让我们实现在可扩展性方面大幅的提升,至少能够在目前为止可以实现一百倍的提升,数据分片来说,数据分店可以说是分片的,一个比较简单的形式,它的意思就是说它并不是说打造一个强大的,能够处理交易的分片相反的,我们只打造那些能够存储并且对与数据进行验证的分片,这是一种比较简单的分变形式通过这样的一种分辨我们实际上的是能够提高 roll up 的可扩展性再提高一百倍
上卷 rollup: optimistic 和 zero-knowledge(zk)
可认为是一大类 Layer-2 扩容方案的统称
Rollup 特指先在链下进行复杂的计算和状态维护,再将与状态更改相关的数据通过合约调用的方式,利用更便宜的 CALLDATA 在链上保存数据,将大量交易「卷起/汇总」打包成一个交易,最终在保证了「数据可用性」的前提下提高 TPS。相对于 Plasma 这类 data offchain 的方案设计更简洁且更易实现.由于 eth2.0 在 eth1.0 的交易不受影响的情况下,从架构上进行调整,所以在过渡阶段仍要保持两种方案同事运作。所以这类方案的设计思路就是以太坊的底层几乎不需要任何改动,底层还是向往常一样处理交易,所以不会影响底层的安全性,让各种各样的海量交易在二层来处理,从而减轻底层链的压力。
在众多方案中,Rollups 正逐步取得市场的认可,成为以太坊最可靠的扩容解决方案,一方面该方案直接继承了 L1 的共识机制和安全特性,另一方面它也不会损害 L1 的安全性和主权。事实上,Vitalik 直言不讳的说过,Rollup 是以太坊长期扩容解决方案中可以最快被实现的一个。而 Rollups 的两种方案 Optimistic Rollups 和 ZK Rollups 最大的区别是它们分别使用了欺诈证明 (fraud proofs) 和有效性证明 (validity proofs) 来确保 batches 里的后状态根 (post-state root) 的正确性。
零知识证明
ZK(Zero Knowledge)每一次的状态转变都需要提供零知识证明,由主链上的合约进行验证,只有验证通过才能更改状态。即每一次状态转变都严格依赖密码学证明。
ZK-Rollup 方案利用了目前最流行的零知识证明技术 zkSNARK 在压缩链上计算量的同时保障了数据正确性。
利用一棵 Merkle Tree 存储账户状态,合约只保存 Merkle Root。Operator(运营者)收集用户的交易,批量打包这些交易,并生成 zkSNARK 证明,具体会证明交易的合法性(比如验证签名),以及前后状态下的 Merkle Root。
Operator 把 Merkle Root 连同各交易数据和 zkSNARK 证明提交至合约,合约验证通过才将新的状态写入。
由于所有交易的计算过程不用在合约中执行,无需将大量状态写入合约 storage,并且 zkSNARK 证明大小(很小)与验证时间(很快)是常数,不跟随交易数量增长,因此 ZK-Rollup 可以极大地提高交易 TPS。
ZK-Rollup 的链上性能限制仅依赖于 CALLDATA 存储数据的成本。随着以太坊 Istanbul 升级,CALLDATA 使用成本降为原来的 1/4,ZK-Rollup 的性能则获得 4 倍提升,TPS 可达到近 2000!
TLDR,ZK-Rollup 的原理其实可以用一句话讲清:链下进行复杂的计算和证明的生成,链上进行证明的验证和关键状态的维护。
Optimistic Rollup
在 Optimistic Rollup 中,新状态 Merkle Root 由运营商 operator 发布,且无需每次都由 Rollup 智能合约检查。相反,每个人都希望状态转换是正确的。但是,如果发布了不正确的状态转换,其他运营商或用户(必须观察在 Layer 1 Rollup 合约中的情况,执行每个单笔交易)将能够指出错误的交易,并回滚错误的区块,扣掉恶意运营商的押金,有点像多线程并发模型中的乐观锁的基本思想。
基础设施
以太坊域名系统 ENS
十六进制数字字符串对计算机来说可能很简单,但对人类用户来说就不那么直观了。以太坊域名服务(ENS)通过允许任何个人创建简单的网站样式的地址,以便于记忆和使用,来解决这个问题。ENS 也不仅仅局限于钱包地址。它还可以用来表示交易 ID、哈希值和元数据,所有这些在加密货币世界中都非常常见。您可能已经非常熟悉域名系统(DNS),这是一个类似于互联网电话簿的命名系统。
以太坊基金会开发者 Nick Johnson 发表针对以太坊域名系统(ENS)的改进方案,通过引入类似于 Layer-2 扩容方案 Optimistic Rollup,试图降低常见操作的链上交易费(Gas)。该方案有望使得申请一个 DNS 名称变得非常便宜,在某些情况下,可以降低两个数量级的交易成本。
轻客户端
如何可以在事先不知情的情况下证明信息的真实性. 他是怎么做到的?
与全节点对应节点不同,轻节点不需要运行 24/7 或读写区块链上的大量信息。事实上,轻客户端并不直接与区块链交互,而是使用全节点作为中介。轻客户端需要下载区块链的区块头。轻客户端不需要为它对全节点的每个请求去信任全节点。这是因为区块头包含一个名为 Merkle 树根的信息。Merkle 树根就是区块链上有账户余额和智能合约存储的所有信息的指纹。如果有任何微小的信息改变,这个指纹也会改变。假设大多数矿工都是诚实的,那么区块头和他们所包含的指纹就被认为是有效的。轻客户端可能需要从全节点请求信息,例如特定帐户的余额。轻客户端知道每个区块的指纹,就可以验证全节点给出的答案是否与其拥有的指纹匹配。
如果说我们希望让以太坊生态系统实现真的去中心化,我们就需要有安全的新客户端,那么这些安全的新客户端就必须要能够不仅仅访问以太坊的主网,但同时呢也能够去访问跨链桥以及 rollup,很容易的从一个 rollup 到另外一个 rollup 的,实现了这样一个跨链。在这样的情况下,不需要等待长时间来进行行区块的验证。ERC3668 提案希望允许应用可以迁移到 rollup 之中,而且这个提案本身看起来非常的不错,因为它是一个通用型的提案,而且它也允许智能合约,比如说一层的智能合约或者具体的去指定应用,从哪里去获取的有关于二层 lay2 的状态的信息,而且,他也能够指定对于这个信息的验证方式进行一个具体的指定,也就是说你可以有一个无需信任的新客户端,这样的一个客户端可以对于数据的证明进行验证,对于这种二层的数据证明进行验证
另外我们可以登记一个域名,在二层 layer2 进行登记。端的更新不管说它存在于哪个二层之中,我都可以看到这个信息,使用同样的软件,看到在各个二层里面的信息,它能够被迁移到,而还能够对子域名进行注册,也可以被迁移到第二层之中。轻客户端它允许一个节点对于数据安全进行验证,但是却不需要去运行一个全客户端,对于每一笔交易进行验证,那么轻客户端它本身是非常的重要的,对于区块链生态系统来说,要实现去中心化,也是非常的重要,
POS 取代 POW
TH 2.0 升级带来了从工作证明的转变 [PoW] 股权证明 [PoS]。这种升级称为“抵押”,它将工作量证明(PoW)矿工换成锁定 ETH 存款的验证者,以验证区块并获得区块奖励。那么,以太坊矿工将会如何? PoS 上线后,这些矿工可用于什么用途?以太坊的联合创始人 Vitalik Buterin 在最近的播客中谈到了这一点。他说
有很多用例。一个更接近于加密货币领域的选择,肯定不会获得百分之一百的矿工,最多可能只有百分之几-零知识证明。零知识证明对一切都更加有用,这发生了一场巨大的技术安静技术革命。
转向 PoS 可以将以太坊交易的能耗降低 100 倍以上。
目前,ETH 网络由解决复杂数学难题的矿工来保护。网络的安全性主要取决于网络上的总哈希率或挖掘处理能力的数量。反过来,这增加了硬件和运营成本。其带来的耗能太高,也广为诟病,与双减碳中和的红旗大计相左,实在得改!
借助 PoS,社区希望提高以太坊的效率和安全性,同时还要减少购买昂贵的采矿硬件以及所花费的能源。 PoS 不会随机选择数以百万计的处理器来同时处理相同的事务,而是会选择一个人来完成这项工作。
区块已经是通过委员会的签名了,那么这样的话就可以实现安全的客户端,而且呢,能够访问区块链,但是却无需信任一个中心化的服务器,在你的手机里或者是在浏览器里或者在某个硬件里,或者是作为另外一个区块链的跨链桥里面,所以呢它有很多的优势,但是这样的新客户端系统它本身也是需要进一步的扩展,能够迁移进 roll up 系统,所以呢这一点是非常重要的,也就是说在我们实现扩容的同时,我们依然要保持中立性化,而且我们当前所做的种种来进一步的的专家,以太坊主管的区中心化,这些努力能够进一步的被应用到所有的在二层的协议之中
跨链桥 bridge
我们从各大跨链桥的 TVL 中可以看出,以太坊上的资产已经大规模地向侧链与 Rollup 转移。然而,尽管用户有大量的资产转移需求,Rollup 和侧链的原生跨链桥的易用性却并不那么顺滑——单次跨 Layer1 和 Layer2 的转账可能需要长达 40 分钟甚至多则 7 天的时间,并且 gas 费用也相当高昂。除此之外,侧链与 Rollup 也各自孤立,用户想跨「Rollup - 侧链」转移资产更是难上加难。这种情况促发并加速了第三方跨链桥的兴起。
对于 Rollups 方案而言,如何将资产从 L1 存入 L2,再从 L2 提回 L1,更进一步的,如何从一个 L2 网络提取到另一个 L2 网络,是一个核心问题,我们将承担这一责任的基础设施称为桥(Bridge)
我们相信 Layer2 和以太坊 2.0 的相继落地,将有机会成为以太坊的二次增长曲线,使以太坊进化为承载数万亿美元规模的经济带宽。而 L2 Bridge 将作为区块链基础设施之一,在这一进程中发挥重要的作用
跨链桥,其实现在我们所面临啊,因为他能够提供扩展性,但他同时呢,也保持了当前的用户的体验以及开发者的体验,所以呢为 roll up 进行开发,在 roll up 上进行开发,车厢式,在以太坊上进行开发一样,只是有一些小小的变化,比如说区块生成打包的时间可能不一样,但是呢,它的虚拟机大家是一样的,而且呢和以太坊的虚拟机进行兼容的话,这样就意味着保全了保存了以太坊所有的性能,同时呢,也保持了以太坊区中心化这一非常重要的属性,而与此同时这一点依然还是一个和进行中的努力,也就是说我们还需要多努力去搭建一些基础设施,当然呢对应用来说还有很多的努力,要做整个生态系统来说,也有很多的努力要做,但是就最终来说时间也太长,我们的扩容的路径,现在已经不仅仅只是存在于理论之中,现在我们已经有一个清晰的路线图,而且这个路线图中很多的组成部分现在要。已经实现了,或者说已经进入到了主网部署的阶段,或者说现在正在如火如荼的开发之中,也就是说我们在未来的话也会期待有更多令人兴奋的工作不断的出现。
最后
预计即将推出的以太坊 2.0 将在 L2 上将以太坊的吞吐量提高到 2,000+ tps (使用链上数据)和 9,000+ tps (使用链下数据)。L2 还将显著降低交易成本。
版权声明: 本文为 InfoQ 作者【不登山的小鲁】的原创文章。
原文链接:【http://xie.infoq.cn/article/cde1e78d57c025974813e1e6f】。文章转载请联系作者。
评论