区块链共识算法Proof-of-Stake (PoS/权益证明) 常见问题解答 (1)
Original post:?https://github.com/ethereum/wiki/wiki/Proof-of-Stake-FAQ
?什么是Proof-of-Stake
權益證明(PoS)是一種公共區塊鏈的共識算法類別,它依賴于驗證者在網絡中的經濟利益?。?在基于工作證明(PoW)的公共區塊鏈(比如比特幣和當前實施的以太坊)中,算法獎勵解決密碼難題的參與者,以驗證交易并創建新的區塊(即采礦)。?在基于PoS的公共區塊鏈(例如以太坊即將推出的Casper實現)中,一組驗證者輪流在下一個區塊提出投票并投票,每個驗證人投票的權重取決于其存款的大小(即股權)。?PoS的顯著優勢包括安全性,集中化風險降低和能源效率?。
一般來說,賭注算法的證明如下所示。?區塊鏈跟蹤一組驗證器,任何持有區塊鏈基礎加密貨幣(在以太坊的情況下為ether)的人都可以通過發送一種特殊類型的事務來鎖定他們的以太幣進入存款?,從而成為驗證器。?然后通過所有當前驗證者都可以參與的共識算法完成創建和同意新塊的過程。
共識算法有很多種,并且有許多方法可以將獎勵分配給參與共識算法的驗證者,所以存在許多證明利益的“風味”。?從算法的角度來看,有兩種主要類型:基于連鎖的股權證明和BFT風格的股權證明。
在基于鏈的利益證明中?,算法在每個時隙期間偽隨機地選擇驗證器(例如,每10秒的周期可能是一個時隙),并且賦予該驗證器創建單個塊的權利,并且該塊必須指向先前的某個區塊(通常是前一個最長鏈末端的區塊),并且隨著時間的推移,大多數區塊都會匯聚成一個不斷增長的鏈條。
在BFT風格的證據中?,驗證者被隨機賦予建議塊的權利,但是同意哪個塊是規范的是通過多輪處理來完成的,其中每個驗證者在每一輪期間發送對某個特定塊的“投票”,以及在這個過程結束時,所有(誠實的和在線的)驗證者都會永久地同意是否給定的塊是鏈的一部分。?請注意,塊可能仍然鏈接在一起?;?關鍵的區別在于,一個區塊的共識可以在一個區塊內,并且不依賴于它之后的鏈的長度或大小。
?與工作量證明相比,證明利益的好處是什么?
請參閱證明設計理念,以獲得更長期的論證。
簡而言之:
- 為了確保區塊鏈,?不需要消耗大量電力?(例如,估計比特幣和以太坊每天都會耗費超過100萬美元的電力和硬件成本,作為其共識機制的一部分)。
- 由于缺乏高耗電量,為了激勵參與者繼續參與網絡,發行盡可能多的新硬幣并不是那么需要?。理論上甚至有可能出現負凈發行,其中一部分交易費用被“燒掉”,因此供應隨著時間的推移而下降。
- 股權證明為更廣泛的使用博弈論機制設計的技術打開了大門,以便更好地阻止集中卡特爾的形成,并且如果它們確實形成了以對網絡有害的方式行事(例如像自私采礦證明工作)。
- 由于規模經濟問題少得多,所以降低了集中化風險?。?1000萬美元的硬幣將使您獲得比100萬美元硬幣高10倍的回報,而沒有任何額外的不成比例的收益,因為在更高的水平上,您可以購買更好的大規模生產設備。
- 能夠使用經濟處罰來使各種形式的51%攻擊比開展工作證明的開銷大得多 - 將Vlad Zamfir解釋為:“就好像你的ASIC農場被燒毀了,如果你參與了51%的攻擊”。
?利益證明如何適應傳統的拜占庭容錯研究?
拜占庭容錯研究的一些基本結果適用于所有一致性算法,包括PBFT等傳統一致性算法,但也包括任何證據權利算法,以及適當的數學建模和工作證明。
主要成果包括:
- CAP定理?- “在網絡分區發生的情況下,您必須選擇一致性或可用性,您不能同時擁有兩者”。直觀的論點很簡單:如果網絡分成兩半,并且一半發送交易“將我的10個硬幣發送給A”,另一個發送交易“將我的10個硬幣發送給B”,則系統因為一個或兩個交易將不會被處理,或者會變得不一致,因為網絡的一半將看到第一個交易完成,另一半將看到第二個交易完成。?請注意,CAP定理與可伸縮性無關;?它同樣適用于分片和非分片系統。
- FLP不可能?- 在異步設置中(即,即使在正確運行的節點之間,網絡延遲也沒有保證的界限),但不可能創建一種算法,如果甚至一個單一的存在有故障/不誠實的節點。?請注意,這并不排除“拉斯維加斯”算法在每一輪達成共識時都有一定的概率,因此會在T秒內達到一致,隨著T增長,概率呈指數級逼近1;?這實際上是許多成功的共識算法使用的“逃生孵化器”。
- 容錯的界限?- 從DLS文件中我們可以得出?:(i)運行在部分同步網絡模型中的協議(即網絡延遲有約束但我們不知道它是什么)可以容忍多達1 / 3任意(即“拜占庭式”)故障,(ii)異步模型中的確定性協議(即沒有網絡延遲的限制)不能容忍故障(盡管他們的論文沒有提及隨機算法可以達到1/3 (iii)同步模型中的協議(即,網絡延遲保證小于已知的d?)可以令人驚訝地容忍高達100%的容錯性,盡管在多于或等于1/2節點有故障。?請注意,“認證的拜占庭式”模型是值得考慮的模型,而不是“拜占庭式”模型;?“認證”部分基本上意味著我們可以在我們的算法中使用公鑰密碼術,這在現代已經非常好地研究并且非常便宜。
Andrew Miller等人嚴格分析了工作證明,并將其作為一種依賴于同步網絡模型的算法。?我們可以將網絡建模為由幾乎無限的節點組成,其中每個節點代表非常小的計算能力單位,并且在給定時間段內能夠創建塊的可能性非常小。?在該模型中,協議具有50%的容錯能力,假設網絡延遲為零,在實際觀察條件下約為46%(Ethereum)和?49.5%(比特幣)容錯,但如果網絡延遲等于塊,則容量降至33%時間,并隨著網絡延遲接近無窮大而減少到零。
由于所有驗證人都已知身份(穩定的以太坊地址),并且網絡跟蹤驗證程序集的總大小,因此證明利益共識更符合拜占庭容錯共識的模式。?有兩個一般的證據研究證據,一個是同步網絡模型,另一個是部分異步網絡模型。?利益相關算法的“鏈式”證明幾乎總是依賴于同步網絡模型,其安全性可以在這些模型中得到正式驗證,類似于證明工作算法證明的安全性。?在部分同步網絡中連接傳統的拜占庭式容錯共識的研究與利益證明也存在,但更復雜的是要解釋;?它將在后面的章節中詳細介紹。
工作算法證明和基于鏈的證據算法選擇可用性而不是一致性,但是BFT風格的一致性算法更傾向于一致性;?Tendermint明確選擇一致性,Casper使用一種混合模型,該模型優先考慮可用性,但盡可能提供一致性,并使得鏈上應用程序和客戶端都意識到一致性保證在任何給定時間有多強。
請注意,Ittay Eyal和Emin Gun Sirer的自私挖掘發現,根據網絡模型,比特幣挖掘的激勵相容性設置了25%和33%的限制(例如,如果大于25%或33%不可能)與傳統共識算法研究的結果沒有關系,這不會影響激勵相容性。
?什么是“沒有危險”的問題,如何解決?
在許多早期(包括所有連鎖店)的賭金算法證明中,包括Peercoin在內,只會產生獎勵獎勵,并且不會受到懲罰。?這具有不幸的后果,即在有多個競爭鏈的情況下,驗證者試圖一次嘗試在每條鏈上創建塊,只是為了確保:
在工作證明中,這樣做需要將自己的計算能力分解成一半,因此不會有利可圖:
結果是,如果所有參與者都是經濟上狹義的理性的話,即使沒有攻擊者,區塊鏈也可能永遠不會達成共識。?如果存在攻擊者,那么攻擊者只需要壓制無私的節點(誰將獨占原始鏈),而不是理性的節點(誰可以同時關注原始鏈和攻擊者的鏈),而不是工作證明,攻擊者必須壓制利他主義者和理性結點(或者至少可以威脅到:看到P +ε攻擊?)。
有人認為,利益相關者有正確行動的動機,只為了“保持投資價值”而維持最長的鏈條,然而這忽視了這種激勵遭受公共問題的悲劇?:每個利益相關者可能只有一個1%的可能性是“關鍵”(即,如果他們參與攻擊則成功,如果他們不參與則失敗),因此賄賂需要說服他們親自參加攻擊只占其存款規模的1%;?因此,所需的合并賄賂僅為所有存款總額的0.5-1%。?另外,這個論點意味著任何零失敗的情況都不是一個穩定的均衡,就好像失敗的機會是零,那么每個人都有0%的關鍵機會。
這可以通過兩種策略解決。?第一種是在這里以“Slasher”這個名稱廣義描述的,Iddo Bentov?在這里進一步發展,如果它們同時在多個鏈上創建塊,則通過包括錯誤行為的證明(即兩個沖突的簽名塊標題)作為以后的時間點,區塊鏈中的犯罪確認者的存款被適當地扣除。?這樣就改變了激勵結構:
請注意,為了使該算法起作用,驗證程序集需要提前確定。?否則,如果驗證者擁有1%的股份,那么如果有兩個分支A和B,則驗證者只有0.99%的時間有資格只在A上而不在B上,則0.99%的驗證者將會有資格投資B而不是A,并且只有0.01%的時間將會使驗證人有資格同時參與投標。?因此,如果可能的話,驗證人可以以99%的效率概率性地雙重利益:如果可能的話對A的利益,如果可能的話對B的利益,并且只有當兩者之間的選擇是對較長鏈的開放利益時。?只有在兩個分支上的每個塊的驗證器選擇都相同時才能避免這種情況,這需要在fork發生前一次選擇驗證器。
這有其自身的缺陷,包括要求節點經常在線以獲得區塊鏈的安全視圖,并打開中等范圍的驗證器合謀風險(即,例如,30個連續驗證器中的25個會聚并同意提前對前19個街區實施51%的攻擊),但如果這些風險被認為是可以接受的,那么它效果很好。
第二個策略是簡單地懲罰在錯誤鏈上創建塊的驗證器。?也就是說,如果有兩個競爭鏈A和B,那么如果一個驗證者在B上創建一個塊,他們在B上得到+ R的獎勵,但塊頭可以包含到A中(在Casper中稱為a “dunkle”),并且在A上驗證者受到-F(可能是F = R)的懲罰。?這就改變了經濟計算:
這里的直覺是我們可以在證明利益的情況下復制工作證明的經濟學。?在工作證明中,在錯誤的鏈上創建一個區塊也是一種懲罰,但這種懲罰在外部環境中是隱含的:礦工不得不花費額外的電力并獲得或租用額外的硬件。?在這里,我們只是明確規定處罰。?這種機制的缺點是它對驗證者施加了更多的風險(盡管效果應該隨著時間的推移而被平滑掉),但是它的好處是不需要提前知道驗證者。
?這顯示了鏈式算法如何解決風險。?現在BFT風格的證據算法如何工作?
BFT風格(部分同步)證據算法允許驗證者通過發送一種或多種類型的簽名消息對塊進行“投票”,并指定兩種規則:
- 最終條件?- 確定給定哈希何時可以被認定為最終的規則。
- 削減條件?- 決定何時可以認為某個驗證者無可置疑的行為不當(例如同時投票多個沖突塊)的規則。?如果驗證者觸發這些規則之一,則其整個存款將被刪除。
為了說明削減條件可以采取的不同形式,我們將給出兩個削減條件的例子(下文中,“2/3的所有確認者”是“存入硬幣加權的所有確認者的2/3”的簡寫),并且對于其他分數和百分比)。?在這些例子中,“PREPARE”和“COMMIT”應該被理解為簡單地指代驗證者可以發送的兩種類型的消息。
對于一組合適的削減條件,有兩個重要的要求:
- 負責任的安全?- 如果相沖突的HASH1和HASH2?(即HASH1和HASH2不同,并且兩者都不是另一方的后代)最終確定,那么至少有1/3的驗證者必須違反了一些削減條件。
- 似是而非的生活?- 除非所有驗證人中至少有1/3違反了一些削減條件,否則存在一組驗證人可以產生的一組消息,最終確定一些價值。
如果我們有一套滿足這兩個屬性的削減條件,那么我們可以激勵參與者發送消息,并開始從經濟終結中受益。
?一般來說,“經濟終極”是什么?
經濟最終性是這樣的想法,即一旦一個區塊被完成,或者更一般地說,一旦已經簽署了足夠的特定類型的消息,那么在將來任何時候經典歷史將包含沖突區塊的唯一方式是如果大量人們愿意焚燒大量的金錢。?如果一個節點看到這個條件已經滿足給定的塊,那么他們在經濟上有強有力的保證,該塊將永遠是每個人都同意的規范歷史的一部分。
有兩種經濟最終的“味道”:
這兩種終極方法從兩種解決方案中繼承了無關緊要的問題:通過懲罰不正確來實現終結性,并通過懲罰含糊不清來實現終結性。?第一種方法的主要好處是,它更輕量級的客戶端,更容易推理,第二種方法的主要好處是(i)更容易看出誠實的驗證者不會受到懲罰,并且( ii)悲傷因素更有利于誠實的驗證者。
卡斯帕遵循第二種風格,雖然可能會增加鏈上機制,驗證者可以自愿選擇簽署第一種風味的最終消息,從而實現更高效的輕客戶端。
?那么這與拜占庭容錯理論有何關系?
傳統的拜占庭容錯理論除了有一些不同之處外,其他安全性和活性也具有相似的安全性和活性。?首先,傳統的拜占庭容錯理論只要求2/3的驗證者是誠實的就可以實現安全。?這是一個非常容易工作的模型;?傳統容錯試圖證明“如果機制M有安全故障,那么至少1/3節點有故障”,而我們的模型試圖證明“如果機制M有安全故障,則至少有1/3節點是錯誤的,即使你在失敗發生時離線,你也知道哪些是錯誤的。“?從活力的角度來看,我們的模型更容易,因為我們不要求證明網絡會達成共識,我們只是要求證明它不會被卡住?。
幸運的是,我們可以證明額外的責任要求不是特別困難的要求;?實際上,通過使用正確的“協議裝甲”,我們可以將任何傳統的部分同步或異步拜占庭式容錯算法轉換為可交付算法。?這種證據基本上歸結為這樣一個事實,即錯誤可以被徹底地分為幾類,并且這些類中的每一類都要負責任(即,如果你犯了這種錯誤,你可能會被抓到,所以我們可以或者與延遲無法區分(請注意,即使發送郵件過早的錯誤與延遲也沒有區別,因為可以通過加快每個人的時鐘速度并分配未發送得太早的郵件以更高的延遲進行建模) 。
?什么是“弱主觀性”?
值得注意的是,使用存款來確保“存在風險”的機制確實會導致安全模型發生一次變化。?假設存款被鎖定了四個月,以后可以撤回。?假設發生了一次企圖發生的51%的攻擊,恢復了10天的交易。?攻擊者創建的數據塊可以簡單地導入主鏈中,作為瀆職證據(或“dunkles”),驗證者可以受到懲罰。但是,假設這種攻擊發生在六個月后。?然后,盡管這些街區肯定可以重新進口,但到那時瀆職犯罪確認者將能夠在主鏈上收回他們的存款,因此他們不會受到懲罰。
為了解決這個問題,我們引入了一個“回復限制” - 一個規則,即節點必須拒絕進一步恢復到比存款長度更遠的時間(即在我們的示例中為四個月),并且我們還需要節點登錄至少每個存款長度有一個安全的鏈條視圖。?請注意,該規則與協議中的每個其他共識規則都不同,因為這意味著節點可能根據他們何時看到某些消息而得出不同的結論。?節點看到給定消息的時間在不同節點之間可能不同;因此我們認為這個規則是“主觀的”(或者,精通拜占庭容錯理論的人可能認為它是一種同步假設)。
然而,這里的“主觀性”非常弱:為了讓節點進入“錯誤”鏈,他們必須在四個月后收到原始消息。?這只有在兩種情況下才有可能:
我們可以通過使用戶負責驗證帶外最新狀態來解決(1)。?他們可以通過詢問他們的朋友,區塊探索者,他們與之互動的企業等等,來獲得他們認為是規范鏈的最近街區散列。?在實踐中,這種塊散列很可能只是作為他們用來驗證區塊鏈的軟件的一部分;?一個能夠破壞軟件檢查點的攻擊者可以說很容易破壞軟件本身,并且沒有任何純粹的經濟學驗證可以解決這個問題。?(2)確實為節點增加了額外的安全要求,但是再次注意到存在硬性分支和安全漏洞的可能性以及需要了解它們并安裝任何所需的軟件更新的要求,也工作。
請注意,所有這些都只是在一個非常有限的情況下出現的問題,在這種情況下,大多數以前的利益相關者會在某個時間點混合攻擊網絡并創建替代鏈;?大多數時候我們預計只有一個規范鏈可供選擇。
?我們是否可以嘗試使社交認證自動化以減輕用戶的負擔?
一種方法是將其烘焙成自然的用戶工作流程:?BIP 70式支付請求可能包括最近的塊散列,并且用戶的客戶端軟件將在批準付款之前確保它們與供應商處于同一鏈中(或用于這一點,任何鏈上的互動)。?另一種是使用Jeff Coleman的通用散列時間?。?如果使用UHT,那么在建立合法鏈的同時,需要秘密生成一個成功的攻擊鏈,這需要大多數驗證者秘密地串通那么長時間。
?為了證明利益,能否在經濟上懲罰審查?
與回復不同,審查更難以證明。?區塊鏈本身并不能直接說出“用戶A試圖發送交易X但遭到不公正審查”,“用戶A試圖發送交易X但由于交易費用不足而無法進入”和“用戶A從未嘗試過完全發送交易X“。但是,有許多技術可以用來緩解審查問題。
首先是阻止問題的審查阻力。?在該方案的較弱版本中,該協議被設計成圖靈完成的方式,使得驗證器甚至不能分辨給定的交易是否會導致不希望的行為而不花費執行交易的大量處理能力,從而使自己面臨拒絕服務攻擊。?這是阻止DAO軟分叉的原因?。
在該計劃的更強版本中,交易可以在近期或中期的某個未來的某個時間觸發保證效果。?因此,用戶可以發送多個交易,這些交易彼此交互并且與預測的第三方信息相互作用以導致未來的事件,但是驗證者不可能知道在交易已經包括(并且經濟地確定)之前這將發生,阻止他們為時已晚;?即使所有未來的交易都被排除在外,驗證人希望停止的事件仍會發生。?請注意,在這個方案中,驗證者仍然可以嘗試阻止所有的交易,或者也許所有的交易都沒有包含一些正式的證據,證明他們不會導致任何不希望的事情,但是這會導致禁止一系列非常廣泛的交易從根本上破壞了整個系統,這會導致驗證人失去價值,因為他們的存款被稱為加密貨幣的價格將會下降。
第二種,?在這里由Adam Back描述?,要求交易是時間加密的?。?因此,驗證人將在不知道內容的情況下包括交易,并且以后才可以自動顯示內容,此時再次解除交易是太遲了。?但是,如果驗證者具有足夠的惡意,他們可能只會同意包含帶有加密證明(例如ZK-SNARK)的解密版本的交易;?這將迫使用戶下載新的客戶端軟件,但對手可以方便地提供這樣的客戶端軟件以便于下載,并且在游戲理論模型中,用戶將有動力去玩。
也許最好的證據就是用戶可以安裝一個軟件更新,其中包含一個硬分叉,可以刪除惡意的驗證器,這比安裝軟件更新來完成他們的交易要困難得多“審查友好”。?因此,所有這些方案都是適度有效的,盡管它的確是以減少與區塊鏈相互作用的代價為代價的(注意該方案必須是強制性的才能有效;否則惡意驗證者可以更容易地簡單地過濾沒有加密的交易過濾更快的未加密的交易)。
第三種選擇是在分岔選擇規則中包含審查檢測。?這個想法很簡單。?節點觀察網絡的交易情況,如果他們看到交易費用足夠高并且交易時間足夠長,那么他們會為不包含此交易的區塊鏈分配較低的“分數”。?如果所有節點都遵循這一策略,那么最終少數連鎖企業會自動合并,包括交易,并且所有誠實的在線節點都會遵循它。?這種方案的主要缺點是離線節點仍然會跟隨大多數分支,如果審查是暫時的,并且在審查結束后又重新登錄,那么它們最終會落在與在線節點不同的分支上。?因此,該計劃應該被視為一種工具,以促進硬叉上的自動應急協調,而不是在日常分岔選擇中發揮積極作用的工具。
?驗證程序選擇如何工作,以及什么是賭注打磨?
在任何基于鏈的證明算法中,都需要一些機制來隨機選擇當前有效的驗證器集中的哪個驗證器可以構成下一個塊。?例如,如果當前活動的驗證器集合由40以太的愛麗絲,30以太的鮑勃,20以太的查理和10以太的大衛組成,那么你希望愛麗絲有40%的機會成為下一個創作者, Bob有可能會有30%的機會,等等(實際上,你想隨機選擇一個驗證器,而不是一個驗證器,所以如果Alice沒有出現,有人可以在一段時間后替換她,但這并沒有改變基本問題)。?在基于非鏈的算法中,由于不同的原因也常常需要隨機性。
“磨削”是一類攻擊,驗證者執行一些計算或采取其他步驟嘗試按照自己的偏好來偏向隨機性。?例如:
(1)和(2)易于解決;?一般的做法是要求驗證人事先妥善存放他們的硬幣,而不要使用易于操作的信息作為隨機性的源數據。?(3)解決問題有幾種主要策略。?首先是使用基于秘密共享或確定性閾值簽名的方案,并使驗證器協同生成隨機值。?這些方案對所有操作都是強大的,除非大多數驗證者勾結(在某些情況下,根據實施情況,33-50%的驗證人可能干擾操作,導致協議擁有67%的活性假設)。
其次是使用密碼經濟方案,其中驗證者事先提交信息(即發布sha3(x)?),然后必須在塊中發布x;?然后x被添加到隨機池中。?有兩個理論上的攻擊媒介:
第三個是使用Iddo Bentov的“多數信標”,它通過獲取通過其他信標產生的先前的N個隨機數的位大部分來產生隨機數(即,如果大多數信標的結果的第一位是1源數字中的第一個比特為1,否則為0,如果源數字中的大部分第二個比特為1,則結果的第二個比特為1,否則為0等)。這給出了一個低成本的開采的~C * sqrt(N)地方C是底層信標開采成本。因此,總而言之,存在許多已知的放樣磨削解決方案;問題更像差分密碼分析而不是停止問題?- 一個讓利益相關者設計師最終理解并現在知道如何克服的證據的煩惱,而不是一個根本性和不可避免的缺陷。
?相當于對卡斯帕51%的攻擊是什么樣子?
“51%攻擊”的最基本形式是簡單的終結性回復:驗證人已經完成了A塊,然后完成了一些競爭性塊A',從而打破了區塊鏈的最終保證。在這種情況下,現在存在兩個不兼容的最終歷史記錄,創建區塊鏈的分割,完整節點愿意接受,因此社區需要協調帶外以專注于其中一個分支并忽略其他)。
這種協調可以通過社交媒體,通過區塊資源管理提供商之間的私人渠道,企業和交易所,各種在線討論形式等進行。根據該決定將進行的原則是“哪一個是完成第一次是真正的一個”。另一種選擇是依靠“市場共識”:兩家分支機構將在短時間內在交易所進行短暫交易,直到網絡效應迅速使其中一個分支機構更有價值。在這種情況下,“首先確定的連鎖贏利”原則將成為市場選擇的Schelling點。這兩種方法的組合很可能會在實踐中得到應用。
一旦對哪個鏈是真實的一致達成共識,用戶(即驗證者和輕量級和完整節點操作員)將能夠通過接口中的特殊選項手動將獲勝塊散列插入到其客戶端軟件中,并且他們的節點將忽略所有其他連鎖店。無論哪條鏈獲勝,都有證據表明可以立即用來摧毀至少1/3的驗證人存款。
另一種攻擊是活性否定:不是試圖恢復塊,而是驗證者> 34%的卡特爾可能會拒絕最終確定更多塊。在這種情況下,塊永遠不會最終確定。 Casper使用混合鏈/ BFT風格的共識,所以區塊鏈仍然會增長,但它的安全性要低得多。如果一段時間內(例如1天)沒有任何塊被完成,那么有幾種選擇:
在情況(2)中,通過社會共識和可能通過市場共識(即新老驗證者設置的分支在短時間內在交易所進行交易),再次協調分支。在后一種情況下,有一個強有力的論點是,市場會選擇“好人取勝”的分支,因為這樣的一個連鎖店有證實他們的善意(或者至少與他們的利益一致用戶),對于應用程序開發人員來說,這是一個更有用的鏈。
請注意,這里介紹了社會協調和協議內自動化之間的一系列響應策略,通常認為最好盡可能推動自動化解決方案,以盡量減少51%的攻擊和社會攻擊同時發生的風險層(以及市場共識工具,如交易所)。我們可以設想一個實現(1)如果節點在一段足夠長的時間內沒有看到一個新塊被提交,那么節點自動接受切換到新的驗證器集合,這將減少社會協調的需要,但代價是需要那些不希望依賴社交協調的節點不斷在線。在任何一種情況下,攻擊者都可以設計一個解決方案,讓攻擊者對他們的存款造成大的打擊
更加陰險的攻擊是審查攻擊,其中> 34%的驗證人拒絕最終確定包含某些他們不喜歡的交易的區塊,但否則區塊鏈會繼續運行,并且區塊會繼續最終確定。這可能包括溫和的審查攻擊,只有審查人員干涉某些特定的應用(例如,選擇性地審查諸如雷電之類的交易或閃電網絡是卡特爾竊取資金的相當簡單的方法)交易。
有兩個子情況。第一個是攻擊者擁有34-67%股份的地方。在這里,我們可以對驗證者進行編程,拒絕完成或構建他們主觀認為會清楚檢查交易的塊,從而將這種攻擊轉變為更加標準的活躍攻擊。更危險的情況是攻擊者擁有超過67%的股份。在這里,攻擊者可以自由阻止任何他們希望阻止的交易,并拒絕在任何包含此類交易的塊上構建。
有兩條防線。首先,因為以太坊是圖靈完成的,它自然有點抵制審查制度,因為審查交易具有一定的效果,在某種程度上類似于解決停止問題。由于存在天然氣限制,盡管“簡單”的方法可以打開拒絕服務攻擊漏洞,但這不是不可能的。
這種阻力并不完美,并且有辦法改進它。最有趣的方法是添加協議內功能,交易可以自動調度未來事件,因為要預測執行預定事件的結果以及由這些預定事件產生的事件是否提前會非常困難。然后驗證程序可以使用模糊事件的混淆序列來存儲它們的以太網,并將攻擊者稀釋到33%以下。
其次,可以引入“積極的分支選擇規則”的概念,其中確定給定鏈是否有效的過程的一部分是試圖與其交互并驗證它不試圖對你進行審查。要做到這一點,最有效的方法是節點重復發送一個事務來安排存儲他們的以太網,然后在最后時刻取消存款。如果節點檢測到審查情況,他們就可以跟蹤存款,因此暫時加入驗證池,將攻擊者稀釋到33%以下。如果驗證卡特爾審查他們的存款嘗試,那么運行此“活動分支選擇規則”的節點將不會識別該鏈條有效;這會使審查攻擊陷入生存否認攻擊,此時可以通過與其他生存拒絕攻擊相同的方式解決該問題。
這聽起來像是很大程度上依賴于帶外社會協調;?這不危險嗎?
對卡斯帕的襲擊非常昂貴;?正如我們將在下面看到的那樣,對卡斯帕的攻擊花費的成本甚至比購買足夠的采礦權的成本要高得多,甚至不會超過工作鏈證明中永久51%的攻擊力一次又一次地攻擊無用點。因此,上述恢復技術只能用于非常極端的情況;?實際上,工作證明的支持者也普遍表示愿意在類似的情況下使用社會協調,例如通過改變工作證明算法。因此,甚至不清楚在證明利益方面進行社會協調的需求大于在工作證明方面的需要。
事實上,我們預計所需的社會協調數量接近于零,因為攻擊者會意識到,焚燒如此大量的資金以使區塊鏈脫機一兩天是不利的。
?MC => MR是否意味著所有具有給定安全級別的共識算法都具有相同的效率(換言之,同樣浪費)?
這是許多人提出的論點,也許在本文中由Paul Sztorc最好地解釋。從本質上講,如果你為人們賺取100美元創造一種方式,那么人們將愿意花費高達99.9美元(包括他們自己的勞動力成本),以獲得它;?邊際成本接近邊際收入。因此,該理論認為,任何具有給定塊獎勵的算法在試圖獲得獎勵的社會非生產性活動的數量方面同樣是“浪費的”。
這有三個缺陷:
?那么資本鎖定成本呢?
將X乙醚鎖定在存款中并不是免費的;它為乙醚持有者帶來了選擇性的犧牲。現在,如果我有1000乙醚,我可以隨心所欲地做任何事情;如果我將它鎖定在存款中,那么它就會在那里呆上幾個月,例如,我沒有這筆錢的保險實用程序來支付突如其來的意外支出。在那段時間內,我也失去了一些自由地將我的令牌分配從以太改變為以太網;我可以模擬通過賣空相當于交易所存款的數額來賣出以太幣,但這本身帶有成本,包括交換費和支付利息。有人可能會說:不是這種資本鎖定效率低下真的只是一種高度間接的方式來達到與工作證明中存在的經濟效率完全相同的低效率水平嗎?答案是否定的,由于上述兩個原因(2)和(3)。
我們先從(3)開始。考慮一個模型,其中股權存款證明是無限期的,ASIC持續存在,ASIC技術是固定的(即沒有摩爾定律),電費為零。假設均衡利率為每年5%。在工作區塊鏈的證明中,我可以花1000美元將它轉換為礦工,礦工每年會為我支付每年50美元的獎勵。在股權區塊鏈證明中,我會購買1000美元的硬幣,存入它們(即永久丟失它們),并且每年獲得50美元的獎勵。到目前為止,情況看起來完全對稱(技術上,即使在這里,在證明利害關系的情況下,我的硬幣銷毀并不具有破壞性,因為它使其他人的硬幣更值錢,但我們可以暫時擱置)。 “馬奇諾線”51%攻擊的成本(即。購買比其他網絡硬件更多的硬件)在這兩種情況下增加1000美元。
現在,讓我們依次對我們的模型進行以下更改:
以上內容包含了大量的簡化建模,但是它表明了多種因素對PoS的重視程度,使得PoS在安全性方面獲得更大的優勢。為什么這種可疑的多因素爭論傾向于支持PoS?這個論點很簡單:在PoW中,我們直接使用物理定律。在PoS中,我們能夠設計協議,使其具有我們想要的精確屬性 - 總之,我們可以優化對我們有利的物理定律。給我們(3)的“隱藏陷門”是安全模型的變化,特別是弱主觀性的引入。
現在,我們可以談論邊際/全面的區別。在資金鎖定成本的情況下,這非常重要。例如,考慮一個你有100,000美元乙醚的情況。你可能打算長期保存它的很大一部分;因此,鎖定甚至5萬美元的乙醚應該幾乎免費。鎖定80,000美元會稍微不方便,但20,000美元的呼吸室仍然給你一個大的回旋空間。鎖定9萬美元更成問題,99,000美元是非常棘手的問題,鎖定所有10萬美元是荒謬的,因為這意味著您甚至沒有足夠的余額支付基本交易費用。因此,您的邊際成本迅速增加。我們可以將這種狀況與工作證明的狀況區分開來,如下所示:
因此,證明利害關系的總成本可能遠低于將1個以上ETH存入系統的邊際成本乘以當前存儲的乙醚數量。
請注意,不幸的是,這一論點的這一部分并不完全轉化為“安全發行水平”的降低。它確實幫助我們,因為它表明我們可以獲得股權參與的實質證明,即使我們的發行量很低,然而,這也意味著收益的很大一部分將由驗證者作為經濟剩余來承擔。
?證明利益的交換是否會對工作證明中的集合構成類似的集中化風險?
從集中化的角度來看,比特幣和以太坊都需要大約三個池來協調51%的攻擊(比特幣中的4個,撰寫本文時為Ethereum中的3個)。在PoS中,如果我們假設所有交易所的參與率為30%,那么三次交易就足以構成51%的攻擊;如果參與率達到40%,那么所需的數量將增加到8個。然而,交流將無法參與其中的所有事情。原因是他們需要適應提款。
此外,PoS中的合并不鼓勵,因為它具有更高的信任要求 - 利益集合證明可以假裝被黑客入侵,破壞參與者的存款并要求其獎勵。另一方面,即使信任是必需的,在沒有自己經營節點的情況下也能夠通過個人的硬幣獲得利息的能力是很多人可能會覺得有吸引力的;總之,中央集權平衡是一個經驗問題,在系統實際運行一段相當長的時間之前,答案是不清楚的。隨著分拆,我們預計集中激勵會進一步減少,因為(i)對于方差的關注更少,以及(ii)在分片模型中,交易驗證的負擔與投入資本的數量成正比,因此在那里沒有直接的基礎設施節約。
最后一點是,中央集權對證明利益的危害比工作證明中的小,因為從成功的51%攻擊中恢復的成本要低得多,一個不需要切換到一個新的挖掘算法。
?有沒有經濟的方法來阻止集權?
Vlad Zamfir提出的一個策略是僅部分地破壞被削減的驗證者存款,并將其銷毀的百分比與最近被削減的其他驗證者的百分比成正比。這確保驗證人在發生實際攻擊時會丟失所有存款,但在發生一次性錯誤時只能扣除一小部分存款。這使得安全性較低的放樣策略成為可能,并且特別激勵驗證者使其錯誤與其他驗證器盡可能不相關(或者理想的是,反相關);這不涉及最大的池,將節點放在最大的虛擬專用服務器提供商上,甚至使用二級軟件實施,所有這些都增加了分散性。
?可以在私人/聯合體鏈中使用證據嗎?
一般來說,是的;?任何賭注算法的證明都可以用作私人/聯盟鏈設置中的一致性算法。唯一的變化是驗證者集合的選擇方式會有所不同:它將以每個人都同意的一組可信用戶開始,然后由驗證者集合對添加新驗證器進行投票。
總結
以上是生活随笔為你收集整理的区块链共识算法Proof-of-Stake (PoS/权益证明) 常见问题解答 (1)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Consensus Mechanisms
- 下一篇: Automatic Exploit Ge