區(qū)塊鏈導(dǎo)論 課件 第四章:共識(shí)算法_第1頁(yè)
區(qū)塊鏈導(dǎo)論 課件 第四章:共識(shí)算法_第2頁(yè)
區(qū)塊鏈導(dǎo)論 課件 第四章:共識(shí)算法_第3頁(yè)
區(qū)塊鏈導(dǎo)論 課件 第四章:共識(shí)算法_第4頁(yè)
區(qū)塊鏈導(dǎo)論 課件 第四章:共識(shí)算法_第5頁(yè)
已閱讀5頁(yè),還剩59頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第四章:共識(shí)算法Chapter4:ConsensusAlgorithm作者:北京大學(xué)匯報(bào)時(shí)間:2024/07/03目錄共識(shí)算法概述01RAFT共識(shí)算法03共識(shí)算法的未來(lái)發(fā)展05共識(shí)問(wèn)題02共識(shí)算法的應(yīng)用04思考題06

1.共識(shí)算法概述1.Overviewofconsensusalgorithms011.1共識(shí)正確性的定義一個(gè)正確的共識(shí)算法需要滿足以下三個(gè)核心特性:一致性(Agreement):在分布式系統(tǒng)中,所有參與共識(shí)的節(jié)點(diǎn)必須對(duì)某個(gè)決策值達(dá)成一致。這意味著即使不是所有節(jié)點(diǎn)都同意同一個(gè)決策值,也至少要有大多數(shù)節(jié)點(diǎn)達(dá)成共識(shí)。一致性確保了系統(tǒng)不會(huì)分裂成多個(gè)持有不同決策值的子集。有效性(Validity):最終的決策值必須是系統(tǒng)中某個(gè)節(jié)點(diǎn)提出的有效值,而不是一個(gè)預(yù)設(shè)的默認(rèn)值。有效性確保了共識(shí)的結(jié)果是基于實(shí)際提出的值,而不是一個(gè)無(wú)關(guān)緊要的默認(rèn)選項(xiàng)。這也有時(shí)被稱為正確性,強(qiáng)調(diào)了決策值的正確來(lái)源。終止性(Termination):所有節(jié)點(diǎn)最終都必須完成決策過(guò)程。終止性保證了共識(shí)算法能夠在有限的時(shí)間內(nèi)完成,不會(huì)無(wú)限期地運(yùn)行下去,從而確保了系統(tǒng)的穩(wěn)定性和可靠性。1.2共識(shí)的通信模型共識(shí)的通信模型主要分為以下三類:同步模型(SynchronousModel):在同步模型中,網(wǎng)絡(luò)通信具有已知的延遲上限,即消息傳遞有一個(gè)最大延遲時(shí)間。每個(gè)節(jié)點(diǎn)處理事務(wù)的時(shí)間有一個(gè)已知的最大差異。每輪共識(shí)中,節(jié)點(diǎn)都能在預(yù)定時(shí)間內(nèi)完成任務(wù),如果超時(shí)則可以認(rèn)為節(jié)點(diǎn)發(fā)生故障。同步模型是一種理想化的模型,在實(shí)際中很難實(shí)現(xiàn),但早期的共識(shí)算法多以此為基礎(chǔ)。異步模型(AsynchronousModel):異步模型中,消息傳遞的延遲沒(méi)有已知的上限,即消息可能無(wú)限延遲。節(jié)點(diǎn)處理任務(wù)的速度未知,且可能有很大的差異。無(wú)法通過(guò)超時(shí)來(lái)判斷節(jié)點(diǎn)是否正常工作,因?yàn)檠舆t可能非常長(zhǎng)。異步模型更接近現(xiàn)實(shí)世界的網(wǎng)絡(luò)環(huán)境,適用于異步模型的共識(shí)算法也適用于同步模型,但反之則不成立。FLP不可能定理指出,在純粹的異步模型中,無(wú)法設(shè)計(jì)出總是能夠達(dá)成共識(shí)的算法。1.2共識(shí)的通信模型3.部分同步模型(PartialSynchronyModel):部分同步模型介于同步模型和異步模型之間。存在一個(gè)全局穩(wěn)定時(shí)間(GST),在這段時(shí)間內(nèi)網(wǎng)絡(luò)可以被認(rèn)為處于同步狀態(tài),共識(shí)可以進(jìn)行。如果網(wǎng)絡(luò)出現(xiàn)問(wèn)題,共識(shí)流程可能終止,但經(jīng)過(guò)GST后,網(wǎng)絡(luò)會(huì)恢復(fù)到同步狀態(tài),共識(shí)可以繼續(xù)。這種模型更符合現(xiàn)實(shí)世界的網(wǎng)絡(luò)環(huán)境,即在大多數(shù)時(shí)間內(nèi)網(wǎng)絡(luò)是可靠的,偶爾會(huì)出現(xiàn)故障。部分同步模型是許多現(xiàn)代共識(shí)算法的基礎(chǔ),如Paxos和PBFT。1.3共識(shí)算法的詳細(xì)案例分析1.比特幣的PoW(工作量證明)算法原理:礦工通過(guò)計(jì)算哈希值來(lái)競(jìng)爭(zhēng)記賬權(quán),成功找到符合要求的哈希值后即可添加區(qū)塊。優(yōu)點(diǎn):高度去中心化,安全性高。缺點(diǎn):能源消耗巨大,交易確認(rèn)時(shí)間長(zhǎng)。2.以太坊的PoS(權(quán)益證明)算法原理:通過(guò)持有代幣的數(shù)量和時(shí)間來(lái)決定誰(shuí)有記賬權(quán),減少了對(duì)計(jì)算能力的依賴。優(yōu)點(diǎn):節(jié)能環(huán)保,交易確認(rèn)速度快。缺點(diǎn):初期分配不公平,富者恒富。3.PBFT(實(shí)用拜占庭容錯(cuò))在聯(lián)盟鏈中的應(yīng)用原理:通過(guò)多輪投票機(jī)制實(shí)現(xiàn)共識(shí),確保系統(tǒng)在有不超過(guò)1/3惡意節(jié)點(diǎn)的情況下仍能正常運(yùn)行。優(yōu)點(diǎn):高效低延遲,適用于私有鏈和聯(lián)盟鏈。缺點(diǎn):不適用于公有鏈,擴(kuò)展性差。2.共識(shí)問(wèn)題2.Consensusissues02問(wèn)題背景:拜占庭帝國(guó)的將軍們必須通過(guò)信使來(lái)溝通,以達(dá)成是“進(jìn)攻”還是“撤退”的共識(shí)。將軍們之間相隔遙遠(yuǎn),無(wú)法面對(duì)面交流。存在叛徒可能散布虛假信息或發(fā)送矛盾的指令。問(wèn)題定義:需要找到一個(gè)算法,即使在有叛徒的情況下,也能讓忠誠(chéng)的將軍們達(dá)成正確的決策。叛徒的行為被稱為“拜占庭錯(cuò)誤”。問(wèn)題復(fù)雜性:叛徒可能以任意方式行為,包括發(fā)送矛盾的信息或不發(fā)送信息。忠誠(chéng)的將軍們必須識(shí)別并忽略叛徒的影響。解決方案:拜占庭容錯(cuò)(BFT)算法提供了一種解決方案。當(dāng)總節(jié)點(diǎn)數(shù)N大于或等于3倍的叛變將軍數(shù)F加1(N≥3F+1)時(shí),問(wèn)題有解。2.1拜占庭將軍問(wèn)題5.共識(shí)過(guò)程:每個(gè)節(jié)點(diǎn)收到提案后,會(huì)向其他節(jié)點(diǎn)發(fā)送確認(rèn)消息以驗(yàn)證提案的真?zhèn)魏吞岚刚叩纳矸?。如果提案?jié)點(diǎn)不是叛徒,但收到了F個(gè)非正常的確認(rèn)消息,需要超過(guò)2/3的多數(shù)正常確認(rèn)才能達(dá)成共識(shí)。如果提案節(jié)點(diǎn)是叛徒,它會(huì)發(fā)送矛盾的信息,忠誠(chéng)的節(jié)點(diǎn)需要通過(guò)進(jìn)一步的驗(yàn)證和多數(shù)投票來(lái)達(dá)成共識(shí)。6.問(wèn)題難點(diǎn):在異步模型中,由于消息傳遞的延遲沒(méi)有上限,設(shè)計(jì)一個(gè)總是能夠達(dá)成共識(shí)的算法是非常困難的。FLP不可能定理表明,在純粹的異步模型中,不存在一個(gè)總是能夠達(dá)成共識(shí)的算法。7.實(shí)際應(yīng)用:拜占庭將軍問(wèn)題在現(xiàn)實(shí)世界中的分布式系統(tǒng)中非常普遍,如區(qū)塊鏈網(wǎng)絡(luò)中的節(jié)點(diǎn)共識(shí)。該問(wèn)題的解決方案對(duì)于設(shè)計(jì)能夠在存在惡意行為者的情況下仍然能夠可靠運(yùn)行的系統(tǒng)至關(guān)重要。拜占庭將軍問(wèn)題的核心挑戰(zhàn)在于如何在不完全信任的網(wǎng)絡(luò)中達(dá)成共識(shí),并且要能夠抵御來(lái)自叛徒的干擾。2.1拜占庭將軍問(wèn)題2.2FLP不可能定理1.FLP定理影響共識(shí)設(shè)計(jì)FLP不可能定理揭示了分布式系統(tǒng)中實(shí)現(xiàn)強(qiáng)一致性共識(shí)的困難,對(duì)設(shè)計(jì)高效的共識(shí)算法產(chǎn)生深遠(yuǎn)影響。2.FLP定理的實(shí)用意義FLP定理雖然指出不可能在所有情況下都達(dá)成共識(shí),但它為開(kāi)發(fā)者提供了設(shè)計(jì)容錯(cuò)分布式系統(tǒng)的實(shí)用指導(dǎo)。3.共識(shí)算法回避FLP限制盡管受到FLP定理的限制,但許多共識(shí)算法通過(guò)異步模型、故障檢測(cè)等方法成功地實(shí)現(xiàn)了系統(tǒng)級(jí)的共識(shí)。4.FLP定理的學(xué)術(shù)價(jià)值FLP定理是分布式系統(tǒng)理論的重要里程碑,為后續(xù)分布式計(jì)算和共識(shí)問(wèn)題的研究奠定了理論基礎(chǔ)。2.3CAP理論1.CAP理論定義重要性CAP理論定義了分布式系統(tǒng)在設(shè)計(jì)時(shí)需要在一致性、可用性和分區(qū)容忍性之間做出的權(quán)衡,是系統(tǒng)設(shè)計(jì)的基石。2.一致性對(duì)網(wǎng)絡(luò)延遲敏感CAP理論中的一致性要求數(shù)據(jù)在所有副本中保持一致,對(duì)低延遲網(wǎng)絡(luò)要求高,現(xiàn)代系統(tǒng)常通過(guò)優(yōu)化算法實(shí)現(xiàn)最終一致性。3.可用性影響用戶體驗(yàn)在分布式系統(tǒng)中,即使部分節(jié)點(diǎn)出現(xiàn)故障,系統(tǒng)仍需保持對(duì)外提供服務(wù)的能力,高可用性直接關(guān)聯(lián)用戶滿意度。4.分區(qū)容忍性必不可少隨著分布式系統(tǒng)規(guī)模的擴(kuò)大,網(wǎng)絡(luò)分區(qū)現(xiàn)象不可避免,CAP理論指出設(shè)計(jì)系統(tǒng)時(shí)需確保其在網(wǎng)絡(luò)分區(qū)時(shí)仍能繼續(xù)運(yùn)行。5.設(shè)計(jì)啟示:在共識(shí)算法設(shè)計(jì)中,不必追求同時(shí)滿足三種特性,應(yīng)根據(jù)實(shí)際需求做出取舍。例如,比特幣網(wǎng)絡(luò)犧牲了強(qiáng)一致性,采用最終一致性,以保證可用性和分區(qū)容錯(cuò)性,這導(dǎo)致了可能出現(xiàn)分叉和區(qū)塊回退。3.共識(shí)算法3.consensusalgorithm033.1.1RAFT概述1.RAFT性能卓越RAFT共識(shí)算法以其高效性和容錯(cuò)性著稱,能夠在分布式系統(tǒng)中快速達(dá)成數(shù)據(jù)一致性,確保系統(tǒng)的高可用性。2.故障恢復(fù)能力強(qiáng)RAFT通過(guò)選舉領(lǐng)導(dǎo)者和日志復(fù)制的機(jī)制,使得在節(jié)點(diǎn)故障時(shí)能夠快速恢復(fù)并繼續(xù)服務(wù),保持系統(tǒng)穩(wěn)定性。3.適用性強(qiáng)泛RAFT算法設(shè)計(jì)簡(jiǎn)潔,易于理解和實(shí)現(xiàn),已廣泛應(yīng)用于多個(gè)開(kāi)源項(xiàng)目和商業(yè)系統(tǒng),顯示出其強(qiáng)大的適用性和擴(kuò)展性。4.社區(qū)支持活躍RAFT算法擁有活躍的社區(qū)支持和開(kāi)源維護(hù),不斷推動(dòng)算法的演進(jìn)和優(yōu)化,為用戶提供更優(yōu)質(zhì)的服務(wù)。3.1.2RAFT詳細(xì)流程1.RAFT的高效性RAFT共識(shí)算法通過(guò)減少不必要的通信開(kāi)銷和簡(jiǎn)化的日志復(fù)制機(jī)制,在實(shí)驗(yàn)中表現(xiàn)出顯著的性能提升,適用于大規(guī)模集群。2.RAFT的容錯(cuò)性RAFT算法通過(guò)選舉Leader并允許故障轉(zhuǎn)移,保證了系統(tǒng)即使在節(jié)點(diǎn)故障時(shí)也能繼續(xù)提供服務(wù),具有高度的容錯(cuò)性。3.RAFT的可理解性相較于其他復(fù)雜的共識(shí)算法,RAFT算法設(shè)計(jì)簡(jiǎn)潔直觀,易于理解,使得系統(tǒng)開(kāi)發(fā)和維護(hù)更加便捷。Raft初啟動(dòng)多候選者多領(lǐng)導(dǎo)者無(wú)法選出領(lǐng)導(dǎo)者同步過(guò)程3.1.3RAFT算法的核心要點(diǎn)問(wèn)題分解:RAFT將一致性問(wèn)題分解為領(lǐng)導(dǎo)者選舉(LeaderElection)、日志復(fù)制(LogReplication)和安全性(Safety)三個(gè)相對(duì)獨(dú)立的問(wèn)題。領(lǐng)導(dǎo)者選舉:領(lǐng)導(dǎo)者(Leader)是處理所有客戶端請(qǐng)求的節(jié)點(diǎn),負(fù)責(zé)生成日志數(shù)據(jù)并廣播給從節(jié)點(diǎn)(Follower)。從節(jié)點(diǎn)是被動(dòng)的,僅接收來(lái)自領(lǐng)導(dǎo)者的日志數(shù)據(jù)。候選節(jié)點(diǎn)(Candidate)是選舉過(guò)程中的過(guò)渡狀態(tài),任何節(jié)點(diǎn)在發(fā)現(xiàn)領(lǐng)導(dǎo)者故障后都可成為候選節(jié)點(diǎn)。3.任期和心跳機(jī)制:RAFT通過(guò)任期(Term)來(lái)管理領(lǐng)導(dǎo)者選舉,每個(gè)任期的開(kāi)始都是一次選舉。使用心跳機(jī)制觸發(fā)領(lǐng)導(dǎo)者選舉,領(lǐng)導(dǎo)者通過(guò)周期性發(fā)送心跳信息維持其地位。4.日志復(fù)制:領(lǐng)導(dǎo)者接收客戶端請(qǐng)求,將命令作為新的日志條目加入日志,并廣播給從節(jié)點(diǎn)復(fù)制。從節(jié)點(diǎn)存儲(chǔ)日志條目,領(lǐng)導(dǎo)者確保所有從節(jié)點(diǎn)都存儲(chǔ)了所有日志條目。3.1.3RAFT算法的核心要點(diǎn)5.安全性:RAFT通過(guò)任期號(hào)和日志匹配原則來(lái)確保日志的一致性和安全性。如果領(lǐng)導(dǎo)者的任期號(hào)過(guò)時(shí),它會(huì)轉(zhuǎn)換為從節(jié)點(diǎn)。6.動(dòng)態(tài)集群成員變更:RAFT支持動(dòng)態(tài)改變集群成員,使用聯(lián)合一致性(JointConsensus)方法來(lái)處理配置變更。7.簡(jiǎn)化管理:日志條目只從領(lǐng)導(dǎo)者發(fā)送給其他服務(wù)器,簡(jiǎn)化了日志復(fù)制的管理。領(lǐng)導(dǎo)者選舉的條件限制為擁有最新、最全日志的節(jié)點(diǎn),減少了數(shù)據(jù)同步時(shí)間。RAFT算法以其清晰的結(jié)構(gòu)和邏輯,使得在實(shí)際系統(tǒng)中實(shí)現(xiàn)變得相對(duì)容易,成為分布式系統(tǒng)中廣泛使用的共識(shí)算法之一。3.2.1Pow共識(shí)算法1.背景與概述RAFT共識(shí)算法的局限性

