Random Capital 合夥人劉毅:PoS 對區塊鏈安全的意義

Random Capital 合夥人劉毅:PoS 對區塊鏈安全的意義

作者 | 劉毅

來源 | 野花說



Random Capital 合夥人劉毅:PoS 對區塊鏈安全的意義

本文為加密媒體型社區“野花說”對Random Capital合夥人劉毅的採訪實錄。源自線上分享活動“PoS區塊鏈投資精進:為何PoS通證是未來?”。

劉毅是Cdot Network創始人,Random Capital合夥人,清華大學碩士,區塊鏈和大數據技術專家,有20年多種資本市場投資經驗,是BTC早期投資者,也是Web 3和Polkadot的佈道者。

Random Capital 合夥人劉毅:PoS 對區塊鏈安全的意義

大家晚上好,我叫劉毅,研究方向是Web3、區塊鏈技術和加密經濟學。今天我將給大家分享關於PoS的內容。



原來是打算講PoS通證分析的,後來改主意了,我想跟大家討論為什麼有了PoW,區塊鏈還需要PoS。



有人說:只有PoW才能可靠地打通現實世界和虛擬世界的價值;PoS是憑空造幣,以不公平的方式分配,註定會造成壟斷等等。還有更直截了當的看法:所有PoS鏈都是騙子。這些論斷沒法反駁,或者說既不能證明,也無法證偽。我只想談事實,以及可以被證明或證偽的理論。

大家常說的PoW和PoS,分別指基於工作量證明的中本聰共識,和基於權益證明的BFT共識,後面還是簡稱為PoW和PoS。設計共識協議不是為了公平地把幣發出去,而是為了維護區塊鏈網絡安全。本文所說的區塊鏈都是指公鏈,不包括聯盟鏈和私有鏈。



什麼是區塊鏈網絡安全?這個問題似乎很基礎,其實非常複雜。但是反過來解釋簡單很多,什麼是不安全的區塊鏈?或者說區塊鏈可能發生什麼安全事故,如果發生了會有什麼問題?

區塊鏈是分佈式賬本技術,是生產信任的機器。區塊鏈的數據結構和網絡協議設計,都是為了在無中心協調的條件下,在網絡不可靠、參與節點不可靠的拜占庭環境下,安全可驗證地記賬。可以說區塊鏈天然就比其他類型的網絡架構安全。



不考慮軟件缺陷,區塊鏈可能發生的安全事故只有兩種,一是被DDOS分佈式拒絕服務攻擊,二是被雙花攻擊。DDOS攻擊就是給網絡搗亂,讓網絡整體或者局部不能正常工作,但是搗亂並不能直接獲利。對於傳統的網絡,DDOS攻擊的盈利模式是勒索或者收錢辦事。要麼有人花錢僱傭黑客去給競爭對手、或者他不喜歡的網絡搗亂。要麼攻擊者先搗亂,然後向運營方要錢,不給錢就繼續搗亂。區塊鏈是去中心化網絡,勒索就不知道該向誰要錢。而且區塊鏈是分佈式自組織的網絡,如果規模比較大而且設計良好,要讓它失效很難,成本很高。所以區塊鏈安全要考慮DDOS服務攻擊,但不是重點。

重點是雙花攻擊,它是區塊鏈網絡現實存在的威脅。按字面的意思,雙花就是一筆錢花了兩遍。那麼一筆錢怎麼能花兩遍呢?目前已經發生成功的雙花攻擊,都是如下流程:

  • 轉幣進交易所;
  • 把幣賣出,錢提出來;
  • 發動攻擊分叉區塊鏈,新鏈不包括第一步轉幣的交易。相當於幣又回到攻擊者的地址上。

雙花攻擊需要提前進行精心準備,不是臨時起意發動的。要分叉區塊鏈,而且從一段時間之前的區塊開始分叉,是有成本的,對於PoW就是要有算力,你得把分叉鏈挖成最長鏈,被其他人接受才行。所謂成功的雙花攻擊,就是攻擊獲得收益,要大於花費的成本,攻擊者從中獲利了。如果折騰半天,買算力的成本比雙花的收益還高,那還是屬於搗亂的範疇。所以實施雙花攻擊並不容易,成功的案例也不多。

區塊鏈歷史上成功的雙花攻擊,有兩點特別值得注意。第一點是被成功攻擊的都是PoW鏈。我希望那些天天說PoS不安全的人注意這個事實,PoS鏈哪怕是早期不太成熟的PoS,都沒有被雙花攻擊過。這不是說PoS鏈不能被攻擊,是攻擊PoS鏈無利可圖,原因我後面會講。所以對PoS攻擊方式的研究都是理論,現實環境中沒人幹。第二點是雙花攻擊對幣價的影響。可能很多人跟我一樣,雙花攻擊證明了鏈不安全,那肯定幣價暴跌啊。現實情況不是這樣,大家去查查ETC、比特黃金、Verge遭遇雙花攻擊的行情,幣價只跌了一點點。



