宇宙链 宇宙链
Ctrl+D收藏宇宙链
首页 > SAND > 正文

科普 | 什么是共识算法?(理论篇)

作者:

时间:1900/1/1 0:00:00

共识算法,可以理解为是为了实现分布式一致性协议而产生的一系列流程与规则。当分布在不同地域的节点都按照这套规则进行协商交互之后,最终总能就某个/某些问题得到一致的决策,从而实现分布式系统中不同节点的一致性。

起源

早期的计算机应用大都是单体架构,即单个处理器就能够承接所有的计算任务、读写任务等,那时候的计算机只需要负责将自己收到的任务按序执行、提交并返回即可,因此在那个时期,研究人员的主要研究内容是如何将单核处理器的性能优化到极致。然而,随着互联网的出现与发展,数据量呈现爆发式增长,单靠一个处理器已经无法满足常规的业务需求,分布式系统架构横空出世。

分布式系统简单来说就是一系列处理器/节点通过消息交互的形式协同处理一系列的事务,从而达到横向扩展性能、提升灾备属性的效果。为了能够达到横向扩展,需要所有节点共享相同的数据副本,自然而然地也就解决了单点故障的问题。分布式系统极大提升了单体架构的性能上限,但也不可避免地引入了分布式一致性问题。分布式一致性问题指的是:

在分布式系统中,当某些节点出现异常时,如何保证整个系统对外的表现仍然一致。

这里需要关注3个词语,即“某些”、“异常”以及“一致”。

一致:分布式一致性大致分为强一致性、弱一致性、最终一致性,由于各个分类涉及的细节较多,本文不做过多赘述。异常:在分布式系统中,不同节点通常分布在不同的地域,因此同一时间不同节点的状态可能不受控。节点可能出现一些良性错误,例如宕机、网络延迟/断开等;也可能出现一些恶意错误,例如伪造消息、向不同节点发送不同的投票等。良性错误通常是由于机器/网络故障导致的节点暂时不在线,通过人为介入是可以恢复到宕机之前的状态的,因此不会对整个系统的安全性造成威胁;而恶意错误也就是我们通常所说的拜占庭错误,则可能由于某些节点的恶意攻击导致整个集群出现不可预估的崩溃。某些:为了应对上述两种不同类型的错误,我们需要设计不同的协议来解决/容忍有限量的错误。通常来说,非拜占庭容错的共识算法能够容忍不超过1/2的节点出现良性错误;拜占庭容错的共识算法能够容忍不超过1/3的节点出现良性/恶意错误。分布式系统的一致性问题早在上世纪七八十年代就开始了研究,奠定了非常扎实的理论基础,不过在后来相当长的一段时间内理论研究几乎停滞。直到近年来,区块链系统的出现又促进了分布式一致性问题研究的蓬勃发展。本文将分别介绍分布式领域内一些非常重要的模型假设/定理/理论等。随后,将从传统分布式一致性算法与典型区块链共识算法的角度剖析共识算法的发展历程。

徐明星新书《趣说金融史》正式发布 科普金融发展之道:金色财经现场报道,9月23日,欧科云链创始人徐明星携手著名财经作家李霁月、行业观察者顾泽辉力作《趣说金融史》一书,跨越5000年金融历史,重读金钱故事,并预测新的金融时代。该书由中信出版社出版,将于近期正式发售。据了解,本书可以更好地呈现金融的起源与发展,帮助人们理解货币、金融与未来经济。作为区块链行业领军企业——欧科云链的创始人,徐明星深知技术探索对经济社会的重要推动作用,他曾先后出版过《图说区块链》、《区块链:重塑经济与世界》、《通证经济》、《链与未来》等行业权威著作,解读区块链等新型技术的推动下,金融与社会的升级之道,对经济社会发展做出了重大贡献。其中,《区块链:重塑经济与世界》曾作为新中国70周年重点推荐图书之一被相关书店推荐。[2021/9/23 17:00:57]

网络模型

分布式系统建立在许多通过网络连接或者其他方式进行消息通信的节点之上,而网络通信的不确定性会限制共识算法的设计。通信模型定义了不同消息延迟对于分布式系统的限制能力。总的来说,一共存在三种类型的通信模型,分别是同步模型、异步模型与部分同步模型。

