Security

在與比特幣類似的假設下,PoS 真的被證明是安全的嗎?

  • July 27, 2018

我正在閱讀這篇論文,該論文聲稱正式證明 Cardano 最新的 Ouroboros PoS 協議(“Genesis”)提供了與比特幣的 PoW 協議類似的安全保證。不幸的是,它有 64 頁長,並且預設了很多我需要熟悉的早期工作,所以即使我對自己對這些事情的理解相對有信心,但徹底的評估仍需要相當長的時間。

所以我想知道是否有人(比如 Andrew Poelstra、Pieter Wuille?)已經檢查過這個並可以給出他們的意見。因為一方面這是一個非常大膽的主張,它將使有關該主題的民間傳說觀點無效(PoS 存在無法克服的基本安全問題),另一方面,作者的方法似乎非常合法和嚴肅。

我確實意識到,即使這是真的,這並不意味著 PoS 對於引導像 Cardano 這樣的系統很有用。但它不能成為比特幣的替代品,比如說,再減半一兩次嗎?

Ouroboros 的工作線證明了與比特幣的安全性相當的安全性。Ouroboros 中的安全證明在風格上與 Backbone 安全證明相似,後者表明比特幣是安全的。據我所知,沒有其他正式的比特幣安全證明——這些是我們所知道的最好的結果,表明比特幣是安全的,除了非正式的手搖非數學論點(例如“但你不能找到一個安全漏洞,所以它必須是安全的”)。

在這兩種情況下,都有一些假設,如下所示:

對於工作量證明,在 2014 年的第一版 Backbone 中,比特幣在同步模型中被證明是安全的。該模型將時間分成離散的部分(Backbone 中的“回合”,Ouroboros 中的“槽”),在此期間玩家可以探勘並廣播在整個回合中發現的任何塊。一輪期間發送的消息是匿名的(即未經身份驗證的),並且可以由對手重新排序(因此需要共識協議)。對手也在“匆忙”,因為它可以在觀察到誠實方在同一輪中所做的事情之後以及在允許消息在網路上傳播之前使用自己的挖礦能力。假設是沒有消息失去。這是證明比特幣安全的必要假設——如果網路分裂,那麼你可以'

2017 年修訂的目前版本的骨幹網放寬了同步性要求,其中模型是半同步的。Backbone 的第一個版本還表明,如果難度保持不變,比特幣是安全的。2016 年對 Backbone的後續工作表明,它在可變難度設置中仍然是安全的。這些證明取決於一個誠實的多數假設,該假設在論文中得到了精確的描述。更準確地說,要求對手的算力比誠實的算力低一個固定常數,這彌補了非唯一成功的輪次(即,多個誠實方發現一個塊的輪次,因此將導致區塊鏈上的短意外分叉)。

Ouroboros 的股權證明設置中的假設在網路方面與 Backbone 相似。該模型主要是從 Canetti 的通用可組合性框架中藉用的,因為存在一個可以影響執行的環境。“包含環境”模型中的證明非常強大,因為它們可以談論任何執行,在這些執行中,對手能夠準確地告訴人們除了誠實方執行誠實協議的要求之外應該做什麼。例如,對手可以腐蝕他們選擇的玩家。

在 Ouroboros中,與 Backbone 的“誠實採礦多數”相對應的假設是“誠實權益多數”,即在任何時候,大部分權益屬於誠實方。這是一個強有力的假設,可能成立也可能不成立,所以這取決於你願意接受什麼。在 Ouroboros 中做出的另一個假設是權益轉移是有界的。這似乎是一個合理的假設:這意味著所有的錢都不能瞬間轉手。但是,構造取決於此綁定以指定安全參數,例如曆元長度。在實際系統中,這些參數採用允許獲得特定界限的具體值。

Ouroboros Praos比 Ouroboros 實現了更好的安全保證:它允許對手在她認為需要時立即腐蝕任何誠實的一方。這是一個強大的對手(因此系統更安全),也是與 Backbone 類似的假設。對於權益證明來說,這是一項重要的成就,因為對手可以追溯腐蝕成功抵押一個區塊的各方,以便她可以創建多個競爭區塊。據我所知,實際部署的權益證明鏈(例如 Blackcoin)不享有此類保證(並且實際上無法提出任何要求,因為它們沒有安全證明)。

