PoS 系統不夠安全嗎?攻擊者如何對 PoS 系統發起攻擊?該如何應對這種攻擊?Stafi 用 Bond 代替 token 承擔鏈外流通,提升 Stake 比例的方案,來應對 PoS 系統金融攻擊。

原文標題:《注意 !Finance Attack》
撰文:卡咩 & Middle

PoS 還不夠安全?

2018-2019 年,以鏈上借貸爲主的 DeFi 項目蓬勃發展,越來越多的人將自己的加密資產,放在帶有借貸合約的錢包中生息,也有越來越多的人將加密資產作爲抵押品,放到借貸合約中。於是開始有人關注,如果上述兩種獲益方式更具有吸引力,那誰還會參與 stake,維護網絡安全呢?

Tarun Chitra 在他的論文《質押與鏈上借貸的制衡》 (《Competitive equilibria between staking and on-chain lending》)中談到一個結論:理性且沒有惡意的參與者爲了優化他們的資產收益,選擇將他們的 token 從 Stake 合約中轉移到借貸合約中,從而降低了 PoS 網絡的安全性。Tarun 通過蒙特卡羅法,詳細模擬了這一情況是如何發生的。

In particular, we find that ‘bank runs’ can occur when many agents collectively move their tokens from staking contracts to lending contracts even when agents have indpendently drawn risk preferences. These attacks, which are coordinated only by rational optimization, show that the strictly Byzantine threat model is insufficient to describe security in PoS networks.

另外 Tarun 還提到更令人擔心的情況,就是惡意破壞者,通過提供一個有吸引力的利率借到足夠多的 token,從而干擾共識過程,對系統實施攻擊。PoS 系統的威脅模型中,除了防範 Nothing At stake 問題和長程攻擊(Long Range Attack),還需要留意一種新的攻擊方式——金融攻擊。

However, if there exist physically settled futures contracts on PoS tokens, then it is possible for an attacker to buy futures that allow for staking participants to sell their staked token in the future. This attacker can aggregate this stake and upon reaching an attack threshold, begin to perform a double spend or other malicious attack . As these derivatives can be settled off-chain (e.g. using a centralized exchange like BitMEX or Deribit), monitoring of this type of attack can be difficult.

有文章指出「DeFi 正在侵蝕 PoS 系統的安全」, 也對這一情況進行了論述。但「DeFi 侵蝕 PoS 系統安全」的說法並不準確。遭遇金融攻擊的可能性,是 PoS 的內生屬性。在 DeFi 出現之前,token 的借貸就已經存在。在 PoS 網絡中,token 本身承擔了兩重屬性,既維護作爲維護網絡安全的載體,又要作爲流通媒介,被賦予貨幣屬性,因此很容易被衍生出更多金融用途。

攻擊者如何實施金融攻擊?

金融攻擊的可怕在於,實施攻擊的投入產出比,看起來非常划算。

攻擊者不太可能通過買入 token 的方式實施攻擊,因爲買入的代價過大,而買入行爲本身也會推高 token 價格,對於攻擊者而言是不划算的,攻擊者更有可能採用的是借入 token 來實施攻擊,而且攻擊者可以用期貨交易的方式,把攻擊後 token 貶值的損失轉嫁出去,還從中賺一筆。 我們來推演一下,攻擊者可能採用的步驟:

  • Step1:提供足夠高的利率,吸收到足夠多的 token,超過臨界值之後,參與到 Stake 中(我們假設攻擊者的抵押資產足夠大,有足夠的借貸能力)。這個臨界值,對於使用了 BFT 機制的 PoS 網絡來說,是 Staking token 總量的 1/3,對於沒有采用 BFT 機制的 PoS 網絡來說,一般認爲是 Staking token 總量的 1/2。(後面主要以採用了 BFT 的 PoS 網絡爲模型論述)
  • Step2:攻擊者和其他市場主體簽訂期貨合約,約定在未來某個時點,用現有的價格賣出手裏的 token。爲了隱蔽,攻擊者可能有多個身份 ID,也可能找了多個互不關聯的市場主體來簽訂期貨合約。
  • Step3:實施對 BFT 的攻擊,阻礙共識過程進行,使得系統癱瘓,或者,實施一筆雙花,使得賬本不再被信賴,無論哪種形式的攻擊,只要攻擊成功,都會導致 token 被拋售,價值大跌。
  • Step4:從市場上低價買入 token,完成期貨交易。
  • Step5: 受攻擊的鏈會察覺到攻擊,有可能會 slash 掉攻擊者的 token,沒有關係,再低價買入一批 token,償還借來的 token 和利息,贖回抵押物。

我們來算一下攻擊者的賬:

攻擊者借到的 token, 假設價值爲 V1
攻擊完成之後,攻擊者的 token 價值跌到了 V2
攻擊者借入 V1, 攻擊者完成期貨交易支出 V2, 攻擊者償還借出的 token 支出 V2 所以攻擊者的毛利ΔV=V1-2V2

