分片是layer1区块链项目扩容的主要思路之一,以太坊2.0、Solana、Cosmos、Polkadot、NEAR是基于分片系统建立的网络,本文中,我们将NEAR网络的分片原理整理如下,希望可以用最简单的资料弄懂NEAR的分片。
关键要素:
分片:NEAR通过跨多个并行化分片分布计算来水平和近乎无限地扩展。
共识:NEAR使用Nightshade算法在构成分片的网络运营节点上达成共识。
跨分片通信
在一条链里做分片一定会面临跨链和跨分片通信,这是最终状态形成的关键步骤。
NEAR使用带回滚的信标链完成跨分片的状态最终确定性:信标链使用一小部分验证器验证所有其他链的状态转换,如果检测到问题,所有链都会回滚。
此外,每个分片的验证器可以每天轮换以帮助增加一层安全性。
相比来说,其他协议会使用了一个较小的委员会,委员会轮换得更快(例如每隔几分钟)并跨分片进行验证。为了让这个较小的委员会在不必下载每个分片的整个状态(这在这个时间范围内无法完成)的情况下执行他们的验证,他们可以只下载相关的那部分状态。
这就是NEAR的Nightshade分片方法。
Nightshade 修改了典型的分片抽象模型,假设所有分片组合在一起以产生单个块。无论每个单独的分片是否在每个区块高度生成了“块”,该区块高度的块都以常规节奏生成。
此时,会分配了一个验证器来生成每个分片的块。该验证器必须将固定时间段内把每个片的块组装到该总周期的块中。这个验证器的在现有验证器集(例如 100 个验证器)中轮换。这个验证其不接受交易处理,只接受块。
对于每个单独的分片和出块周期,分配一个验证器来生成其块。如果该验证器不存在,则分片将在该时间段内停止。每个分片都有自己的较小的验证器池,这些验证器从主池中提取。分片验证者的与整体块验证者以相同的方式轮换选择。如果缺少单个验证器并且分片块停止一段时间,则下一个验证器可能会出现以在下一个时间段继续链的操作。
隐藏验证器
为了提供额外的安全性,NEAR还使用了隐藏验证器。这些来自是每个分片(平均100个验证者)的小型委员会,他们验证每个块。验证者通过可验证随机函数 (VRF) 选择一组分片id来单独计算出他们的分配,且这个分配在区块链上不对所有参与者公开可见。通过这种方式,每个单独的验证者都知道他们必须验证哪些分片。但不公开可见。
此外,分配给特定块的隐藏验证器的数量也是随机确定的。这可以防止对手确切地知道需要破坏多少隐藏验证器才能成功发起攻击。
渔夫
除了被分配为每个分片提供安全性的隐藏验证器之外,任何其他节点操作员都可以作为所谓的“渔夫”无需许可地参与。这个第三方节点可以提供与隐藏验证器相同的证明,因此它们也可以启动削减和回滚的过程。
这意味着,即使对手成功破坏了整个隐藏的验证者池,也不能保证不会被渔夫发现而继续攻击。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。