【IC共识】IC节点如何赶上最新区块链状态

伊朗国家电台(IRIB):伊朗央行行长与国际货币基金组织讨论了数字货币和银行法

据金十援引伊朗国家电台(IRIB)消息,伊朗央行行长与国际货币基金组织讨论了数字货币和银行法。

【IC共识】IC节点如何赶上最新区块链状态


Internet Computer区块链网络截止今天一共由分布在全球各地运行ICP协议的21个独立数据中心以及托管在其中的295个节点机器组成,这些底层设施还以一种安全可靠的方式运行Canister智能合约,这些Canisters是组成Dapp、DeFi平台、NFT、网站和互联网服务等泛平台关键基础单元,最重要的是IC是第一个可拓展的区块链网络,网络可以通过添加新的子网来无限增加其容量。


【IC共识】IC节点如何赶上最新区块链状态

 

在每个子网中,Internet Computer确保每一个组成Dapp的Canisters安全可靠的运行:

 

  • 安全性意味着Canisters的状态仅根据Canisters的规则改变;
  • 可靠性意味着子网中的Canisters不会突然停止运行。

 

这种安全性和可靠性得益于网络通过复制Canisters状态的方法实现,如果你深入了解子网,你会发现它由多个节点副本驱动,每个副本保存该子网托管Canisters和进程的所有状态,以及Canisters应该处理的所有消息调用。而ICP协议中规定,即使一个子网中有某些节点副本是离线或甚至是恶意的,该子网依旧会继续处理Canisters的消息调用,因为Canisters的状态在该子网上的每一个节点副本上保存,所以即使是有一部分节点是离线的也不会影响Canisters的消息调用。

  

以上述为例:简单来说一个Canisters托管在子网A上,该子网由9个节点副本组成,A子网的9个节点会复制保存该Canisters的状态、消息调用、进程,也就是说哪怕A子网有3个节点瘫痪,该子网依旧遵循共识协议继续复制Canisters的状态等并处理该Canisters的消息调用。

 

Internet Computer上的每一个子网都有自己的区块链视图,每个节点副本都通过八卦网络交换 Artifacts。但是在某些特定情况下有一些节点副本可能会不可用,以上述为例A子网由A、B、C、D、E、F、G、H、i 9个节点副本组成,副本G、H、i 3个节点副本在特殊情况下可能与网络断线,由于ICP协议是以容错方式工作的,因此即使是副本G、H、i 处于离线状态,子网上的其余A、B、C、D、E、F 6个节点副本也会继续工作,如果G、H、i 节点离线后重新上线,它也会继续赶上协议的最新状态,因为只要A子网还有3分之二的节点读副本一直在进行工作的和子网的每一个节点之间会遵循ICP协议复制该子网上Canisters的状态。


