區(qū)塊鏈共識算法是什么?有哪些類型?區(qū)塊鏈共識算法工作原理與類型介紹
公鏈?zhǔn)墙?0 年來最重要的技術(shù)創(chuàng)新之一。區(qū)塊鏈網(wǎng)絡(luò)是一種分布式數(shù)據(jù)分類賬,不可變,僅附加,受加密機(jī)制保護(hù)。區(qū)塊鏈?zhǔn)箙⑴c者網(wǎng)絡(luò)能夠在不依賴中央機(jī)構(gòu)的情況下存儲和更新記錄,同時(shí)保持?jǐn)?shù)據(jù)完整性和防篡改性。
要實(shí)現(xiàn)這些屬性,網(wǎng)絡(luò)必須持續(xù)商定交易分類賬的有效版本。這一共享協(xié)議被稱為共識,維護(hù)這一協(xié)議是任何區(qū)塊鏈系統(tǒng)可靠性和安全性的基礎(chǔ)。
在本文中,我們將討論什么是共識算法,它如何作為更廣泛區(qū)塊鏈流程的一部分發(fā)揮作用,去中心化網(wǎng)絡(luò)如何達(dá)成共識,以及目前業(yè)界正在實(shí)施哪些流行的共識算法。
關(guān)鍵要點(diǎn):
- 共識算法對于區(qū)塊鏈網(wǎng)絡(luò)至關(guān)重要。它們確保所有節(jié)點(diǎn)在單一的防篡改賬本狀態(tài)上達(dá)成一致,解決沖突,避免雙重支出等問題,從而在去中心化系統(tǒng)中保持信任和完整性。
- 共識算法是確保區(qū)塊鏈網(wǎng)絡(luò)中的所有節(jié)點(diǎn)都對分布式分類賬的狀態(tài)達(dá)成一致的機(jī)制。
- 最常用的共識算法包括工作證明、質(zhì)押證明、委托質(zhì)押證明、實(shí)際的拜占庭容錯(cuò)和授權(quán)證明。
什么是共識算法?
區(qū)塊鏈網(wǎng)絡(luò)是一種去中心化系統(tǒng),其中多個(gè)節(jié)點(diǎn)維護(hù)共享交易分類賬。每個(gè)節(jié)點(diǎn)都是一臺計(jì)算機(jī)(連接到網(wǎng)絡(luò)),至少持有部分分類賬副本,并參與驗(yàn)證和轉(zhuǎn)發(fā)交易數(shù)據(jù)。交易分為多個(gè)區(qū)塊,每個(gè)新區(qū)塊均引用之前的交易塊,形成一個(gè)按時(shí)間順序排列的鏈。一旦添加到鏈中,區(qū)塊中的數(shù)據(jù)將無法在不影響每個(gè)后續(xù)區(qū)塊的情況下進(jìn)行修改,這使得賬本防篡改且不可更改。
為了使該系統(tǒng)可靠運(yùn)行,所有參與節(jié)點(diǎn)必須就賬本的當(dāng)前狀態(tài)達(dá)成一致。由于節(jié)點(diǎn)獨(dú)立運(yùn)行,并可能在不同的時(shí)間接收數(shù)據(jù),因此需要一種機(jī)制來解決沖突,并確保每個(gè)誠實(shí)節(jié)點(diǎn)都能看到和接受同一版本的分類賬。共識算法就在這方面變得至關(guān)重要。
共識算法是用于在交易有效的節(jié)點(diǎn)之間達(dá)成共識的流程,接下來應(yīng)將哪個(gè)區(qū)塊添加到分類賬中。其職責(zé)是確保所有誠實(shí)的參與者在區(qū)塊鏈的單一權(quán)威版本上融合,即使在存在延遲、錯(cuò)誤或惡意行為的情況下也是如此。如果沒有有效的共識機(jī)制,網(wǎng)絡(luò)的不同部分可能會在交易訂單或內(nèi)容上產(chǎn)生分歧,導(dǎo)致雙重支出、數(shù)據(jù)不一致以及對系統(tǒng)完整性失去信任等問題。
共識過程不僅僅涉及多數(shù)規(guī)則,還必須考慮到節(jié)點(diǎn)不誠實(shí)或發(fā)生故障的可能性,這意味著系統(tǒng)必須穩(wěn)健,防止操縱,并抵御鏈的更改和沖突版本。共識算法的設(shè)計(jì)直接影響區(qū)塊鏈的安全性、性能和去中心化程度。它是區(qū)塊鏈架構(gòu)最基本的組成部分之一,也是確保網(wǎng)絡(luò)作為可靠統(tǒng)一系統(tǒng)運(yùn)行的前提條件。
共識算法的工作原理
公鏈共識算法依賴于兩個(gè)相互關(guān)聯(lián)的流程,確保所有參與者都同意分布式網(wǎng)絡(luò)的單一版本。第一個(gè)過程涉及收集交易的方式,而一個(gè)或多個(gè)節(jié)點(diǎn)有權(quán)提出包含這些交易的新區(qū)塊,而第二個(gè)過程涉及在將擬議區(qū)塊永久添加到分類賬之前,在整個(gè)網(wǎng)絡(luò)中共享并由其他節(jié)點(diǎn)驗(yàn)證的方式。
在區(qū)塊鏈上,用戶透過將其發(fā)送到網(wǎng)絡(luò)來不斷發(fā)起交易。這些交易將廣播到所有節(jié)點(diǎn),并被收集并暫時(shí)存儲在未確認(rèn)的交易池中。網(wǎng)絡(luò)不會立即將每筆交易添加到賬本中,而是將一批交易組合到一個(gè)區(qū)塊中。每個(gè)區(qū)塊都包含一系列交易,以及元數(shù)據(jù),例如對前一區(qū)塊的引用、時(shí)間戳和其他協(xié)議特定數(shù)據(jù)。每個(gè)新區(qū)塊均引用其前代產(chǎn)品,確保按時(shí)間順序排列并防止篡改,因此該結(jié)構(gòu)構(gòu)成一個(gè)連續(xù)鏈。
但是,節(jié)點(diǎn)無法隨意向區(qū)塊鏈添加區(qū)塊。網(wǎng)絡(luò)必須確定哪些節(jié)點(diǎn)有權(quán)提出下一個(gè)區(qū)塊。這一任務(wù)代表共識算法中的第一個(gè)關(guān)鍵過程,因區(qū)塊鏈而異。一些系統(tǒng)依賴于競爭性流程,即節(jié)點(diǎn)爭先恐后地解決加密難題,或展示出一種質(zhì)押或授權(quán)形式,以贏得提出下一個(gè)區(qū)塊的權(quán)利。其他人使用選舉或輪換機(jī)制。無論采用哪種方法,選擇過程都旨在控制區(qū)塊提案,從而最大限度地減少沖突區(qū)塊,使網(wǎng)絡(luò)有序進(jìn)行。
有權(quán)向分類賬添加下一個(gè)區(qū)塊的節(jié)點(diǎn)或(節(jié)點(diǎn))會將建議的區(qū)塊廣播到其他節(jié)點(diǎn)以供審核。初步驗(yàn)證的區(qū)塊傳播到整個(gè)網(wǎng)絡(luò)進(jìn)行最終確認(rèn)是共識算法的第二大關(guān)鍵階段。
收到建議的區(qū)塊后,整個(gè)網(wǎng)絡(luò)的節(jié)點(diǎn)開始驗(yàn)證過程。該流程包括多次檢查,以確保區(qū)塊符合區(qū)塊鏈協(xié)議的規(guī)則。節(jié)點(diǎn)首先驗(yàn)證擬議區(qū)塊是否正確引用鏈中的前一個(gè)區(qū)塊,保持分類賬的順序完整性。然后,他們會驗(yàn)證區(qū)塊中包含的每筆交易,確認(rèn)數(shù)字簽名有效,且交易輸入尚未用于之前的區(qū)塊或交易。這樣可以防止雙幣支出,并保持賬本的一致性。
驗(yàn)證還包括檢查所有交易是否符合協(xié)議規(guī)則,例如交易規(guī)模限制、格式和費(fèi)用要求。節(jié)點(diǎn)會檢查擬議區(qū)塊的元數(shù)據(jù),包括時(shí)間戳,以確保區(qū)塊未在允許的時(shí)間窗口之外形成。此外,節(jié)點(diǎn)會驗(yàn)證任何能夠證明提案人有資格或有權(quán)提交區(qū)塊的加密證明或簽名(由使用的共識機(jī)制決定)。
如果任何驗(yàn)證步驟失敗,節(jié)點(diǎn)將拒絕建議的區(qū)塊。拒絕意味著區(qū)塊不會添加到區(qū)塊鏈中,并且會被所有誠實(shí)節(jié)點(diǎn)丟棄。這種拒絕保護(hù)網(wǎng)絡(luò)免受無效數(shù)據(jù)和潛在攻擊。網(wǎng)絡(luò)繼續(xù)依賴最后接受的區(qū)塊,同時(shí)提出有效的下一區(qū)塊重復(fù)。
如果擬議區(qū)塊透過所有驗(yàn)證檢查,則達(dá)成共識。全部誠實(shí)節(jié)點(diǎn)均接受區(qū)塊,并將其永久添加到區(qū)塊鏈的本地副本中。這一集體協(xié)議可確保區(qū)塊鏈在所有節(jié)點(diǎn)中保持單一、一致的記錄。添加區(qū)塊后,節(jié)點(diǎn)會繼續(xù)收集新交易,并為下一個(gè)區(qū)塊提案周期做好準(zhǔn)備。
這種兩步法,即由責(zé)任節(jié)點(diǎn)形成擬議區(qū)塊,并由更廣泛的網(wǎng)絡(luò)進(jìn)一步驗(yàn)證區(qū)塊,代表了區(qū)塊鏈共識的整個(gè)過程。雖然共識算法的選擇和驗(yàn)證機(jī)制有所不同,但這一通用框架可確保網(wǎng)絡(luò)在沒有集中控制的情況下可靠運(yùn)行。它可以防止錯(cuò)誤、惡意行為和不一致,從而破壞對區(qū)塊鏈系統(tǒng)的信任。
區(qū)塊鏈中的共識算法類型
如上所述,每個(gè)共識算法執(zhí)行兩個(gè)關(guān)鍵功能:首先,選擇負(fù)責(zé)提議下一個(gè)區(qū)塊的節(jié)點(diǎn)或節(jié)點(diǎn)組;其次,在整個(gè)更廣泛的網(wǎng)絡(luò)中驗(yàn)證提議的區(qū)塊。
這一過程的第二部分(全網(wǎng)驗(yàn)證)在大多數(shù)區(qū)塊鏈中通常非常相似,涉及各種檢查,例如驗(yàn)證交易簽名,確保正確的區(qū)塊鏈接和雙重支出檢查。然而,根據(jù)所使用的共識算法,第一部分可能會有很大差異。這些差異對網(wǎng)絡(luò)去中心化、能源使用、性能和攻擊脆弱性產(chǎn)生了重大影響。
下面是區(qū)塊鏈網(wǎng)絡(luò)目前使用的五種最常見的共識算法。雖然還有許多其他共識算法正在使用中,但這五種算法被區(qū)塊鏈行業(yè)中大多數(shù)最受歡迎的網(wǎng)絡(luò)使用。
工作證明(PoW)
工作量證明(PoW) 是2009 年推出的首款可行區(qū)塊鏈比特幣(BTC) 推出的兩種最受歡迎的共識算法之一。在PoW 共識算法中,礦工(專業(yè)節(jié)點(diǎn))爭奪復(fù)雜的數(shù)學(xué)難題。解決難題需要大量的計(jì)算努力,這就是為什么它被稱為「工作」。第一位解決這一問題的礦工有權(quán)提出下一個(gè)區(qū)塊并賺取獎(jiǎng)勵(lì),通常是以新幣和交易手續(xù)費(fèi)的形式。
PoW 被廣泛認(rèn)為是高度安全的,因?yàn)楣粽咝枰刂凭W(wǎng)絡(luò)的大部分計(jì)算能力才能操縱鏈。然而,這種安全性是以PoW過程中涉及的高能耗為代價(jià)的,這引起了批評,并導(dǎo)致許多較新的鏈采用替代共識算法。除了比特幣,PoW 還被Litecoin (LTC)和Dogecoin (DOGE) 等使用。
質(zhì)押證明(PoS)
質(zhì)押證明(PoS) 是PoW 的另一種廣泛使用的共識方法。 PoS 沒有使用計(jì)算能力來爭奪區(qū)塊提案權(quán)利,而是根據(jù)其在網(wǎng)絡(luò)上「質(zhì)押」或鎖定的代幣數(shù)量來選擇區(qū)塊驗(yàn)證者。質(zhì)押的代幣越多,被選中提出下一個(gè)區(qū)塊的機(jī)會就越高。
與PoW 不同,PoS 的能效更高,通常能夠加快交易處理速度。隨著Cardano (ADA) 和Polkadot (DOT) 等連鎖店的上線,PoS 得到了廣泛推廣,并在2022 年以太坊(ETH) 從PoW 過渡到PoS 時(shí)進(jìn)一步脫穎而出。每個(gè)網(wǎng)絡(luò)通常都有自己的PoS 變體,對選擇標(biāo)準(zhǔn)進(jìn)行了細(xì)微調(diào)整。
盡管與PoW 相比,PoS 具有更高的能效和更優(yōu)性能,但其自身存在漏洞:這種共識算法可能會導(dǎo)致少數(shù)具有重大代幣風(fēng)險(xiǎn)的驗(yàn)證節(jié)點(diǎn)使用網(wǎng)絡(luò)。這個(gè)問題在以太坊這樣的高度去中心化鏈上可能不那么明顯,但當(dāng)去中心化時(shí),它可能會成為一種真正的風(fēng)險(xiǎn)- 根據(jù)網(wǎng)絡(luò)上活躍驗(yàn)證者的數(shù)量來衡量- 受到限制。
委托質(zhì)押證明(DPoS)
委托質(zhì)押證明(DPoS) 是標(biāo)準(zhǔn)PoS 的一種更具民主代表性的變體。在DPoS 中,包括普通用戶在內(nèi)的代幣持有者將其權(quán)益委托給一組可信的驗(yàn)證節(jié)點(diǎn)。吸引更多權(quán)益的驗(yàn)證者更有機(jī)會獲得下一個(gè)區(qū)塊的提議權(quán)。從本質(zhì)上講,這組較小的驗(yàn)證者節(jié)點(diǎn)會輪流代表更廣泛的社區(qū)提出和驗(yàn)證交易區(qū)塊。
該模型可實(shí)現(xiàn)更快的共識和更大的可擴(kuò)展性,因?yàn)樵谌魏谓o定時(shí)間,提議區(qū)塊的節(jié)點(diǎn)數(shù)量更少。此外,它還能提升用戶參與度,即使是小型代幣持有者也可以透過委托影響共識結(jié)果。然而,批評者認(rèn)為,它可能會減少去中心化,因?yàn)樗鼘?quán)力集中在少數(shù)代表身上。使用DPoS 的網(wǎng)絡(luò)示例包括EOS (EOS) 和TRON (TRX)。
實(shí)際拜占庭容錯(cuò)(PBFT)
實(shí)踐拜占庭容錯(cuò)(PBFT) 最初是在20 世紀(jì)90 年代為分布式計(jì)算系統(tǒng)開發(fā)的,后來又改編用于區(qū)塊鏈技術(shù)。其設(shè)計(jì)旨在透過有限數(shù)量的已知驗(yàn)證者(通常是私有區(qū)塊鏈)在去中心化計(jì)算機(jī)網(wǎng)絡(luò)中高效工作。在PBFT 中,節(jié)點(diǎn)透過一系列輪次達(dá)成共識,包括提議區(qū)塊、對其投票并達(dá)成最終協(xié)議,只要2/3 的節(jié)點(diǎn)一致即可。
PBFT 具有快速的交易決算性和高吞吐量,因此在企業(yè)用例中極具吸引力。然而,它無法很好地?cái)U(kuò)展到數(shù)千個(gè)節(jié)點(diǎn),這限制了其在開放的去中心化網(wǎng)絡(luò)中的使用。受PBFT 啟發(fā)的模型用于Hyperledger Fabric 和Tendermint 等區(qū)塊鏈,后者為Cosmos (ATOM) 生態(tài)系統(tǒng)提供支持。
授權(quán)證明(PoA)
授權(quán)證明(PoA) 是一種共識算法,在該算法中,區(qū)塊提議者會獲得預(yù)先批準(zhǔn)并識別實(shí)體,通常是聲譽(yù)良好的公司或個(gè)人。驗(yàn)證者并非透過計(jì)算能力或質(zhì)押代幣進(jìn)行競爭,而是根據(jù)身份和可信度進(jìn)行選擇。
PoA通常用于許可區(qū)塊鏈,其中速度、效率和基于身份的信任比去中心化更重要。它能夠?qū)崿F(xiàn)快速最終性和高交易吞吐量,但經(jīng)常因過于集中而受到批評。VeChain(VET) 等網(wǎng)絡(luò)和眾多獲許可的企業(yè)鏈已達(dá)成PoA 共識。
結(jié)語
共識算法是區(qū)塊鏈網(wǎng)絡(luò)的支柱。它們對于確保所有參與者都同意單一防篡改版本的賬本至關(guān)重要。整個(gè)流程包括選擇區(qū)塊提議者和驗(yàn)證整個(gè)網(wǎng)絡(luò)的區(qū)塊,而選擇提議者的特定方法真正使這些算法與眾不同。
從能源密集型PoW 到高效可擴(kuò)展的PoS 和DPoS 等模型,每種算法在安全性、去中心化和性能方面都體現(xiàn)出不同的權(quán)衡。選擇正確的共識機(jī)制取決于區(qū)塊鏈的目標(biāo)和設(shè)計(jì),無論是公開的、無許可的網(wǎng)絡(luò)還是更集中的企業(yè)解決方案。
以上就是區(qū)塊鏈共識算法是什么?有哪些類型?區(qū)塊鏈共識算法工作原理與類型介紹的詳細(xì)內(nèi)容,更多關(guān)于區(qū)塊鏈共識算法介紹的資料請關(guān)注腳本之家其它相關(guān)文章!
你可能感興趣的文章
-
區(qū)塊鏈技術(shù)科普:什么是拜占庭將軍問題?
區(qū)塊鏈與拜占庭將軍問題有著密切的聯(lián)系,區(qū)塊鏈網(wǎng)絡(luò)是一種分布式網(wǎng)絡(luò),其節(jié)點(diǎn)就像拜占庭將軍一樣,需要在不可靠的網(wǎng)絡(luò)環(huán)境中達(dá)成交易和數(shù)據(jù)的共識,那么,什么是拜占庭將軍…
2024-07-30 -
區(qū)塊鏈時(shí)代我們該如何選擇共識算法?
隨著區(qū)塊鏈技術(shù)的發(fā)展,共識算法成為了區(qū)塊鏈的核心技術(shù)之一,共識算法是指在區(qū)塊鏈網(wǎng)絡(luò)中,各個(gè)節(jié)點(diǎn)之間達(dá)成共識的一種算法,是區(qū)塊鏈技術(shù)中不可或缺的一環(huán),對于區(qū)塊鏈時(shí)代…
2023-08-08 -
什么是區(qū)塊鏈共識算法?共識算法有哪些?
這篇文章主要介紹了什么是區(qū)塊鏈共識算法?共識算法有哪些?共識算法可以被定義為使區(qū)塊鏈網(wǎng)絡(luò)達(dá)成共識的機(jī)制。最常見的共識算法類型是工作量證明(PoW)和權(quán)益證明(PoS)…
2021-04-08 -
以太坊共識算法是什么?ETH使用的共識協(xié)議介紹
這篇文章主要介紹了以太坊共識算法是什么?ETH使用的共識協(xié)議介紹,以太坊作為目前全球數(shù)字貨幣排行榜第二的存在,要說到以太坊共識算法,新手們一臉蒙圈,目前共識算法比…
2021-03-25