適用于私有鏈和內(nèi)部互信較高的聯(lián)盟鏈。

未考慮拜占庭節(jié)點(diǎn)(篡改數(shù)據(jù)、不一致消息)的情況。

PoW共識(shí)算法的應(yīng)對(duì)方式

增加作惡成本,減少拜占庭行為可能性。

鼓勵(lì)正常參與,通過(guò)獎(jiǎng)勵(lì)機(jī)制提升參與積極性。2.起源與發(fā)展1993年:辛西婭·德沃克和莫尼·瑙爾首次提出概念。

2008年:比特幣采用PoW作為共識(shí)算法,使其廣為人知。3.PoW共識(shí)算法核心哈希算法特性

輸入長(zhǎng)度任意,輸出為固定長(zhǎng)度(y=H(x))。

正向計(jì)算簡(jiǎn)單,逆向計(jì)算困難(防篡改特性)。數(shù)學(xué)難題(Mining)

目標(biāo):通過(guò)哈希函數(shù)計(jì)算小于目標(biāo)值(`htarget`)的哈希值。

隨機(jī)數(shù)(nonce)與區(qū)塊數(shù)據(jù)(data)、上一區(qū)塊哈希值(hprevious)共同參與計(jì)算。

難度調(diào)整:通過(guò)設(shè)置htarget控制計(jì)算難度和區(qū)塊生成時(shí)間。4.區(qū)塊生成與分叉區(qū)塊生成流程1.收集交易,生成區(qū)塊數(shù)據(jù)。

