什么是分片?

随着加密货币扩展问题的争论继续,一些潜在的解决方案实际上已经开发了相当长的时间.

具体来说,在以太坊(Ethereum)的情况下,以分散性和可扩展性为重点,主要关注分散和安全性,将分片与实现权益证明共识相结合的应用被视为网络可以扩展到的急需的机制。实用级别的应用程序,同时仍保持其分散性和安全性.

分片是一个复杂的主题,尤其是在应用于分散式,对等网络(如以太坊)时,该网络的全局状态不断更新.

那么分片到底是什么?它如何帮助区块链网络扩展?

分片和分布式计算背景

分片实际上比区块链技术要古老得多,并且已在从业务数据库优化到 Google的全球Spanner数据库.

  • 本质上,分片是一种用于在数据库中水平分区数据的特殊方法.
  • 更一般而言,数据库被分成称为“碎片”的小块,这些碎片在聚合在一起时形成原始数据库.
  • 在分布式区块链网络中,该网络由以对等格式连接的一系列节点组成,没有中央权限.
  • 与当前的区块链系统一样,每个节点存储网络的所有状态并处理所有交易.
  • 虽然这通过分散提供了高级别的安全性,尤其是在工作量证明系统(例如比特币和以太坊)中,但它会导致合法的扩展问题.

以太坊分片

以太坊为例,以太坊网络中的完整节点存储区块链的整个状态,包括账户余额,存储和合同代码.

不幸的是,随着网络规模以指数级增长,共识只会呈线性增长。此限制是由于需要达成共识的节点之间需要进行通信.

网络中的节点没有特殊特权,并且网络中的每个节点都存储和处理每个事务。结果,在以太坊规模的网络中,高昂的天然气成本和更长的交易确认时间等问题在网络紧张时变得很明显。网络仅与单个节点一样快,而不是其各个部分的总和.

分片通过提供有趣但复杂的解决方案来帮助减轻这些问题。该概念涉及将节点的子集分组为分片,然后分片处理该分片的特定事务。它允许系统并行处理许多事务,从而显着提高吞吐量.

一种简单的表达方式是想象美国将其划分为州.

虽然每个州(在这种情况下为分片)都是美国(以太坊网络)的一部分,但它们有自己的特定规则,边界和人口子集。但是,他们确实拥有通用的语言和文化,作为组成该国的更大网络的一部分.

用Vitalik Buterin自己的话说甚至更好:

 “想象一下以太坊已经分裂成数千个岛屿。每个岛屿都能做自己的事。每个岛屿都有其独特的功能,该岛屿上的每个人(即帐户)都可以彼此交互,并且可以自由地享受其所有功能。如果他们想联系其他岛屿,他们将不得不使用某种协议。”

如您所见,将网络分割成更有效的部分的概念使网络可以作为其各个部分的总和运行,而不受每个节点的速度限制.

分片在区块链中如何工作?

我们将继续以太坊为例,因为这是区块链领域最著名,最艰巨的分片尝试,因为以太坊开发人员正在实施所谓的“状态分片”.

以太坊区块链的当前状态被称为“全局状态”,是每个人在特定实例中查看区块链时都能看到的内容.

在以太坊中实现分片的棘手部分是,通过将节点分片成较小的子集,这些子集需要能够处理特定的交易集,同时更新网络状态,同时确保其有效.

以太坊中的分片应该在两阶段部署中实施,比在网络中实施权益证明之后更有可能。第一阶段将是数据层,该数据层由分片中的哪些数据达成共识。第二阶段是状态层。所有这些都是非常不稳定的,因此下面是其工作原理的一般分解.

以太坊将网络分解为特定的碎片。每个分片被分配一个特定的交易组,该交易组是通过将特定帐户(包括智能合约)分组到一个分片中来确定的。每个交易组都有一个标头和一个主体,其中包括以下内容.

标头

  • 事务组的分片ID
  • 通过随机抽样分配验证者(验证分片中的交易)
  • State Root(添加交易前后分片的merkle根的状态)

身体

  • 属于交易组的所有交易都是特定分片的一部分.

交易特定于每个分片,并且发生在该分片的本地帐户之间.

验证交易后,网络状态会更改,并且帐户余额,存储空间等也会更新。为了使事务组验证为有效,事务组的状态前根必须与全局状态中的分片根匹配。如果它们匹配,那么将验证事务组,并通过特定的分片ID状态根更新全局状态。.

以太坊区块链的每个区块现在不仅包含状态根,还包含状态根和交易组根。交易组根是该交易块的特定分片中所有交易组的merkle根.

基本上,所有包含更新和验证的事务组的不同分片都有一个Merkle根。该根与更新后的状态根一起存储在区块链中.

在此结构中使用merkle树概念对于确保区块链的有效性至关重要。了解Merkle树,尤其是Merkle根的工作方式,可以帮助您更轻松地掌握这些概念。.

什么是默克尔树

阅读:什么是默克尔树 ?

分片内的共识是通过随机选择的节点的权益证明共识来实现的,这些证明适用于针对特定共识轮的分片.

这不仅为分片提供了共识的最终性,而且还为这种情况下的工作量证明区块链易受攻击的攻击提供了特殊的防御.

大大减少了在PoW分片网络中超载特定分片所需的哈希能力,并且恶意行为者通过计算能力接管分片的能力是可行的.

通过这种方式,不良行为者可以通过通信协议攻击其他分片,这是分片架构的更复杂和重要的特征之一。分片中验证者的随机抽样选择可以抑制这种类型的攻击,因为不良行为者在实际放置到分片中之前不会知道他们要放入哪个分片.

此外,将使用随机抽样从该随机验证集中选择实际验证的验证器.

通信协议对于分片架构在系统中的正常运行至关重要。您可以将通信协议视为通用语言,在较大的美国中,各州之间的协议是一致的.

但是,设计此协议具有很高的挑战性,需要执行该协议,以便仅在必要时使用。当特定节点需要未存储在其自身分片中的信息并且需要找到具有必要信息的分片时,这变得很有必要。这种通信称为跨分片通信.

通过应用交易收据的概念来实现跨分片通信。交易的收据存储在merkle根中,可以很容易地验证它,但它不是状态根的一部分.

从另一个分片接收交易的分片会检查merkle根,以确保收据未被使用。本质上,收据存储在共享内存中,可以由其他分片验证但不能更改。因此,通过收据的分布式存储,分片能够相互通信.

分片前进

Casper PoS升级后,有望在以太坊中进行分片。最近,那里 关于以太坊2.0的一些发展 其中涉及实现Casper和分片.

分片还已经在其他一些平台中实现,最著名的是Zilliqa。但是,Zilliqa目前未实现状态分片,而是专注于通过利用事务和计算分片来提供高吞吐量的区块链。.

Zilliqa阅读我们的Zilliqa指南

结论

分片现在可以为区块链平台中的大象提供一些有前途的解决方案,可扩展性.

虽然比特币的闪电网络目前处于测试阶段,并且到目前为止已经显示出非常令人鼓舞的进步,但是以太坊的解决方案被视为图灵完整的世界计算机,因此带来了一些独特的挑战.

分片将仅在协议级别直接起作用,因此对于最终用户或dapp开发者而言,了解.

无论如何,以太坊试图对庞大的分散网络进行状态分片的尝试是一项令人印象深刻的努力,如果成功实施,将是一项巨大的成就.

Mike Owergreen Administrator
Sorry! The Author has not filled his profile.
follow me