区块链是一门新的领域,任何领域上都有属于他的专属学科,那么想要把这一门知识学好,学精你需要一点一点去发现,去学习。上周我们提到POW机制,这周我们来谈谈拜占庭将军。
但凡关于区块链和比特币的书籍,都会围绕着一个恒古不变的话题,拜占庭将军问题。那么什么是拜占庭将军问题呢?如果你在百度上一搜索,很多很多就出来了,还有很多区块链大神,甚至把拜占庭将军问题写成了,一篇非常科学,带有计算性质的论文。
何为拜占庭将军?
拜占庭,现在位于土耳其。古代,是东罗马帝国的首都。那个时候,国土面积十分辽阔,为了防御和管理,每支军队都会隔得很远,将军之间只能靠信差,古时候就有一个专门骑着马,送信的人,靠着他们来传递信息。在战争年代,拜占庭军队内所有的将军和副官们,必须达成一个共识。是否,去攻打一个敌人的阵营,进或者退,都必须达成统一的共识。而这些共识,往往是将军和副官们做的决定,他不代表着所有人的决定,有些士兵,他就会觉得这个共识不是他想要的。那么他就可能会背叛整个军队,出现,谋反的情况。那么在军队已经知道有叛徒存在的情况下,如何让剩下的士兵们在不受到叛徒的,劝说影响下仍然,达成一致的共识,这就是著名的拜占庭将军问题。
如何解决拜占庭将军问题?
既然有了问题,当然就要去解决这个问题。那么在古代,一个技术匮乏的年代,他们是怎么解决这个问题的呢?现代人又是怎么解决这个问题的呢?
口头传达消息,口头确认消息——书面协议——区块链技术。
口头传达消息,口头确认消息:
假设有3个将军A,B,C,将军A分别派2个人去通知B和C,x月x日向敌方阵营发出攻击,同时B和C两位将军也会派自己的人向其他两位将军发出通知攻击,但是由于路途遥远,时间就很有可能会错开。并且口头的传送消息,消息的可信度,无法确认,且消息的传达就会出现没完没了的循环,造成还没到敌方阵营就先被自家的消息确认弄晕的局面。
书面协议:
口头传达这个方法既然行不通那就换个方法呗,用信件的模式,派各自的信差去给另外的将军们送信,并且要保证每个将军们在信件上印好他们的章,确认章都盖好的情况下再出兵进攻敌方。依旧很麻烦,在今天也就是个电话加互联网的操作,5分钟搞定。
区块链:
大家都知道区块链是一个信任的技术,同时区块链中最主要的交易就是达成“共识”,这也是拜占庭将军的核心问题。让将军们在接到上一位将军的信息之后,加上自己的签名再转发给除自己之外的其他将军。在这样的信息连环周转中,将军们可以在不找出叛徒的情况下达成共识,从而保证得到的信息和作出的决策是正确的。当某位将军发出确认信息之后,收到消息的将军必须签名盖章,以验证自己的身份。这里运用了一种非对称加密技术为这个信息签名。
网友评论