同步模型

在同步模型中,所有节点之间的消息通信都存在一个已知的延迟上界,并且不同节点处理事务的相对速度差值有一个已知上界。同步模型是一个非常理想的通信模型,在现实生活中几乎不可见,但是在分布式系统的理论研究中却发挥着及其重要的作用,许多早期的分布式一致性算法都是在同步网络假设下设计的。

国务院:推进科普与区块链技术深度融合:为贯彻落实党中央、国务院关于科普和科学素质建设的重要部署,依据《中华人民共和国科学技术进步法》、《中华人民共和国科学技术普及法》制定《全民科学素质行动规划纲要(2021-2035年)》,其中要求实施智慧科普建设工程。推进科普与区块链等技术深度融合,强化需求感知、用户分层、情景应用理念,推动传播方式、组织动员、运营服务等创新升级,加强“科普中国”建设,强化科普信息落地应用,与智慧教育、智慧城市、智慧社区等深度融合。(新华社)[2021/7/10 0:40:52]

异步模型

在异步模型中,上述的假设上界都不存在,因此异步模型比较符合现实的互联网环境。异步与同步相比,是一种更通用的情况。一个适用于异步系统的算法,也能被用于同步系统,但是反过来并不成立。在异步模型中设计一个正确的共识算法已经被证明是不可能的。

部分同步模型

部分同步模型是界于同步模型与异步模型之间的一种通信模型,于1988年由Dwork,Lynch等人在论文中提出。该模型中假设存在一个全局稳定时钟GST,在GST之前整个系统可能处于异步状态,但是在GST之后,整个系统可以恢复到同步状态。部分同步模型的时序假设比较贴合现实世界中对共识算法的需求,即共识总是可以在同步状态下完成,然而一旦网络出现问题,共识可能会进入一段时间的阻塞,直至网络恢复正常。

欧易OKEx将于3月18日推出DeFi系列科普视频:据欧易OKEx官方消息显示,欧易OKEx将正式推出DeFi系列科普视频《欧易DeFi20讲》,本系列节目由欧易OKEx亚太区CEO马克金主讲。该视频首期将于3月18日11:00(HKT)推出,用户可以在欧易OKEx官方学院、金色财经观看。

《欧易DeFi20讲》主要包含DeFi入门指南、全景解读DeFi生态及如何参与DeFi三个篇章,可以轻松使用户了解DeFi原理,洞察DeFi价值,掌握DeFi热点,更多详情请关注欧易OKEx官方学院。[2021/3/18 18:55:59]

拜占庭将军问题

1982年,LeslieLamport、RobertShostak和MarshallPease三位科学家发表了一篇论文,提出了著名的拜占庭将军问题。拜占庭将军问题首次假设了分布式系统中存在恶意节点的情况,并给出了在同步网络模型下的解法。在拜占庭将军问题中,节点不止会出现宕机或者断网等良性错误,还有可能出现任意情况的拜占庭错误,例如硬件或者软件故障导致的节点不按程序逻辑运行,甚至于节点程序被人恶意操纵等等。总之,拜占庭错误更加贴近于实际生活中面临的故障模型,同时它也是分布式系统中最难解决的故障模型。

根据是否容忍拜占庭错误,我们可以将共识算法分为两类:

CFT类共识算法:仅能够容忍宕机、网络延迟/断开等良性错误的共识算法BFT类共识算法:除了能够容忍上述错误,还能够容忍任意类型的恶意攻击的共识算法

动态 | 人民日报官方微博科普区块链 强调区块链不等于比特币:人民日报官方微博今早发表9图科普区块链。其中涉及区块链的特点有:1、安全;2、不可篡改;3、可访问;4、无第三方。区块链对未来的影响:1、不需繁琐个人证明;2、看病避免反复检查;3、旅行消费更加便捷;4、交易无需第三方。同时强调,区块链不等于比特币。比特币只是区块链技术的一种应用,区块链还有医疗卫生、食品安全、版权保护等诸多应用领域。[2019/10/28]

FLP不可能定理

