談到PoS,怎能不懂Nothing At Stake?
Cobo錢包/張詠晴編譯
2019-05-22 11:59

 

PoS(Proof of Stake)本質上是一種持有一定幣量,而獲得挖礦資格和收益的共識協議,在最初 Proof of Stake 2013年被提出來後, Nothing At Stake (無利害關係)的問題和 Long-Range Attack(遠端攻擊)問題是經常被談論的 Proof of Stake 共識協議的挑戰。想更深入瞭解 PoS?知道是什麼,還需要瞭解為什麼。

 

今天我們先來看看 Nothing At Stake problem (無利害關係)。

 

Nothing At Stake, a situation where someone loses nothing when behaving badly, but stands to gain everything.

 

Nothing At Stake 問題的本質是 「作惡無成本,好處無限多」。具體來講,是當在 PoS 共識系統出現分叉(fork)的情況時 ,出塊節點可以在「不受任何損失」的前提下,同時為多條鏈出塊,從而有可能獲得「所有收益」。

 

這就好比有個窗口,排隊既可領錢,當只有一個窗口時,大家會乖乖的排隊,每人都有,其樂融融。

 

但是當第二個窗口出現時。大家知道,最終這兩個窗口有可能只有一個領到的是「真錢」,另外一個的錢會變成廢紙。但排隊的你不知道哪個窗口會是發「 真錢」 的窗口。所以你會怎麼做呢? 你可能會下個跑腿訂單,幫你分身同時去另外一個窗口排隊。

 

但是,在實際 PoS 出塊節點時,此時的分身無成本,只是電腦做一個運算而已。

 

這會造成什麼亂象呢?

 

聰明的出塊節點會有動力產生新的分叉,支持或發起不合法交易,其他逐利的出塊節點會同時在多條鏈(窗口)上排隊出塊支持新的分叉。隨著時間的推移,分叉越來越多,非法交易,作惡猖狂。區塊鏈將不再是唯一鏈,所有出塊節點沒有辦法達成共識。

 

 

另外,無利害關係問題還讓雙花攻擊更容易。不像 PoW 51% 的攻擊那樣,PoS 的攻擊節點只需要多一定的算力 (有時候僅僅1% )就有可以進行攻擊。例如一個質押總量佔流通幣量只有30%的幣,攻擊成本比 60% 質押率的網路更容易攻擊。

 

有多容易呢?如下圖所示,仍然是 A、B、C 三個出塊節點,假如 A是攻擊節點,它在產生分叉時創造兩筆交易。一筆將 X 個幣發給自己的一個錢包地址,同時在另外一個分叉上將 X 個幣發到交易所。B、C出塊節點因 Nothing At Stake 所以同時會在兩條分叉鏈上出塊。

 

 

當交易被交易所確認後, A 將 X 個幣出售兌換成隱私幣種,移出交易所。之後 A 透過增加質押幣量,或創建多個其他出塊節點的方式提升出塊權重,只在分叉鏈繼續出塊。此時最長鏈很明顯,且逐漸拉開差距,會最終成為最長鏈,A 成功將 X 個幣雙花。

 

本文為巴比特資訊授權刊登,原文標題為「談 PoS,怎能不懂 Nothing At Stake ?