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

我的网站

当前位置: 主页 > 区块链

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

时间:2021-09-19 13:23来源:未知 作者:admin 点击:
Nightshade中则采用了收据交易的概念。发起跨链交易时首先在一个分片上执行交易,这个交易随后被打包在分片的chunk里,当chunk被打包到块中时,会生成一

Nightshade中则采用了收据交易的概念。发起跨链交易时首先在一个分片上执行交易,这个交易随后被打包在分片的chunk里,当chunk被打包到块中时,会生成一个收据交易。


验证者将这个收据交易发送到下一个需要更新的分片上执行。如果这笔交易需要更新更多的分片上的状态,则会重复以上过程。


这个方案有可能会导致某个特定的分片成为热点,大量的收据交易需要发送到这个分片上,导致分片的处理能力不够。


为了解决这个问题Nightshade会在chunk中记录最后处理的跨链交易的进度:


块和分片以及处理到了哪个收据交易,下一个块的chunk就会继续处理接下来的收据交易。


如果待处理的收据交易数量实在太多,超过了一定限制的话,系统会禁止再发送新的跨链交易。


状态验证


分片的核心思想是验证者不用去下载和验证所有的状态。当节点与分片交互时,如何在不下载分片的情况下确定其状态是一个难题。


有个简单的方案:


假设整个系统总共有1000个验证节点,如果其中恶意节点不超过20%,那么当我们从中随机挑选200个节点组成分片时,恶意节点占比在1/3以上的可能性就几乎可以忽略。(恶意节点在1/3以下保证了分片可以使用BFT类共识)。


在这个简单的假设中,每个Epoch的验证者都会去询问之前的一组验证者,并获取到主链的信息。


而BFT类共识保证恶意节点在1/3以下时,块是合法的,且不会产生分叉。


因此我们只需从最初的状态去检查验证者的签名,就可以确定这条链的合法性。



简单方案只考虑了系统初始时有固定数量的恶意节点,但如果我们引入一个新的假设:


在系统运行时,诚实的验证者也可以被腐化为恶意节点,这个简单方案就无法正常工作了。


攻击者仅需腐化一个分片中2/3n+1的验证者就可以生成非法的状态。这种安全性对于区块链来说显然太弱了。


Nightshade在BFT共识之上增加了挑战机制来提升安全性。任何的参与者检测到一个chunk包含非法状态时,都可以提供一个证明对chunk的出块者进行惩罚,同时获取奖励。


因为系统中大多数节点是没有非法chunk的分片状态的,所以证明中必须要包含足够的信息。


Nightshade要求在chunk中保存每一个交易执行后分片状态的merkle root,这样挑战者只需要找到第一个非法的状态,并从前一个状态进行验证就可以证明chunk是非法的。


(责任编辑:admin)

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