如果計算更細緻些,還需要把攻擊者承擔的借入 token 的利息,還有攻擊者借入 token 時的抵押物的資本成本計算進去。

假設利率爲 r,攻擊週期爲 t, 攻擊者的利息在期末支付,那麼利息爲 rtV2 假設抵押時要求的超量抵押倍數爲 n ,那麼抵押品的價值爲 nV1,抵押品的利率設爲 u,則抵押品的資本成本爲 utnV1

攻擊者的淨收益爲 ΔV = V1 - 2V2 - rtV2 - utn*V1

以上公式是個相對粗糙的計算,沒有考慮以下兩個要素,第一,如果攻擊者更冒險,更貪婪一些,可以在 Step2 加大操作力度,賣空比持有 token 更多數量的 token,實施成功的話,攻擊者將得到更多的收益。第二,攻擊者可能自身有足夠的信用以借到足量的 token, 而不用完全使用抵押物來借貸。

即便如此,我們依然看到,攻擊者有巨大的獲利空間。

PoW 會遭遇金融攻擊嗎?

我們需要認識清楚 PoS 和 PoW 在經濟學本質上的區別,PoW 是一種懲罰前置的設計,不管你是不是對系統作惡,都需要先接受「懲罰」(消耗能源),只有在懲罰結束後,纔有資格爭奪獲取獎勵的資格。如果作惡,那麼就有可能失去獎勵。失去獎勵,就意味着白白接受了懲罰。有點像中國古代的懶政官員審案的方式:不管原告被告,上來就是「何事叨擾公堂,先各打 20 大板」,打完了再論公道。

而 PoS 是一種懲罰後置的設計,質押的 token 只有在作惡後纔會被 Slash,所以攻擊者可以先借入 token,然後實施攻擊。這種方式顯然無法用於攻擊 PoW 系統,因爲能源首先要被消耗掉,攻擊者無法通過借貸和做空的方式轉嫁能源的成本。

這是不是證明 PoS 太過脆弱,我們還是得回到只有 PoW 一種共識機制選擇的時候?

PoS 機制如何克服金融攻擊?

PoS 共識機制從創生到現在,一路走來,不斷完善,克服了很多問題,例如 Slash 機制的出現,克服了易分叉的問題,Jail 機制解決了節點離線或者不出塊的問題,委託機制的出現克服了共識效率的問題。金融攻擊的問題,當然也並非無解。

防範金融攻擊的思路,有多個角度,也會產生多個方法。

方法 1 動態響應的調整 Stake 收益率

PoS 項目方通過強運營的方式,使得 Stake 的收益率始終相較於 token 的其他用途,具有相對優勢。當面對攻擊者吸儲時,提高 Stake 收益率,可以直接和攻擊者的吸儲利率競爭,使得 token 向鏈內 Stake 合約流動。但提高 stake 收益率,會帶來通貨膨脹,使得人們對 token 價值的預期需要不斷調整,不利於實現 token 在鏈上業務中本身需要承載的流通性。這不是一個可以無限制採用的方式。

方法 2 設置「熔斷機制」

我們從攻擊週期 t 入手,t 是由兩部分構成的,一部分是攻擊者吸儲的時間,一部分是實施攻擊的時間。吸儲的時間我們是可以干預的。項目方可以爲 Stake 中的 token 向外轉移設置一個閾值,一個週期內,從 Stake 合約中移出 token 的數量有一個上限。(有點像股市熔斷機制),這樣一來,增加了攻擊者吸儲的時間,提升了攻擊的成本。

方法 3 項目方對鏈進行初期看護

項目最危險最脆弱的時候,往往是項目初期市值較小的時候,項目市值越大,借入足夠多的 token,需要的抵押物價值就越大,借入難度更高。項目方應該在項目初期的脆弱階段,由自身和關聯方控制大多數的 token。這樣做的弊端是可能會被詬病爲中心化,或者是操縱市場。

方法 4 增強市場信心的支撐要素

攻擊者之所以能賺到錢是因爲,預判成功攻擊之後幣價會迅速下跌,如果項目背後有一個積極活躍的應對團隊,且有多方面的要素支撐市場的信心,那麼攻擊者實施攻擊獲利的可能性就相對較小,系統就越安全。我們看到很多 PoS 鏈和 PoW 有一點重要不同,PoW 鏈成熟之後可以進入接近無人看管的自運行狀態,而 PoS 則往往是強運營模式。

方法 5 努力保持高 Stake 比例

保持高 Stake 比例是保障 PoS 網絡安全最根本的措施。Stake 比例越高,攻擊者通過吸儲來達到攻擊閾值的難度就越大,週期(t)也越長,攻擊意圖暴露的可能性也越大。 我們假設攻擊者的持幣數量達到 Staking 總數量(包含攻擊者即將參與 stake 的那部分 token)的 1/3 時發起攻擊。

