乾貨| 論權益和共識(上)

3.6 不使用DMMS 的共識

是否一定要使用DMMS 才能打造分佈式的共識機制呢?到目前為止這還是一個開放問題。筆者的猜測是“不是”。更具體一點來說,簡單改變比特幣協議,用“優惠券” 來獎勵那些以更低難度挖出未來區塊的礦工[BDC+14, 章節6.1] 不太可能破壞共識機制,但這種模式顯然不符合我們上述的DMMS 定義。

4. 權益證明

有了比特幣的共識機製作為基礎,我們來分析一下當前最流行的替代方案,權益證明(Proof of Stake)。 PoS 的描述見[Poe14b]:

有了現代密碼學之後,“ '信息' 本身即是物理上真實且具有價值的東西” 這一觀念便擺脫了哲學系的教室,進入到真實的商業世界。我們都非常熟悉安全的通信所支撐的經濟活動:談判意見、合同、交易、買單和命令,都能發到互聯網公網上而無需擔心偽造和攔截。我們也都清楚,如果秘密數據遺失或被盜會帶來什麼樣的經濟後果。到了2009 年1 月,密碼學貨幣誕生[Nak09],有價信息的概念就變得更加具體。你可以在公開的通信媒介中持有和交換一種同質化(fungible)的價值儲存物,僅僅只需使用密碼學方法(無需物理的安全設施)來防止欺詐和盜竊。人們不僅可以說“這把加密密鑰值1 萬美元,因為假使它暴露,我們就會損失這麼多金錢”,還可以說“這把密鑰值1 萬美元,但裡面的價值是可以分拆的,你可以拆出20 美元發給別人,自己留著剩餘的部分”。有這些背景知識,權益證明其實很好理解。一個權益證明就是一個對所有權的密碼學證明。在密碼學貨幣中,權益證明不僅能夠證明一筆貨幣的所有權,還可以證明這筆錢滿足一些特徵(比如,這筆錢是被鎖定的、無法花用的,直到某些條件被滿足才會解鎖)。具體來說,證明資金鎖定在一種稀缺且實驗性的密碼學貨幣上,可以視作證明了其人對該項目的成功有濃厚的興趣。用戶可以用提供鎖定的權益來證明自己對項目的持續存在(及可持續發展)有興趣。

也就是說,權益證明是這樣一種觀念:我們可以使用密碼學證明,而不是像朗道爾極限(Landauer limit)這樣的物理學理論,來證明某些計算是非常昂貴的。

4.1 權益證明vs DMMS

使用“純粹的權益證明” 來生成對一種密碼學貨幣的歷史的共識,這種思路其實是預設了:有可能創造出一種近似DMMS 的簽名方案7,其代價函數度量的是該種幣本身的數量。這在原理上聽起來很簡單,我們再次引用[Poe14b]:

在一個足夠有表現力(sufficiently expressive)的賬本上,貨幣的持有者可以鎖定他們的貨幣一段時間,以租借在密碼學上可驗證的“權益(stake)”。需要推進共識歷史時,每一個權益持有者都為延伸的內容(區塊)簽名,而不是為這些內容附加工作量證明。出於實踐上的方便,一般來說,每次出塊都會隨機選出權益持有者中的一小部分,來負責出塊;而且,要讓區塊獲得合法性(validity),也只需要這個小團隊中的大多數同意就行。這些被選中的權益持有者可以獲得獎勵,而且一段時間後,只要他們願意,就能解鎖自己的權益。這裡的觀念是,與其讓控制歷史的經濟代價高不可攀,權益持有者們有激勵對每一個區塊達成一致,因為(a)他們都是隨機挑選出來的,不太可能相互勾結;( b)即使他們可能相互勾結,也不想搞崩整個系統(例如,簽署相互衝突的歷史就會導致這個結果);(c)他們資本有限,無法造成巨大的破壞。因為上述理由,下一個被隨機選出的權益持有者團體可能只會選擇在一個他們認為可靠的歷史上出塊。

