資源描述:
《區(qū)塊鏈項目中共識算法的分類,及存在的問題分析.doc》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在學(xué)術(shù)論文-天天文庫。
1、區(qū)塊鏈項目中共識算法的分類,及存在的問題分析 共識算法解決的是對某個提案(Proposal),大家達成一致意見的過程?! 「鶕?jù)共識算法采取的策略,可以被分為兩大類,即概率一致性算法和絕對一致性算法?! 』仡機AP原理,兩類算法的區(qū)別在于對可用性和一致性之間的平衡: 概率一致性算法保證了系統(tǒng)的可用性而犧牲了系統(tǒng)的一致性,絕對一致性算法則與之相反,保證了系統(tǒng)的一致性而犧牲了系統(tǒng)的可用性?! ?.概率一致性算法 概率一致性算法指在不同分布式節(jié)點之間,有較大概率保證節(jié)點間數(shù)據(jù)達到一致,但仍存在一定概率使得某些節(jié)點間數(shù)據(jù)不一致?! τ谀?/p>
2、一個數(shù)據(jù)點而言,數(shù)據(jù)在節(jié)點間不一致的概率會隨時間的推移逐漸降低至趨近于零,從而最終達到一致性?! ±绻ぷ髁孔C明算法(ProofofWork,PoW)、權(quán)益證明算法(ProofofStake,PoS)和委托權(quán)益證明算法(DelegatedProofofStake,區(qū)塊鏈項目中共識算法的分類,及存在的問題分析 共識算法解決的是對某個提案(Proposal),大家達成一致意見的過程?! 「鶕?jù)共識算法采取的策略,可以被分為兩大類,即概率一致性算法和絕對一致性算法?! 』仡機AP原理,兩類算法的區(qū)別在于對可用性和一致性之間的平衡: 概率一
3、致性算法保證了系統(tǒng)的可用性而犧牲了系統(tǒng)的一致性,絕對一致性算法則與之相反,保證了系統(tǒng)的一致性而犧牲了系統(tǒng)的可用性?! ?.概率一致性算法 概率一致性算法指在不同分布式節(jié)點之間,有較大概率保證節(jié)點間數(shù)據(jù)達到一致,但仍存在一定概率使得某些節(jié)點間數(shù)據(jù)不一致?! τ谀骋粋€數(shù)據(jù)點而言,數(shù)據(jù)在節(jié)點間不一致的概率會隨時間的推移逐漸降低至趨近于零,從而最終達到一致性?! ±绻ぷ髁孔C明算法(ProofofWork,PoW)、權(quán)益證明算法(ProofofStake,PoS)和委托權(quán)益證明算法(DelegatedProofofStake,區(qū)塊鏈項目中
4、共識算法的分類,及存在的問題分析 共識算法解決的是對某個提案(Proposal),大家達成一致意見的過程。 根據(jù)共識算法采取的策略,可以被分為兩大類,即概率一致性算法和絕對一致性算法?! 』仡機AP原理,兩類算法的區(qū)別在于對可用性和一致性之間的平衡: 概率一致性算法保證了系統(tǒng)的可用性而犧牲了系統(tǒng)的一致性,絕對一致性算法則與之相反,保證了系統(tǒng)的一致性而犧牲了系統(tǒng)的可用性。 1.概率一致性算法 概率一致性算法指在不同分布式節(jié)點之間,有較大概率保證節(jié)點間數(shù)據(jù)達到一致,但仍存在一定概率使得某些節(jié)點間數(shù)據(jù)不一致?! τ谀骋粋€數(shù)據(jù)點而
5、言,數(shù)據(jù)在節(jié)點間不一致的概率會隨時間的推移逐漸降低至趨近于零,從而最終達到一致性?! ±绻ぷ髁孔C明算法(ProofofWork,PoW)、權(quán)益證明算法(ProofofStake,PoS)和委托權(quán)益證明算法(DelegatedProofofStake,DPoS)都屬于概率一致性算法?! ?.絕對一致性算法 而絕對一致性算法則指在任意時間點,不同分布式節(jié)點之間的數(shù)據(jù)都會保持絕對一致,不存在不同節(jié)點間數(shù)據(jù)不一致的情況?! ±绶植际较到y(tǒng)中常用的Paxos算法及其衍生出的Raft算法等,以及拜占庭容錯類算法(類BFT算法),例如PBFT算
6、法。區(qū)塊鏈項目中常用的共識算法 傳統(tǒng)分布式數(shù)據(jù)庫主要使用Paxos和Raft算法解決分布式一致性問題,它們假定系統(tǒng)中每個節(jié)點都是忠誠、不作惡的,但報文可能發(fā)生丟失和延時等問題。 當(dāng)分布式數(shù)據(jù)庫的所有節(jié)點由單一機構(gòu)統(tǒng)一維護時,此假定成立。在去中心化的區(qū)塊鏈網(wǎng)絡(luò)中,節(jié)點由互不了解、互不信任的多方參與者共同提供和維護,受各種利益驅(qū)動,網(wǎng)絡(luò)中的參與者存在欺騙、作惡的可能,因此Paxos和Raft算法不能直接用于區(qū)塊鏈的共識?! ∧壳氨粎^(qū)塊鏈項目廣泛采用的算法有工作量證明(PoW)、權(quán)益證明(PoS)、股份授權(quán)證明(DPoS)、實用拜占庭容
7、錯(PBFT)等,另外一些項目則采用2種算法的混合算法,如PoW+PoS、DPoS+PBFT等,此外還有燃燒證明(PoB,ProofofBurn)、沉淀證明(PoD,ProofofDeposit)、能力證明(PoC,ProofofCapacity)、消逝時間證明(PoET,ProofofElapsedTime)等尚不成熟的算法。工作量證明(Proof-of-Work,PoW) 工作量證明(Proof-of-Work,PoW),要求工作端進行一些耗時適當(dāng)?shù)膹?fù)雜運算,并且答案能被服務(wù)方快速驗算,以此耗用的時間、設(shè)備與能源做為擔(dān)保成本,以
8、確保服務(wù)與資源是被真正的需求所使用。 工作量證明最常用的技術(shù)原理是哈希散列函數(shù)。由于輸入哈希函數(shù)h()的任意值n,會對應(yīng)到一個h(n)結(jié)果,而n只要變動一個比特,得到的結(jié)果就完全不同,所以幾乎無法從h(n)反推回n