浅谈两军问题&拜占庭将军问题

自己在网上查阅资料后的理解,深入了解可移步:https://www.8btc.com/article/70370

目录

一、解决什么样的问题——问题模型的应用场景

二、信道受干扰下的传输问题——两军问题

三、信任解决问题——拜占庭将军问题


 

一、解决什么样的问题——问题模型的应用场景

对于区块链的概念,容我照搬百度百科:https://baike.baidu.com/item/%E5%8C%BA%E5%9D%97%E9%93%BE/13465666

“区块链(Blockchain)是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链是比特币的一个重要概念,它本质上是一个去中心化的数据库,同时作为比特币的底层技术,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次比特币网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。”

区块链的应用场景广泛,理论上凡是需要版权的、需要公证的,都可以使用区块链进行实现。影片里我们看到赌场庄家明面上喊着“买定离手”,背地里早已对赌局结果动过手脚,让赌局结果向着对庄家有利的一面发展。区块链的出现可以说从源头杜绝了第三方中间商,或者说区块链使得链上的其他人都成为了第三方公证人(通过智能合约一类的技术)。通过多个第三方的共同监督,大大提升了版权或公证的可靠程度。从日常听的付费歌曲(如今已渐渐加大对版权的保护),到金融领域的投资交易、房地产行业的确权工作,背后都可能存在着区块链的影子。

两军问题和拜占庭将军问题是区块链下的两个基本问题模型。一方面,两军问题可以被看做是拜占庭将军问题的特例;另一方面,二者又在根本上有所不同,面向的是区块链传输中两个不同方向。

二、信道受干扰下的传输问题——两军问题

为便于理解,我们把两军起名为红军和蓝军(如下图所示)

浅谈两军问题&拜占庭将军问题_第1张图片

红军想发送信息给蓝军,但中途传递数据的线路不安全,通信兵可能会被其他军队所截获,也有可能在传递信息的过程中被其他军队的探子窃取到情报。两军问题即针对这类情况,判断怎样保证数据能可靠地传输到对方的一种问题模型。

将情况整理一下,就产生了两类问题:

1、信道在传输过程中断开了,能否正确传输数据(通信兵被其他军队所截获的情况);

2、数据在信道传递过程中被窃听,能否保证数据的安全交换(被其他军队的探子窃取到情报的情况)。

对于第一类情况,目前无解。

对于第二类情况,可以通过密钥交换的方式形成加密信道,确保私密信息的安全性。

但对于第二类情况,这里又出现了一个类似《三体》中猜疑链的现象:红军派通信兵去传递信息,但蓝军是否收到信息红军无从得知;从蓝军角度,收到红军消息后准备给红军发送一个“收到”的反馈,但红军是否收到信息红军无从得知……不断循环往复,最后发送信息的一方总是不清楚自己所发送的信息是否发送成功。这类现象在计算机建立连接、传递信息的过程中也会出现。在本文开头分享的链接中提到了使用TCP握手协议(即“三次握手”建立链接,“四次挥手”断开链接),也是为了最大程度降低上述“突发情况”的可能性,但也仅仅是起到“降低”而非“解决”的作用。

三、信任解决问题——拜占庭将军问题

在第一节中提到“两军问题可以被看做是拜占庭将军问题的特例”,这是因为拜占庭问题更多解决的是多节点之间交换数据的信任危机问题。这里的“多节点”至少是4个结点或以上,少于4个就成为了两军问题甚至是单节点问题,但一般不能大于100个,更多的节点意味着每次数据交互需要占用更多的资源,超过临界值会严重影响数据的传输效率。另外,由于两军问题中得出信道中断时不可能完成数据交互工作,因此在拜占庭问题讨论的情况中加入了“信道稳定”这一先决条件。由于网络中的数据是向全网公布的,因此单独控制或者损坏某个节点,并不能造成整体伤害。即使有伪造者篡改了接收到的数据继续再转发,通过哈希计算或者密钥签名,可以验证完整性,也很难直接做出合法性的篡改。

总结一下拜占庭将军问题的问题模型:默认信道稳定情况下,假设多个节点(节点数n∈[4,100])之间需要交换数据,在其中有部分节点可能损坏(或关闭)、也有部分节点可能作恶(如伪造签名)的情况下,是否能够完成网络中的其他节点正常交换。

关于拜占庭问题的解决算法(口头协议和书面协议),可于https://www.8btc.com/article/70370继续深入学习。

你可能感兴趣的:(区块链啊区块链)