對PoS的辯護

https://github.com/zack-bitcoin/amoveo-docs/blob/master/other_blockchains/the_defence_of_pos.md

作者:扎克-赫斯, Zack Hess

我寫PoS論文的目的是試圖用一個一般性的論證來說明PoS是不可能的。

我與許多對PoS技術有既得利益的人分享了這篇PoS論文,我從他們那裏得到了不同的回應。本文的目的是將支持PoS的各種論點收集在一起,以便我們可以看到爲什麼不同的人認爲PoS仍然可以工作。

如果你覺得你的觀點在這裏被曲解了,或者你的觀點發生了變化,請隨時與我聯繫,我會爲你調整這份文件。

艾略特-奧爾德 #

在這裏,你可以看到他試圖解釋軟分叉賄賂攻擊不能工作的地方:https://twitter.com/elliot_olds/status/1325270961793331200

針對軟分叉賄賂攻擊的恢復方法與針對DAO黑客的恢復方法非常相似。這個想法是,只要PoS債券被鎖定足夠長的時間,那麼社區最終將能夠識別哪些造幣者是誠實的,並使用硬更新來撤銷造幣者在攻擊期間受到的任何懲罰。

這種防禦只有在以下情況下才能奏效。

這些攻擊的頻率保持在足夠低的水平,以便社區能夠用硬分叉來應對它們。 錢被鎖起來足夠長的時間讓我們做一個硬分叉來防止它被盜。 我們最終可以識別哪些造幣者是誠實的。 (3) 並非所有類型的攻擊都是如此。特別是,信息可用性攻擊並不具有這種屬性。有一個問題叫做說話人-聽話人過錯等價。有義務發送信息的施事者聲稱他們發送了信息。有義務接收信息的施事者聲稱信息從未被髮送。這是一種他說她說的情況,沒有客觀的方法來確定誰在說謊。

如果協議對說話人和聽話人都進行懲罰,那麼我們就會讓自己受到攻擊。對於攻擊者來說,賄賂驗證者來執行攻擊是很便宜的。如果攻擊成功,攻擊者幾乎沒有任何損失,但所有作證者都會受到嚴厲的懲罰。

任何在攻擊發生時觀察協議的人都可以看到哪些信息在哪些時間點是可用的,因此他們可以知道哪些驗證者在說謊。但是他們沒有辦法向那些在攻擊期間沒有觀察協議的人證明這個證據。因此,解決說話者-聽話者故障等價的一個潛在方案是要求幾乎所有的用戶都要維護24/7的軟件來記錄有時間戳的協議信息。這幾乎和要求所有用戶全天候運行完整的節點一樣繁重,而且一般被認爲是加密貨幣設計中不可接受的限制。

維塔利克-布特林 #

Vitalik Buterin https://vitalik.ca/general/2020/11/06/pos2020.html

Vitalik計算攻擊PoW成本的鏈接是基於不正確的假設,即ASICS是一個完全流動的市場,一個人可以按小時租用51%的hashpower。如果你考慮到他們需要在一個非流動性的市場上購買ASICS,你會得到非常不同的數字。在一個缺乏流動性的市場上,你買的ASICS越多,ASICS就越貴。攻擊的成本隨着規模的擴大而呈拋物線上升。

他對攻擊PoS成本的計算是不準確的,因爲他所考慮的唯一攻擊是那些真正購買他們所押注的硬幣的人。而實際上,通過向PoS驗證者支付第二筆更大的安全押金來強制他們參與你的協調攻擊,並且有一個智能合約來指定租來的幣的使用限制,以防止他們被砍掉,這總是有可能租來對PoS押金的控制。PoS押金是由一個流動的硬幣市場組成的,所以成本只會隨着你以這種方式租用更多的硬幣而線性增加。

  • 他試圖提出2點,說明爲什麼PoS有可能成爲一個加密經濟的安全共識機制。
    1. 在相同的成本下,PoS比PoW更安全。
    2. 在PoS與PoW中,攻擊更容易恢復。

我將試圖證明Vitaliks對(1)和(2)的論證是不正確的。

