风险提示:理性看待区块链,提高风险意识!
极客技术流 | 人们常说的“拜占庭将军”问题究竟是啥?
首页 > 币界资讯 > 区块链新闻 2018-04-30 10:45
摘要
大家好,我是EKT周迅。 今天为大家简单解释一下,EKT系统中如何解决“拜占庭将军问题” #EKT 第一,何谓“ 。
币界网报道:

大家好,我是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通用积分

发表评论
发表评论
暂无评论
    相关阅读
    未来一年可以说是最难以预测的一年。地缘政治错综复杂、美国监管政策不确定。尽管美国股市似乎无法停止上涨,利率也只能下降,但我们知道,这两件事都不是板上钉钉的事。
    区块链
    2025-01-08 11:31:18
    周一,比特币和以太坊 ETF 共计流入 11 亿美元,在现货基金年初出现 3.2 亿美元流入后,形成了积极的势头。
    比特币
    2025-01-08 10:31:17
    Ripple宣布已集成Chainlink,为用户提供实时RLUSD定价数据,增强了稳定币在DeFi上的实用性和访问权限。DeFi开发人员还可以将RLUSD支持集成到他们的应用程序中,用于贷款和交易等多种用例。
    区块链
    2025-01-08 10:03:08
    莱特币在看涨突破后一周内上涨12%——282美元的目标现在就在眼前!
    区块链
    2025-01-08 09:41:19
    除了 Twitter 之外,还有其他地方可以追踪 AI 代理。
    区块链
    2025-01-08 09:31:18
    推荐专栏
    热门币种
    更多
    币种
    美元价格
    24H涨跌幅
    BTC比特币
    60,963.61 USDT
    ¥435,103.38
    -2.72%
    ETH以太坊
    3,368.69 USDT
    ¥24,042.67
    -0.3%
    BNB币安币
    570.68 USDT
    ¥4,073.00
    -0.28%
    USDT泰达币
    1.02 USDT
    ¥7.25
    -0.19%
    SOL
    135.96 USDT
    ¥970.36
    +7.66%
    USDC
    1.00 USDT
    ¥7.15
    -0.01%
    TON
    7.59 USDT
    ¥54.14
    +4.55%
    XRP瑞波币
    0.47720 USDT
    ¥3.41
    +0.48%
    DOGE狗狗币
    0.12210 USDT
    ¥0.87140
    +2.43%
    ADA艾达币
    0.39050 USDT
    ¥2.79
    +3.88%
    热搜币种
    更多
    币种
    美元价格
    24H涨跌幅
    狗狗币
    0.3519 USDT
    ¥2.58
    -9.98%
    Filecoin
    5.3699 USDT
    ¥39.34
    -9.93%
    比特币
    96576.52 USDT
    ¥707,563.04
    -5.1%
    Gatechain Token
    18.0475 USDT
    ¥132.22
    -2.43%
    Horizen
    23.4215 USDT
    ¥171.60
    -16.42%
    dYdX
    1.4063 USDT
    ¥10.30
    -13.35%
    Solana
    198.83 USDT
    ¥1,456.72
    -8.41%
    柚子
    0.814 USDT
    ¥5.96
    -10.16%
    Shiba Inu
    2.17E-5 USDT
    ¥0.00
    -9.24%
    火币积分
    0.9399 USDT
    ¥6.89
    -28.65%
    艾达币
    0.999 USDT
    ¥7.32
    -8.07%
    FTX Token
    2.9141 USDT
    ¥21.35
    -13.7%
    最新快讯
    更多
    富达数字资产:2025年将有更多民族国家、央行、主权财富基金和政府财政部采用比特币策略
    2025-01-08 11:42:36
    Metis去中心化排序器重启开始,首位参与者ENKI将获得15000METIS奖励
    2025-01-08 11:39:29
    Bitwise首席投资官评论捷克战略性比特币储备计划:多米诺骨牌效应开始
    2025-01-08 11:38:00
    ai16z持仓TOP7巨鲸三小时前卖出190万枚ai16z,约367万美元
    2025-01-08 11:34:17
    TONVentures宣布对TONCASH进行战略投资
    2025-01-08 11:33:42
    DohaBank推出Visa商业支付,支持卡塔尔无现金经济
    2025-01-08 11:33:32
    解析Swarms等6大AIAgent筹码:底部分散购买,高位归集的操盘阳谋
    2025-01-08 11:29:57