為什麼呢?因為雙花吃虧的是交易所,相當於攻擊者騙走了應該屬於交易所的幣。大部分持幣者會想:跟我有什麼關係?我手裡的幣沒少也沒被稀釋。交易所賺那麼多錢,活該他出血。所以你投資的幣,如果被雙花攻擊了,不要認為天塌了,馬上跑。但是注意,不要馬上就跑,等風頭過去了,還是應該跑。為什麼呢?因為保障加密資產安全,是區塊鏈最重要的能力。這次攻擊倒黴的是他,下次攻擊倒黴的可能是我。所以一條區塊鏈被貼上了不安全這個標籤,基本上就走上了緩慢歸零的道路,除非它能證明安全問題解決了,但是非常困難。大家可以查一查ETC、比特黃金、Verge被攻擊後市值排名的變化。因為價格變化是跟整體市場有關的,市值排名反應了在行業內的地位。

上面談了不安全的區塊鏈。BTC非常安全,這個大家都認同,但是BTC安全不代表PoW安全。下次聽到有人說PoW比PoS安全,你可以用事實來反駁他。為什麼同為PoW鏈,有的安全有的不安全?因為PoW鏈安全的前提是:區塊獎勵高於同期租用51%算力的成本。(應該是區塊獎勵+交易費,但是交易費通常比區塊獎勵低兩個數量級,在此忽略不計,下同)。非常簡短的前提,但實際情況非常複雜,需要分幾種情況來說明。首先是通用計算機挖礦為主,還是專用礦機為主。如果是通用計算機挖礦為主,理論上來說都是不安全的。為什麼呢?因為挖加密貨幣的通用計算機,只佔互聯網計算機很小很小一部分。如果攻擊者控制的殭屍網絡(類似於以很低成本租用了大批通用計算機)比誠實挖礦網絡的算力高,就可以發動雙花攻擊。

專用礦機是固化了某種Hash算法,例如SHA256的礦機,所有采用SHA256的鏈都可以挖。對於同一類專用礦機,算力佔比最大的鏈是最安全的。算力分配是由區塊獎勵金額決定的。假設每個小時BTC/BCH/BSV三條鏈提供的出塊獎勵分別是100元、3元、2元,那麼算力就會按100:3:2的比例分配。如果有利可圖,攻擊者就可能租用總算力的一小部分來攻擊BSV,但是租用大部分算力來攻擊BTC則非常困難。

這裡有兩個問題。第一為什麼要租算力,礦工自己不能直接攻擊嗎?一般來說不會,因為礦工和礦場做雙花攻擊,可能單獨看是獲利了。但是鏈不安全了,幣會貶值,相應的礦機也跟著貶值。所以手裡有大批專業礦機的人,不會攻擊鏈,至少不會攻擊區塊獎勵最大的鏈。第二個問題是,多數情況下,挖礦是有利可圖的,所以算力租用成本很高,攻擊不成立。但是特殊情況是,幣價暴跌,前期擴張的算力過多,大量的礦機關機。這時候租用礦機的價格僅僅高於運行成本,也就是電費,區塊獎勵低的幣就很危險。綜合上面的分享,可以把PoW的安全前提大致變成:專用礦機挖礦,而且算力佔比最高。

Random Capital 合夥人劉毅:PoS 對區塊鏈安全的意義



知名加密貨幣研究者Nic Carter用上圖說明:A鏈在同類算力佔一小部分。B鏈佔了同類算力的一大部分。雖然A鏈的算力的絕對值(即Hash Rate)高於B鏈,但是B鏈比A鏈更安全。

到這一步,我們可以回到主題,說說為什麼需要PoS。一個前置的問題是:除了BTC以外,其他鏈還有沒有必要?BTC最大化主義者認為,BTC是唯一有用的加密貨幣,其他區塊鏈,包括以太坊都是在瞎搞。如果你同意這個觀點,當然PoS就沒必要。另外一些人(包括我)認為,去中心化加密協議定義高效的市場,能夠降低交易成本。世界需要很多加密協議,很多條區塊鏈。

新運行一條區塊鏈,如果採用PoW協議,會遇到冷啟動困難。其實不只新PoW鏈,BTC也遭遇過冷啟動難題。就是幣不值錢,沒什麼人挖礦,所以網絡不安全,網絡不安全所以幣沒法升值。BTC之後的三年,幣價低,網絡脆弱,關注的人很少。由於挖礦收益 = 市值 * 增發率。PoW幣要有很高的市值和增發率,才能吸引礦機廠商設計ASIC礦機(一次性成本很高)、礦工大量購置部署礦機。



這就陷入了先有雞還是先有蛋的冷啟動難題:新生網絡不安全,應用少;而且增發率高,不被當作價值存儲;市值難以擴大。市值低挖礦收益就低,算力無法增長。

設計新的PoW鏈要選擇用哪種Hash算法。如果選已經有專用礦機的算法,那麼初期幣價低,算力佔比低,鏈不安全。如果選擇還沒有專用礦機的算法,就要經歷一段時間的通用硬件挖礦,這段時期網絡也不安全。