2.不斷調(diào)整隨機(jī)數(shù)nonce直到滿足條件hcurrent<htarget。

3.廣播區(qū)塊,接受全網(wǎng)驗(yàn)證,通過(guò)后獲得獎(jiǎng)勵(lì)。分叉問(wèn)題及解決

網(wǎng)絡(luò)延遲可能導(dǎo)致多個(gè)區(qū)塊同時(shí)上鏈。

采用

最長(zhǎng)鏈原則:選擇最長(zhǎng)的鏈作為主鏈,其他鏈回退,交易重新打包。3.2.2Pow共識(shí)算法5.關(guān)鍵挑戰(zhàn)與問(wèn)題51%算力攻擊如果單個(gè)節(jié)點(diǎn)算力占全網(wǎng)總算力的51%以上,可篡改鏈條并主導(dǎo)主鏈生成。資源消耗大

大量算力導(dǎo)致電力浪費(fèi)和資源損耗。

吞吐量低為降低分叉概率,區(qū)塊生成速度較慢,無(wú)法滿足高頻應(yīng)用需求。6.系統(tǒng)安全保障去中心化的實(shí)現(xiàn)算力分散:所有礦工均有機(jī)會(huì)生成新區(qū)塊,避免單點(diǎn)風(fēng)險(xiǎn)。

長(zhǎng)鏈原則:增加攻擊成本,降低系統(tǒng)被篡改的可能性。數(shù)學(xué)難題平衡挖礦激勵(lì)和系統(tǒng)安全性,避免分叉和資源浪費(fèi)。區(qū)塊結(jié)構(gòu)

分叉情況3.3.1PoS共識(shí)算法1.背景與動(dòng)機(jī)PoW共識(shí)算法的誕生資源消耗巨大,限制實(shí)際應(yīng)用。每日需消耗大量算力和能源,只能用于達(dá)成共識(shí),造成嚴(yán)重的資源浪費(fèi)。PoS共識(shí)算法的提出受股份分紅機(jī)制啟發(fā),權(quán)益論證以節(jié)點(diǎn)持有的股份(虛擬貨幣)決定其投票權(quán)重,降低資源消耗。2.核心概念驗(yàn)證者節(jié)點(diǎn)(Validator)節(jié)點(diǎn)通過(guò)投票虛擬貨幣作為股份參與投票,成為投票者節(jié)點(diǎn)。幣齡(Coinage)幣齡和虛擬貨幣作為股份的時(shí)間長(zhǎng)短呈線性關(guān)系,即Coinage=k×time幣齡隨股份使用歸零,無(wú)論是用于交易還是區(qū)塊生成。PoS對(duì)比DPoS3.3.2PoS共識(shí)算法驗(yàn)證通過(guò)后,代幣的幣齡歸零,以非股份形式返回持有者。獎(jiǎng)勵(lì)機(jī)制出塊者獲得獎(jiǎng)勵(lì),受到關(guān)注參與討論。5.PoS優(yōu)勢(shì)節(jié)能出塊不依賴算力,依賴于持股比例和幣齡。大幅降低能源與資源浪費(fèi),經(jīng)濟(jì)實(shí)用。公平性改進(jìn)通過(guò)幣齡清零機(jī)制,確保出塊機(jī)會(huì)動(dòng)態(tài)調(diào)整,唯一避免節(jié)點(diǎn)長(zhǎng)期占優(yōu)。3.區(qū)塊生成流程與PoW的共同點(diǎn)均需解決數(shù)學(xué)難題。使用哈希值htarget,通過(guò)計(jì)算獲取當(dāng)前區(qū)塊的哈希值hcurrent。PoS的改進(jìn)引入幣齡影響:只需要計(jì)算結(jié)果hcurrent<(htarget×Coinage),便可以生成區(qū)塊幣齡,節(jié)點(diǎn)生成區(qū)塊的概率越大。大幅減少算力和能源消耗。4.區(qū)塊驗(yàn)證與獎(jiǎng)勵(lì)驗(yàn)證與廣播出塊者將包含已使用幣齡的代幣隨區(qū)塊廣播到全網(wǎng),提供其他節(jié)點(diǎn)驗(yàn)證。3.3.3PoS共識(shí)算法6.面臨挑戰(zhàn)安全性問(wèn)題無(wú)利害關(guān)系攻擊(NothingatStake):攻擊者以底部甚至無(wú)成本發(fā)起分叉攻擊。幣齡機(jī)制可能使攻擊成本降低,系統(tǒng)更容易受到拜占庭行為的影響。公平性與激勵(lì)的平衡如何既維持系統(tǒng)公平性,又激勵(lì)節(jié)點(diǎn)長(zhǎng)期參與。7.PoS的應(yīng)用與場(chǎng)景改進(jìn)方向典型應(yīng)用比特幣和以太坊等區(qū)塊鏈系統(tǒng)逐步向PoS轉(zhuǎn)型以減輕壓力。改進(jìn)方向增加攻擊成本(如復(fù)合PoS共識(shí)算法)。引入更多參數(shù)調(diào)節(jié)出塊權(quán)重,提升系統(tǒng)安全性和公平性。3.4.1DPoS共識(shí)算法1.背景與簡(jiǎn)介PoW和PoS的缺陷PoW:資源消耗巨大,算力集中化(礦池)。PoS:權(quán)益集中化趨勢(shì)(大節(jié)點(diǎn)壟斷)。DPoS目標(biāo)結(jié)合PoW和PoS優(yōu)勢(shì),避免其缺陷。通過(guò)委托機(jī)制,在保留去中心化的同時(shí)提升效率。2.角色與結(jié)構(gòu)角色:1.候選人(Candidate):通過(guò)注冊(cè)成為見(jiàn)證人的候選節(jié)點(diǎn)。2.投票人(Voter):持幣者,有權(quán)投票選舉見(jiàn)證人。3.見(jiàn)證人(Witness):由投票人選出的代表節(jié)點(diǎn),負(fù)責(zé)生成區(qū)塊。權(quán)力制衡:投票人可以隨時(shí)更新選票,支持或反對(duì)投票人。見(jiàn)證人權(quán)利有限,需接受社區(qū)監(jiān)督。3.共識(shí)流程選舉流程:1.錯(cuò)誤注冊(cè):提供標(biāo)識(shí)信息(介紹、網(wǎng)站等)。支付高額注冊(cè)費(fèi)用(生成單個(gè)區(qū)塊獎(jiǎng)勵(lì)的上百倍)。2.投票機(jī)制:記錄可信(Trusted)和非可信代表(Distrusted)。根據(jù)投票表現(xiàn)評(píng)分,維護(hù)觀察代表(Observed)列表。投票產(chǎn)生見(jiàn)證人,并更新見(jiàn)證人列表。3.見(jiàn)證人輪流出塊:見(jiàn)證人按亂序輪流生成區(qū)塊,每個(gè)周期結(jié)束后重新選舉見(jiàn)證人。3.4.2DPoS共識(shí)算法4.技術(shù)特點(diǎn)中心化與去中心化平衡:提前設(shè)計(jì)中心化權(quán)益的分配與制衡機(jī)制,避免礦池化或大節(jié)點(diǎn)壟斷。高效區(qū)塊生成:每輪見(jiàn)證人排序后輪循物料,提升系統(tǒng)吞吐量。EOS.io和BitShares實(shí)現(xiàn)上千到上萬(wàn)級(jí)交易吞吐量。投票與動(dòng)態(tài)調(diào)整:投票權(quán)可隨時(shí)調(diào)整,阻止權(quán)力固化。投票需持續(xù)參與以達(dá)成成本平衡。5.優(yōu)勢(shì)高飼料:相比PoW和PoS,大幅提升交易效率,適應(yīng)商業(yè)需求。資源保護(hù):避免PoW高算力消耗,減少資源浪費(fèi)。用戶參與興趣:普通用戶通過(guò)投票即可參與投票機(jī)制。3.4.3DPoS共識(shí)算法6.面臨挑戰(zhàn)部分去中心化的比重:系統(tǒng)設(shè)計(jì)初期即具有中心化趨勢(shì)。部分投票人不積極參與投票,形成“運(yùn)行中空”。安全性風(fēng)險(xiǎn):權(quán)力風(fēng)險(xiǎn)集中可能導(dǎo)致決策效率下降或故障。投票質(zhì)量問(wèn)題:投票行為可能受到賄選等外部因素影響。7.適用場(chǎng)景與典型應(yīng)用適用場(chǎng)景:高頻交易、需要快速共識(shí)的區(qū)塊鏈應(yīng)用。商業(yè)化需求(如去中心化交易所、支付系統(tǒng))。典型應(yīng)用:EOS.io:提供企業(yè)級(jí)高效區(qū)塊鏈服務(wù)。BitShares:去中心化交易平臺(tái)。3.5.1PBFT共識(shí)算法3.核心過(guò)程