1985年,Fischer、Lynch和Patterson三位科学家发表了论文,提出了著名的FLP不可能定理。作为分布式系统领域内最重要的定理之一,它给出了一个非常重要结论:在一个异步通信网络中,只要存在一个故障节点,那么就不存在一种完美的共识算法可以正确的终止。

FLP的出现,从理论的角度告诉人们可以不用再想方设法地去设计一个异步网络中始终能够达成一致的共识算法。因此,后续的共识算法设计中通常会在某些方面做出妥协,例如网络假设不再是异步模型而是选择部分同步模型,即允许存在一定时间的异步网络状态,该期间无法达成共识,但是只要网络恢复到同步状态,就可以立即完成共识,这样虽然对于系统的活性有一定的影响,但是只要能够保证系统的安全性,依然是一个可接受的共识算法。

CAP理论

声音 | 火星人朋友圈科普RAM:火星人在朋友圈发文称,“什么是RAM?简单来说就是EOS这个国家的土地,所有的经济行为都离不开土地。只要EOS的BP们能投票形成一个稳定的供给预期,并且不改变目前的Bancor算法,那么RAM后续的价格有可能会像北上广深的房价走势。房价下跌不行,房价过快上涨也不行,EOS的生态越来越像某国了,真有意思。”[2018/7/6]

2000年,加州大学伯克利分校的EricBrewer教授在ACMPODC会议上提出CAP猜想。2年后,麻省理工学院的SethGilbert和NancyLynch从理论上证明了CAP。此后,CAP理论正式成为分布式领域的公认定理:一个分布式系统最多只能同时满足如下三种特性中的两种:

一致性可用性分区容错性在分布式系统尤其是区块链系统中,营造一个高可用甚至永远不会出错的网络环境需要付出高昂的代价。因此一般来说,区块链系统必须满足分区容错性这一特质。那么对于区块链系统来说,就只能在一致性与可用性之间做出权衡与让步。例如大型公链系统中有成千上万的节点运行在世界的各个角落中,因此几乎不可能设计出一个强一致的共识算法保证所有节点同时对外提供一致的读写服务。PoW算法是通过牺牲强一致性,退而求其次地满足最终一致性、可用性与分区容错性。尽管PoW网络随时有分叉的可能性,即已经上链的区块有可能被回退掉,但是随着时间的推移,靠前的区块得到越来越多的确认,那么其被回退的可能性就越来越低,以至于达到一种几乎不可能被回退的最终一致性。在此期间,每一个节点都可以正常的对外提供读写服务。

总结

通过前人的研究,我们已经能够大致理解了一个共识算法能够正确运转的条件:即在一个传统的分布式系统中,一个实用的共识算法需要能够安全地运行在部分同步网络模型中。其实,早期分布式一致性算法的研究大都集中在非拜占庭的部分同步网络模型环境下,例如经典的Paxos、ViewStampedReplication、ZAB等。直到PBFT算法的提出,才出现了第一个可实用的拜占庭容错共识算法原型。上述这些算法本身已经能够非常好地解决一致性的问题,因此在相当长的一段时间内,都没有新型共识算法被提出。但是近年来,随着人们对于共识算法可理解性、易实现性、吞吐量等要求的不断提高,涌现出了非常多优秀的共识算法,例如CFT类的RAFT、BFT类的HotStuff等。

在区块链系统或者说比特币出现之前,已经有非常多的应用从单数据中心单数据库模式转变成了多地多中心的分布式数据库模式,然而此类的应用通常还是部署在同一个机构/公司内部服务器上。与此不同的是,在区块链这样一个承载着价值传输的分布式系统上,节点可能分布在全球各地,并且不受任何单一的机构/组织控制,因此区块链共识算法必须要考虑到恶意节点的存在,保证区块链上的价值不会被恶意节点操纵,即区块链共识算法是需要容忍拜占庭错误的。而为了能够应对拜占庭攻击,不同的区块链系统走上了不同的道路。

