一文图解以太坊发展路线

区块链
本文讲的是通往以太坊的未来之路。Eth2 开发者团队将当前的以太坊称为 “eth1”,也就是现在我们所熟知的 PoW 链。而未来的以太坊既不是 eth1,也不是 eth2,而是...以太坊。

本文讲的是通往以太坊的未来之路。Eth2 开发者团队将当前的以太坊称为 “eth1”,也就是现在我们所熟知的 PoW 链。而未来的以太坊既不是 eth1,也不是 eth2,而是...以太坊:

让我们来梳理一下现在的以太坊:

 

图:当前以太坊 (eth1链) 的运作方式

 

用户想要做一些事情 (“进行交易”),因此将其交易发送给矿工,矿工把它们打包成块并添加至一条不断增长的链中。矿工运行 PoW 共识机制 [1],以决定谁来添加下一个区块, 并执行区块中的交易,以确保交易是有效的。

 

图:PoS 机制代替 PoW 机制

 

PoW 也不全是糟糕的,但我需要一个吸引人的题目

PoW 需要大量硬件运行密集的计算,造成了过高的能量消耗。我们并不会像大多数加密货币批评者那样谈论资源浪费 (他们通常的说辞是“为什么我们要用一种消耗国家资源的支付系统”?),我们所倡导的是,既然我们能够以相对较小的消耗去做同样的事情,那我们就应该这样做。

所以我们选择向 PoS 过渡,仅用一个小型服务器代替大量的挖矿设备,用验证者代替矿工。

 

图:如果他们没有做好第二步的验证工作,他们将会损失资产

 

那第二步是怎样运作的?验证者到底在验证什么?


图:将以太坊的活动分为两部分 (共识层和执行层)

 

共识层确保每个人就某个正确的数据达成一致。而执行层实际上会解释这些数据,使其有意义。“数据”即与区块链任何形式的交互,如,部署一个合约、在交易所进行交易、发送支付交易等等...

区块链的核心是在链中添加新的区块。当有新的区块添加时,该区块之前的状态会向区块后的状态迁移。这个状态汇总了从区块 0 到 N 的所有数据。

例如,如果该状态保存着记录 Alice 和 Bob 余额的账本,而新区块包含了 Bob 向 Alice 支付 10 代币的记录,那么这个新区块被添加至区块链之后,状态将会记录新的余额信息。“State after block N+1” (区块 N+1 之后的状态) 那个图中右边的虚线斑点就代表着添加了新区块之后的变化,这时可能会修改现有状态 (例如,Alice 和 Bob 的余额),或创建新的状态 (部署一个新的合约,或将 Carol 添加到账本...)

第一步将共识层与执行层解耦;第二步从 PoW 向 PoS 转移

Rollups 和 eth2 主要为了解决上图计划中的第一点:去除共识层与执行层的相关性。那么这项工作的进展如何?

 

图:第一步已完成

 

自 2020 年 12 月以来,我们同时拥有着两条链在进行:

  • 第一条,是 PoS-共识链 (又名,信标链)
  • 第二条,是我们可靠的 PoW-共识+执行链 (又名,eth1)

他们同时运行,但他们也可以相互通讯。但是,目前还没有实现这种功能...

 

图:如何成为一名验证者

 

想要成为 PoS-共识的验证者,PoW-共识+执行链上的用户需要在存款合约中锁定 32 ETH,这会自动转移到 PoS-共识链中。一旦验证者被激活,他们就可以开始验证工作和获取奖励了。

 

图:合并

 

这种无法通讯的情况希望不会持续太久。“合并”将 PoS-共识链和 PoW-共识+执行链永久地桥接起来,也就是说验证者可以为执行层生产区块。合并后,我们拥有两种链:

  • PoS-共识链
  • 一条基于 PoS 的执行链 (即 “eth1” 链)

合并之后,PoS-共识链的验证者将能够赎回以及提现他们的质押存款和奖励,并将其发送回到基于 PoS 的执行链中。[2]

因此我们需要从 PoW 环境中转向完全成熟的 PoS 环境。但是请注意,这一转变并没有怎么提高区块链的带宽 (一个区块打包多少执行交易),这是分片要解决的问题。在此之前,让我们来讨论一下,当我们只有一条执行链时,有哪些方法可以提高执行的可扩展性。

 

图:将执行放在链下;将数据放在链上
(颜色总结:共识=紫色,执行=绿色,数据=黄色)

 

说到 rollups,这是众多可用的扩容解决方案之一,但从协议设计的角度来看,这种解决方案可能提供了最优的折衷方案。这种方案的想法很简单:通过将数据存储在链上 (这些数据用于重建状态转移的执行) 来综合地处理状态转换,并且将状态的执行放到链下。如果有人不同意执行的结果,或者有人一开始就忘记执行,数据就在链上供所有人使用 (可以重新计算),这是完全无需许可的!

更准确地说,执行所需的数据 (交易输入) 与其载体 (交易) 分离,并以节省空间的方式 “捆绑”起来。同时,rollups 在执行链 (eth1) 之外运行,提交并执行数据。

 

图:已有几个 rollups 方案部署,还要更多正在研发中

 

用户需要往执行链 ("eth1") 上的 rollup 合约质押一笔资产,才能够进入到 rollup 里,用户可以在里面进行交易。完成之后,用户可以将资产从 rollup 中转回到执行链中。