PBFT共識(shí)算法的核心過(guò)程有三個(gè)階段,分別是預(yù)備(pre-prepare)、準(zhǔn)備(prepare)和提交(commit)階段1.背景與適用場(chǎng)景適用:場(chǎng)景聯(lián)盟鏈,節(jié)點(diǎn)數(shù)量少,但對(duì)交易吞吐量和交易確定性要求高。理論基礎(chǔ):拜占庭普遍問(wèn)題,提出需需要滿足條件N≥3F+1,其中N為將軍總數(shù),F(xiàn)為叛變將軍的數(shù)量,時(shí)間復(fù)雜度較高,為On(f+1)。算法優(yōu)化:1999年,MiguelCastro和BarbaraLiskov提出PBFT,其同樣滿足N≥3F+1的數(shù)量要求,但是算法的時(shí)間復(fù)雜度降低到了On(2)。

2.PBFT核心機(jī)制Quorum機(jī)制quorum機(jī)制常被用于分布式系統(tǒng)中以保證數(shù)據(jù)冗余存儲(chǔ)情況下結(jié)果的最終一致,實(shí)際上是一種投票機(jī)制。?PBFT共識(shí)算法的核心過(guò)程3.5.2PBFT共識(shí)算法為了實(shí)現(xiàn)PBFT算法,我們需要進(jìn)行以下步驟:初始化系統(tǒng):選擇足夠數(shù)量的節(jié)點(diǎn)來(lái)構(gòu)成系統(tǒng),并確保每個(gè)節(jié)點(diǎn)都知道其他節(jié)點(diǎn)的存在。請(qǐng)求處理:當(dāng)節(jié)點(diǎn)收到請(qǐng)求時(shí),它會(huì)將請(qǐng)求發(fā)送給其他節(jié)點(diǎn)進(jìn)行prepare階段的處理。消息傳遞:節(jié)點(diǎn)之間通過(guò)傳遞prepare和commit消息來(lái)達(dá)成共識(shí)。這些消息需要在一定的時(shí)間內(nèi)被確認(rèn)和響應(yīng)。共識(shí)達(dá)成:當(dāng)收到足夠數(shù)量的prepare和commit消息后,節(jié)點(diǎn)就可以執(zhí)行請(qǐng)求并寫入數(shù)據(jù)。錯(cuò)誤處理:如果節(jié)點(diǎn)發(fā)現(xiàn)其他節(jié)點(diǎn)存在問(wèn)題或故障,需要進(jìn)行相應(yīng)的處理和恢復(fù)機(jī)制。PBFT共識(shí)算法視圖變更流程3.6共識(shí)算法對(duì)比分析1.性能對(duì)比

PoW:低性能,交易確認(rèn)時(shí)間長(zhǎng)(10分鐘)。

PoS:中等性能,交易確認(rèn)時(shí)間較短(幾秒到幾分鐘)。

PBFT:高性能,低延遲(秒級(jí))。2.安全性對(duì)比

PoW:對(duì)51%攻擊有一定防范,但需消耗大量能源。

PoS:對(duì)51%攻擊和女巫攻擊有一定防范,但需合理設(shè)計(jì)代幣分配。

PBFT:防范拜占庭故障,但不適用于大規(guī)模公有鏈。3.去中心化程度對(duì)比

PoW:高度去中心化,但礦池集中化問(wèn)題嚴(yán)重。

PoS:中等去中心化,受代幣初期分配影響。

PBFT:低去中心化,適用于小規(guī)模聯(lián)盟鏈。4.資源消耗對(duì)比

PoW:高資源消耗(計(jì)算能力和能源)。

PoS:低資源消耗(持有代幣)。

PBFT:低資源消耗(網(wǎng)絡(luò)通信)。3.7共識(shí)算法的優(yōu)化與改進(jìn)1.混合共識(shí)機(jī)制(HybridConsensus)結(jié)合PoW和PoS的優(yōu)勢(shì),利用PoW保障安全性,利用PoS提升效率。例子:Decred采用的PoW+PoS混合共識(shí)機(jī)制。2.分片技術(shù)(Sharding)將區(qū)塊鏈網(wǎng)絡(luò)分為多個(gè)小塊(Shard),每個(gè)小塊處理一部分交易,提升整體吞吐量。例子:以太坊2.0中的分片技術(shù)。3.DAG(有向無(wú)環(huán)圖)共識(shí)算法摒棄傳統(tǒng)區(qū)塊鏈結(jié)構(gòu),采用圖結(jié)構(gòu)提高交易并發(fā)量。例子:IOTA采用的Tangle共識(shí)算法。服務(wù)器通過(guò)網(wǎng)絡(luò)發(fā)送的任何消息都有可能會(huì)丟失,為了避免日志條目的缺失,保存到日志中的條目還需要額外保存添加這個(gè)條目時(shí)所在的任期

