




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
下載第11講|深入區塊鏈技術下載第11講|深入區塊鏈技術(三):共識算法與分布式一致性算2018-04-18陳浩深入淺出區塊11:44大小共識機制的概念,我們在前面的文章“淺說區塊鏈共識機制”中已經講解了一部分,但是共識算法其實是一個非常大的話題,一篇文章肯沒有辦法做到面面俱全那么今天的內容,我會將重點放在梳理技術的脈絡上,詳細分析的部分會少一點。如果你對共識算法有興趣的話,可以自行查找相關內容,也可以和其他的資料進行相互補充的閱讀。從相親大會說起:分布式系統的模 為了讓你更容 大村子因為人口增長變成11個小村落分散在地圖各地村落之間的通信只能依靠信鴿一只信鴿可能無法完全覆蓋所有村落,需要有中繼村落代為傳輸消息相親大會的舉辦權會為村子帶來巨大收益,為了產生合理的舉辦者,人們約定了幾條規則大會舉辦權從A和B兩個村子中產生,他們每一屆都是候選村投票時所有村落僅能投A或用投票的方式產生舉辦者,少數服從多數所有村子會為了舉辦權都會使出渾身解數,比如延遲發送投票結果、篡改別人的投票結果、假裝沒有接收到通知等等。其實這是一個典型的分布式系統,可以看成是我們簡化版的區塊鏈網絡環境,那么這個分布式系統會遇到什么樣的問題呢?分布式系統面臨的問題分布式系統面臨了幾個問題:一致性問題,可終止性問題、合法性問題可終止性可以理解為系統必須在有限的時間內給出一致性結果,合法性是指提案必須是系統內的節點提出。當然其中面對的最重要也是最基礎的問題,就是我們常說的一致性問題。一致性是指在某個分布式系統中,任意節點的提案能夠在約定的協議下被其他所有節點所認可。需要提醒你區分的一點是:這里的“認可”表示所有節點對外呈現的信息一致,而不是對息的內容認可。一致性也分嚴格一致性最終一致性,這些我們在后文會談到我們回到上面的例子,我們提到解為提案所有的村子只能投A或B,其實這個投票的動作可以在“投票過程被大家所認可在“投票過程被大家所認可”這個語境下,“被大家所認可”表示某個村落投票的結果已被記錄,用于最后統計結果,而不是認可投給A或者投給B,這也是我在上述強調你要意區分的一點那我們這里所說的一致性到底體現在那里呢主要體現在下面兩種類型的問題上非人為惡意的意外投票過程。非人為惡意篡改可歸類為信鴿半路掛掉、信鴿迷路、信送錯目的地、信鴿送信途中下雨導致鴿延遲送達等等。這些對應到分布式系統面臨的問題就是:消息丟包、網絡擁堵、消息延遲、消息內容校驗失敗、節點宕機等。人為惡意篡改包括“精神分裂式投票”,中繼篡改上一個村落的投票信息。對應到分布式系統面臨的問題就是:消息被偽造、系統安全攻擊等等。發生的人為惡意篡改的過程就可以稱之為系統發生了拜占庭錯誤(ByzantineFault),問題1我們已經有較成熟的方案了。分布式系統本質上是一種并行異步操作,如果通過心化的手段將系統中的“并行不確定”操作變更為“同步串行”操作就能解決上述的問題比如讓第三方機構介入托管所有人的投票;或者構造一個不可偽造令牌,大家輪流將投票統一寫到令牌上。這些也是現代分布式系統經常使用的方法。但是這些方法有個缺陷,如果在分布式系統中被過多地使用以后,系統便會越來越像單點系統。我們設計分布式系統的初衷就是為了克服單點系統的可用性不足、擴展性不好、單點性能上限等缺陷,這種退化的方案可能不是我們想要的。而問題2要求設計拜占庭容錯系統,這個在IT行業并不常見,因為多數IT系統是中心的,所以如果我們想要解決問算法2,這就引出了我們今天要介紹的共識算法與分布式一致我們在介紹具體的分布式一致性算法之前,先介紹我們在介紹具體的分布式一致性算法之前,先介紹兩個定理,做一下鋪墊第一個是FLP不可能性,簡單來說是:即使網絡通信完全可靠,只要產生了拜占庭錯是,不存在一個通用的共識算法可以解決所有的拜占庭錯誤。第二個是CAP理,CAP理是分布式系統領域最重要的定理之一,這個我們在“理解性”“可用性”“分區容忍性”三者中,我們只能選擇兩個作為主要強化的點,另外一個必然會被弱化。我們由CAP定理可以推導嚴格一致性最終一致性。嚴格一致性是指在約定的時內,通常是非常短、高精度的時間內,系統達到一致性的狀態,這種系統很難實現,即使現也很難有高的性能所以人們從工程的角度提出了最終一致性,最終一致性不要求嚴格的短時間內達到一致。了其他兩個指標,我 相當于讓一致性在時間上做了妥協。區塊鏈滿足了最終一致性,且處理過程時間比較長可用性其實是傳統技后端架構上非常重要的指標,從單點到主備模式、從主備模式到地多活 再到現在的Paxos和Raft協議我們從軟件架構上也經歷了基于ESB的模塊化SOA模式,到無狀態的微服務架構從程的角度來看,根據業務需求達到4個9、6個9就足夠了,只100%的可用性肯定比不了區塊鏈近分區容忍性在企業內部極少出現,尤其是中心化的服務性應用,所以很少考慮。鏈的P2P網絡環境十分復雜,所以必須要保證很高的分區容忍性。然而區通過以上我們可以發現比特幣、以太坊等公鏈是偏重高可用性、分區容忍性(AP),滿足最終一致性(C)且TPS較低的分布式系統。所以如果有人號他們的區塊鏈能夠達到媲美中心化系統上萬的TPS,先別著急投資,問問他技術是不是知道CAP定理,再問問他們的去中心化程度如何這點我們也可以從EOS等高性能的區塊鏈身上佐證,EOS全球只這點我們也可以從EOS等高性能的區塊鏈身上佐證,EOS全球只有21個記賬節點,而太坊全球有上萬個節點可以隨時參記賬,所以越想去中心化,你的TPS就不可能高這也就是為什么EOS的TPS高,而以太坊的TPS接下來我來介紹一下經典的分布式一致性算法和區塊鏈的共識算法。經典的分布式一致性法在多數的論文中一般被叫做共識算法,在這里,我為了與區塊鏈的共識算法做出區別,以在命名上改成了分布式一致性算法但是它們要解決的問題一樣的1.經典的分布式一致性算經典分布式一致性算法有Raft協議,Raft協議是一種強Leader的一致性算法,它的吞吐量基本就是Leader的吞吐量,它無法抵御節點惡意篡改數據的攻擊。稍微復雜一點的就是Paxos協議,Paxos能提供不同場合不同種類的一致性算法,所Paxos有很多變種,經典Paxos是Leaderless的,有變種是強Leader型的,叫做有關Paxos的文獻非常豐富,這里就不贅述了以上兩種都是不提供拜占庭容錯的系統,下面介紹一種具有拜占庭容錯的一致性算法PBFT全稱實用性拜占庭容錯系統(PracticalByzantineFaultTolerance,PBFT),PBFT是一種狀態機,要求所有節點共同維護一個狀態,所有節點采取的行動一致,PBFT常適合聯盟鏈等對性能具有較高要求的場合,超級賬本項目中的Fabric框架默認采用的就是PBFT的修改版本2.區塊鏈共識算區塊鏈的共識算法,我在某些場合直接稱作基于經濟學的博弈算,以區別于經典分布一致性算法思路,它的整體思路就是讓攻擊者的攻擊成本遠遠大于收益區塊鏈中的共識算法目前具有工業成熟度的是PoW,另外兩種比較成熟的是PoSDPoS,其次還有一些變種和單一幣種使用的共識算法,例如Ripple共識、PoC共識(念性證明)、PoE共識(存在性證明)在使用PoW共識算法的情況下,容錯閾值是50%,而PBFT及其變種的容錯閾值是左右,這里的百分比是指作弊節點占全網節點比例PoX類的算法其實都延續了PoWPoX類的算法其實都延續了PoW的設計理念,相比較經典分布式一致性算法,PoX類算法通概率選擇記賬者降低了潛在的提案者,另外是延長了達成最終一致性的時間第一條降低了系統通信復雜度,每次記賬系統的確定性其實是概率確定的又由于被選需要付出成本,此處才提高了記賬成本閾值,結合區塊鏈的基礎代幣設計,是一個非常天的想法有關PoW、PoS、DPoS的內容,我在后面會有專文介紹今天我們從相親大會開始說起,介紹了分布式系統所面臨的問題,之后,我們又引出了區鏈所要解決的拜占庭容錯問題,并重點介紹了分布式系統的基本定理,最后我還介紹了經共識算法和區塊鏈算法區塊鏈并沒有逃離分布式系統這個理論框架,希望今天的內容能夠幫助你分辨出真實的區鏈項目。最后給你留一個思考題,區塊鏈行業有哪些公司使用了如PBFT、Paxos這樣的典共識算法呢?你可以給我留言,我們一起討論感謝你的收聽,我們下期再見?版權歸極客邦科技所有,未經許可不得傳播售賣。頁面已增加防盜追蹤,如有侵權極客邦將依法追究其法律責任上?版權歸極客邦科技所有,未經許可不得傳播售賣。頁面已增加防盜追蹤,如有侵權極客邦將依法追究其法律責任上一第10|深入區塊鏈技術(二):P2P網下一第12|深入區塊鏈技術(四):PoW共精選留言阿2018-04-據我個人總結,聯盟鏈基本上使用PBFT及其變種,而公有鏈大多采用PoX算法,對嗎8作者回復
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 林業生物多樣性保護與利用合同
- 智能設備維護及檢修合同書
- 材料力學教材試題及答案
- 測試結果的分析與應用試題及答案
- 顯著提高的公路工程知識積累試題及答案
- 專科化工原理考試題及答案
- 店面整體轉讓合同協議書
- 2025年工業互聯網平臺自然語言處理技術在工業互聯網平臺智能決策支持系統中的應用前景
- 計算機二級MySQL數據庫優化策略試題及答案
- 商鋪轉讓定金合同協議書
- 2023年二級教師初定職稱呈報表
- GB/T 30308-2013氟橡膠通用規范和評價方法
- GA 1517-2018金銀珠寶營業場所安全防范要求
- 關建過程明細表
- 《飛翔的女武神》課件
- 胎盤早剝預案演練腳本
- 中鐵項目XXXX年2月份經濟活動分析
- 老年患者術前評估中國專家建議
- 2022年學校空調使用管理制度
- 生產良率系統統計表
- 代理機構服務質量考核評價表
評論
0/150
提交評論