zoukankan      html  css  js  c++  java
  • 拜占庭将军问题

    有11个国家,其中一国特别强大,其余十国需要将其消灭才能安全生存,但只有在至少6国联军的情况下,才能够将强国击垮。并且10个弱国之间也是劲敌,不可能大家坐在一起开会讨论。他们只愿意通过快马信使讨论这个问题。他们的方案是,比如弱国A写一封信,提议在五天之后的凌晨一点发起攻击,并且盖章署名,然后A国让信使快马送9份这样的信至其余9国,收到信的国家,如果同意这个作战方案,就在信的后面同样盖章署名,再将这封信作9份发至其余国家。如果最后这封信得到了超过5个弱国的盖章署名,则作战方案得到大家同意,该问题得到解决。但问题来了,这10弱国中,各个心怀鬼胎,假设其中的C国,同时收到来自A国和B国的两份内容不同的作战方案,并且都盖章署名进行同意。则最后可能同时存在两份超过6国同意的作战方案,这一问题就陷入了僵局。

    可以看出,问题的核心在于,由于任何国家在任何时刻都可以提出作战方案争取认可,并且提出方案成本低廉,没有一份唯一的作战方案,容易引起混乱。

    打破这一僵局的新的方案是,提高方案提出的成本,比如你必须找到一个随机数,以满足下面这个SHA-256运算的结果的前十位全为0:

    HASH(随机数,作战方案)

    假设目前只有A国找到了一个随机数,并且附在作战方案的后面,现在约定,剩下9国对该随机数和HSAH值,进行校验,验证这确实是一个正确的随机数,则认可这份作战提议的有效性,接着才进行同意或否决作战方案的决定。与此同时各国还约定,任何收到有效作战提议的国家,都立即停止手上的运算工作,转而认可当前的作战提议的有效性,并立即进行投票。这样一来就解决了拜占庭将军问题。

  • 相关阅读:
    一点点
    第四章:检查产品说明书
    这是一个动画效果,一个圆在桌面上动
    border-image的拉伸和平铺
    用js实现左右阴影的切换
    伪样式:hover ,:active,:focus
    画一个DIV并给它的四个角变成圆形,且加上阴影
    【转】asp.net 项目在 IE 11 下出现 “__doPostBack”未定义 的解决办法
    Full postback triggered by LinkButton inside GridView inside UpdatePanel
    苹果IOS开发者账号的区别,企业账号,个人账号,公司团队账号,教育账号
  • 原文地址:https://www.cnblogs.com/heben/p/6111371.html
Copyright © 2011-2022 走看看