4.共識(shí)算法的應(yīng)用4.Applicationofconsensusalgorithm044.1比特幣共識(shí)算法1.區(qū)塊鏈提高效率共識(shí)算法如工作量證明和權(quán)益證明,在區(qū)塊鏈中確保交易安全性的同時(shí),提高了網(wǎng)絡(luò)處理交易的速度和效率。2.智能合約保障信任基于共識(shí)算法的智能合約自動(dòng)執(zhí)行,無(wú)需第三方介入,大大降低了欺詐風(fēng)險(xiǎn),保障了交易雙方的信任關(guān)系。以太坊工作量證明(PoW)挖礦難度調(diào)整網(wǎng)絡(luò)穩(wěn)定性網(wǎng)絡(luò)穩(wěn)定性工作量證明(PoW)工作量證明(PoW)工作量證明(PoW)工作量證明(PoW)權(quán)益證明(PoS)權(quán)益證明(PoS)以太坊升級(jí)權(quán)益證明(PoS)以太坊升級(jí)權(quán)益證明(PoS)權(quán)益證明(PoS)權(quán)益證明(PoS)以太坊升級(jí)以太坊采用工作量證明以太坊逐步轉(zhuǎn)向權(quán)益證明權(quán)益證明(PoS)以太坊升級(jí)4.2以太坊共識(shí)算法4.3新型共識(shí)算法:1.去中心化程度不斷提高隨著區(qū)塊鏈技術(shù)的發(fā)展,共識(shí)算法將更強(qiáng)調(diào)去中心化,如采用分片技術(shù)提高可擴(kuò)展性,同時(shí)保持系統(tǒng)的去中心化特性。2.跨鏈共識(shí)成為新趨勢(shì)隨著多鏈和側(cè)鏈的興起,跨鏈共識(shí)算法成為研究熱點(diǎn),它們能實(shí)現(xiàn)不同區(qū)塊鏈之間的價(jià)值轉(zhuǎn)移和信息交互。3.安全性與性能持續(xù)增強(qiáng)共識(shí)算法將不斷優(yōu)化,通過(guò)密碼學(xué)、分布式計(jì)算和智能合約等技術(shù)的結(jié)合,提升區(qū)塊鏈網(wǎng)絡(luò)的安全性和交易處理性能。4.3新型共識(shí)算法1.Algorand共識(shí)算法原理:采用VRF(可驗(yàn)證隨機(jī)函數(shù))選舉出參與者,實(shí)現(xiàn)快速共識(shí)。創(chuàng)新點(diǎn):高效、去中心化、安全。應(yīng)用前景:適用于高性能公有鏈。2.Avalanche共識(shí)算法原理:利用隨機(jī)抽樣和子采樣技術(shù),實(shí)現(xiàn)快速、可靠的共識(shí)。創(chuàng)新點(diǎn):高吞吐量、低延遲、高擴(kuò)展性。應(yīng)用前景:適用于需要高頻交易的區(qū)塊鏈應(yīng)用。VRF(VerifiableRandomFunction)可驗(yàn)證隨機(jī)函數(shù)4.3新型共識(shí)算法Algorand共識(shí)算法Algorand共識(shí)算法旨在通過(guò)隨機(jī)選擇用戶來(lái)進(jìn)行區(qū)塊提議和投票,結(jié)合加密抽簽和快速拜占庭協(xié)議,確保高效的共識(shí)達(dá)成且系統(tǒng)具備擴(kuò)展性和安全性。1.節(jié)點(diǎn)角色與共識(shí)流程Algorand每輪共識(shí)過(guò)程中,節(jié)點(diǎn)可以扮演三種角色:區(qū)塊提議者:用戶所持資產(chǎn)越多,成為提議者的優(yōu)先級(jí)越高,提議區(qū)塊被選中為出塊的概率越大。委員會(huì)成員:在全體用戶中隨機(jī)挑選的小規(guī)模節(jié)點(diǎn)集合,負(fù)責(zé)對(duì)提議的區(qū)塊進(jìn)行投票。普通節(jié)點(diǎn):不參與提議或投票的用戶節(jié)點(diǎn)。2.核心技術(shù)Algorand共識(shí)算法的核心由兩大技術(shù)構(gòu)成:加密抽簽算法(CryptographicSortition):通過(guò)可驗(yàn)證隨機(jī)函數(shù)(VRF),以隨機(jī)的方式選出區(qū)塊提議者和委員會(huì)成員,難以被攻擊者定位??焖侔菡纪f(xié)議(BA):用于低延遲達(dá)成共識(shí),避免分叉。3.加密抽簽過(guò)程系統(tǒng)首先使用VRF決定當(dāng)輪的隨機(jī)數(shù)種子,基于此隨機(jī)數(shù)種子進(jìn)行區(qū)塊提議者和委員會(huì)成員的選擇。用戶的資產(chǎn)按最小單位被劃分為若干“子用戶”,每個(gè)子用戶被選中的概率為固定的n/s。若某個(gè)子用戶被選中,其所屬用戶成為提議者或委員會(huì)成員。4.3新型共識(shí)算法4.共識(shí)流程區(qū)塊提議階段:區(qū)塊提議者廣播區(qū)塊,各節(jié)點(diǎn)收集提議并丟棄優(yōu)先級(jí)較低的區(qū)塊。區(qū)塊Reduction階段:各節(jié)點(diǎn)可能收到不同優(yōu)先級(jí)的區(qū)塊,需達(dá)成對(duì)優(yōu)先級(jí)最高區(qū)塊的共識(shí)。BinaryBA*階段:在收斂的區(qū)塊上進(jìn)行多輪投票,直至系統(tǒng)達(dá)成共識(shí)。5.安全性與可擴(kuò)展性抵抗女巫攻擊:通過(guò)基于用戶資產(chǎn)權(quán)重的抽簽機(jī)制,防止攻擊者通過(guò)偽造身份增加被選中概率??蓴U(kuò)展性:通過(guò)抽簽選取少量節(jié)點(diǎn)組成委員會(huì)進(jìn)行投票,有效減少計(jì)算負(fù)擔(dān),支持區(qū)塊鏈擴(kuò)展至大規(guī)模網(wǎng)絡(luò)環(huán)境。總結(jié)來(lái)說(shuō),Algorand共識(shí)算法通過(guò)高效的隨機(jī)選取和快速拜占庭協(xié)議,保證了系統(tǒng)的去中心化、安全性和可擴(kuò)展性,適用于大規(guī)模區(qū)塊鏈網(wǎng)絡(luò)環(huán)境。

運(yùn)行BinaryBA*,就唯一區(qū)塊達(dá)成共識(shí),記為hblock1等待一段時(shí)間,以接收區(qū)塊

區(qū)塊提議者選擇優(yōu)先級(jí)最高的子用戶來(lái)廣播區(qū)塊和消息π區(qū)塊Reduction,將目標(biāo)區(qū)收斂至hblock2或空塊

根據(jù)第r-1輪消息,確認(rèn)第r輪種子seedr

通過(guò)VRF確定第r輪的區(qū)塊提議者集合

統(tǒng)計(jì)final狀態(tài)的投票信息,達(dá)成最終共識(shí)

Algorand共識(shí)算法的流程4.3新型共識(shí)算法HotStuff共識(shí)算法HotStuff共識(shí)算法是為了解決PBFT共識(shí)算法在處理視圖變更時(shí)的復(fù)雜性問(wèn)題,同時(shí)提升聯(lián)盟鏈的性能表現(xiàn),如交易吞吐量和網(wǎng)絡(luò)帶寬的需求。它通過(guò)簡(jiǎn)化視圖變更流程和提高并行度,適用于高效的區(qū)塊鏈共識(shí)。1.HotStuff的核心特性線性視圖變更:HotStuff將視圖變更(視圖是共識(shí)過(guò)程的階段)融入常規(guī)的共識(shí)流程,減少了復(fù)雜性。相比PBFT共識(shí)算法的非線性視圖變更,HotStuff具備了線性視圖變更(LinearViewChange),從而降低了處理視圖變更的復(fù)雜度。時(shí)間復(fù)雜度降低:HotStuff將PBFT共識(shí)算法的時(shí)間復(fù)雜度由$O(n^2)$降低到了$O(n)$,主要通過(guò)減少?gòu)墓?jié)點(diǎn)之間的消息廣播,使得消息只在主節(jié)點(diǎn)和從節(jié)點(diǎn)之間傳遞。2.基本共識(shí)流程(BasicHotStuff)HotStuff的基本共識(shí)過(guò)程可以簡(jiǎn)化為圍繞主節(jié)點(diǎn)進(jìn)行的三輪投票:主節(jié)點(diǎn)職責(zé):每個(gè)視圖都有一個(gè)唯一的主節(jié)點(diǎn),負(fù)責(zé)打包區(qū)塊、收集和轉(zhuǎn)發(fā)消息,并生成共識(shí)證書(QuorumCertificate,QC)。QC是主節(jié)點(diǎn)收集到$n-f$條從節(jié)點(diǎn)投票后生成的數(shù)據(jù)集合,包含共識(shí)階段、視圖編號(hào)、交易請(qǐng)求等信息。從節(jié)點(diǎn)簡(jiǎn)化消息傳遞:從節(jié)點(diǎn)不再相互廣播消息,所有共識(shí)消息由主節(jié)點(diǎn)處理和轉(zhuǎn)發(fā),從而降低了網(wǎng)絡(luò)復(fù)雜度,但提高了主節(jié)點(diǎn)的處理負(fù)擔(dān)。3.HotStuff的五階段流程HotStuff共識(shí)流程分為五個(gè)階段:準(zhǔn)備階段(Prepare):從節(jié)點(diǎn)向主節(jié)點(diǎn)發(fā)送new-view消息,主節(jié)點(diǎn)再向從節(jié)點(diǎn)廣播共識(shí)消息。4.3新型共識(shí)算法5.性能與優(yōu)化提升了系統(tǒng)活性:HotStuff延續(xù)了PBFT的三階段共識(shí),但增加了兩個(gè)額外階段來(lái)提高系統(tǒng)的整體活性。負(fù)擔(dān)集中于主節(jié)點(diǎn):雖然減少了從節(jié)點(diǎn)的消息傳遞負(fù)擔(dān),但這增加了主節(jié)點(diǎn)的計(jì)算和通信需求,對(duì)其性能提出了更高要求??偨Y(jié)來(lái)說(shuō),HotStuff通過(guò)簡(jiǎn)化視圖變更、減少網(wǎng)絡(luò)復(fù)雜度和提高并行度,實(shí)現(xiàn)了更高效的區(qū)塊鏈共識(shí)流程,適用于需要大規(guī)模、低延遲共識(shí)的場(chǎng)景。HotStuff共識(shí)流程

