提起区块链,大家似乎感觉这项技术很神秘。今天从技术的角度剖析一下区块链的分布式一致性问题,很多研究人员称此问题为分布式领域的幽灵,也就是大家常常听到的拜占庭将军问题。
拜占庭将军问题是LeslieLamport提出的针对分布式对等网络中的通信容错问题。
LeslieLamport在其论文TheByzantineGeneralsProblem中以一个示例形象的描述了此问题:一组拜占庭将军分别各率领一支军队共同围困一座城市。为了简化问题,各支军队的行动策略仅限定为进攻或撤离两种。因为部分军队进攻、部分军队撤离可能会造成灾难性后果,因此各位将军必须通过投票来达成一致策略,即所有军队一起进攻或所有军队一起撤离。因为各位将军分别处于城市不同方向,他们只能通过信使互相联系。在投票过程中每位将军都将自己投票给进攻还是撤退的信息通过信使分别通知其他所有将军,从而,每位将军根据自己的投票和其他所有将军送来的信息就可以知道共同的投票结果而决定行动策略。
分布式账本项目Perlin将于8月25日启动流动性挖矿:分布式账本项目Perlin宣布将于8月25日推出流动性挖矿,PerlinX用户将能够通过抵押代币PERL来获得BAL和PERL。从8月25日开始,Perlin基金会将资助PerlinX为期4周的试验,以引导该平台的流动性池的流动性。详情如下:
1. 每周至少将拨出100万枚PERL作为奖励;
2. Perlin将根据市场反应调整激励措施的数量;
3. PERL奖励会在所有池的快照之后进行发放;
4. 流动性挖矿的第一周将会每天进行快照,发放奖励之后改为每周进行快照。
5个池支持流动性挖矿:TUSD/PERL 50/50;BUSD/PERL 50/50;BAL/PERL 50/50;USDC/PERL 50/50;WETH/PERL 50/50。[2020/8/24]
用通信术语描述拜占庭将军问题:可靠的计算机系统必须处理有故障的组件,这些组件的引入可能与系统其它部分信息冲突。根本不发送任何消息,向不同的邻居发送不同且错误的消息,以及谎报自己的输入值。一个可靠的计算机系统必须能够处理一个或多个组件的失败。失败的组件出现被忽略的行为,向系统的其他部分发送不一致的信息。
美国工业互联网联盟发布物联网分布式账本白皮书:美国工业互联网联盟(IIC)正式发布“物联网分布式账本”白皮书,白皮书首次发布物联网分布式技术的标准和基础架构,重点介绍物联网领域的企业规模化部署和企业案例。白皮书由IIC分布式账本工作组发布,由IoTeX、华为和亚马逊联席主席发起并草拟,其它来自PWC、IGnPower、iExec等企业的专家共同撰写,正在应用的企业场景包括亚马逊区块链与量子账本数据库、阿里食品溯源、沃尔玛农场到店解决方案、博世交通、德勤汽车供应链、马斯克&IBM全球贸易平台等。[2020/7/29]
在分布式计算中,不同的计算交换通讯信息从而达成共识并按照同一套协作策略行动。但有时,系统中的成员计算机可能因出错而发送错误的信息,用于传递信息的通讯网络也可能导致信息损坏,使得网络中不同的成员关于全体协作的策略得出不同结论,从而破坏系统一致性。
声音 | 火币大学于佳宁:远程办公使分布式商业新组织形态独具魅力:疫情当前,远程办公成为不少公司、机构和个人的选择。就此,火币大学校长于佳宁发表看法,他认为新冠病肺炎疫情使新零售、远程办公、在线协作等新业态和新组织方式实现了大规模应用,这种变化意义极为重大。
这绝不仅仅是应对疫情的权宜之计,更是加速各产业加速数字化转型、推进企业组织方式变革的曙光。在新科技时代,创新转型将成为企业生存刚需,以平台化、社群化、在线化的新型大规模协作方式将成为主流。这将助力区块链应用驶入快车道,区块链是大规模分布式协作的基础性技术,分布式协作是区块链的核心思想。
区块链不仅仅是技术的应用和创新,更是运营模式、组织方式,甚至是思维方式的创新。远程办公正是体验分布式商业新组织形态、洞察区块链应用与数字经济的时机。[2020/2/18]
拜占庭将军问题是存在前提假设条件的,在消息丢失的不可靠信道上试图通过消息传递的方式达到一致性是不可能的,因此对一致性的研究一般假设是建立在信道是可靠的这个前提下。拜占庭将军问题的核心是允许存在少数节点作恶的情况下如何达成共识的问题。
分布式资本宣布孵化成立Hashgard项目:近日,分布式资本宣布孵化成立Hashgard项目,旨在利用区块链技术构建一个点对点的资产管理信任体系。Hashgard团队由BKFUND管理合伙人许超逸、BKFUND首席分析师黄峤濛、原中兴通讯资深网络协议专家杨延庆等组成,其余主要成员均来自于分布式资本孵化的独立数字资产基金BKFUND。[2018/3/23]
拜占庭将军问题实际上是如何让一个分布式系统的保持一致性和在特定条件下保持正确性的问题。可抽象为满足以下2个条件的算法:
条件IC1.所有忠诚的将军得出相同的作战指令,并且按指令执行,保持指令的一致性。
条件IC2.如果作战指令是忠诚的将军发出的,所有忠诚的将军会遵循该将军发出的作战指令,特定条件下的正确性。
LeslieLamport论文里TheByzantineGeneralsProblem提到了OralMessages和Signedmessages两个解决方案,其算法如下:
1、OM(m)口头协议算法
结论:如果有m个叛军,必须至少有3m+1位将军才能保证口头协议算法能解“拜占庭将军问题”。
前提假设:
A1.每个被发送的消息都能够被正确的投递
A2.信息接收者知道是谁发送的消息
A3.能够知道缺少的消息(如果叛军不配合发送消息,算法默认一个值“撤退”的来替代)
证明过程:
https://www.microsoft.com/en-us/research/uploads/prod/2016/12/The-Byzantine-Generals.pdf
2、SM签名协议算法
结论:在不管有多少叛军的情况下,都能让忠诚的将军们保持一致的行动
前提假设:
A1.每个被发送的消息都能够被正确的投递
A2.信息接收者知道是谁发送的消息
A3.能够知道缺少的消息(如果叛军不配合发送消息,算法默认一个值“撤退”的来替代)
A4.1签名不可被伪造,一旦被篡改即可发现
A4.2任何人都可以验证将军签名的可靠性
证明过程:
https://www.microsoft.com/en-us/research/uploads/prod/2016/12/The-Byzantine-Generals.pdf
读者如果想对分布式算法深入解析,如Paxos、Pow、BFT,推荐区块链核心算法一书,文中有部分值得深入研读的参考文献。
参考文献:
TheByzantineGeneralsProblem.LESLIELAMPORT,ROBERTSHOSTAK,andMARSHALLPEASESRIInternational
区块链核心算法解析.RogerWattenhofer
参考链接
TheByzantineGeneralsProblem
同步链接:
https://www.microsoft.com/en-us/research/uploads/prod/2016/12/The-Byzantine-Generals.pdf
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。