Rollups 的替代方案是什么?大家看一下上图,让我们来假设一下,如果我们用一串串平行的红色来代替那些垂直的黄色链会怎样?比如说,如果我们复制了几条 eth1 链,然后它们之间并排运行会怎么样?

这里的问题是如何处理并行运行的多个执行链。如果某条链上发生了什么事情,而其他人需要知道怎么办呢?这是分片面临的一个非常棘手的问题,或者说对于在多个链中执行的方案来说都需要克服的问题。

"Rollups 之间并没什么不同",读者可能这么认为,本质上来说这没什么错。但是当你想要从一个 rollup 转到另一个 rollup 上进行交易时,同样棘手的问题又出现了。然而,关键在于,现在已经存在几种 rollup 设计了,并且这些解决方案的可探索空间仍非常广泛。既然如此,为什么不让 rollups 先进行试验,然后再引入一种协议级别的方法呢?

这让我们来到了...

 

图:使用分片来存储 rollup 发布的数据

 

读者应该听说过区块空间不足的事吧?Rollups 确实需要发布它们的数据,但是 eth1 区块空间十分稀缺!而且,就像我们所讨论过的,跨分片是非常难的。那为了解决这个问题,我们可以用分片来保存 rollup 需要发布的数据。届时很可能会有 64 个分片,即现在可用带宽的 64 倍。而且一个分片区块可能会比 eth1 链区块当前能够容纳更多的数据量。

我需要强调一下,这并不意味着我们将永远排除执行分片这个方案。以 rollup 为中心的以太坊路线图是我们中短期的发展目标,直到我们找到更好的加密基元,以保证能够实现跨多条链的执行分片。这个方案很吸引人,需要团队很多人花费很长的时间去研究。与此同时,我们可以使用 rollups。

 

图:每个 rollup 都有自己的执行环境

 

这方面还有很多工作要做!首先我们不要忘记,“合并”和“数据分片”都是非常复杂的工作,需要多个团队同时从事其中一项或两项工作。但在 rollup 方面,也仍有一些有趣的问题有待探索,我仅列出了一部分:

  • 实现用户和 rollups 之间的大规模迁移是一个很酷的概念。如果用户有足够多的公共交通工具令其往返 Layer1 (eth1) 和 Layer2 (rollups),那么为什么还要自己开车往返呢?这非常不经济。
  • 如果用户觉得可以在另外一个 rollup 上做一些更酷的东西 (ta 所在的 rollup 是没有的),难道 ta 一定得先提现至 L1,然后再从 L1 中存款进这个 rollup 中吗?这未免太浪费了。
  • 对于当前的链上操作来说,rollups 极大地提高了网络带宽,这是毫无疑问的。但是 rollups 仍不是用户所期望的无限高速公路那样。仍有很多人想要在 rollups 上做很多事情,有时甚至是同时做的!因此 rollups 将不可避免地面临拥堵问题,但与 L1 这个尤其拥堵的市场不同 (很快就会上线 1559 了),rollups 的可探索空间更加广泛。
  • 说到拥堵问题,虽然这更特定于协议层面,但是我们还将看到 EIP-1559 扮演交通警察的角色,来规定每个数据分片上发布多少数据,确保验证者可以处理这个数据量。如果读者觉得 eth1 上运行 EIP-1559 很酷,那么请期待届时会在 64 条分片链上同时运行 1559。那么,rollups 应该在哪里发布它们的数据呢?是仅发布在单个分片上,使数据仅在该分片上可获取?还是说发布在多个分片上,这样就可以受益于计划推出的“错开分片区块生产” (shard staggering) 方案?这个方案由 Vitalik 提出,即分片轮流出块,这样发布数据时,距离新区块的生成时间为几百毫秒以内,这对于需要“快速敲定”的应用来说是理想选择。

特此感谢 Danny Ryan 和 Sacha Saint-Leger 的建议。

[1] 我听说 PoW 不是一种共识算法,但我认为如果使其定义超载了,将其描述为共识机制是没有问题的。

[2] PhiGo 在推特写道,合并后 (PoW 退出以太坊) 不一定就可以提取质押存款。的确,目前合并计划更专注于合并部分,而“提款”问题是一项独立但相关的研究工作。

责任编辑:未丽燕 来源: 金色财经
相关推荐

2022-09-14 10:23:46

以太坊技术

2023-08-14 10:35:19

以太网局域网

2023-12-10 16:54:39

以太网交换技术

2024-02-05 09:49:20

2020-12-28 08:10:26

HTTPTCPIP

2018-05-21 10:20:22

人工智能机器学习神经网络

2021-08-07 09:36:49

网络爬虫互联网网络

2021-08-06 09:36:00

TCPIP网络协议

2020-10-14 10:21:02

算法算法思想数据

2018-11-16 10:04:14

云存储磁带存储RAID

2021-05-02 22:19:46

以太坊比特币加密货币

2021-04-29 18:18:51

Kubernetes容器工具

2021-09-10 16:10:21

panda透视表语言

2022-08-18 17:21:51

人脸识别

2021-12-08 13:57:29

以太坊加密货币比特币

2021-05-22 22:57:24

以太坊加密货币比特币

2021-05-03 23:32:55

以太坊区块链比特币

2021-10-26 00:27:28

Python以太坊智能

2022-10-18 08:00:00

2020-12-02 09:36:20

算法分支思想
点赞
收藏

51CTO技术栈公众号