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