對於(1),他是在比較賄賂PoW礦工以暫時審查PoW區塊鏈上的所有txs的成本,與購買51%的所有驗證者股權以永久破壞PoS區塊鏈的成本。把這兩種截然不同的攻擊並列在一起,並比較執行這些攻擊的相對成本,是沒有任何意義的。這就像我指出我的二頭肌比運動員的小指頭的肌肉大,然後我試圖用這個來證明我更強大。

對於第(2)部分,要警惕正在進行的輕率行爲。請注意,正在討論的PoW攻擊不再是賄賂51%的礦工進行臨時審查,現在是攻擊者成功購買了超過51%的所有ASICS,這是一個昂貴得多的攻擊手段。擁有51%的抵押幣比擁有51%的挖礦硬件要便宜得多,因爲抵押幣的市場比ASICS的市場流動性強得多。而購買51%的抵押幣只相當於購買PoS區塊鏈上總幣數的5%左右,因爲不是所有的幣都被抵押了。如果一個攻擊者購買了所有PoS幣的5%,那麼最後一個購買的幣將與第一個購買的幣的價格相近。如果一個攻擊者正在購買所有現有ASICS的51%,那麼隨着他們購買更多的ASICS,ASICS的價格將迅速增加,這將是非常昂貴的。ASICS的市場比PoS幣的市場流動性要差很多。

在針對PoW的第(1)部分中,他更傾向於關注針對PoW的非常便宜的臨時審查–通過賄賂的攻擊,因爲他想讓人覺得PoW的攻擊很便宜。在PoW的這種攻擊類似於通過支付高額的tx費用來攻擊PoS,將每個區塊完全填滿txs來審查其他任何人的txs。

在針對PoW的第(2)部分,他更傾向於關注非常昂貴的spawn-camping攻擊,這取決於購買51%的PoW採礦硬件,因爲他想讓人覺得PoW攻擊很難恢復。PoW的這種攻擊與攻擊PoS類似,試圖買下51%的所有PoS幣。

證明PoS是不可能的,它在很大程度上依賴於PoS的一個對稱性;攻擊者聯盟對防禦者聯盟是對稱的。如果防禦者贏了,他們可以懲罰攻擊者,與攻擊者如何懲罰防禦者完全相同,如果攻擊者贏了。防守方用來增加防禦的任何安全存款,攻擊方都可以以同樣的方式、同樣的成本進行安全存款,以增加攻擊。爲了證明PoS是可能的,他正試圖找到一種方法來打破這種對稱性。他正試圖讓人覺得防禦可以比攻擊更便宜。他試圖打破這種對稱性的方法是做出一個錯誤的假設,即社區將能夠使用一個未定義的外部機制來達成共識,即哪一方的分叉是攻擊,哪一方是防禦。用戶都能就哪個版本的協議是官方版本達成一致。這是一個循環推理的例子。如果我們從社區能夠就協議的更新達成共識的假設出發,那麼就很容易證明他們有一個共識機制。在實踐中,更新是非常有爭議的。用戶無法就什麼是有益的更新,什麼是惡意的攻擊達成一致。特別是如果攻擊與宣傳相搭配,社區很容易最終被欺騙,認爲攻擊者的版本是一個好的更新。如果社區被欺騙,認爲攻擊者版本的分叉實際上是一個好的更新,那麼他們就會被欺騙,燒掉49%誠實的驗證者的安全保證金,而獎勵攻擊者。

PoS必須以其中一種方式失敗,即A或B。

A) 一旦攻擊者擁有>51%的驗證人股份,他們就可以永遠保持攻擊。他們控制誰被添加到驗證人集合中。他們可以審查任何東西。他們可以使用審查制度來推送任意的軟分叉更新,包括將共識機制改爲PoW的更新。不喜歡新規則的用戶會被激勵去賣給喜歡新規則的用戶。

B) 另外,如果有辦法讓用戶決定目前的驗證者集是多數攻擊者,他們應該受到懲罰,這是一種恢復機制。攻擊者可以利用宣傳來濫用這種恢復機制。如果攻擊者能讓用戶相信當前的驗證者集合是攻擊者,那麼用戶就會搶走那些誠實的驗證者的股權。

無論是A還是B的情況,這都不是一個安全的共識機制。

