本文介绍了区块链分片的概念,它是一种将区块链网络分割成多个独立分片的技术,旨在提高网络吞吐量和可扩展性。文章解释了分片的工作原理,包括分片链、验证者和提议者等概念,并探讨了以太坊分片的技术细节,以及潜在的优缺点。需要注意的是,以太坊已经放弃了主网分片计划,转而支持二层扩容方案。
以太坊分片已被 danksharding 取代 - 它支持 layer 2 扩展,而不是直接扩展主网。
注意:以下文章概述了放弃的以太坊主网分片计划。某些数据可能已过时。请参阅上面链接的 danksharding 文章,以获取关于以太坊扩展路线图的最新知识。
多年来,区块链可扩展性问题一直在开发者社区中争论。像以太坊这样的公共区块链网络需要多个节点来验证交易,限制了它们的可扩展性。
例如,以太坊每秒可以处理大约 10-13 笔交易。与 VISA 等中心化系统相比,这简直是小巫见大巫,VISA 每秒能够处理高达 24,000 笔交易。
如果区块链——以及运行在其上的去中心化应用程序——想要享受大规模采用,那么人口级别的可扩展性是必要的。
除了 layer 2 区块链之外,分片是扩展以太坊以支持更多用户的建议解决方案。分片的想法是将主区块链分成独立的片段,因此节点只需要验证交易的子集。
通过节点并行验证交易,可以提高网络吞吐量,并且 dApp 可以扩展以满足不断增长的用户数量的需求。
加密货币交易速度与 Visa & Paypal 的比较
数据库分片是中心化数据库管理中的一种常用技术,它是将大型数据库分成更小的块(“分片”),通过在多台机器上并行分配数据库来提高效率和应用程序可扩展性的过程。
随着软件的用户或执行的操作数量的增加,存储在软件数据库中的数据也会增加。过载的数据库会影响应用程序性能并损害用户体验。因此,分片对于减轻数据库负担和缩短加载时间是必要的。
假设有一个数据库包含一个城市 100,000 名居民的个人记录。
查找个人的信息将需要计算大约 100,000 笔交易——这是一项成本高昂且耗时的任务。
但是,如果我们把这个大型数据库分成更小的数据库会发生什么呢?
例如,通过将所有姓氏以特定字母开头的城市居民分组到唯一的服务器上,查找信息所需的计算资源更少,完成任务所需的时间更少,并且数据库变得更易于管理。
这是一个用另一个数据库分片示例的说明:
数据库分片
“分片”意味着“整体的一小部分”。在数据库管理中,分片是托管在单独服务器上的大型数据库的子集。虽然每个分片都包含成块的数据,但它们都形成一个逻辑数据集。
使用我们之前的例子,我们可以有一个分片,“分片 1”,用于姓氏以“A”开头的城市居民,一个“分片 2”,用于姓氏以“B”开头的居民,等等。
如果将这些逻辑分片组合在一起,你将获得一个包含所有城市居民记录的单个数据集。
区块链网络中的分片遵循与中心化数据库中相同的过程,其中区块链网络可以“分片”或拆分为不同的区段,每个分片存储一部分区块链的数据并处理一组唯一的交易。
通过分片,区块链网络可以提高网络延迟和可扩展性。
由于所有节点必须就交易有效性达成共识(即达成一致),因此区块链网络一次只能处理少量交易。
通常,每个节点存储区块链的完整历史记录并处理每笔交易。这就是使以太坊和比特币等区块链网络“去中心化”的原因。
由于每个完整节点都拥有网络完整历史记录的副本,因此恶意行为者更难以劫持网络并可能反转或重写交易。
确保区块链去中心化和安全以牺牲可扩展性为代价。
分片区块链允许节点放弃下载区块链的完整历史记录或验证通过网络的每笔交易,这提高了网络效率并使区块链能够扩展以支持更大的用户需求。
来源:Genesis Block
在区块链网络的上下文中,分片链将包含一部分数据并处理一部分交易处理职责。
分片链就像独立运行的微型区块链的集合,为了保持安全性,每个分片链通过验证者管理器合约 (VMC) 定期向主链(信标链)提交交易记录。
因为每个分片链都将具有唯一的交易历史记录和一组节点来验证新交易,所以多个分片链可以同时运行,以通过并行处理来提高网络延迟和吞吐量。
分片链
以太坊计划在其 以太坊 PoS 升级 之后采用分片作为扩展解决方案,这是一系列旨在改善以太坊 1.0 功能的升级。
以太坊上需要分片有两个主要问题:支持用户数量的指数级增长的能力,以及在规模上保持去中心化的需求。
以太坊目前的结构使其无法处理使用量的指数级增长。
目前,所有以太坊节点都存储 以太坊虚拟机 (EVM) 的完整状态,包括智能合约代码和账户余额。
此外,交易是线性执行的,需要整个网络确认。
线性交易并要求节点管理大量数据集会减慢网络速度。
要求节点保留区块链的完整副本也会产生中心化问题。目前,以太坊账本 占用了 10+ TB 的存储空间,是普通计算机容量的 10 倍。
随着以太坊区块链的不断增长,运行以太坊节点可能会变得困难,只留下少数节点负责保护网络。这重新引入了以太坊旨在解决的中心化和单点故障问题,从而降低了它的价值。
分片促进了更好的可扩展性,因为节点可以同时验证不同的交易,并且将交易数据分成更小的块使得运行完整节点更容易,从而降低了中心化的风险。
在我们解释分片的工作原理之前,这里有一些重要的定义:
状态是指系统在任何时间点的信息。在以太坊中,状态是对特定时间网络(合约代码、帐户、地址余额等)的描述。每个新交易都会改变以太坊的状态。
默克尔树或根是一种加密机制,可以通过哈希存储大量信息。默克尔树/根对于以太坊的安全性至关重要,因为它们允许节点快速验证一段数据是否是更大结构的一部分。
排序是在分片链上进行的一组交易,类似于工作量证明 (PoW) 中的区块。排序被提交到主链并链接在一起以形成区块链。
排序头类似于工作量证明共识中的区块头。排序头包含有关排序内部信息的元数据,例如:
排序所属的单个分片
父排序的根哈希
排序中所有交易的默克尔根
pre-state 根和 post-state 根
公证人的签名
分片排序头 [图片来源 https://hackernoon.com/blockchains-dont-scale-not-today-at-least-but-there-s-hope-2cb43946551a ]
公证人是被随机分配到分片链以投票选出拟议排序的验证者。这些投票称为“证明”,并证明排序的有效性。每个排序需要至少 ⅔ 的排序者签署才能添加到共识链中。
提议者是被选为创建排序并提出用于验证的排序者(或验证者)。提议者具有与 PoW 区块链中的矿工相同的职责。
委员会是一组验证者或公证人,他们证明分片区块的有效性。这些委员会会定期随机改组,因此验证者无法预测他们将在哪些委员会中。
由于路线图持续延迟,以太坊社区转向支持以 layer-2 为中心的路线图,放弃了他们的分片计划。这使得核心开发者能够发布被称为“The Merge”的共识升级,该升级将网络的共识更改为权益证明。
以太坊分片升级计划将以太坊区块链拆分为 64 个分片链。每个分片链都将具有独立的状态,这意味着节点将存储帐户余额、智能合约代码的子集,并处理总交易的一部分。
假设以太坊有 10,000 个验证者和 100 个分片链。
通过伪随机协议,有资格的验证者,他们在验证者管理器合约 (VMC) 中存入了 ETH,并被分配到分片 1-100。
在分片 1 中,选择一个验证者(提议者)将新交易分组到一个排序中。
其他验证者(公证人)下载排序并验证交易的有效性。
如果三分之二的公证人证明该排序,则通过 VMC 将其提交到主链。
重要的是要注意,整个排序不会添加到信标链中——验证来自每个分片的排序将是困难且浪费时间的。
相反,主链上的 验证者节点 只是检查每个排序的证明(签名)以确定其有效性。
以太坊 PoS 分片如何工作
由于排序头,任何人都可以验证每个分片上的活动。
排序头充当“交叉链接”并描述不同分片上的状态和交易。因此,跨分片通信使得无需参与每个分片即可拥有以太坊网络的顶层视图成为可能。
虽然以太坊分片承诺了很多好处,但它也引入了一系列新问题:
运行每个分片的节点更少,恶意活动(如 51% 攻击)变得更容易。
代码更复杂,智能合约安全漏洞 的风险增加。
委员会成员可以串通将恶意交易提交到主链。
通过分片产生的智能合约安全漏洞
自 2013 年以来,以太坊社区一直在讨论分片问题,但开发人员推迟了实施——这是有充分理由的。分片非常复杂,并会引入新的风险,因此需要进行严格的测试才能解决任何问题。
根据 Ethereum.org 的说法,分片将在“The Merge”之后在以太坊上推出。就上下文而言,The Merge 指的是 PoW 以太坊主网络(主网)与信标链(PoS)集成的事件。
信标链是 Casper 权益证明系统的实现,并产生创建功能性分片系统所需的随机性。该链于 2020 年 12 月 1 日上线。
在下一节中,我们将简要概述以太坊中分片的实现:
自 2013 年以来,以太坊社区一直在讨论分片,但以太坊开发人员推迟了实施分片,因为它非常复杂并引入了新的风险,这需要进行严格的测试才能成功启动。
以下是以太坊分片时间表的简要概述:
根据 Ethereum.org 的说法,分片将在“The Merge”之后部署在以太坊上,或者在 PoW 以太坊主网络(主网)与信标链集成时部署。
该阶段可能会在 2023 年启动,以太坊计划的升级时间表。但是,尚未概述分片时间表的具体日期。
以下是以太坊分片的第一个阶段可能的样子:
托管在信标链上的验证者管理器合约 (VMC) 负责协调分片过程
有意向的 ETH2 验证者需要在添加到符合条件的验证者池之前将 32 ETH 锁定到智能合约中
VMC 定期将验证者分配到分片,以验证和处理到共识链的交易排序
分片仅用作“数据仓库”以提高以太坊网络的数据处理能力。
ETH PoS 分片升级的第二阶段不太明确,因为开发人员正在争论某些方面。但是,我们可以预期以太坊分片阶段 2 在实践中会是这样:
分片从数据层移动到代码执行层——每个分片都有一个独立的“状态”(即一组独特的智能合约、账户余额和地址)。
每个分片都像以太坊主网一样,具有完整的智能合约和 dApp 支持
跨分片通信允许不同分片链上的用户交换价值。
在不同分片链上运行的 dApp 可以使用跨分片通信“对话”和相互交互,从而提高以太坊的可扩展性功能。
通过同时运行多个分片链,节点可以提高其交易处理能力,并能够在链上处理更多的数据。
继续前面的例子,如果 100 个分片链每秒处理 100 笔交易,那么以太坊 2.0 将能够实现 10,000 TPS。
在基础层链上发布的来自分片的唯一信息是排序头——有效性的加密学证明——因此验证者节点更容易确认交易并提交到共识层链。
结果是更快的交易 最终性 和更高的网络延迟。
虽然估计各不相同,但分片的引入预计会将以太坊扩展到每秒处理数十万笔交易。
通过更高的 TPS 速率,以太坊可以提供 dApp 所需的可扩展性,以处理使用高峰和数十亿用户。
Supercharged | Alchemy | Substack
获取免费的以太坊 RPC 和开发者工具 获取你的 API 密钥
📚 目录
分享:
\
\
以太坊\
\
什么是增强交易?\
\
探索一种新型交易,保证交易被挖掘并针对 Gas 进行优化
\
\
以太坊\
\
什么是以太坊承诺级别?\
\
了解安全(已证明)、最终和最新承诺级别
\
\
以太坊\
\
以太坊交易如何传播(广播)?\
\
了解以太坊交易如何在以太坊网络上传播
Alchemy 将最强大的 web3 开发者产品和工具与资源、社区和传奇支持相结合。
- 原文链接: alchemy.com/overviews/et...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!