注7:權益證明方案並不總被嘗試設計成無過程性的(progress-free,亦即無論你此前做了什麼,都不會影響你下一次嘗試的成功率),所以並不都能成為正確的或者安全的DMMS。但是,其根本宗旨仍然是“讓製造歷史非常昂貴,並獎勵那些參與正確歷史的人”,所以我們繼續以成本這個視角來觀察。

該文已經稍微把事情複雜化了:在真實的權益證明系統中,往往只需要一個簽名者認可,而不需要絕大部分的認可。

這裡的問題是,要想恰到好處地定義出一種能夠度量(以某種貨幣的形式)鎖定權益數量的代價函數,先得有這種貨幣的共識歷史。如果只能達到“存在某段歷史,其中這些幣都是鎖定在一起的” 的程度,則雖然最終的DMMS 可能定義得很清楚,但其代價函數不再是度量稀缺的東西,而本文3.5 節的結論也就都不成立了。

當然,稀缺可以通過懲罰那些簽署多個歷史的權益持有者來塑造。舉個例子,如果系統使用Schnorr 或者ECDSA 簽名方案,且權益持有者在簽名時僅能選擇一個特定的nonce,則他們要簽署多個歷史時,就必然會用到同樣的(key, nonce)對來簽發兩條消息,而這會使得他人能用幾何求解出他們的私鑰。但是,這樣的設計還是不能阻止權益持有者們“研磨(grinding)” 區塊(不斷嘗試不同的區塊),僅發布那個能使他們在下一個區塊繼續擔任出塊者的區塊8,這樣不斷重複就能完全掌控整個區塊鏈。這就是“權益研磨” 攻擊的一個例子。下文我們可以看到,權益研磨只是一個更普遍問題的一個特例而已。

總的來說,一次性簽名方案可以防止權益持有者發布相互衝突的歷史(前提是攻擊者對自己會丟的幣估價更高,而不能從自己導致的混亂中得到更多),但一次性簽名無法防止權益持有者偷偷地製造相互衝突的歷史。

注8: 注意,隨機數必須由區塊鏈本身來決定,因為它就是大家要共識的唯一對象。所以PoS 礦工可以用權益研磨來扭曲系統。使用多個區塊或者久遠的區塊來決定隨機數並不能解決這個問題,無論哪一種方案,都有某一方能夠操縱它。

4.2 零成本的模擬(Costless Simulation)

終極來看,問題在於,為提出一條權益簽名而鎖定的幣,僅存在於這些幣所屬的區塊鏈上(coins bonded against a stake signature only exist within the blockchain to which those coins belong)。這就意味著,只要某些團體能以低廉的成本創建區塊鏈,這樣的團體就會創建多條區塊鏈,然後選擇較為偏向他們利益的那一條。

如果每個人都能便宜地創建歷史,那系統就會崩潰。鎖定權益的用意正在於,讓“便宜創建歷史” 的權限僅對那些願意長期持有這種貨幣的人開放,而且可以假設,對這些人來說,這個系統意義重大,以至於不可能去攻擊它。但是,因為沒有全局時間(對那些新加入網絡的人,也沒有全局歷史),那就根本沒有辦法把“最近” 才開始持幣的人與“一直” 持幣的人區分開來。對一個權益證明系統來說,在歷史中的任何一個時間點,都有一組簽名密鑰可以轉讓貨幣、鎖定和解鎖權益、簽名區塊。可以假設,在真實世界裡的某一刻,系統創建出一個新區塊的時候,在這一刻,一些密鑰對應著所有權。但是,真實世界的時間會繼續流轉,而這個區塊會變成靜態之物,所有與它相關的簽名密鑰也會一起變成靜態的。

我再說一遍:在真實的時間裡,區塊鏈會變得越來越長,權益會解鎖,幣會被用來交換別的產品和服務,而那些密鑰,即使誤用會導致持有者損失價值,也會變得毫無意義。但對於一個不可更改的區塊鏈來說,區塊的密鑰的含義(meaning)永遠不能發生改變。

