您好,登錄后才能下訂單哦!
本篇內容主要講解“Tendermint核心是什么”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Tendermint核心是什么”吧!
無利害關系
起初,有多種不同的說法來描述權益證明的一般陷阱,無利害關系就在這時被提出。Jae Kwon 2014年5月以“錯誤選擇謬論”的不幸名字第一次提到這個問題
在2014年7月Vitalik把比特幣開發者所描述的確切定義的問題普及推廣為“無利害關系”。問題呈現出此情況:驗證者通過在給定高度為多個有沖突的區塊投票可以有效的破壞安全性而不用付出任何代價。
簡單的PoS實現對于這些攻擊而言是非常脆弱的。災難性的是,因為沒有任何的激勵來鼓勵大家永遠集中在一個獨一的鏈上,并且每次激勵都要同時在相互沖突的鏈條上進行重復簽名,所以為了獲得更多的區塊獎勵,在經濟上最優的策略就變成了盡可能的在多個分杈上進行投票。下面這張圖就展示了:
在簡單的PoS設計中競爭鏈上的期待投票數高于單一鏈上期待的投票數
在工作量證明中,對于在多個鏈上進行挖礦的礦工“懲罰”是他們必須分開他們的計算力(非常稀缺的資源)。在現代非簡并的PoS設計中,這種成本必須嵌入到協議里面以此模仿物理PoW挖礦的限制。
Vitalik Buterin在2014年1月引入的“slasher”概念或協議內懲罰可以減輕這個攻擊。Jae Kwon在同一年進一步推算了此方法,這是實現Tendermint共識協議的第一個迭代進展。苛刻以及允許這種懲罰的條件,對于所有的非簡并BFT協議都是有幫助的,甚至在本文中出現的三種共識都采用了。
遠程攻擊
遠程攻擊來源于用戶不得不撤回保證金的權利。這就產生了一個基本問題,因為這意味著攻擊者可以從任意長度的距離建立一個分杈而不用擔心被削減。一旦保證金被解除綁定,激勵不從某個高度區塊前進行長距離投票就被取消了。換句話說,當超過2/3的驗證者解除了綁定,那么他們就可以惡意的創造包含之前驗證者集的第二條鏈,這可能導致任意的交易。
對于權益證明協議這是相當致命的,因為安全模型必然是“主觀”的。當參與網絡要求大量的社會信息,那么這個安全模型就會被稱為是“主觀的”。一個新節點加入網絡之后,對于當前網絡的狀態可能會得出不同的結論,因為他們的決策是基于主觀信息的,即社會聲譽。在相反面,工作量證明的安全模型必然是“客觀的”,因為當前網絡狀態總是工作量最多的那個狀態,新節點對于網絡狀態的結論總是相同的,因為他們的決策是基于客觀信息。
PoS的遠程攻擊在弱主觀性模型下進行了糾正,這要求接入到網絡中的后續新節點:
當前必須是被綁定的。只相信當前有保證金的驗證節點
解除綁定保證金必須要經過一個"解凍"期。解除綁定之后,代幣需要數周到數月的“解凍”時間,用以實現“同步性”前提(即延遲的消息)
禁止在N個塊之前恢復,其中N是保證金的長度。 這個規則使任何長程分杈無效。
可選擇的將驗證者集存放在PoW的鏈上
Casper(s)和Tendermint采用一種簡單的鎖定機制(“Tendermint”中俗稱“凍結”)來鎖定股權一段時間(幾周到幾個月后“解凍”),以防止任何惡意聯合驗證者 違反安全。在CFFG算法中,一個分杈選擇規則永遠只能修改最終塊之后的塊阻止了遠程攻擊。通過使用時間戳,在CFFG中的長距離分叉試圖修改比最終塊還要更早的塊的時候會被協議直接忽略掉。
卡特爾形式
第三,最后的障礙是面臨任意價值的任何經濟形式都將面對一個真正的寡頭壟斷問題,就算本土加密貨幣也不例外。
“加密貨幣令人難以置信的集中,挖礦算力也是一樣。寡頭壟斷競爭是很多現實市場的常態。少數相對富有的驗證者之間的協調比多數相對貧窮驗證者之間的協調要容易的多。在我們這種情況下,卡特爾形式是完全被預料到的。”
——Vlad Zamfir,Casper的歷史第4章節
Tendermint依靠額外協議管理方法來與寡頭壟斷驗證者進行對抗。雖然在審查制度方面沒有任何協議措施,但依靠帶外社會信息解決卡特爾形成,其中的基本原理是:用戶最終將不可避免地注意到卡特爾的形成,社會上也會對此到處八卦,然后放棄或者投票重新組織受到攻擊的區塊鏈。
到目前為止,Vlad的Casper協議是唯一一個明確使用共識內審查激勵來打擊卡特爾形式一種模式。
有很多不同的方式來實現權益證明的算法,但是權益證明設計的兩個主要原理是基于鏈的PoS和基于拜占庭容錯(BFT)的PoS。Tendermint是基于拜占庭容錯的PoS設計,CTFG是基于鏈的PoS設計,而CFFG則混合了兩者。
計算機科學中的CAP理論(https://en.wikipedia.org/wiki/CAP_theorem)返回在分布式數據系統中提供超過2/3擔保的不可能性:可用性、一致性、分區容錯。基于鏈的PoS算法傾向于選擇可用性高的而不選擇一致性高的,因為可用性高意味著所有的交易都能被處理,不過要以犧牲整個網絡中一致性狀態復制為代價。基于BFT的卻相反,會傾向于選擇高一致性。
基于BTF的權益證明
拜占庭容錯共識算法源于30多年的豐富研究。Tendermint(2014)是Castro和Liskov在1999年引入的實用拜占庭容錯(PBFT)算法的第一個PoS的改編版。基于BFT的PoS協議偽隨機的安排一個驗證者在多輪投票的過程中提出一個區塊。但是,提交和最終化區塊取決于大多數——所有驗證者中2/3的驗證者在提交的區塊中簽名。在區塊最終化之前可能需要進行幾輪(譯者注:這種多輪投票和現實世界的波爾卡舞蹈類似, 這也是polkadot 名字的由來)簽名。BFT系統只能容錯1/3的失敗,其中失敗包括故障或是惡意的攻擊。
Tendermint核心
Tendermint主要包含兩個主要的技術:區塊鏈共識引擎和通用的應用接口。共識引擎被稱為Tendermint核心模塊,確保相同的交易在每個機器中都按照相同的順序被記錄下來。應用接口被稱為應用區塊鏈接口(ABCI),讓交易可以被任何編程語言編寫的程序處理。
在核心模塊中,Tendermint基于循環投票機制進行工作,這也是共識協議的原理。一個回合被分成3個處理步驟:驗證者提出一個塊、發送提交意圖、簽名后提交一個新區塊。這種機制為原子廣播提供了一個安全的狀態復制機,增加了一個責任層——安全故障可以完全歸結于Tendermint。
Tendermint共識算法從驗證者集開始。驗證者們都維護了一份區塊鏈的全拷貝,并且可以用公鑰來識別驗證者的身份。在每個新的塊高度他們輪流的提出一個區塊。每輪投票都只有一個驗證者可以提出塊,并且要用驗證者相應的私鑰對此進行簽名,這樣的話如果有錯誤發生就可以找到為此負責的驗證者。然后剩下的驗證者就需要對每個提議都進行投票,投票都需要用自己的私鑰進行簽名。這些組成一個回合。不過可能因為網絡的異步需要好幾個回合才能提交一個新塊。
驗證者提交塊的時候由于幾種原因可能會失敗:當前的提議可能下線了,或者網絡可能遇到了延遲。Tendermint允許驗證者可以被跳過(就是輪到一個驗證者出塊的時候但是此驗證者沒出塊)。驗證者在移到下一輪投票之前等待一小段時間來接收提議者(此輪出塊的驗證者)提出的整個區塊。這種對超時的依賴讓Tendermint成為一個弱同步協議,而不是一個異步協議。不過,剩下的協議是異步的,并且驗證者只有在接收到了超過2/3的驗證者集消息時才會進行處理事物。正是因為這樣,所以Tendermint需要大多數的驗證者可以100%正常運行,如果1/3或更多的驗證者離線或脫機,網路就會停止運行了。
假設少于1/3的驗證者是拜占庭,Tendermint保證安全永遠不會被破壞——也就是,驗證者(2/3以上)永遠不會在同一個高度提交沖突的區塊。因此,基于Temdermint的區塊鏈永遠不會分叉。
目前為止,Tendermint的設計決策確實是把安全性和不可改變性地位放在了靈活性之上。在現實世界上有相當高的可能性是,系統真的會停止運行,參與者將會需要在協議外組織在某種軟件上更新后重啟系統。
在數字加密貨幣社區中只有少數人理解 Casper以及為什么它很有價值的時候,Tendermint就為Casper研究奠定了基礎。這個洞察力就是:如果一個鏈的本身是高度容錯的,那么你就可以依賴鏈來對于誰來生產區塊做出一個好的決定,但是如果鏈的本身就是不可靠的,那么你就陷入了雞和雞蛋的問題中去了,這也是之前所有其他共識算法的滅頂之災。
這個設計決策被認為不如可用性優先的協議例如以太坊和比特幣。比特幣中的權衡是:如果它的網絡被分裂了,比特幣在各種攻擊的情況下就失去了它的安全保證。這其實就是一個不可修改理論,也就是你的置信區間是100%的時候,那么你跟隨的就是一條正確的鏈,你會使用這條鏈來選擇誰來生產下個區塊,但是一旦你轉移到一條不安全的鏈上之后,并沒有一條明確的路徑讓你回到正確的鏈上。
Tendermint的明確屬性
可證明的活躍性
安全閾值:1/3的驗證者
公有/私有鏈相容
即時的最終確定性:1-3秒,取決于驗證者數量
一致性優先
在弱同步性網絡的共識安全
基于鏈的權益證明
基于鏈的權益證明模仿了工作量證明共識算法,在此權益證明中協議讓偽隨機選擇出來的驗證者產生一個新塊,新塊是哈希連接(包含上個塊的哈希值)到前一個最長鏈的父區塊上。基于鏈的PoS非常依賴同步的網絡,通常優先考慮可用性而非一致性。Casper(s)對于傾向于活躍性而非安全性環境而言,它就是Tendermint核心思想的一個改編。
CFFG
CTFG是一個明確的PoS構造,但是CFFG是一個覆蓋在已存在的以太坊PoW提議機制上的PoS——融合了PoW和PoS兩者,由Vitalik Buterin帶領實現。
比特幣和以太坊的PoW共識協議都不會做“最終”決定,并且區塊可能會潛在的被重新組織到一些過去區塊高度。當區塊沒有機會再被修改的時候才能稱為“最終確定”的。因為工作量證明沒有提供這樣的修改保證,所以它被認為是共識不安全的。相反,當我們持續加長鏈的時候區塊的最終確定性概率也越來越高。為了為以太坊區塊鏈增加想要的最終確定性和51%的攻擊阻力,CFFG實現的邏輯就完美的提供了這種效果。
CFFG將通過多個步驟推出,以保守的方式將以太坊的PoW安全模式逐漸過渡到PoS安全模式。Casper的第一個迭代將會是實現這里討論的混合PoW/PoS協議,Casper的最后一個迭代很有可能吸取CFFG和CTFG的教訓,朝著一個完整的PoS協議發展。
CFFG是基于鏈的PoS和基于BFT的PoS的之間的混合體,因為它吸取了兩者的思想。它的模塊化覆蓋設計讓現在的PoW鏈的更新變得更加容易,因為它對于將系統升級到完全不同的共識模式而言是一種更保守的方法。
Casper的應用邏輯存在于智能合約的內部。要想在Casper中成為驗證者,必須要有ETH并且要將ETH存儲到Casper智能合約中作為杠桿的權益。在Casper第一次迭代中區塊提議的機制會被保留:它依然使用Nakamoto PoW共識,礦工可以創建區塊。不過為了最終化區塊,Casper的PoS覆蓋掌握控制權,并且擁有自己的驗證者在PoW礦工之后進行投票。
Casper的PoS共識最重要的一個部分就是檢查點(checkpoints)。Casper在50區塊增量的時候評估最終確定性就稱之為檢查點,每50個塊片段就稱之為周期(epoch)。通過驗證者在每個周期發送投票消息時觸發這個處理過程。
在一個周期前最終化檢查點需要2個周期才能完成,也就是需要兩輪投票。例如,當超過2/3的驗證者(也就是大多數)給一個檢查點c投票了,那么就說這個檢查點已經被"審判"了。下一個周期,當大多數人給檢查點c投票了,會發生兩件事情:c變成了被審判的并且c已經最終化了。c這個周期也就代表著最后一個最終化的周期(LFE)。
回顧一下,一個區塊最終化需要兩個條件:
大多數(超過2/3)驗證者在周期1的時候給區塊1進行了投票,因此審判了區塊1
大多數(超過2/3)驗證者在周期2的時候給區塊2進行了投票,區塊2是區塊1的子區塊,因此在周期2的時候最終化了區塊1
在理想執行中,一個區塊的最終化是按照下面的步驟的:
區塊1的2/3投票→審判區塊1→2/3投票區塊2→最終化區塊1
其中區塊2是區塊1的子區塊
當一個檢查點被最終化之后驗證者就會得到報酬。不過,如果有兩個最終化的檢查點在相同高度上分杈時,那么就破壞了安全性,這個時候就達到了消減的條件,最少1/3的保證金將會被消減掉。當安全性被破壞的時候可以將錯誤歸因的證據當作交易廣播給PoW的礦工。然后PoW就將這個證據交易組成一個區塊來進行挖礦,提交了這個證據的驗證者會得到查找者的費用。當此事發生的時候,簽署了在沖突區塊的有罪驗證者將會在兩條鏈上被消減掉。
現在如果一個礦工進行蠻力攻擊,那么會發生什么?現在Casper的最終化區塊鏈可以防止PoW的攻擊者,就算是51%或者更多的計算力重寫最新檢查點之外的歷史也會被阻止。因此,Casper協議提供了安全。不像CTFG,因為CFFG就是不同提議機制上的一層覆蓋,Casper不能確保活躍性,因為活躍性是取決于提議機制的。
驗證者是被激勵著集合在權威鏈上的,因為如果他們持續在不同的鏈上進行投票將會受到懲罰。slasher 2.0的形成讓驗證者不僅僅會為雙重投票而受罰也要為在不正確的鏈上進行投票而受到懲罰。不過這也造成了一個“泄氣”的窘境,因為驗證者擔心如果出現一個分杈而自己不確定到底哪個才是權威的,然后投錯票之后被消減所以選擇退出投票。
CFFG的明確屬性
最終化:超過20分鐘最終化。每隔50塊(一個周期)就最終化一次區塊,防止PoW挖礦暴利攻擊
共識安全性
可證明的活躍性
優先可用性
CTFG
CTFG是Vlad Zamfir的正確構造(CBC)共識協議專用于對抗寡頭壟斷的真實世界的環境。CTFG是工作量證明中GHOS(https://eprint.iacr.org/2013/881.pdf)或GHOST協議的PoS改編版,用于其分杈選擇規則。CTFG背后的指導設計原則是基于加密經濟學的,使用旨在實現評估安全的正規方法。與前面詳細說明的CFFG混合協議不同,CTFG是純粹的權益證明的概念。
“Casper剛剛開始的時候只是簡單的‘友好的幽靈’,它對于PoS而言是GHOST的改編,完善的激勵讓卡特爾‘友善地’變成‘非卡特爾’的驗證者。”
——Vlad Zamfir,Casper的歷史第5章
與工作量證明類似,CTFG會為一致性和可用性進行權衡。特別,在區塊沒有被最終化的時候,隨著在鏈中的深度越深的它們就會越安全。CTFG與CFFG有一點相似,鏈頭部的處理總是比區塊最終化的處理要快很多。
Casper的PoS提議機制與Tendermint提議機制最大的區別是相比較偽隨機選擇領導者,前者的驗證者可以基于自己見到的塊提出塊。
Casper提供的一個獨特功能是參數化安全閾值。與比特幣中使用6個確認來確定一個經濟最終狀態類似,CTFG中的“評估安全”提供了一個驗證者可以有一個與其他驗證者不同的安全閾值功能。Casper的設計目標是在網絡維持PoS低開銷的時候能夠允許驗證者選擇自己的容錯閾值。
Casper對Tendermint的核心優勢在于網絡隨時可以容納一定數量的驗證者。因為Tendermint中的區塊在創建的時候需要最終化,所以區塊的確認時間應該短一點。為了達到短區塊時間,Tendermint PoS能夠容納的驗證者數量就需要有個限制。由于CTFG和CFFG到在區塊創建的時候都不需要安全性,所以以太坊網絡相對于cosmos容納100個驗證者來說,可以容納驗證者的數量會更加的多一點。
CTFG的明確屬性
可用性。Casper的節點在它們達成共識之前可以塊分杈
異步安全性
生存。Casper的決策可以在部分同步中存活,但是不能在異步中存活
卡特爾阻力。Casper的整個前提是建立在抵制寡頭壟斷攻擊者基礎之上,因此不會有任何勾結的驗證者可以超越協議
安全性。取決于每個驗證者的評估安全閾值
到此,相信大家對“Tendermint核心是什么”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。