2.預(yù)提交階段(Pre-commit):主節(jié)點(diǎn)向從節(jié)點(diǎn)發(fā)送消息,從節(jié)點(diǎn)返回確認(rèn)消息。3.提交階段(Commit):主節(jié)點(diǎn)收集到足夠多的確認(rèn)消息后,進(jìn)入下一個(gè)階段。4.決定階段(Decide):主節(jié)點(diǎn)向從節(jié)點(diǎn)發(fā)送最終共識(shí)消息,節(jié)點(diǎn)執(zhí)行共識(shí)。5.最終階段(Final):從節(jié)點(diǎn)將執(zhí)行結(jié)果返回給客戶端,完成共識(shí)流程。每個(gè)階段的操作非常相似,都是由主節(jié)點(diǎn)發(fā)起消息,等待從節(jié)點(diǎn)的確認(rèn)響應(yīng)。4.ChainedHotStuff為了進(jìn)一步提高并行度,HotStuff提出了ChainedHotStuff,將多個(gè)共識(shí)流程串聯(lián)起來(lái),實(shí)現(xiàn)并行共識(shí)。這解決了BasicHotStuff中每個(gè)階段獨(dú)立進(jìn)行的局限性,使得多個(gè)共識(shí)過(guò)程可以重疊進(jìn)行,提升系統(tǒng)效率。4.4

跨鏈共識(shí)1.Cosmos的Tendermint

原理:基于BFT共識(shí),結(jié)合區(qū)塊鏈間的互操作協(xié)議(IBC)。創(chuàng)新點(diǎn):實(shí)現(xiàn)跨鏈通信和資產(chǎn)轉(zhuǎn)移。應(yīng)用前景:構(gòu)建多鏈生態(tài)系統(tǒng)。2.Polkadot的RelayChain

原理:中心中繼鏈(RelayChain)與多個(gè)平行鏈(Parachain)協(xié)同工作,確保不同鏈間的共識(shí)和通信。創(chuàng)新點(diǎn):高安全性、高擴(kuò)展性。應(yīng)用前景:支持不同區(qū)塊鏈網(wǎng)絡(luò)的互操作性。4.5公有鏈共識(shí)算法PoW共識(shí)算法PoW(ProofofWork,工作量證明)共識(shí)算法是一種應(yīng)對(duì)網(wǎng)絡(luò)中可能存在的惡意節(jié)點(diǎn)(拜占庭節(jié)點(diǎn))的機(jī)制。PoW共識(shí)算法的核心是哈希算法(見(jiàn)2.5節(jié)),能夠?qū)⑷魏伍L(zhǎng)度的輸入,通過(guò)哈希函數(shù)轉(zhuǎn)化為固定長(zhǎng)度的輸出,記作y=Hx(),其中H()被稱為哈希函數(shù),通常情況下將素?cái)?shù)的模運(yùn)算作為哈希函數(shù),如Hx()=xmod11等。由哈希函數(shù)的定義可知,其具有正向計(jì)算快速簡(jiǎn)單,卻很難做到逆向計(jì)算的特點(diǎn),大多數(shù)情況下,不同的x會(huì)計(jì)算得到不同的y值,否則將發(fā)生哈希沖突。哈希沖突不是本書討論的重點(diǎn)內(nèi)容,感興趣的讀者可以在課后深入了解哈希算法的相關(guān)內(nèi)容,以及如何處理哈希沖突的情況。在解數(shù)學(xué)難題的過(guò)程中,礦工需要先收集一組交易,并打包成一個(gè)區(qū)塊得到區(qū)塊數(shù)據(jù)data。然后礦工會(huì)生成一個(gè)隨機(jī)數(shù)nonce,并將這個(gè)隨機(jī)數(shù)與區(qū)塊數(shù)據(jù)data和上一個(gè)區(qū)塊的哈希值hprevious進(jìn)行哈希運(yùn)算,得到當(dāng)前區(qū)塊的哈希值hcurrent,即

hcurrent=H(data,nonce,hprevious)如果hcurrent≥htarget,那么礦工需要重新生成一個(gè)隨機(jī)數(shù)nonce,重新進(jìn)行哈希運(yùn)算,直到hcurrent<htarget為止,那么隨機(jī)數(shù)nonce就是數(shù)學(xué)難題的解。由此可見(jiàn),htarget越小,數(shù)學(xué)難題的難度就越大,節(jié)點(diǎn)的求解過(guò)程越困難,需要調(diào)用的算力也就越多。因此,調(diào)整數(shù)學(xué)難題的難度可以通過(guò)控制區(qū)塊生成的時(shí)間間隔來(lái)實(shí)現(xiàn)。

4.5公有鏈共識(shí)算法區(qū)塊結(jié)構(gòu)分叉情況當(dāng)?shù)V工得到數(shù)學(xué)難題的解后,會(huì)將hcurrent、nonce和hprevious打包添加到當(dāng)前區(qū)塊的區(qū)塊頭中,并向網(wǎng)絡(luò)中廣播,讓其他網(wǎng)絡(luò)中的節(jié)點(diǎn)進(jìn)行驗(yàn)證。一旦驗(yàn)證得到通過(guò),解題區(qū)塊就可以得到相應(yīng)的比特幣獎(jiǎng)勵(lì)。

在比特幣網(wǎng)絡(luò)中,最先得到難題的解并通過(guò)驗(yàn)證的區(qū)塊將被加入網(wǎng)絡(luò),完成上鏈。但由于實(shí)際中存在網(wǎng)絡(luò)延遲等問(wèn)題,可能部分節(jié)點(diǎn)在收到最新區(qū)塊消息前也完成了求解,于是可能出現(xiàn)兩個(gè)甚至更多區(qū)塊同時(shí)上鏈的情況,這便是PoW共識(shí)算法的分叉(Fork)4.5

公有鏈共識(shí)算法PoS共識(shí)算法PoS(ProofofStake,權(quán)益證明)共識(shí)算法是一種旨在減少資源消耗并提高效率的區(qū)塊鏈共識(shí)機(jī)制。以下是PoS共識(shí)算法的關(guān)鍵知識(shí)點(diǎn):算法理念:PoS從股份概念中得到啟發(fā),認(rèn)為持有貨幣的節(jié)點(diǎn)應(yīng)有更多影響力。節(jié)點(diǎn)角色:擁有虛擬貨幣的節(jié)點(diǎn)可以將其轉(zhuǎn)化為股份參與共識(shí),這些節(jié)點(diǎn)被稱為驗(yàn)證者(Validator)。幣齡概念:幣齡(Coinage)描述了節(jié)點(diǎn)持有貨幣作為股份的時(shí)間,與貨幣作為股份的時(shí)間長(zhǎng)短呈線性關(guān)系。區(qū)塊生成:PoS在生成區(qū)塊時(shí)也需要解決數(shù)學(xué)難題,但解題難度考慮了幣齡的影響,降低了計(jì)算資源消耗。出塊機(jī)制:節(jié)點(diǎn)持有的幣齡越大,越容易生成滿足要求的區(qū)塊,從而節(jié)省了計(jì)算資源。6.公平性:使用過(guò)的幣齡在區(qū)塊生成后會(huì)被廣播到網(wǎng)絡(luò)中進(jìn)行驗(yàn)證,并通過(guò)驗(yàn)證后清零。7.能源效率:PoS算法相比PoW大大減少了能源和資源消耗,更為經(jīng)濟(jì)實(shí)用。8.安全性問(wèn)題:PoS存在安全性缺陷,攻擊者可能通過(guò)控制大量幣齡來(lái)低成本地發(fā)起攻擊,這被稱為無(wú)利害關(guān)系攻擊。9.比較PoW:PoW要求節(jié)點(diǎn)控制超過(guò)51%的算力才能發(fā)起攻擊,而在PoS中,攻擊者可能通過(guò)控制大量幣齡來(lái)實(shí)現(xiàn)分叉。PoS共識(shí)算法通過(guò)考慮節(jié)點(diǎn)持有貨幣的量和時(shí)間來(lái)分配記賬權(quán),有效地減少了能源消耗,但同時(shí)也引入了新的安全挑戰(zhàn)。這種算法在設(shè)計(jì)上試圖平衡效率和安全性,但也需要持續(xù)的改進(jìn)來(lái)應(yīng)對(duì)潛在的攻擊。4.5公有鏈共識(shí)算法DPoS共識(shí)算法節(jié)點(diǎn)角色:節(jié)點(diǎn)分為候選人(Candidate)、投票人(Voter)和見(jiàn)證人(Witness)。共識(shí)過(guò)程:持幣者作為投票人,從候選人中選舉出多個(gè)見(jiàn)證人,這些見(jiàn)證人負(fù)責(zé)區(qū)塊的生成。去中心化與中心化:DPoS具有一定的去中心化特性,但相比PoW和PoS,它保留了更多的中心化特征。礦池與委托:DPoS認(rèn)為在PoW和PoS系統(tǒng)中,用戶趨向于加入礦池或委托第三方,形成中心化傾向。共識(shí)流程:包括選舉見(jiàn)證人、見(jiàn)證人輪流生成區(qū)塊,以及周期性的重新選舉。候選人注冊(cè):候選人在注冊(cè)時(shí)需要提供個(gè)人信息并支付高額的注冊(cè)費(fèi)用,以確保其認(rèn)真履行責(zé)任。