因為在一個權益證明系統中,部分密鑰就決定了未來,這就導致了一個問題。無論什麼人,只要能獲得這些密鑰(可能是自己把幣清倉了的用戶,或是跟她買到了私鑰或者撿到了她的私鑰的人;用戶不善於長期保存私鑰,尤其是那些他們覺得自己再也用不上的私鑰!),就有能力分叉這個網絡,或者創造出另一個歷史;新用戶並不能分辨出哪個是真的、哪個是偽造的。

要點在於,即使權益持有者要鎖定(具有高昂市場價值的)一大筆資金,而且一旦不遵守協議就會損失所有資金,這種威懾力在用戶解鎖自己的權益之後也會消失,而解鎖或早或晚總會到來(無論是從系統外部看還是從系統內部看),而且在當下(這個區塊)也必然無法確定權益會在什麼時候(哪個區塊)解鎖。所以,免費的歷史,或者說“零成本的模擬”,是沒法通過鎖定由系統內部定義的價值來防範的。

4.3 “長程” 攻擊vs. “短程” 攻擊

如果你要求權益持有者必須長時間綁定權益,而且使用久遠以前(以區塊計)的區塊產生選擇簽名者的隨機性,那就可以讓上述的攻擊者必須重寫很長一段時間的歷史。常常有人說,這樣就能“防止短程攻擊”。

很清楚的是,這還是沒有解決零成本模擬問題;畢竟,只要創建歷史本身很容易,那無論創建多長的歷史分支都很容易。不過,支持者們常常說,有一個誠實簽名者創建的歷史,這條鏈積攢的區塊數量也正對應著現實世界裡的較長時間,而對這段歷史的任何修改都會與參與者們所銘記的這段歷史相衝突。因此,大家可以檢測到並意識到這是一場攻擊,然後拒絕掉它。

如果軟件能正確實現這裡的規則,那確實是沒什麼問題的了,但它改變了比特幣這類系統所用的信任模型。那些新加入網絡的參與者會遭遇多種歷史,而且也不再能夠僅憑自己就辨認出哪個是真的;他們需要詢問網絡中已有的參與者(可能是他們的朋友,家人,聲譽卓著的大企業、公開的網站,等等)哪個歷史才是真的。這就不是一種分佈式共識機制了!這是另一類共識機制,雖然能在始終在線的對等節點間去中心化地形成,但新加入網絡的用戶和長期離線的,就必須信任某些人了。這種模型對於法律上的壓力、對“被信任” 實體的攻擊和網絡攻擊,自然都是非常脆弱的。

4.4 其他考量

再次引用[Poe14b]:

另外,這種可以控制未來簽名者人選(甚至控制整個權益持有者集合,可通過控制進入區塊的交易實現)的能力會帶來嚴重的後果。甚至不必由處心積慮的攻擊者來動手,任何時候有權出塊的簽名者都有激勵將大家導向一個他本人會有更多權益(也因此能獲得更多獎勵)的歷史,使系統趨向中心化。他們可以通過扭曲未來區塊對簽名者的選擇來實現,或者更隱蔽地,可以審查那些最終會擴大權益持有者群體的交易。

5. 結論及後續研究

本文描述了DMMS 機制如何能產生一種分佈式的共識機制。雖然DMMS 連帶著一些經濟上的要求,足以形成共識,但它可能不是必需的。開放問題包括減少這些經濟上的假設(或者證明這些要求是不可消除的),以及確定哪些條件是分佈式共識的必要條件。

我們還分析了DMMS 的一種替代品,權益證明。我們證明了,僅靠系統內的資源,權益證明是無法形成分佈式共識的,因為它要依靠自己嘗試形成的歷史來執行懲罰。


原文鏈接:https://download.wpsoftware.net/bitcoin/pos.pdf

作者: Andrew Poelstra

翻譯&校對: 閔敏& 阿劍