當然我只是說困難,不是說不可行。例如Nervos,他們團隊有很好的口碑,做了很多創新。所以主網上線的時候,CKB已經有比較高的市值,區塊獎勵很高,可以吸引很多算力來挖礦。Nervos設計了獨特的Hash算法,由於區塊獎勵很高,可能很快就會出現專用的礦機,這是Nervos社區樂於見到的。因為Hash算法是新的,新礦機只能用來挖CKB,網絡的安全性大幅提高。但是,Nervos應該被視為特例,它的啟動過程恰恰證明了,新鏈採用PoW非常困難。很難想象,未來幾年會出現十幾條、幾十條甚至更多PoW鏈,能夠完成自舉。

PoS鏈即便處於早期也可以很安全。因為對PoS鏈做雙花攻擊,需要掌握至少1/3 Staking的幣。手裡有那麼多幣,應該是數一數二的大戶了,雙花攻擊引發幣價下跌,損失最大的是自己。跟最大的礦工不會攻擊BTC是一個道理。那麼有沒有可能,攻擊者兩次賣出雙花的幣,快速獲利離場呢?我們來看一個例子:

Random Capital 合夥人劉毅:PoS 對區塊鏈安全的意義



假設一條PoS鏈,總流通市值只有1000萬美元,而且Staking比例很低,只有30%。跟市場上流通市值數千萬美元以上、Staking比例達到50%甚至更高的PoS鏈相比,顯然更容易被攻擊。攻擊者已經準備好了條件,他控制了1/3的Staking(總量的10%),同時還擁有佔總量10%的流通籌碼。於是攻擊者首先把流通的10%轉入交易所1,賣出後把錢提出來。然後發動攻擊逆轉了存幣交易。為了不承擔攻擊暴露幣價下跌損失,他快速地把恢復到自己地址的10%存入交易所2,賣出後提款。如果整個過程中幣價都沒有下跌。攻擊者的成本(10% Staking被罰沒)和收益(10%流通籌碼賣了兩次)恰好持平。



上述是對攻擊者最有利的情況,但現實環境中不可能出現。因為攻擊者賣出受到市場流動性的限制。先不說第一個10%賣出給幣價的衝擊。專業安全公司發現BFT鏈分叉併發出警告,只需要幾分鐘時間。攻擊者不可能在不引起交易所關注、不影響幣價的條件下賣出第二個10%。

所以PoS的鏈,無論幣值高低,只要軟件沒有缺陷,都是安全的。多說一句,軟件缺陷跟協議本身沒有關係,是實現的問題。但是不可否認,新一代的PoS鏈上線時間還太短,可能存在隱匿的缺陷,需要時間來驗證其安全性。

除了安全啟動外,PoS跟PoW相比還有一個優勢,就是快速最終性。最終性就是區塊不會被鏈放棄,成為孤塊。PoW鏈只有概率最終性,剛出來的塊不太可靠,可能被放棄掉(重組)。隨著區塊後面不斷附加區塊(深度增加),被放棄的可能性越來越低。當深度增長一定量,用戶可以確信區塊不會被放棄了,區塊裡的交易不會被逆轉。



基於PoS的BFT共識通常具有快速最終性,合法(對出塊和敲定分開的混合共識是指被敲定)區塊一出來就具有最終性,如果被逆轉意味著出大事兒了,有1/3 Staking的幣被系統罰沒。比較快速最終性和概率最終性,需要找到可以比較的維度。就像梨和蘋果,有人喜歡吃梨、有人喜歡吃蘋果,比較它們的味道不會有大家都認可的結論。如果比較價格就容易了,在一個市場裡,哪個貴哪個便宜一目瞭然。

還是Nic Carter寫的《這叫交易結算保證,小傻瓜》,這篇文章本來是比較PoW鏈的。但是他所提出的結算保證的概念,同樣適用於比較PoW和PoS鏈。

Random Capital 合夥人劉毅:PoS 對區塊鏈安全的意義

如上圖,PoW的結算保證呈階梯狀,後面每多一個塊,對塊(內所有交易)的結算保證金額增加一個區塊的獎勵金額。BTC當前價格是8000美元,每個塊獎勵12.5個BTC,也就是大約10萬美元。BTC平均10分鐘出一個塊,結算保證增加10萬美元。粗略地說,PoS鏈結算保證可以認為不隨時間變化。某個PoS鏈流通市值1000萬美元,Staking比例30%,採用出塊即敲定的BFT協議(例如Tendermint)。交易只要被包含進合法區塊,立即獲得1000萬*30%*1/3=100萬美金的結算保證。快速獲得可量化的結算保證,對於很多加密協議的應用場景是有意義的。這是我認為PoS有必要性的第二個理由。



此外,基於PoS可以發展高效的加密協議社區治理,這方面的分析可參見拙作《加密協議治理之道》。好的,今天的分享就到此結束,感謝大家的聆聽!

Random Capital 合夥人劉毅:PoS 對區塊鏈安全的意義

劉毅 作者

Roy 排版

內容僅供參考 不作為投資建議 風險自擔


分享到:


相關文章: