美文网首页峰岚简记峰岚笔记想法
区块链学习认知 I 拜占庭将军问题

区块链学习认知 I 拜占庭将军问题

作者: 峰岚泛舟 | 来源:发表于2019-08-25 20:47 被阅读1次
    区块链学习认知 I 拜占庭将军问题

    各位圈友好!我是你的老朋友,力场日更营成员峰岚泛舟,与你一道共度链赚时光。

    写在前面

    有时就是这样,不去了解的时候,会觉得很神秘,当渐渐深入之后,越发觉得神秘,但尽管如此,个人觉得这才是生活该有的模样,哈哈!在我们对区块链概念及特征了解之后,今天我接着与圈友学习分享《区块链——从数字货币到信用社会》区块链工作原理之拜占庭将军问题。

    峰岚学习认识

    关于拜占庭将军问题,这是一个容错计算中的经典问题,1982年由莱斯利·兰伯特(Leslie Lamport)等人提出。

    PS:拜占庭帝国存在于公元5~15世纪的东罗马帝国,即现在的土耳其所处领域。

    话说拜占庭城邦拥有无与伦比的财富,十分富足,这也使与之相邻的十个邻邦觊觎垂涎。但是拜占庭高墙耸立,防御更是固若金汤,任何一个心存妄念的邻邦若想单独入侵,成功是妄想,失败是必然;单独行动的入侵者会被歼灭,同时其自身老巢也极易遭受其他九个城邦的反入侵。

    这些邻邦之间也互相觊觎对方的财富并经常爆发战争,彼此之间。拜占庭的防御能力如此之强,十个邻邦中须有至少一半同时参与进攻,才能将城池攻破。换句话来说,就是只要6个或者更多邻邦一起携手进攻,就会取得成功并获得拜占庭的财富。

    当然愿望总不完全如此,只要其中有1个或者更多邻邦心生别念头出现背叛,允诺一起入侵但在其他人进攻的时候又不干了,就会导致只有五支或者更少的军队在同时进攻,那么所有的进攻军队都将会被歼灭,且随后被其他邻邦所劫掠。没有信任保障、各自打着自己小九九的同盟,看看是多么的不堪。

    这是一个由不互相信任的各个邻邦(节点)构成的分布式网络,每一方都如履薄冰、小心行事,因为只要稍有不慎,就可能会给自己带来灭顶之灾。可为了获取拜占庭的巨额财富,这些邻邦分散在拜占庭的周围,依靠士兵相互通信来协商进攻目标及进攻时间。

    这些邻邦将军们想要攻克拜占庭,都会面临着一个问题困扰,那就是不确定领邦中是否有被叛者,叛徒可能擅自变更进攻意向或者调整进攻时间。

    在这种状态下,将军们能否找到一种分布式协议进行远程协商,进而赢取拜占庭城堡攻克战役的胜利呢?这就是拜占庭将军问题。

    针对拜占庭将军问题,有人提出两套解决方法:口头协议算法、书面协议算法。

    口头协议算法:

    在确保每条发送的消息都能被正确投递,信息接收者知晓消息发送者的身份,也知道缺少的消息信息的情况下。采用口头协议算法,只要背叛者数少于1/3,则拜占庭将军问题可解。也就是说,若叛徒数为m,当将军总数n至少为3m+1时(m=2,则n=3x2+1=7),问题可解。可是,口头协议算法存在明显的缺点,那就是消息不能追根溯源。(一句话口说无凭,谁说我没出力,拿证据来呀)

    书面协议算法:

    信息需要共同认可的签名,同时该算法要求签名不可伪造(有公认的防伪标识及特征),一旦被篡改即可发现,同时任何人都可以验证签名的可靠性。书面协议算法在口头协议基础上虽有优化,但也不能完全解决拜占庭将军问题。因为该算法没有考虑到信息传输时延、其签名体系难以实现,且签名消息记录的保存难以摆脱中心化机构。(一句话谁来搭建主动承担及防范中心化作恶)

    那么我们来看看区块链是如何来解决这个问题的呢?

    在发送信息中导入了成本概念,从而降低信息传递的速率,并加入一个随机数以保证在一段时间内只有一个矿工(授权的士兵)可以进行传播。这个加入的成本就是“工作量”,区块链矿工必须完成一个随机哈希算法的计算工作量才能向各城邦传播消息。

    即:当用户向网络输入一笔交易的时候,内嵌在客户端的标准公钥加密工具,为这笔交易签名,这好比拜占庭将军问题中用来签名和验证消息时使用的“密印”。

    通过哈希计算速率的限制,加上公钥加密,使一个不可信网络变成了一个可信的网络,使所有参与者可以在某些事情上达成一致。(有没有感觉到,在一套可信任系统里,完成接头暗语传递秘密信息的味道,哈哈!)

    有关拜占“庭将军问题”的区块链解决方案,实际上可以推广到任何在分布式网络上缺乏信任的领域,比如说域名、投票选举或其他需要分布式协议的地方。

    尾巴小结

    峰岚认为以上虽是谈拜占庭问题的解决方案,实则是在寻求一种不被人为因素所干扰的信任共识机制!就追求极简的人来讲,还是显得有些繁琐冗长,但这对于信任的价值、有效制衡背叛的代价又是值得的。

    *以上文字理解与表述,基于峰岚认知,难免有不妥不当之处,敬请场东谅解指正,谢谢!

    相关文章

      网友评论

        本文标题:区块链学习认知 I 拜占庭将军问题

        本文链接:https://www.haomeiwen.com/subject/vlvkectx.html