秋子4星評(píng)價(jià)
2020-04-21 15:03:08
共識(shí)機(jī)制的發(fā)展史,代表著區(qū)塊鏈技術(shù)從1.0走向2.0以及更遠(yuǎn)的未來(lái)。從某種程度上講,對(duì)于共識(shí)機(jī)制的突破與創(chuàng)新,直接決定了區(qū)塊鏈未來(lái)大規(guī)模商業(yè)化的應(yīng)用。
如果將去中心化的區(qū)塊鏈技術(shù)比作一個(gè)生命體,那么共識(shí)機(jī)制可以說(shuō)就是它的生命之源。
相信每一位對(duì)區(qū)塊鏈技術(shù)有所了解的人,都或多或少的了解過(guò)一個(gè)相關(guān)的理論——拜占庭將軍問(wèn)題”,甚至對(duì)于很多人而言,拜占庭將軍問(wèn)題是很多人了解區(qū)塊鏈技術(shù)原理的第一扇大門”。
拜占庭將軍問(wèn)題”源自著名圖靈獎(jiǎng)得主萊斯利·蘭波特在其同名論文中提出的分布式對(duì)等網(wǎng)絡(luò)通信容錯(cuò)問(wèn)題。根據(jù)維基百科的解釋,拜占庭將軍問(wèn)題即:
在分布式計(jì)算中,不同的計(jì)算機(jī)通過(guò)通訊交換信息達(dá)成共識(shí),按照同一套協(xié)作策略行動(dòng)。但有時(shí)候,系統(tǒng)中的成員計(jì)算機(jī)可能出錯(cuò)而發(fā)送錯(cuò)誤的信息,用于傳遞信息的通訊網(wǎng)絡(luò)也可能導(dǎo)致信息損壞,使得網(wǎng)絡(luò)中不同的成員關(guān)于全體協(xié)作的策略得出不同結(jié)論,從而破壞系統(tǒng)一致性。
拜占庭是古代東羅馬帝國(guó)的首都,由于當(dāng)時(shí)帝國(guó)的國(guó)土幅員遼闊,為了達(dá)到防御的目的,因此每個(gè)軍隊(duì)都分散駐守,將軍與將軍之間只能依靠郵差進(jìn)行通信。當(dāng)戰(zhàn)爭(zhēng)的發(fā)生時(shí),所有將軍需要達(dá)成一致的共識(shí)共同出擊才能取得成功,否則就會(huì)失敗。但是軍隊(duì)內(nèi)部可能存在叛徒或間諜,因此將軍們需要一種機(jī)制保證所有的將軍都對(duì)進(jìn)攻的時(shí)間有一個(gè)相同的認(rèn)識(shí),也就是——即使信使真的有奸細(xì),而且他采用了任何他能想到的措施,其余忠誠(chéng)的將軍也可以在不受叛徒的影響下達(dá)成一致的協(xié)議。
OK區(qū)塊鏈工程院認(rèn)為,這是區(qū)塊鏈共識(shí)機(jī)制產(chǎn)生的根源所在,共識(shí)”就是在一個(gè)由多方組成的系統(tǒng)中,在某一個(gè)步驟中讓一個(gè)系統(tǒng)中所有的節(jié)點(diǎn)對(duì)一個(gè)值達(dá)成一致。
也就是說(shuō),在區(qū)塊鏈系統(tǒng)中,每一個(gè)共識(shí)機(jī)制都需要回答下面的問(wèn)題(包括但不限于):
What——下一個(gè)區(qū)塊應(yīng)包含哪些交易?
Who——下一個(gè)區(qū)塊應(yīng)該由誰(shuí)來(lái)生成?
When——下一個(gè)區(qū)塊應(yīng)該何時(shí)產(chǎn)生?
Evolution——如何升級(jí)共識(shí)協(xié)議?
Immunity——如何解決交易歷史的競(jìng)爭(zhēng)問(wèn)題?
OK區(qū)塊鏈工程院認(rèn)為,共識(shí)機(jī)制的目標(biāo)就是找到這些問(wèn)題的答案,并確保其健壯性以抵制攻擊者試圖獲得網(wǎng)絡(luò)的控制權(quán)。實(shí)際上,獲得控制就意味著獲得了單方面審查交易的能力。共識(shí)機(jī)制也應(yīng)當(dāng)能健壯地抵御攻擊者利用在不同計(jì)算機(jī)上的數(shù)據(jù)庫(kù)狀態(tài)中的臨時(shí)不一致性獲取好處。
在回答共識(shí)”究竟能解決什么問(wèn)題之前,我們必須了解兩個(gè)在分布式系統(tǒng)中已經(jīng)被證明的結(jié)論:CAP定理和FLP不可能性定理。
CAP定理指的是在一個(gè)分布式系統(tǒng)中,在Consistency(一致性)、 Availability(可用性)、Partition tolerance(分區(qū)容錯(cuò)性)中,最多只能實(shí)現(xiàn)兩點(diǎn),不可三者兼得。
其中,一致性代要求在分布式系統(tǒng)中的所有數(shù)據(jù),在同一時(shí)刻達(dá)到同樣的值,也就是說(shuō)所有節(jié)點(diǎn)訪問(wèn)同一分最新的數(shù)據(jù)副本;可用性要求,系統(tǒng)中部分節(jié)點(diǎn)出現(xiàn)故障以后,系統(tǒng)整體可以正常相應(yīng),不被故障節(jié)點(diǎn)影響;分區(qū)容錯(cuò)性則要求,系統(tǒng)如果不能在時(shí)限內(nèi)達(dá)成數(shù)據(jù)的一致性,就必須在C和A之間做出選擇。
FLP不可能性定理則是指,對(duì)于允許節(jié)點(diǎn)失效情況下,純粹異步系統(tǒng)無(wú)法確保一致性在有限時(shí)間內(nèi)完成。
OK區(qū)塊鏈工程院認(rèn)為,F(xiàn)LP不可能性定理已經(jīng)證明,在一個(gè)異步網(wǎng)絡(luò)中我們永遠(yuǎn)也達(dá)不成一致。而CAP定理,則讓我們?cè)谠O(shè)計(jì)算法時(shí)所有傾向,是使用CP算法(高一致性算法),還是AP算法(高可用算法)。
共識(shí)算法本身可以描述為在某一個(gè)步驟中讓一個(gè)系統(tǒng)中所有的節(jié)點(diǎn)對(duì)一個(gè)值達(dá)成一致,即使系統(tǒng)中存在故障, 我們也要忽略掉這些故障節(jié)點(diǎn)的噪音讓整個(gè)系統(tǒng)繼續(xù)正確運(yùn)行, 而問(wèn)題的難點(diǎn)就在于在一個(gè)異步網(wǎng)絡(luò)中將這些噪音降到最小。
不得不談的去中心化
至此,我們可以清晰地看到一些區(qū)別所在:
在一個(gè)中心化的結(jié)構(gòu)體系中,整個(gè)系統(tǒng)的共識(shí)可以由中心來(lái)決定,各個(gè)節(jié)點(diǎn)只需要接受中心所下達(dá)的命令”即可,這也是中心化系統(tǒng)運(yùn)作更加高效的原因所在。而在去中心的體系中,所有參與系統(tǒng)的節(jié)點(diǎn)是處于一個(gè)平等的地位,當(dāng)節(jié)點(diǎn)之間出現(xiàn)分歧時(shí),就需要依靠設(shè)計(jì)巧妙的共識(shí)機(jī)制來(lái)使其順利地運(yùn)轉(zhuǎn)下去。
因此,共識(shí)機(jī)制也被很多人稱作是去中心化系統(tǒng)的核心靈魂所在,二者相輔相成、缺一不可。只有在保證去中心化的前提下共識(shí)才能保持一致,如果確保共識(shí)的節(jié)點(diǎn)數(shù)量較小或者受到中心化的控制,那么就很容易被攻擊。
在OK區(qū)塊鏈工程院看來(lái),判斷一個(gè)協(xié)議是不是去中心化,需要看這個(gè)協(xié)議能不能在全部節(jié)點(diǎn)都永久性刪除后,僅依靠一個(gè)節(jié)點(diǎn)仍然能夠恢復(fù)過(guò)來(lái)正常運(yùn)作。如同一個(gè)菌絲體借助單細(xì)胞就能恢復(fù)過(guò)來(lái)一樣。我們稱之為完全去中心化,但逃脫不了生物學(xué)界的一個(gè)事實(shí),多細(xì)胞生物比單細(xì)胞生物更高級(jí),即以損失一定程度的去中心化為代價(jià)。
其實(shí),我們?cè)谟懻撘粋€(gè)項(xiàng)目是不是去中心化的時(shí)候,有所爭(zhēng)議的往往是此節(jié)。比如對(duì)于EOS這種DPOS共識(shí)機(jī)制是否是去中心化的爭(zhēng)論:
提問(wèn)方問(wèn)的是系統(tǒng)治理的去中心化程度,而回答者則回答其他兩者的去中心化程度。如此溝通如何達(dá)成一致?因此我們有對(duì)去中心化分層的必要,并從以下三個(gè)層面來(lái)理解去中心化:
首先是系統(tǒng)部署的去中心化。在現(xiàn)實(shí)世界中,基于docker(一個(gè)開源的應(yīng)用容器引擎)等虛擬技術(shù)和運(yùn)用這些技術(shù)的云計(jì)算平臺(tái),以下三個(gè)問(wèn)題往往很難拆分:
①系統(tǒng)有多少節(jié)點(diǎn)組成?
②部署在幾臺(tái)物理計(jì)算機(jī)中?
③分?jǐn)?shù)多少個(gè)地區(qū)?
但是最終我們想實(shí)現(xiàn)系統(tǒng)部署去中心化的目的是一樣的,就是降低同一時(shí)間節(jié)點(diǎn)崩潰的數(shù)量,例如地震、海嘯、云平臺(tái)安全事件等。
其次是系統(tǒng)邏輯去中心化;在系統(tǒng)的運(yùn)行流程中,這個(gè)系統(tǒng)是由一種角色組成?還是多種角色合作組成?或者說(shuō),是由一臺(tái)完整的單一設(shè)備組成,還是多種不同種類的設(shè)備組裝的小組?舉個(gè)例子,針對(duì)一個(gè)系統(tǒng),我們?cè)谌我庖粋€(gè)時(shí)刻,將系統(tǒng)分成2份,系統(tǒng)都能完整的獨(dú)立運(yùn)行下去么?如果以后兩部分又合二為一了,系統(tǒng)還能正常運(yùn)行么?
第三,系統(tǒng)治理去中心化;針對(duì)一個(gè)區(qū)塊鏈項(xiàng)目,有兩個(gè)重要的權(quán)限控制:系統(tǒng)修改權(quán)限和系統(tǒng)數(shù)據(jù)權(quán)限。針對(duì)系統(tǒng)修改權(quán)限,有多少個(gè)人或者組織,對(duì)組成系統(tǒng)的計(jì)算機(jī)擁有最終的控制權(quán)?針對(duì)系統(tǒng)數(shù)據(jù)權(quán)限,權(quán)限控制是否虧歸屬于每個(gè)個(gè)體?有多少涉及管理,查看非自身數(shù)據(jù)的權(quán)限?以及如何制定權(quán)利邊界?
其實(shí),我們不僅需要對(duì)區(qū)塊鏈的去中心化進(jìn)行分層理解,更重要的是,目前區(qū)塊鏈技術(shù)已經(jīng)發(fā)展到了2019年,從某種程度上講,單純用中心化”和去中心化”無(wú)法準(zhǔn)確的描述我們目前所用到的方案。
胡志彬5星評(píng)價(jià)
2020-04-21 15:03:56
關(guān)于區(qū)塊鏈已經(jīng)說(shuō)了不少,但是區(qū)塊鏈的核心—共識(shí)機(jī)制想必大家還是一知半解,今天從不同方面給大家好好講講區(qū)塊鏈的共識(shí)機(jī)制。
“共識(shí)算法“在一套區(qū)塊鏈系統(tǒng)里面起到的作用,非常類似于CPU架構(gòu)在電子設(shè)備中的核心“組件”,一個(gè)升級(jí)版的架構(gòu)往往能使電腦的流暢度提升質(zhì)的飛越。
區(qū)塊鏈作為一個(gè)新興產(chǎn)物,它們的“共識(shí)機(jī)制”也在不停的更迭,這種歷程和CPU架構(gòu)的升級(jí)非常相似。
如果說(shuō)共識(shí)是區(qū)塊鏈的基礎(chǔ),那共識(shí)機(jī)制就是區(qū)塊鏈的靈魂。
我們?cè)诮忉屖裁词菂^(qū)塊鏈時(shí),可以用一句簡(jiǎn)潔明了的去中心化分布式分類賬來(lái)概括,但是在這個(gè)賬本中,是如何對(duì)在幾乎相同時(shí)間內(nèi)的產(chǎn)生的事物前后排序的,就涉及到區(qū)塊鏈網(wǎng)絡(luò)的共識(shí)機(jī)制。
所以共識(shí)機(jī)制,就是在一個(gè)時(shí)間段內(nèi)對(duì)事物的前后順序達(dá)成共識(shí)的一種算法。
它就像一個(gè)國(guó)家的法律,維系著區(qū)塊鏈?zhǔn)澜绲恼_\(yùn)轉(zhuǎn)。
在區(qū)塊鏈上,每個(gè)人都會(huì)有一份記錄鏈上所有交易的賬本,鏈上產(chǎn)生一筆新的交易時(shí),每個(gè)人接收到這個(gè)信息的時(shí)間是不一樣的,有些想要干壞事的人就有可能在這時(shí)發(fā)布一些錯(cuò)誤的信息,這時(shí)就需要一個(gè)人把所有人接收到的信息進(jìn)行驗(yàn)證,最后公布最正確的信息。
目前常用的幾種共識(shí)機(jī)制
1、工作量證明機(jī)制(Proof of Work - PoW)是我們最熟知的一種共識(shí)機(jī)制。就如字面的解釋,PoW就是工作越多,收益越大。這里的工作就是猜數(shù)字,誰(shuí)能最快的猜出這個(gè)唯一的數(shù)字,誰(shuí)就能做信息公示人。
2、權(quán)益證明機(jī)制(Proof of Stake-PoS)也屬于一種共識(shí)證明,它類似股權(quán)憑證和投票系統(tǒng),因此也叫“股權(quán)證明算法”。由持有最多(token)的人來(lái)公示最終信息。
3、拜占庭共識(shí)算法(Practical Byzantine Fault Tolerance- PBFT)也是一種常見的共識(shí)證明。它與之前兩種都不相同,PBFT以計(jì)算為基礎(chǔ),也沒(méi)有代幣獎(jiǎng)勵(lì)。由鏈上所有人參與投票,少于(N-1)/3個(gè)節(jié)點(diǎn)反對(duì)時(shí)就獲得公示信息的權(quán)利。
現(xiàn)有各種共識(shí)機(jī)制的問(wèn)題
A、計(jì)算能力浪費(fèi)
在工作量證明機(jī)制POW中,猜數(shù)字最快的通常是電腦計(jì)算能力強(qiáng)的。超強(qiáng)的計(jì)算能級(jí)僅用來(lái)猜數(shù)字,實(shí)在是浪費(fèi)。
B、權(quán)益向頂層集中
在權(quán)益證明機(jī)制POS中,token的余額越多的人獲得公示信息的概率越高,公示人會(huì)得到一定的token作為獎(jiǎng)勵(lì)。