24小时全国服务热线
点击量:517 时间:2024-10-29
哈喽大家好,我是小K君。今天我们要谈的内容是:“什么是拜占庭将军问题”?我们在之前谈过,分布式账本可以说道是区块链的框架,每一个人都可以权利地参予进去,联合处置区块链中的数据,基于这一点,区块链实质上就是一个大的分布式计算网络。
它并没一个类似于中央指挥室的东西来发号施令,整个网络是几乎集中的,要依赖有所不同的节点间,彼此互相交换信息、达成协议共识,才能统一行动,整个过程就像无领导小组讨论一样。回应,有人就明确提出了疑惑,万一有节点发送到了错误的信息,阻碍网络长时间运营或者大家产生了分歧怎么办?于是,学者们之后创建了一个模型,统一将这类用来叙述分布式系统一致性的问题,称作拜占庭将军问题。
所谓拜占庭将军问题是这样的:拜占庭帝国想攻取一个国家,它派遣了多支军队展开围困,但敌国军事实力也很强,将军们必需在同一个时间,一起发动反攻才能提供胜利。现在的问题在于,每个将军都集中在敌国四周,不能依赖通信兵骑马互相通信,确认反攻的时间,可是一方面通讯兵可能会在求救过程中被敌方斩杀,另一方面根据不可靠消息,在这些将军中有叛徒的不存在,叛徒可能会私自更改反攻意向或者反攻时间,从而向其他将军表达欺诈指令,影响他人辨别。如果整个分布式网络相等于拜占庭帝国,而每个节点相等于里面的将军,那么在这种状态下,该怎么做才能确保网络中的全部节点对于某个事情达成协议完全一致?(即将军们在刚好一起发动反攻,从而赢得战斗)这就是拜占庭将军问题。所以非常简单来说,拜占庭将军叙述的是,分布式网络不会面对的两个问题:1)如何解决问题各个节点之间的实时问题。
比如在没叛徒情况下,将军 A 向其他将军传送反攻方案时(如:明日下午 2 点反攻),有可能将军B也在传送反攻方案(如:明日下午 3点反攻)。2)如何解决问题蓄意节点,蓄意发送到错误信息阻碍网络的运营的问题。
比如在有叛徒情况下,叛徒不会向有所不同的将军收到有所不同的反攻建议,阻碍其他将军们达成协议完全一致。后来大家找到,想在分布式网络中,让每一个节点都不错误是不有可能的,于是就有人明确提出了“拜占庭容错”的观点来解决问题拜占庭将军的问题,这个解决办法就是信息的假造或错误并不最重要,只要真诚的将军数量小于总数的三分之二,即使有少部分不诚实的将军不存在,整个系统也可以达成协议完全一致。于是大家以此为基础,设计出有了很多解决方案。
区块链四大核心技术中的共识机制,就是为了解决问题这个问题,而问世的一个方案,至于明确是如何解决问题的,请求容小K君买个关子,网卓新闻网,我们下节课再说。
本文来源:k1体育在线网站-www.towntobe.com