拜占庭将军问题见解

二、拜占庭容错机制
拜占庭将军问题(Byzantine failures)点对点通信中的基本问题,含义是在存在消息丢失的不可靠信道上试图通过消息传递的方式达到一致性是不可能的。拜占庭假设是对现实世界的模型化,由于硬件错误、网络拥塞或者断开以及遭到恶意攻击,计算机和网络可能出现不可预料的行为。拜占庭容错协议必须处理这些问题,并且这些协议还要满足所要解决的问题的规范要求。
什么是拜占庭将军问题:拜占庭是一座富饶的城堡,他的周围有十个部落,都想要攻占城堡,但是,只有他们其中五个以上的部落同时进攻才可以取得胜利。部落之间通信只能通过互派信使传递信息,那么每个部落都可以在任意时间给任意他信任的部落发送信息,信息形式类似于“我将在明天早上六点进攻,你同意吗?”收到信的人可以在信件上盖上自己的章,然后把这样的信息拷贝,发送给九个邻居。问题是如果每个部落都发送九封信件,系统中一共有就是封信在传输,每个部落会收到九封信,可能每一封都有一个不同的攻击时间。另外,一些部落会统一超过一个的攻击时间,故意背叛,如此下去,整个系统将变得混乱,不可信任。
因此,哈希计算速率的限制,加上公钥加密,使得一个不可信网络变成了一个可信的网络,使得所有参与者可以在某些事情上达成一致(比如说攻击时间、或者一系列的交易、域名记录、政治投票系统、或者任何其他的需要分布式协议的地方)。
在比特币系统中,加入了哈希随机数的计算,即工作量证明机制,公认的总账并不是谁都可以在上面添加信息,你得计算这个哈希值,广播,得到其他人的肯定之后才可以记在总账上。如此,哈希计算速率限制(网络中加入时间的延迟来验证每一笔交易),加上公钥加密进行身份认证,是一个不可信的网络变得可信。其实这就是比特币去中心化的方法。使得所有参与者可以再某件事情上达成统一。
最后,对于拜占庭将军问题的解决方案,可以推广到任何核心问题是在分布式的网络上缺乏信任的领域。


【拜占庭将军问题见解】拜占庭将军问题见解
文章图片
第一次写博客,来自知乎大神解答的理解,留作纪念

    推荐阅读