PoS (Proof of Stake)本質上是一種持有一定幣量而獲得挖礦資格和收益的共識協議,在最初 Proof of Stake 2013 年被提出來後, Nothing At Stake (無利害關係)的問題和 Long-Range Attack (長程攻擊)問題是經常被談論的 Proof of Stake 共識協議的挑戰。

原文標題:《談 PoS, 怎能不懂 Nothing At Stake ?》
文章來源:公衆號 Cobo 錢包
作者:Cobo 小姐姐

今天我們先來看看 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 出塊節點時,此時的分身無成本,只是計算機做一個運算而已。

這會造成什麼亂象呢?

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

除了 Proof of Stake,你還要知道何謂 Nothing at Stake

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

有多容易呢?如下圖所示,仍然是 A、B、C 三個出塊節點,假如 A 是攻擊節點,它在產生分叉時創造兩筆交易。一筆將 X 個幣發給自己的一個錢包地址,同時在另外一個分叉上將 X 個幣發到交易所。B、C 出塊節點因 Nothing At Stake 所以同時會在兩條分叉鏈上出塊。當交易被交易所確認後, A 將 X 個幣出售兌換成隱私幣種,移出交易所。之後 A 通過增加質押幣量,或創建多個其他出塊節點的方式提升出塊權重,只在分叉鏈繼續出塊。此時最長鏈很明顯,且逐漸拉開差距,會最終成爲最長鏈,A 成功將 X 個幣雙花。

640 (1).jpeg

爲什麼 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 個區塊之後纔可以拿到質押的幣,這樣可以給守護獵人足夠時間來抓住非法節點。

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

  • 如果網絡發展迅速,利益超過了組織的信譽,那麼,被選出的實名節點不一定仍然可信;
  • 節點是否有足夠的動機或技術能力去保證自身的反攻擊能力,從而保證網絡安全;
  • 節點數量有限,伸縮性不夠,仍然是中心化。