Jae Kwon #

討論鏈接: https://twitter.com/jaekwon/status/1163205417020735488?s=20

Jae認爲PoS的安全性是基於 “社會合法性 “的。

但這是在一個較慢的時間尺度上,與你需要多少次確認才能從交易所提款相比。

如果我們試圖使用一個緩慢的機制來解決這些不一致,那麼我們必然會向雙重消費攻擊的可能性開放。

一旦攻擊者在交易所賣出他們的硬幣並撤回到法幣,那麼就沒有辦法回滾歷史並恢復這些硬幣。

如果我們可以通過這種方式進行雙重消費並從中獲利,那麼我們就會整天重複這樣做,永遠讓區塊鏈失血。

最終,攻擊者可以從區塊鏈中獲取相當多的價值。而且每次txs被回滾,你的錢可能已經被刪除。

阿爾弗雷德 #

阿爾弗雷德是一個經常在Amoveo的電報頻道討論的人。

阿爾弗雷德的論點與賈的論點相似,但阿爾弗雷德還建議我們增加一條規則,使債券的總金額足夠大,這樣,如果我們刪除所有受賄者的債券,攻擊者就不可能獲利。

爲了防止回滾獲利,我們需要(在社會共識的一個時期內移動的所有資金)*2<(在線押注價值),這樣我們就可以從受賄的驗證者那裏刪除足夠的押注,這樣他們偷的錢就不可能比被燒的押注更有價值。

向在線的人抵押價值是行不通的,因爲這意味着我們可以廉價地賄賂代表,讓你的股權被刪除,這意味着該協議是不安全的。

它最終就像Augur的那種安全性。成本來自於支付足夠的費用來說服足夠多的人把他們的錢鎖在債券裏,並保持在線來驗證區塊,不讓我們的錢被盜。

在Augur中,每個預言機(oracle)都很慢,所以驗證者只是不定期的上線。如果我們用它來達成共識,那麼他們需要在每個區塊都保持在線。

據我所知,沒有任何PoS區塊鏈在遵循規則使用這種安全模式。例如,這種模式會要求我們限制每個區塊可以發送的硬幣總數。

這種模式很容易受到寄生合同的影響,與Augur一樣。如果像彩色幣是到比特幣的東西被建立在這個協議之上,而他們沒有向綁定的驗證者支付與轉移的價值成比例的費用,那麼就會導致協議變得不安全。

如果有子貨幣(subcurrency),可能會很難正確計算費用。

Maigoh91 #

Maigo和Jae一樣,是來自Cosmos的社區成員。他對PoS安全的原因的解釋是基於信譽。

Maigo認爲,企業的聲譽價值是有風險的,所以他們不會接受可能會破壞如此有價值的東西的賄賂。

但是,無論價值是以鎖定在區塊鏈上的股權形式,還是以企業聲譽或其他形式,這都不重要。同樣的博弈論成立。賄賂比它能破壞多少價值要小得多。

正在設計Eth 2.0的匿名Eth研究人員 #

論點1:

“軟分叉不能改變分叉選擇規則”

並不清楚這個論斷如何能幫助PoS安全地應對軟分叉的賄賂攻擊,但我還是可以證明它是錯誤的。

如果攻擊者可以隨心所欲地重新分配資金,那麼他們就可以重新分配資金來撤銷系統內部的任何成本。因此,如果分叉選擇規則給支付更多資金成本的一方帶來了優勢,那麼就可以建立一個軟分叉來完全抵消這些成本。

如果分叉選擇規則涉及系統外部的成本,這將被視爲PoW,而不是PoS。

論點2:

“少量的非參與者可以使攻擊變得昂貴”

如果攻擊者可以控制重新分配所有的錢,而且所有的成本都是系統內部的,那麼把攻擊稱爲 “昂貴 “是沒有意義的。

攻擊者可以改變規則,使其不昂貴。

LionLikesCookies #

一位來自Cardano的社區成員,他站出來解釋了PoS的運作原因。

他的解釋的reddit討論貼

Lion的論點是,PoS在遊戲理論上與比特幣的PoW在這種攻擊上是一樣的。而比特幣的工作事實證明了PoS也可以工作。

