談PoS, 怎能不懂Nothing At Stake ?

Cobo钱包
本文约1862字,阅读全文需要约7分钟
帶您了解PoS

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 個幣雙花。



為什麼Nothing At Stake 問題僅僅是PoS 的挑戰? PoW難道不會有嗎?


PoW機制天生避免了這個問題。因為在出塊時,礦工會付出機會成本— 算力資源。如果分叉出現, 礦工需要慎重的選擇在哪條鏈上出塊,一旦選錯,付出的算力成本則沒有收益。礦工也不會選擇在兩條鏈上均分算力,這樣只會將原鏈的出塊概率縮小一半,可能得不償失。


那麼如何解決Nothing At Stake問題?


一般的策略都是後置懲罰,既如果被判為惡意出塊行為,則會將stake 的一部分或保證金作為罰金。然而,所有的懲罰和監管措施都只是事後,而不像PoW需算力出塊的隱形約束直接。


我們來看看Tezos 是怎樣使用懲罰機制來避免Nothing At Stake 問題的:在Tezos 鏈上參與挖礦需要保證金,這部分保證金就是用來保證“麵包師” (baker)的誠實行為,如果麵包師試圖在兩個分支上廣播區塊,那麼他的保證金將被沒收。如果麵包師成功創建和廣播了合法區塊,他將獲得區塊獎勵和交易手續費。這種機制用金錢獎懲來避免雙挖礦問題,節點的安全由麵包師自行維護。


除了後置懲罰,至今的解決方案,都是要犧牲一定程度的性能、去中心化原則,合約機制的設計也更複雜。


這種複雜性體現在什麼地方呢?


在PoS 中,節點的角色和職責眾多:除了和PoW中類似的出塊節點(Miner), 還有驗證節點(Validator) 為區塊背書,守護獵人(State Guardian) 抓“壞人”。


守護獵人的stake 有一定的鎖定期,一般是需要X個區塊之後才可以拿到質押的幣,這樣可以給守護獵人足夠時間來抓住非法節點。


此外,雖然項目方可以通過前置節點篩選選擇信任的節點,但是中心化的問題依然不可避免:



  • 如果網絡發展迅速,利益超過了組織的信譽,那麼,被選出的實名節點不一定仍然可信;

  • 節點是否有足夠的動機或技術能力去保證自身的反攻擊能力,從而保證網絡安全;

  • 節點數量有限,伸縮性不夠,仍然是中心化。