7.投票機(jī)制:投票人可以對(duì)候選人進(jìn)行投票,支持或反對(duì)他們成為見(jiàn)證人,并根據(jù)表現(xiàn)進(jìn)行評(píng)分。8.系統(tǒng)效率:DPoS算法能夠提供較高的交易吞吐量,滿足大多數(shù)應(yīng)用需求。9.中心化風(fēng)險(xiǎn):盡管DPoS設(shè)計(jì)了權(quán)益分配和權(quán)利制約,但仍然存在中心化風(fēng)險(xiǎn),因?yàn)橐恍┩镀比丝赡懿宦男型镀甭氊?zé)。10.實(shí)際應(yīng)用:DPoS被應(yīng)用于EOS.io、BitShares等區(qū)塊鏈系統(tǒng)中,以實(shí)現(xiàn)高效率和可擴(kuò)展性。DPoS共識(shí)算法通過(guò)委托機(jī)制提高了區(qū)塊鏈系統(tǒng)的效率和可擴(kuò)展性,但這種算法在一定程度上犧牲了去中心化程度,需要在設(shè)計(jì)時(shí)就考慮到權(quán)益分配和權(quán)利制約,以避免中心化帶來(lái)的潛在問(wèn)題。4.6

聯(lián)盟鏈共識(shí)算法PBFT共識(shí)算法PBFT共識(shí)算法的核心過(guò)程

PBFT共識(shí)算法視圖變更流程1.PBFT共識(shí)算法背景PoW和PoS:常用于公有鏈,具有較高安全性,但吞吐量低,交易確認(rèn)延遲高。聯(lián)盟鏈需求:節(jié)點(diǎn)少,對(duì)吞吐量和交易確定性要求高。適用場(chǎng)景:

不考慮拜占庭錯(cuò)誤:可采用RAFT輕量級(jí)共識(shí)算法。考慮拜占庭錯(cuò)誤:優(yōu)先選擇PBFT共識(shí)算法。2.PBFT共識(shí)算法介紹定義:實(shí)用性拜占庭容錯(cuò)(PracticalByzantineFaultTolerance)算法。提出:由米格爾·卡斯特羅(MiguelCastro)和巴巴拉·利斯科夫(BabaraLiskov)在1999年提出。核心理論:滿足條件N≥3F+1,其中N為節(jié)點(diǎn)總數(shù),F(xiàn)為錯(cuò)誤節(jié)點(diǎn)數(shù)量。優(yōu)化:時(shí)間復(fù)雜度降低至O(n2)。3.Quorum機(jī)制來(lái)源:鴿巢原理。作用:確保數(shù)據(jù)冗余存儲(chǔ)情況下的最終一致性,本質(zhì)為一種投票機(jī)制。投票機(jī)制:讀取操作需要的票數(shù):qr。寫入操作需要的票數(shù):qw。需滿足條件:qr+qw>n和qw>n/2。4.6

聯(lián)盟鏈共識(shí)算法PBFT共識(shí)算法4.核心過(guò)程PBFT的共識(shí)過(guò)程分為三個(gè)階段:預(yù)備階段(Pre-prepare):主節(jié)點(diǎn)廣播預(yù)備消息,其他節(jié)點(diǎn)驗(yàn)證合法性。準(zhǔn)備階段(Prepare):從節(jié)點(diǎn)廣播準(zhǔn)備消息,收集足夠的準(zhǔn)備消息(2f+1條)進(jìn)入準(zhǔn)備狀態(tài)。提交階段(Commit):收集足夠的提交消息(2f+1條),進(jìn)入提交狀態(tài)并執(zhí)行操作。執(zhí)行結(jié)果反饋給客戶端。5.垃圾回收機(jī)制檢查點(diǎn)流程:用于定期清理冗余的共識(shí)數(shù)據(jù)。每K次請(qǐng)求后執(zhí)行一次檢查點(diǎn)。高低水位機(jī)制:通過(guò)設(shè)定高水位(H)和低水位(h)限制系統(tǒng)緩存的數(shù)據(jù)量。6.視圖變更機(jī)制觸發(fā)條件:主節(jié)點(diǎn)失效或被認(rèn)為存在問(wèn)題時(shí)觸發(fā)。視圖編號(hào)更新:視圖變更時(shí),編號(hào)v+1,主節(jié)點(diǎn)切換到下一個(gè)節(jié)點(diǎn)。變更過(guò)程:節(jié)點(diǎn)廣播view-change消息,附帶舊視圖共識(shí)日志。新主節(jié)點(diǎn)匯總view-change-ack消息,確認(rèn)非拜占庭節(jié)點(diǎn)發(fā)出的變更請(qǐng)求,生成new-view消息,恢復(fù)必要的共識(shí)數(shù)據(jù)。7.PBFT共識(shí)算法的優(yōu)缺點(diǎn)優(yōu)點(diǎn):抵抗拜占庭行為,保證高交易吞吐量。無(wú)分叉現(xiàn)象。缺點(diǎn):通信復(fù)雜度高,達(dá)到O(n2)。無(wú)法防御女巫攻擊,需額外模塊輔助處理身份偽造問(wèn)題。8.應(yīng)用場(chǎng)景PBFT廣泛應(yīng)用于聯(lián)盟鏈、分布式系統(tǒng)中,特別是對(duì)交易吞吐量和確定性要求較高的場(chǎng)景。

5.共識(shí)算法的未來(lái)發(fā)展5.Futuredevelopmentofconsensusalgorithms055.1挑戰(zhàn)與機(jī)遇:1.算力要求日益增長(zhǎng)隨著區(qū)塊鏈網(wǎng)絡(luò)規(guī)模的擴(kuò)大,共識(shí)算法對(duì)算力的要求越來(lái)越高,這增加了參與門檻和能源消耗。2.安全威脅日益嚴(yán)重近年來(lái),針對(duì)共識(shí)算法的攻擊事件頻發(fā),51%算力攻擊和雙重支付問(wèn)題嚴(yán)重威脅了區(qū)塊鏈系統(tǒng)的穩(wěn)定性。3.去中心化與技術(shù)效率的平衡在去中心化追求與技術(shù)效率提升之間尋找平衡,成為共識(shí)算法發(fā)展的關(guān)鍵挑戰(zhàn)之一。4.跨鏈共識(shí)技術(shù)興起隨著區(qū)塊鏈技術(shù)的廣泛應(yīng)用,跨鏈共識(shí)技術(shù)成為連接不同區(qū)塊鏈網(wǎng)絡(luò)、實(shí)現(xiàn)價(jià)值互通的重要機(jī)遇。5.2共識(shí)算法的安全性1.51%攻擊

-定義:攻擊者控制了全網(wǎng)超過(guò)50%的計(jì)算能力或權(quán)益,能夠篡改交易記錄。