這與Vitalik在2015年1月在他的P+epsilon論文中的 “進一步的後果 “部分支持PoS的論點基本相同。

我在本文的 “審查制度可能是好的 “一節中解釋了爲什麼這種賄賂攻擊不能針對工作證明進行。

sebastiengllmt #

一個不同的Cardano社區成員解釋了PoS的工作原因。

reddit上的討論貼: https://www.reddit.com/r/cardano/comments/cy52ab/i_attempted_to_use_math_to_show_that_cardanos/

Sebast的論點是,我們不可能知道要賄賂每個驗證者多少錢,因爲我們不知道在系統中擁有利益的總人數。

解決這個問題的方法是,攻擊者的智能合約被編程爲支付賄賂,所有這些智能合約應該慢慢地提供越來越高的賄賂,直到我們有足夠的驗證人池的一部分參與。這樣一來,攻擊者只需要在賄賂上花費他所需要的最低金額。

喬希 #

Josh是Cardano社區的第三位成員,他對PoS的工作原理給出了一個完全不同的解釋。

根據Josh的說法,“你必須賄賂51%的網絡價值才能摧毀100%的網絡”

乍看之下確實合理,但博弈論研究者至少從1833年起就知道這並不總是正確的

讓我們假設喬希是對的,我們將用矛盾證明法來說明這不可能是對的。

A:讓我們假設(賄賂用戶的成本)=(他們擁有的阿達的價值)。

B:我們知道。(賄賂的成本)=(擁有的價值)*(他們的投票是關鍵性的概率)

將A插入B–>(持有的價值)=(持有的價值)*(他們的投票是關鍵性的概率)

兩邊都除以(持有的價值)->1=(他們的投票是關鍵的概率)

所以我們已經表明,所有用戶的投票都是關鍵性的。所以任何單個用戶都必須對投票結果有100%的控制權。

但是,如果有超過1個用戶,這不可能是真的。如果兩個用戶在他們想要的結果上有分歧,他們就不可能同時對結果有100%的控制。

因此,我們已經證明了最初的前提(賄賂用戶的成本)=(他們擁有的阿達的價值),我們已經證明了他的前提一定是假的,因爲它把我們引向了一個矛盾。

petko #

petko是來自NXT的社區。NXT是最古老的PoS區塊鏈之一,所以他有經濟利益來解釋爲什麼PoS是可能的。

他的推特

petko的論點是,要想賄賂別人,而其中一個人又必須相信另一個人不會帶着錢跑掉,這是不可能的。

但是,區塊鏈智能合約系統的設計正是爲了實現無信任的合約,包括賄賂。

Petko的第二個論點

這和Josh的論點是一樣的。

Lior Yaffe #

Lior Yaffe是一個程序員,負責NXT、Ardor和Ignis的首席開發。

以下是他關於爲什麼賄賂軟分叉攻擊不能發生的論點 https://twitter.com/lioryaffe/status/1192320643511017473?s=20

根據Lior的說法,這種攻擊是 “荒謬的”。而且它在實踐中不可能發生。他舉了一個 “NoS “攻擊的例子來澄清他對這個問題的立場。

我想他說的 “NoS “是指nothing-at-stake-攻擊,這個話題在2014年11月就已經解決了 https://blog.ethereum.org/2014/11/25/proof-stake-learned-love-weak-subjectivity/ 這讓我覺得Lior至少從2014年開始就沒有關注過PoS的研究。我想這是有道理的,因爲NXT是在2013年推出的,而且是基於我們在2013年對PoS的理解。

我不明白Lior想做什麼論證。不清楚Lior是否讀過他所評論的論文。我懷疑Lior只是想在PoS上發出美德信號,他實際上對學習任何東西或教我們任何東西不感興趣。

Veil #

Veil對於爲什麼賄賂-軟叉攻擊不能打破他們的系統的論點是這樣的。我們可以使用隱私,所以不可能知道誰是你想賄賂的驗證者。

如果用戶想保持隱私,環形簽名的效果很好。

