织梦CMS - 轻松建站从此开始!

我的网站

当前位置: 主页 > 区块链

了解夜影协议:突破限制的NEAR分片设计(2)

时间:2021-09-19 13:23来源:未知 作者:admin 点击:
一个块中的交易列表按照分片数量被分为多个chunks, 每个chunk对应一个分片,分片的验证者只需要下载和验证分片的chunk而不需要下载整个块,系统中没有节


一个块中的交易列表按照分片数量被分为多个chunks, 每个chunk对应一个分片,分片的验证者只需要下载和验证分片的chunk而不需要下载整个块,系统中没有节点会验证整个块的交易和状态。


现实中由于网络因素可能会导致chunks丢失,所以我们允许每个块中的分片可以对应一个或零个chunk。


出块


Nightshade中有两个角色共同维护协议:出块者和验证者。


在系统中任何时间点都有w个出块者和wv个验证者,系统采用POS (proof of stake),出块者和验证者都会质押一定的Token作为不遵守协议时的惩罚。


系统包含n个分片,每个出块者和验证者都仅下载和验证一部分的状态。


在本文所讨论的模型中w=100, wv=10000, n=1000。


系统的参与者可以通过质押大量的Token成为出块者,一个出块者会被分配到Sw个分片上(如果Sw=40, 那么每个分片就会有Sw*w/n=4个出块者)。


Nightshade中按照Epoch的概念选择验证者和出块者的分片,出块者需要在Epoch开始前下载分片的状态,并在整个Epoch中处理分片上的交易。


对于每个分片,都有一个出块者来负责生成chunk(和该分片相关的交易列表),在最终的块里只会包含交易列表的merkle root而不会包含完整的交易列表。



同一个分片上的出块者会轮流出块,如上面描述的,每个分片上有4个出块者,则每个出块者隔4 个块就要产生一次chunk。


跨分片交易


上文描述的分片方案中不同分片之间状态是完全隔离的,无法进行跨分片的交易。


举一个简单的例子,Alice想要转账给Bob,如果他们在同一个分片中,则交易可以正常处理。


但如果Alice和Bob在不同的分片,则每个分片的验证者都缺失了一部分状态,无法完成这笔交易的验证。


有两类方法可以支持跨分片交易:


一、同步。在同一个块进行与跨分片交易相关的多个分片的状态更新,验证者们通过与其他分片上的节点合作来处理交易。


二、异步。异步的完成跨分片交易的状态更新,比如某个分片先更新一部分状态,另一个分片再更新其余的状态。


这种方式非常简单并且易于协作,Cosmos、 Ethereum serenity (以太坊 2.0)、Near、Kadena等都采用的异步方案。


区块链或分片的互操作性在分片以外的场景也非常重要。分片的场景下每个分片是同构的,且可以借助Beacon chain协调,所以跨分片的设计相比跨链会更容易一些。


(责任编辑:admin)
织梦二维码生成器
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
栏目列表
推荐内容