区块链技术用解决拜占庭将军问题_区块链技术6:拜占庭将军问题

本文深入探讨了拜占庭将军问题及其在分布式系统中的一致性挑战,特别是与区块链技术的关联。介绍了拜占庭问题的背景、解决思路如PBFT算法,以及如何在区块链中通过公钥加密和工作量证明实现一致性。同时,文章还区分了拜占庭问题与两军问题的区别。
摘要由CSDN通过智能技术生成

本篇主要结合Lamport((2013年的图灵奖得主) 1982年的论文《Byzantine Generals Problem》讲一讲拜占庭将军问题(Byzantine Generals Problem),本质上,它是分布式系统的一致性问题。区块链最重要的特点就是分布式系统,去中心化,那么在这个系统中同样地存在一致性问题。

为了理解什么是一致性问题,看一下下面的图。

在中心化系统中,中心点负责传达消息,只要中心点不出错,系统就能够正常运行。譬如,银行负责记账,用户只负责交易和查询。但是,正如我们之前看到的,中心点是可能出问题的。

而非中心化系统中,各个节点之间如何达成一致呢?在货币系统中,如果有用户花了钱又不肯认帐怎么办?有恶意攻击者故意捣乱怎么办?这就是分布式系统的一致性问题。

(一)拜占庭问题

以下定义来自维基百科:拜占庭将军问题重定向到拜占庭容错。

拜占庭容错(BFT)是容错计算机系统,特别是分布式计算系统的可靠性问题,其中组件可能发生故障并且关于组件是否发生故障的信息不完整。在“拜占庭式故障”中,诸如服务器之类的组件对故障检测系统可能不一致地出现故障和起作用两种情况,向不同的观察者呈现不同的状况。

其他组件很难将其声明失败并将其关闭,因为他们需要首先就哪个组件失败达成共识。所以的组件必须就协同战略达成一致,以避免灾难性的系统失败,但有些组件不可靠。拜占庭容错也被称为交互一致性或源一致性、错误雪崩、拜占庭协议问题、拜占庭将军问题和拜占庭失败。

至于为什么会叫做“拜占庭将军问题”,分布式系统的大牛Lamport给出了一段说明:https://www.microsoft.com/en-us/research/publication/byzantine-generals-problem/?from=http%3A%2F%2Fresearch.microsoft.com%2Fen-us%2Fum%2Fpeople%2Flamport%2Fpubs%2Fbyz.pdf​www.microsoft.com

简而言之就是说,Lamport觉得在并发领域,哲学家吃饭问题(The Philosopher's Eating Problem)获得的关注比读者-写者问题(Reader-Writer Problem)大多了,虽然读者-写者问题的用处明显很大一些。Lamport的结论就是,给一个研究性的问题起一个故事性的名字对引起关注有好处。

之前有过“Two Generals Problem(Chinese Generals Problem)”,主要是研究不安全的链路上进行通信和协调的情况。所以Lamport

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值