Ouroboros Genesis使上述結果更強大,因為各方是動態的(並且可以,例如,離線),並且在更強大的模型中證明了安全性。

所有這些作品(比特幣和銜尾蛇的證明)也使用了一些密碼學家不喜歡的隨機預言假設。

所有這些方法都可以與白雪公主ALGORAND等其他工作線相媲美。在我看來,Ouroboros 實現了更好的保證,具有良好的設計決策,具有正式的安全證明,並且在與基於工作量證明的系統(尤其是 Praos)非常相似的模型中執行。將它們並排比較需要進行廣泛的分析。

最後,您是否對這些作品中的安全假設和威脅模型感到滿意取決於您的要求。總的來說,這些工作取得了一些很好的保證,但有些結果還有待改進。例如,誠實的多數可能在大部分時間,而不是所有時間都持有,但沒有探索在這些環境中是否保證安全(無論是在比特幣中還是在銜尾蛇中)。我確實懷疑比特幣對極端條件的抵抗力更強,但沒有這樣的保證被證明。

一般來說,需要注意的一件事是,這些限制/假設也適用於比特幣:我們對比特幣的最佳形式證明在一個有限模型中工作,該模型與真實構造很接近,但並不完全相同。總而言之,Backbone 是我們對比特幣的最佳分析,它的分析可以與 Ouroboros 相媲美。因此,它的安全保證確實與我們對比特幣的安全保證相匹配,如果你將質押誠實多數等同於挖礦誠實多數,至少只要需要可證明性。

如果你想自己理解這些論文,並自己判斷它們是否達到了你想要的結果,我建議你先閱讀 GKL Backbone 論文。您可以閱讀第一部分,其中討論了通用前綴、鏈質量和鏈增長,以及活躍度和持久性。然後我建議您閱讀Ouroboros,也許可以閱讀Ouroboros Praos。這些應該讓您對這項工作的內容有一個很好的了解。你是對的,理解Ouroboros Genesis有很多先決條件。不過,您無需閱讀該特定論文即可很好地理解有關權益證明安全性的結果。

免責聲明:我是 Aggelos 的博士生(Aggelos 寫了 Backbone、Variable Backbone、Ouroboros、Ouroboros Praos、Ouroboros Genesis - 我沒有參與這些​​論文);我目前的科學工作用於 Cardano,這是 Ouroboros 的一個實現。我的觀點可能有偏見。

我記得,該系統的安全聲明假設使用者有一個同步網路——每條消息都可靠地傳遞給所有使用者。這是一個相當非物理的假設,我們知道如何建構這樣一個東西的唯一方法是使用某種共識系統。這將使“Ouroboros”這個名字相當合適。:P

如果您確實有一個同步網路,那麼您將不需要任何類型的 POW/POS,您只需讓人們發送他們的交易並且發送的第一個交易獲勝。因此,在這種假設下,您幾乎可以證明任何類型的系統都是安全的,即使是在現實世界中完全沒有安全性的系統。

由於推廣 POS 和其他替代共識系統的人對安全性的不明確、誤導、混淆或完全不誠實的聲明由來已久,我認為大多數專家目前已經沒有耐心審查這些事情了。我想建議任何認為自己擁有一個非常好的框架的人都可以很好地使用它來證明類似的替代方案,例如 stellar、ripple 或 ethereum 的研發不安全。我這麼說有兩個原因:一個是如果某人的框架不能證明其他系統不安全,那麼我們為什麼要期望它告訴我們他們的新系統是否不安全?另一個原因是為了逃避一種不可擴展的行為,即考慮不周的計劃被拋到一邊,並使有限數量的可以審查它們的人飽和。我還認為,證明某人有資格建構系統的最佳非正式證據是他們能夠發現其他系統中的缺陷,如果沒有類似的東西,很難將審查優先於其他工作。這種活動可以幫助澄清提案實際提供的屬性。

引用自:https://bitcoin.stackexchange.com/questions/77398