时间:2023-07-06|浏览:176
本课堂用通俗易懂的系列内容为大家呈现区块链与密码学领域相关知识。这里有知识也有故事,从感兴趣到有乐趣,点宽课堂等你来学。
这个系列中的课程内容首先从比特币着手进行入门介绍,再延伸至区块链的相关技术原理与发展趋势,然后深入浅出地依次介绍在区块链中应用的各类密码学技术。欢迎大家订阅本公众号,持续进行学习。
【本课堂内容全部选编自PlatON首席密码学家、武汉大学国家网络安全学院教授、博士生导师何德彪教授的《区块链与密码学》授课讲义、教材及互联网,版权归属其原作者所有,如有侵权请立即与我们联系,我们将及时处理。】
2.4.5
共识算法(二)
新一期区块链与密码学课堂来啦,这一期我们继续共识算法的学习,讲述在共识算法中独特的存在——BFT类算法和结合可信环境的共识算法。
BFT类算法
无论是PoW类算法还是Po*类算法,其中心思想都是将所有节点视作竞争对手,每个节点都需要进行一些计算或提供一些凭证来竞争出块的权利(以获取相应的出块好处)。BFT类算法则采取了不同的思路,它希望所有节点协同工作,通过协商的方式来产生能被所有(诚实)节点认可的区块。这就是我们俗话说的:有事好商量。
拜占庭容错问题最早由LeslieLamport等学者于1982年在论文《TheByzantineGeneralsProblem》中正式提出,主要描述分布式网络节点通信的容错问题。
从20世纪80年代起,提出了很多解决该问题的算法,这类算法被统称为BFT算法。实用拜占庭容错(PracticalBFT,PBFT)算法是最经典的BFT算法,由MiguelCastro和BarbaraLiskov于1999年提出。PBFT算法解决了之前BFT算法容错率较低的问题,且降低了算法复杂度,使BFT算法可以实际应用于分布式系统。
那么为什么叫拜占庭问题呢?
拜占庭是东罗马帝国的首都,位于如今的土耳其的伊斯坦布尔。由于当时拜占庭罗马帝国国土辽阔,军队之间分隔很远,军队之间只能靠信差传消息。然而,当发生战争时,必须所有的拜占庭军队达成一致共识,才能决定是否去攻打敌人,任意部分军队攻打敌军,都无法取胜。如果军队中出现叛徒或间谍,左右各军队将军的决定,达成的共识可能不代表大多数人意见。这时,在已知有间谍的情况下,其余忠诚的将军在不受叛徒的影响下如何达成一致的协议,就是“拜占庭将军问题”。
拜占庭问题是一个协议问题,拜占庭军队必须全体一致决定是否攻击敌军。问题是:
军队之间分隔远,无法同时一起商议,只能通过信使。
信使或将军有可能存在叛徒,干扰共识过程。
叛徒可以任意行动达到以下目标:
迷惑部分将军,使他们无法做出决定。
欺骗将军,采取相反决定,如将军们不希望进攻,但叛徒促成进攻行动。
叛徒只要完成任意目标,都代表攻击行动的结果失败。
看似是一部谍战片,其背后却有深刻的数学原理。LeslieLamport证明了在将
热点:区块链
用戶喜愛的交易所
已有账号登陆后会弹出下载