风险提示:理性看待区块链,提高风险意识!
极客技术流 | 人们常说的“拜占庭将军”问题究竟是啥?
首页 > 币界资讯 > 区块链新闻 2018-04-30 10:45:00

大家好,我是EKT周迅。

今天为大家简单解释一下,EKT系统中如何解决“拜占庭将军问题”

#EKT

第一,何谓“拜占庭将军问题”?

拜占庭将军问题首先是由Leslie Lamport等人在1982年提出,被称为The Byzantine Generals Problem或者Byzantine Failure。这个问题是这样描述的:

拜占庭帝国想要进攻一个强大的敌国,为此帝国派出了10支军队去包围这个帝国。这个敌人虽然不如拜占庭帝国强大,但也足以抵御5支常规拜占庭军队的同时袭击。由于某些原因,这10支军队无法聚合在一起进行攻击,必须分散然后根据统一的指令一起进攻或者撤退。他们任一支军队单独进攻都毫无胜算,除非有至少6支军队同时袭击才能攻下敌国。他们分散在敌国的四周,依靠通信兵相互通信来协商进攻意向及进攻时间。

军中可能有叛徒,可能向其他的将军发送错误的指令。在这种情况下如何保持战争指令的统一性进而获取胜利便成为了一个问题。

进一步讲,拜占庭将军的问题可以描述为:

一个发送命令的将军要发送一个命令给其余n-1个将军,使得所有忠诚的接收命令的将军遵守相同的命令如果发送命令的将军是忠诚的,那么所有忠诚的接收命令的将军遵守所接收的命令这个问题发展到计算机领域,就是拜占庭容错问题。区块链需要解决的一个核心问题就是如何保证在分布式环境下,各个节点(即使存在恶意节点)的数据能够达成最终的一致性和正确性。

EKT的共识算法是DPoS,在DPoS的共识基础上,我们也引入了基于路由策略进行拜占庭容错的方案。

第二,“拜占庭容错”方案如何实现?

在EKT中,我们使用公私钥加密和路由策略的机制实现拜占庭容错。这个是怎么实现的呢?

EKT主链上每个DPoS节点的公钥都是公开的,具体路由策略为:

1. 区块广播

当一个节点完成打包之后,会对区块进行签名。签名完以后节点会把区块和签名广播给网络中的其他节点。当另外一个节点收到区块和签名之后会对签名信息进行校验,以此来确认这个区块是从打包节点广播出去的。其他节点确认完成后,会判断自己节点与打包节点在当前轮的距离,如果满足条件 (currentIndex - miningIndex + len(DPoSNodes)) % len(DPoSNodes)

2. 区块的校验与投票

在每个区块头上,都会有区块body的Hash校验值。节点可以向其他节点获取区块body,对body进行处理之后,对当前打包的区块进行投票,所有节点都会把区块的校验结果进行签名,发送给满足 (currentIndex - miningIndex + len(DPoSNodes)) % len(DPoSNodes)

3. 节点宕机

当一个节点超过一定时间没有出块,当前轮的下一个节点会在 3*interval/2 的时间点开始打包下一个区块,进入下一个区块的打包流程。同理,如果节点连续宕机,判断当前节点是否需要打包的条件是 currentTime - lastBlockTime > (2*(currentIndex -LastIndex)+1)*interval/2,一旦满足当前条件,则当前节点开始打包。如果是最后n个区块连续宕机,则按照当前轮的最后一个区块的hash值判断下一轮的顺序,按照递增每个区块加一个出块interval的算法进行计算,判断当前打包的节点并进行打包。当超过n/2的节点宕机的时候,所有节点会自动停止出块,直到超过1/2的节点存活。

这种方案的复杂度在最好情况下是:消息复杂度O(n^2), 时间复杂度O(1)。在最差情况也可以达到:消息复杂度O(n^2), 时间复杂度O(n)。基于这种路由策略的拜占庭容错机制,系统可以保证在少于n/2的节点宕机或者叛变的情况下,系统不会出现分叉,是一种用计算资源换容错性的方案。