賄賂的問題是,區塊鏈生產者有動機有目的地暴露數據以破壞隱私,因爲這是他們收到賄賂的唯一途徑。你可能會認爲,有可能發明一個複雜的密碼學方案,以便不可能透露你是如何投票的,即使你想這樣做。但我認爲我有一個很好的論據,即這樣的方案是不可能的。

共識機制的一個理想屬性是,它不應該僅僅因爲其中一個參與者離線而凍結。因此,這意味着無論我是否參與創建,區塊創建者都需要能夠計算出下一個共識狀態。這意味着他們可以使用一個區塊的任何子集的TXS來重新計算下一個共識狀態。

通過比較包括各種可用txs子集的結果,他們最終能夠得出每個單獨的txs是如何影響共識狀態的。

一個攻擊者可以獲得所有的私鑰和用於生成所有加密投票的熵。他必須有可能重新追蹤每張加密票的產生步驟。

Maximilian Roszko #

他在這個電報組中與我聊天 https://t.me/cryptocodereviews

他的第一個論點是,協調賄賂會很困難。

但這是一個可解決的用戶體驗問題。

我們必須假設人們更願意擁有更多的價值而不是更少。計算不同可能的用戶策略的預期利潤,那是一個數學問題。所以計算用戶行爲是一個數學問題。這意味着安全是一個數學問題。

他的第二個論點是 “有一個非常簡單的防禦賄賂攻擊的方法,那就是反賄賂攻擊,我只比你多賄賂一小部分,並使我們軟分叉協議,你的所有資金都歸我。現在我保衛了網絡,沒有任何損失,事實上也許我還從中賺了一些錢……”

捍衛者可以嘗試進行反賄賂。因此,該系統退化爲誰願意支付最多的遊戲,誰就能獲勝。這是一種失敗模式。

如果誰願意付最多的錢,誰就擁有完全的控制權,而完全的控制權可以讓你打印更多的硬幣,並把它們送給自己,那麼在這樣的情況下,不清楚網絡甚至能夠就單一版本的歷史達成一致。

他提出了第三個和第四個論點,與petko的論點和Josh的論點相同。

阿爾弗雷德 #

Alfred的論點是,如果軟分叉賄賂攻擊成功,那麼我們可以使用較慢的社會共識層來回滾被攻擊的區塊,並刪除所有參與過的人的股權。

Emin Gun Sirer #

Emin是AvaLabs的創始人,該公司正在推出Ava加密貨幣,該貨幣使用Avalanche PoS共識機制。

他對軟分叉賄賂攻擊提議的回應。“在實踐中,大多數驗證者,就像大多數礦工一樣,是良性的,按照規定遵守協議,而不是玩聰明的遊戲。當人們進行攻擊時,生活就會變得更加有趣,但事實是90%以上的參與者通常是誠實和頭腦簡單的。”

假設90%的人是誠實的,那麼編寫一個安全的PoS共識機制就變得微不足道了。在加密貨幣工程中,假設造幣者有90%的誠實度是不典型的。

通常情況下,我們對用戶動機進行這樣的建模。10%是攻擊者,他們願意承擔損失以損害協議,1%是利他主義者,他們願意承擔損失以幫助協議,89%是自利者,他們做任何能讓自己賺到最多錢的事情。

由於混亂造成的成本,這是一個可以解決的用戶體驗問題。一個有動機的攻擊者可以創造足夠的工具,將混亂的成本降低到零。

例如,攻擊者可以使用預測市場作爲測謊器,這樣我們就可以在經濟上保證攻擊者提供給我們的軟件的某些事實是真的。即使做假者本人並不瞭解該軟件。如果瞭解一款軟件的功能就像在市場上查詢股票價格一樣容易,那麼你就不需要技術專長。

我們必須假設用戶更喜歡擁有更多的價值,而不是更少,這意味着安全是一個計算問題。

查爾斯-霍斯金森 #

Charles是Cardano的創始人,這是一個使用Ouroboros的區塊鏈。

他對軟分叉賄賂攻擊提議的回應。“一種不可能發生的攻擊”

結論 #

支持PoS的回應並不一致。許多人同意PoS對賄賂-軟分叉攻擊是安全的,但他們都有不同的理由相信這一點,而這些理由都不能讓我信服。