當 stake 比例爲 30% 時,攻擊者需要從市場上借到 70% 中的 15% 時,可以發起攻擊。當 stake 比例爲 50% 時,攻擊者需要從市場上借到 50% 中的 25% 時,可以發起攻擊。當 stake 比例爲 66.6% 時,攻擊者需要從市場上借到剩餘全部 token 時,纔有可能發起攻擊。倘若如此,當 Stake 比例超過 2/3 時,系統幾乎是「絕對安全」的。

攻擊難度與 Stake 比例的關係

攻擊難度係數我們用攻擊者需要借到的 token 佔非 Staking 的 token 數量比例來表示,數值最大爲 1,數值大於等於 1 時代表攻擊不可能實現。

PoS 還不夠安全?探討針對 PoS 系統的攻擊方式與應對方法

我們從圖中可以看到,提高 Stake 比例對於提升 PoS 系統安全性有顯著作用。

我前面提到的方法 1,方法 2,方法 3,都可以作用於提高 Stake 比例。另外,我們還可以想到,有一種偏金融方式,可以更加徹底的保持高 Staking 比例。不少文章和業內朋友也都提過,那就是架構一層協議,發行基於 Staking 資產的債券。

在持幣者將 token 參與到 stake 中時,給持幣者發放一個債券(bond), 這個債券代表了對 token 的贖回權,持幣者隨時可以歸還債券,然後申請將 stake 中的 token 取回,在 stake 鎖定期結束後,token 迴歸到持幣人的賬戶。當然持幣人也可以將債券賣出。債券買賣帶來的流通性解決了 stake 鎖定中的 token 不能流通的問題。

這是 Stafi 採取的方法,早在人們關注 token 借貸行爲侵蝕 PoS 網絡安全的問題之前,Stafi 就已經在做這樣的事情,立足於解決 Stakeing 資產的缺乏流動性的問題。我們姑且稱之爲 Stafi 方法(Stafi way)。

Stafi 方法

Stafi 方法可以極大的提升 Stake 比例。Stake 和 token 的鏈外用途,將不是競爭關係,而是可以同時實現,對於借出生息行爲,可以使用 bond 來代替原生 token 進行生息,原生 token 參與 stake 獲取收益,雙重收益,同時享受。對於作爲抵押品借貸,也可以使用 bond 來代替原生 token 作爲抵押品。參與 stake 獲益,和作爲抵押品借貸,兩種用途,同時實現。

對於惡意攻擊,我們來做一個推演。惡意攻擊者可能會採取 2 種方式:

一種是不接受 bond,堅持只願意爲原生 token 提供更高的利率

這種方式會面臨兩大障礙,首先是吸儲的利率成本變大,攻擊者提供的利率必須大於 Stake 收益和 bond 的市場利率之和,纔有可能有效吸儲,其次,由於 Stafi 方法極大的提高的初始的 Stake 比例,再結合我們之前提到的「熔斷機制」,可以讓攻擊者的吸儲週期變的很長,攻擊成本增大的同時,不確定性也大幅度增加,因爲項目方必然採取措施應對。

攻擊者的第二種方式,是直接針對 bond 發動攻擊

攻擊者提供更高的利率給 bond,從而吸引 bond 持有人將 bond 放在攻擊者手裏生息,彙集大量 bond 之後,攻擊者未經持有人同意,私自將 bond 贖回爲原生 token,然後再發動攻擊。我認爲這種成功率也非常低,因爲攻擊者將 bond 集中贖回的過程,也會觸發「熔斷機制」,項目方可以採取措施應對。項目方能夠採取的最激烈的措施,便是按下暫停鍵,凍結出塊。此時,攻擊者除了等待無計可施,而攻擊者承擔的金融成本隨着時間推移,越來越大。雖然這種做法殺敵一千自損八百,但是隻要這樣的手段存在,攻擊者就不會輕易下手,因此,達成了一種威懾平衡。

Stafi 方法,是 PoS 安全生態演化的終局嗎?

金融世界何其複雜,以後可能還會有更新的攻擊方式出現。不過,無論我們對未來還有什麼樣的顧慮,Stafi 方法的普及是必然會發生的事情。

因爲用 Bond 來代替 token 承擔鏈外流通的作用,與其說是 Stafi 的創造,不如說是人們想獲取 Stake 收益,又不想放棄 token 的其他用途的需求催生的,是 Staking 生態的必然產物。這也是 Stafi 強調「Staking Finance」這一概念的主要原因。

更值得思考的是,當 Stafi 方法普及之時,還會有什麼樣的新的攻擊方式威脅到 PoS 系統的安全。如果新的攻擊方式出現了,我們還需要新的智慧去應對。

來源鏈接:mp.weixin.qq.com