在公有链中,常见的选择是通过工作量证明算法来防止拜占庭攻击,由于每次竞争出块权都需要解决一个非常复杂的数学难题,因此在这第一步就已经阻挡了绝大多数的攻击者;其次,每一个新构造出来的区块都必须经过其他矿工节点的验证,因此不可能在区块中包含非法/重复的交易;而如果想要伪造一条包含非法交易的链,除非攻击者掌握全世界范围内超过50%的算力,这显然是不可能的,即便存在这样一条链,一旦被发现有非法交易存在必然会导致该链信誉的下降从而导致巨量的损失,这对于攻击者来说显然也是不合算的。最终,上述的规则会引导所有尝试出块的节点都到一条“正确的最长链”上竞争,因为这样做才是利益最大化的选择。

在联盟链中,常见的选择是通过理论完备的BFT共识算法来防止拜占庭攻击。由于联盟链的共识节点通常由参与方机构管理,因此准入门槛本身就比较高;其次,联盟链中的共识缺乏经济激励,因此需要通过更强的理论来进行约束。然而完全按照一个共识算法的原型来实现的话,依旧会存在一些问题。例如,传统PBFT算法中主节点是固定的,如果能够控制主节点,即便不让它打包非法交易,也可以控制它偏向性地打包某些账户的交易,从而导致其他账户的交易被阻塞而无法上链。因此,在应用BFT共识算法的过程中,还需要为区块链特性加上一些特殊的功能,例如选择不可预测的主节点,为节点加上信誉值从而通过信誉值来选择主节点等。

敬请期待下篇《什么是共识》

作者简介

端豪

趣链科技基础平台部共识算法研究小组

参考文献

DworkC,LynchN,StockmeyerL.Consensusinthepresenceofpartialsynchrony.JournaloftheACM(JACM),1988,35(2):288-323.

LamportL,ShostakR,PeaseM.TheByzantinegeneralsproblem//Concurrency:theWorksofLeslieLamport.2019:203-226.

FischerM?J,LynchNA,PatersonMS.Impossibilityofdistributedconsensuswithonefaultyprocess.JournaloftheACM(JACM),1985,32(2):374-382.

标签:区块链EFIDEFIDEF区块链域名成交SDEFIParadise DefiDefina Finance

SAND热门资讯
THORChain:攻击者利用 Eth Bifrost 漏洞以 0 ETH 调用路由合约牟利

巴比特讯,7月16日,去中心化跨链交易协议THORChain针对此次攻击事件进行初步评估,表示此次攻击是EthBifrost用路由合约来捕获ERC-20代币时的逻辑漏洞被攻击者利用.

1900/1/1 0:00:00
对话:区块链如何与实体经济融合

题记:区块链是对数据进行加工整理、实现价值最大化的工具。实体经济是基于物理世界和物质生产有关的经济活动,包括农业、采矿业、加工业、制造业、物流业、商业等.

1900/1/1 0:00:00
数字货币,为何有投资价值?

自数字货币出现以来,一直争议不断又生命力顽强。一方面以巴菲特为代表的OldMoney投资者,对数字货币嗤之以鼻,认为“数字货币就是一场幻觉”;另一方面数字货币又被人认为是“21世纪最伟大的发明”,很多数字货币投资者,在数字货币领域赚得.

1900/1/1 0:00:00
森和天下技术顾问苏申:存储赛道大爆发,创业关键是找到切实的、大的需求丨2021世界区块链大会

巴比特讯,7月25日,“2021世界区块链大会·杭州”在杭州未来科技城学术交流中心开幕。本次大会由杭州时戳信息科技有限公司主办.

1900/1/1 0:00:00
西电开设区块链学分课程 火链科技多位导师授课助力人才培养

7月19日,西安电子科技大学2021年国际双创实践周本科生学分课程《区块链赋能实体经济》正式开课。据悉,此次课程已经是西安电子科技大学第三年与火链科技合作开设区块链相关的学分课程.

1900/1/1 0:00:00
曼德拉孙子之一Dumani Mandela将于8月中旬在OpenSea拍卖其小说NFT

巴比特讯,BeInCrypto消息,纳尔逊·曼德拉的17个孙子之一DumaniMandela将从今年8月开始出售《IDreamofKemet》和《YoungandontherunfromApartheid》的数字艺术作品.

1900/1/1 0:00:00