Artifacts:一个Artifacts是多种软件开发过程中产生的有形副产品之一,一些工件(例如、用例、类图和其他统一建模语言(UML)模型、需求和设计文档。


此外IC网络可能在某个时候想要向A子网添加一个节点,也是为增加A子网的容错能力,但是这个节点在不知道子网状态的情况下加入,再次,节点需要完全赶上该子网的最新状态,以便它可以参与协议,每当子网上超过三分之二的节点在线可用时,子网必须增长,以便子网上的Canisters以非常可靠的方式运行,即使为子网供电的某些节点离线或是恶意的,这样做的结果是无论落后多远,诚实的节点副本始终能够赶上协议最新状态,因为有超过三分之二的节点副本在线工作。


像比特币和以太坊这样传统的区块链通过永久存储区块来实现这一特性,并且他们的所有区块都需要能够以加密发方式验证交易并参与区块链,例如,目前比特币区块链的大小为350GB,而以太坊约为900GB,因此同步它们是一项困难的工作,而Internet Computer的子网皆在以更少的延迟处理更多的数据,因此要求所有节点副本都拥有完整的区块链在网络上运行是不可行的,这里提出一个挑战:假设节点副本1远远落后与子网的其他节点副本,以至于所有其他子网节点副本已经删除了副本1正在寻找的区块链部分。

 

另一个复杂因素是固定子网的节点可能会随着时间而改变,由于ICP协议依赖于验证来自于子网节点的签名,因此后面加入子网的节点副本很难知道要信任哪些签名,因为它不知道哪些节点当前在为子网供电。

 

因此Internet Computer实现了一种新的恢复方法,允许节点完全参与(并执行所有必须的加密验证),而无需知道所有历史区块,建立在Chain Key之上,每个子网都有一个不随时间变化的固定公钥,相应的密钥在每一个子网的节点副本之间共享,如果子网的节点发生变化,那么密钥的共享将安全的重新分配到新节点上,子网上的节点是可以代表子网协作签名artifacts,现在可以使用此类子网密钥验证此类artifacts。

 

这使验证由子网签名的对象非常容易,因此需要的只是一个不会随着时间比改变的固定公钥,即使是非常落后且不知道子网当前节点的副本也可以验证这样的签名。


为了解决恢复问题,Internet Computer推出了一个Artifacts叫做追赶包(CUP),这个CUP允许节点副本安全的跳到更新的区块高度,跳过历史区块链的一部分,它使用固定的子网密钥进行签名,这样即使是后面加入的节点副本也可以始终验证其真实性和赶上该子网的最新状态,一个诚实的节点节点副本确保它始终有一个可用的CUP,这允许其他节点副本始终完全赶上协议的最新状态。

 

剩下的问题是:这个CUP到底必须包含哪些内容,以便节点副本可以安全的跳过历史区块,为了回答这个问题先看看共识协议的细节,Internet Computer区块链对应该在子网上执行的消息调用进行排序,从而导致子网复制状态,其中包含Canisters的所有内存,使用先前复制的状态和区块中的消息调用,每个节点副本可以计算下一个复制状态,为了让其他节点副本赶上,它需要具有这些复制状态之一,以便它可以自己计算下一个状态,此外区块是值这些复制状态,并且根据复制的状态的某些部分和区块链只能够的后续区块检查它们的有效性,这允许Internet Computer要求,一条消息调用不会在区块链中多次出现,也不会被多次处理。要进行此类检查,节点副本不仅需要正确的复制状态,还需要具有区块链的某些部分,这是CUP所需的另一个要素。

 

最后需要一个随机信标,在每个区块高度里都有一个看起来的随机伪像,称为随机信标,这是一个不可预测的值,过去的随机信标需要验证下一个随机信标。还需要随机信标来验证共识artifacts,因为随机信标用于选择共识协议中的角色,所以节点副本可能需要有一个随机信标才能完全赶上子网最新状态。

 

这样CUP就可以定义了,节点副本将可以定期创建CUP。例如每200个区块高度,一旦达到高度200,节点副本将检查是否创建CUP,节点副本检查它们是否有可用的随机信标,该高度的区块以及复制的状态,此外,他们检查区块链是否已经发展到不再需要比高度200更旧的状态的地步,如果所有这些都得到满足,那么节点副本就准备好为区块高度200创建一个CUP,它们将复制状态,一个区块和一个随机信标组合到单一的Artifacts中,并使用该子网公钥对其签名。

 

现在这个Artifacts应该足以让其他节点追赶上,请注意,复制状态实际上太大无法包含在CUP中,因此,只包括复制状态的散列(完整状态可以通过一个单独的同步状态协议获得)每当节点副成功创建一个CUP时,他们现在可以扔掉所有旧的Artifacts,因为他们知道节点副本能够追赶上,如果一个远远落后于其他节点副本通过网络获得CUP,因为它仍是已知子网公钥以特殊方式签名的,则可以验证该Artifacvts的真实性并且内容是可信的。

让我们考虑节点副本如何使用CUP来赶上区块链的最新状态,它从CUP获得一个随机信标、一个区块和一个复制状态,它信任这些状态,意味它们是通过Chain Key进行身份验证的,因此节点副本可以遵循随机信标链,因为现在节点副本有前一个随机信标来验证和下一个随机信标,节点副本也拥有一个区块,以便它可以根后续区块并验证公证和终结,由于天它有一个复制状态和随后的区块,节点副本可以计算下一个状态,节点副本现在拥有最新的区块链和随机信标Artifacts,这意味着它完全是最新并且可以参与协议。


总结:Internet Computer以可靠方式运行Canisters,更准确的说只要子网上拥有三分之二的节点副本是诚实在线的,该子网就不会宕机,哪怕是新加入的节点也可以通过固定公钥对称为追赶包(CUP)的特殊Aritfacts进行身份验证。该CUP包含节点副本安全跳过区块链一部分并跳转到该子网最近状态以便它可以完全参与协议所需的一切。


小助手温馨提示:此篇文章可能对不了解ICP共识协议的用户来说有一些晦涩,你可以结合以上视频或者一下关于ICP共识协议的文章进行阅读。(点击下方原文跳转ICP的共识协议文章)

扫码添加深圳社区小助手进群

获取Dfinity第一手资讯

【IC共识】IC节点如何赶上最新区块链状态

Dfinity深圳社区,专注于Dfinity生态技术发展交流与优质项目挖掘分析。

Gavin Wood:Polkadot treasury目前有18936300枚DOT用于鼓励生态发展

巴比特讯,10月17日,波卡创始人Gavin Wood发推称,Polkadot treasury目前有18936300枚DOT (注意是DOT,而不是美元,可自行计算)准备用于社区关于构建、改进、教育的想法,以及任何Polkadot治理认为有价值的东西。

Click to rate this post!
[Total: 0 Average: 0]

人已赞赏
Dfinity名家说小白百科每日优选

允许紧急升级互联网计算机治理容器的提案获得通过

2021-10-18 18:20:12

Dfinity名家说小白百科每日优选

互联网计算机采用网络神经系统提案的内部过程

2021-10-19 18:36:21

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
有新消息 消息中心
搜索