Ending

好了,今天关于“拜占庭将军”的文章就到这里了。

如果大家有任何关于技术上的问题想与我讨论,

欢迎加入我的公链开发QQ群:699726921

项目交流可进项目QQ群:173806202

如想关注EKT的项目进展,欢迎关注微信公众号:EKT通用积分

币界网免责声明:

1.本网站所提供的所有信息仅供参考,不构成任何投资建议。

2.用户在使用本网站的信息时应自行判断和承担风险。

3.币界网不对用户因使用本网站信息而导致的任何损失负责。

4.用户在进行任何投资活动前应自行进行调查和研究。

5.币界网不对用户基于本网站信息做出的任何投资决策负责。

6.用户在本网站发布的任何内容均由其个人负责,与币界网无关。

上一篇: 天算在Etherscan上完成代币合约源码认证率先走出智能合约漏洞风波
下一篇: 五家新支付提供商与Ripple的xVia技术达成合作,全球支付网路进一步成长
推荐专栏
web3首席知识博主
一位相信价值投资的币圈KOL。稳定盈利的缠论野生交易员 #BTC行情分析师 #价值投资 #链上数据分析
爱Web 3,爱生活,爱科技,爱炒币的老韭菜
热门币种
更多
币种
价格
24H涨跌幅
BTC比特币
¥188,525.06
26,414.80 USDT
+1.56%
ETH以太坊
¥11,955.42
1,675.11 USDT
+2.42%
USDT泰达币
¥7.23
1.01 USDT
+0.04%
BNB币安币
¥1,561.52
218.79 USDT
+2.46%
XRP瑞波币
¥3.78
0.53000 USDT
+1.81%
USDC
¥7.14
1.00 USDT
-0.02%
OKBOK币
¥313.86
43.98 USDT
+1.47%
ADA艾达币
¥1.93
0.27000 USDT
+4.25%
DOGE狗狗币
¥0.45540
0.06381 USDT
+1.94%
SOL
¥156.15
21.88 USDT
+6.4%
热搜币种
更多
币种
价格
24H涨跌幅
Filecoin
¥25.23
3.4693 USDT
+2.01%
dYdX
¥15.86
2.1806 USDT
+10.96%
Curve
¥3.40
0.468 USDT
-0.66%
Yield Guild Games
¥1.89
0.2594 USDT
+14.68%
Terra Classic
¥0.00
6.444E-5 USDT
-0.32%
比特币
¥192,083.14
26414.8 USDT
+1.56%
Shiba Inu
¥0.00
8.31E-6 USDT
+1.96%
柚子
¥4.31
0.5927 USDT
+2.42%
Livepeer Token
¥47.64
6.551 USDT
+11.45%
FTX Token
¥7.80
1.072 USDT
-1.01%
Conflux
¥0.94
0.1299 USDT
+3.59%
Gala
¥0.15
0.019985 USDT
+2.7%
最新快讯
更多
DIGITIMES Research:预计 2024 年高端人工智能服务器出货量将达 33.7 万台
2023-08-24 13:42:06
区块链保险协议 Nexus Mutual 通过质押平台 Kiln 质押1,100万美元 $ETH
2023-08-24 13:40:44
币安停止部分现货交易对的现货网格交易服务
2023-08-24 13:39:31
Bithumb正式开通与LBank的白名单
2023-08-24 13:19:55
数据:某巨鲸花费400万美元买入UNI、LDO和AAVE
2023-08-24 12:51:16
巨鲸0xa38c在过去一小时内花费400万枚USDT买入UNI、LDO和AAVE
2023-08-24 12:51:16
巨鲸0xa38c在过去一小时内总共花费400万枚USDT买入UNI、LDO和AAVE
2023-08-24 12:51:16
下载币界网APP