-防御機(jī)制:提高攻擊成本、采用混合共識(shí)機(jī)制。2.女巫攻擊(SybilAttack)

-定義:攻擊者創(chuàng)建多個(gè)虛假身份以控制網(wǎng)絡(luò)。

-防御機(jī)制:采用權(quán)益證明、引入身份驗(yàn)證機(jī)制。3.拜占庭容錯(cuò)問(wèn)題(ByzantineFaultTolerance,BFT)

-定義:系統(tǒng)能在部分節(jié)點(diǎn)惡意或故障的情況下正常運(yùn)行。

-例子:PBFT、Tendermint。5.3共識(shí)算法的數(shù)學(xué)基礎(chǔ)1.博弈論

-定義:研究在不同參與者間決策的相互影響。

-應(yīng)用:分析礦工在PoW中的策略選擇、權(quán)益持有者在PoS中的投票行為。2.概率論

-定義:研究隨機(jī)現(xiàn)象的數(shù)學(xué)理論。

-應(yīng)用:評(píng)估共識(shí)算法中的隨機(jī)選舉機(jī)制(如Algorand中的VRF)。3.分布式系統(tǒng)理論

-定義:研究多個(gè)計(jì)算單元如何協(xié)同工作。

-應(yīng)用:設(shè)計(jì)和分析共識(shí)算法的容錯(cuò)機(jī)制、性能優(yōu)化。工作證明(ProofofWork,PoW):在PoW中,節(jié)點(diǎn)通過(guò)解決復(fù)雜的計(jì)算問(wèn)題來(lái)驗(yàn)證交易并添加新區(qū)塊。比特幣是一個(gè)使用PoW的典型例子。權(quán)益證明(ProofofStake,PoS):在PoS機(jī)制中,驗(yàn)證者的選擇基于其持有的代幣數(shù)量和持有時(shí)間。以太坊等網(wǎng)絡(luò)使用PoS共識(shí)。權(quán)威證明(ProofofAuthority,PoA):PoA要求參與者以其身份和聲譽(yù)作為抵押,適用于私有鏈場(chǎng)景,如供應(yīng)鏈管理。覆蓋證明(ProofofCoverage,PoC):PoC用于驗(yàn)證網(wǎng)絡(luò)熱點(diǎn)確實(shí)提供了它們聲稱的無(wú)線網(wǎng)絡(luò)覆蓋。例如,Helium網(wǎng)絡(luò)使用PoC?;顒?dòng)證明(ProofofActivity,PoA):PoA結(jié)合了PoW和PoS的特點(diǎn),例如,Decred網(wǎng)絡(luò)就采用這種機(jī)制。身份證明(ProofofIdentity,PoI):PoI通過(guò)比對(duì)用戶私鑰和授權(quán)身份來(lái)驗(yàn)證參與者的身份。思考題Reflectionquestions0601030204共識(shí)算法如PoW、PoS等各具特色,滿足不同區(qū)塊鏈項(xiàng)目需求,展現(xiàn)了技術(shù)創(chuàng)新的多樣性。研究顯示,采用成熟共識(shí)算法的區(qū)塊鏈系統(tǒng),如采用PoW的Bitcoin,在安全性方面表現(xiàn)優(yōu)異,成功抵御了多次攻擊。與早期PoW相比,PoS等新型共識(shí)算法在能源效率上有所提升,顯著降低了區(qū)塊生成成本,促進(jìn)了區(qū)塊鏈技術(shù)的可持續(xù)發(fā)展。共識(shí)算法如BFT、PBFT等通過(guò)節(jié)點(diǎn)間的相互驗(yàn)證,實(shí)現(xiàn)了網(wǎng)絡(luò)的高度去中心化,增強(qiáng)了區(qū)塊鏈系統(tǒng)的魯棒性。共識(shí)算法多樣性共識(shí)算法安全性共識(shí)算法效率共識(shí)算法去中心化1、

什么是分布式系統(tǒng)中的共識(shí)問(wèn)題?共識(shí)正確性需要滿足哪些特征?共識(shí)通信模型分類假設(shè)區(qū)別不選異步模型的原因共識(shí)通信模型主要包括同步模型、部分同步模型和異步模型,基于網(wǎng)絡(luò)通信的不同假設(shè)。同步模型假設(shè)所有節(jié)點(diǎn)在同一時(shí)間步內(nèi)完成通信,部分同步模型允許延遲但存在全局穩(wěn)定時(shí)間,異步模型則無(wú)時(shí)間限制,導(dǎo)致共識(shí)難度增加。不基于異步模型研究共識(shí)問(wèn)題,因異步網(wǎng)絡(luò)下的不確定性使達(dá)成共識(shí)的算法設(shè)計(jì)和分析變得極為復(fù)雜且難以保證安全性。2、共識(shí)的通信模型有哪幾類?其中的假設(shè)區(qū)別是什么?為什么不基于異步模型研究共識(shí)問(wèn)題?拜占庭將軍問(wèn)題定義了分布式系統(tǒng)中可能遇到的節(jié)點(diǎn)故障模式,強(qiáng)調(diào)了在容錯(cuò)性設(shè)計(jì)中需考慮節(jié)點(diǎn)間信息不一致的復(fù)雜性。拜占庭問(wèn)題定義了容錯(cuò)在分布式系統(tǒng)實(shí)現(xiàn)共識(shí)算法時(shí),需解決拜占庭將軍問(wèn)題,確保即使在節(jié)點(diǎn)故障或惡意行為下,系統(tǒng)也能達(dá)成一致決策。對(duì)共識(shí)算法有重要影響3、什么是拜占庭將軍問(wèn)題?為什么此問(wèn)題在分布式系統(tǒng)的研究中非常重要?4、

FLP不可能定理具體是指什么?其對(duì)共識(shí)算法的研究產(chǎn)生了什么影響?1.FLP定理定義共識(shí)局限FLP不可能定理指出,在異步系統(tǒng)中,即使網(wǎng)絡(luò)是可靠的,也不存在一個(gè)能解決一致性問(wèn)題的算法。它揭示了共識(shí)算法的固有局限。2.推動(dòng)算法創(chuàng)新研究FLP定理激發(fā)了共識(shí)算法領(lǐng)域的創(chuàng)新,推動(dòng)了如Paxos、Raft等實(shí)用性更強(qiáng)的分布式一致性算法的出現(xiàn),這些算法在特定條件下實(shí)現(xiàn)了共識(shí)。3.促進(jìn)容錯(cuò)性考量FLP定理促使研究者更加關(guān)注共識(shí)算法的容錯(cuò)性,因?yàn)樵趯?shí)際應(yīng)用中,網(wǎng)絡(luò)分區(qū)和節(jié)點(diǎn)故障是常態(tài),需要算法能夠在這些情況下保持一致性。5、試比較CAP理論和FLP不可能定理的區(qū)別和聯(lián)系。1.CAP理論與FLP定理的差異性CAP理論關(guān)注分布式系統(tǒng)中一致性、可用性和分區(qū)容忍性的權(quán)衡,而FLP定理則強(qiáng)調(diào)在異步系統(tǒng)中,即使無(wú)故障,也可能無(wú)法就某個(gè)值達(dá)成決策。2.CAP與FLP定理的內(nèi)在聯(lián)系盡管CAP理論和FLP不可能定理聚焦不同,但二者均強(qiáng)調(diào)了分布式系統(tǒng)中的固有挑戰(zhàn),即網(wǎng)絡(luò)通信的不確定性和系統(tǒng)組件的潛在故障對(duì)決策一致性的影響。6、Paxos和RAFT是針對(duì)于拜占庭將軍問(wèn)題模型的嗎?如果不是,請(qǐng)說(shuō)明其模型弱化了哪些拜占庭將軍問(wèn)題中的假設(shè)。1.Paxos和RAFT非針對(duì)拜占庭Paxos和RAFT共識(shí)算法并非直接針對(duì)拜占庭將軍問(wèn)題設(shè)計(jì),它們基于更簡(jiǎn)單的故障模型,假設(shè)節(jié)點(diǎn)故障是崩潰-停止型,而非拜占庭型。2.弱化節(jié)點(diǎn)行為假設(shè)拜占庭將軍問(wèn)題假設(shè)節(jié)點(diǎn)可能發(fā)送任意信息,而Paxos和RAFT僅假設(shè)節(jié)點(diǎn)可能失效不響應(yīng)或提供舊信息,不涵蓋任意欺詐行為。3.強(qiáng)化網(wǎng)絡(luò)可靠性Paxos和R

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論