Babylon 可以使整個 Cosmos 生態能夠受益於比特幣提供的安全性。

原文:Babylon: Bitcoin Security for Cosmos and Beyond(Blogs)

作者: David Tse、Ertem Nusret Tas & Kamilla Nazirkhanova

編譯:隔夜的粥,DeFi 之道譯者

Babylon 是一個新的 Layer 1 區塊鏈,它的願景是利用比特幣 PoW 的安全性來增強其他 PoS 區塊鏈的安全性(重點是 Cosmos zone)。在第一部分中,我們將簡單介紹一下該項目,然後在文章的其他部分,我們將深入研究它的原理以及各種用例。

Babylon 背後的團隊是誰?

Babylon 的團隊由來自斯坦福 Tse Lab 的共識協議研究人員以及來自世界各地經驗豐富的 Layer 1 區塊鏈開發人員組成。值得一提的是,Tse Lab 團隊成員還與以太坊基金會合作提高權益證明(PoS)以太坊信標鏈的安全性,他們確定了一些關鍵攻擊,並設計了 goldfish 協議來實現 PoS 以太坊的目標。今年一月份,Babylon 獲得了由 IDG 領投的 620 萬美元種子輪融資。

譯者註:Babylon 主要嘗試解決的是 Cosmos 等 PoS 區塊鏈的長程攻擊問題,而短程攻擊可通過 Cosmos 的鏈間安全性(ICS)解決方案解決,兩者可以是互補的。

一、比特幣作為信任的來源

比特幣是世界上最安全的區塊鏈,它由比特幣礦工網絡的巨大算力保護。目前,這種安全性主要用於支持一種加密貨幣:BTC。而 Babylon 項目的願景是利用比特幣網絡作為信任來源,使更廣泛生態系統中的其他區塊鏈受益。這種信任來源的價值可以進一步細分為兩個方面:

  • 比特幣基於工作量證明(PoW),而目前絕大多數的區塊鏈都基於權益證明(PoS)。PoS 鏈與 PoW 鏈相比具有一定的安全限制,而利用比特幣網絡設計合理的架構可能會消除這些限制。事實上,PoS 和 PoW 優勢可以互補,一個設計合理的架構可以兩全其美。
  • 區塊鏈的安全性在很大程度上取決於支持它的資源的價值。在 PoW 鏈中,它是算力的成本。而在 PoS 鏈中,成本則是質押的加密貨幣價值。從這個角度來看,不同安全級別的區塊鏈種類繁多。在比特幣礦工網絡巨大的算力支持下,比特幣處於區塊鏈安全頻譜的一個極端,而較小的區塊鏈(例如特定應用的 Cosmos zone),則位於區塊鏈安全頻譜的另一端。利用比特幣設計合理的架構,可以在不損害其自主性的情況下增強這些 PoS 鏈的安全性。

比特幣作為可靠的時間戳服務

中本聰的白皮書‌中,比特幣區塊鏈引入了一種由工作量證明提供支持的時間戳服務器。它為事件提供了不可逆的時間順序。在其原生應用中,事件是在比特幣賬本上執行各種交易。在目前增強其他區塊鏈安全性的應用中,比特幣也可用於對其他區塊鏈中發生的事件添加時間戳。每個此類事件都會觸發發送給礦工的交易,礦工隨後將其插入比特幣賬本,從而為事件添加時間戳。比特幣上的這些時間戳可用於解決區塊鏈的各種安全問題。在父鏈上為子鏈中的事件加時間戳的一般概念稱為 checkpointing,而為事件加時間戳的交易稱為檢查點(checkpoints)

Babylon 架構

圖 1:Babylon 架構

Babylon 的架構如上圖所示。它由三個部分組成,然後具有兩級檢查點:

  • 比特幣,作為時間戳服務層;
  • Babylon 鏈(一個 Cosmos zone),作為中間層;
  • 作為安全消費者的 PoS 區塊鏈(例如其它 Cosmos zone);

一個重要的設計考慮是,比特幣能夠承載的數據能力是非常有限的。在這種情況下,Babylon 鏈具有多種功能:

  • 它聚合了很多 PoS 消費鏈的檢查點流(checkpoint stream),因此只需要將一個檢查點流插入比特幣網絡中,即可同時為所有消費者 PoS 鏈中的事件加上時間戳。
  • 它在比特幣網絡中的檢查點可以使用密碼學技術(例如聚合簽名)變得緊湊。
  • 它通過 IBC 協議從消費者 PoS 鏈接收檢查點。
  • 它檢查 PoS 消費者鏈的檢查點的數據可用性,以便攻擊者無法為不可用的數據加時間戳。

用例

  • 快速的質押解鎖:權益證明(PoS)鏈需要社會共識來阻止長程攻擊(long range attacks),這帶來了長時間的質押解鎖期。例如,在 Cosmos hub 的例子中,這需要 21 天的時間。而比特幣的安全性取代了社會共識,從而將 PoS 質押的解鎖期縮短至 1 天之內。
  • 引導新鏈:比特幣安全性可用於引導代幣估值較低的新鏈。
  • 保護重要交易:比特幣安全性可用於保護重要交易,而普通交易可以快速完成。
  • 提高審查抗性:被審查的交易可以使用 Babylon 作為備份進入賬本。

二、為什麼 PoS 鏈的質押解鎖這麼慢?

Cosmos zone 等採用權益證明(PoS)共識機制的區塊鏈允許快速確認交易,但它們的質押解鎖卻非常緩慢,這顯然對用戶體驗以及區塊鏈的流動性會產生影響。那為什麼會這樣?

權益證明(PoS)鍊和質押解鎖期

權益證明 (PoS) 區塊鏈因其能源效率而受到了廣泛關注。為了保護系統,PoS 鏈要求區塊鏈的驗證者在提議或對區塊進行投票之前質押代幣。這使 PoS 協議能夠追究違反協議的人的責任,併罰沒他們質押的代幣來作為懲罰。除了區塊獎勵之外,這為誠實參與提供了另一種激勵。

除了能源效率之外,PoS 鏈的一個重要優勢是快速確定性:交易被快速確認,大約幾秒鐘。但隨之而來的問題是,質押解鎖會非常緩慢,多數 PoS 鏈的質押解鎖需要數週的時間,如下表所示。

表 1:Cosmos zone、PoS 以太坊、Avalanche、Algorand 以及 Cardano 等不同 PoS 區塊鏈的質押解鎖期。

很多 PoS 協議需要很長的質押解鎖期,然後退出的驗證者才能收回其質押的資金。在解鎖期間,驗證者不能參與 PoS 協議,也不會產生任何區塊獎勵或權益利息。他們也無法移動質押的資金並將其用於其他目的。長時間的質押解鎖,不僅會降低用戶體驗並造成財務摩擦,而且還會降低 PoS 系統中代幣的流動性。有趣的是,工作量證明(PoW)鏈卻完全相反:交易確認緩慢,但算力可以隨意離開網絡。

流動質押(Liquid Staking)方案可以幫忙嗎?

流動質押(Liquid Staking)解決方案旨在緩解權益被鎖定在 PoS 鏈中的問題。為了進行流動質押,用戶需要將他們的資金存到託管機構,然後託管機構代表用戶質押這些資金。作為回報,用戶會收到代表質押權益的對應 token,然後他們可以在市場上自由交易這種 token。例如,通過在流動質押合約中質押 ETH,用戶可以獲得一個 “stEth”,它可以作為藉貸和流動性挖礦的抵押品。

儘管流動質押方案在 DeFi 中創造了新的機會,但它也有自己的缺點:

  • 由於網絡問題或負責保管質押權益的驗證者的對抗性行動,這可能會造成罰沒的情況。然而,這種超出流動代幣所有者控制範圍的事件可能會降低發生概率,在最糟糕的情況下,會完全破壞代幣的價值。
  • 如果通過智能合約處理流動質押,則可能存在導致質押資金被盜的漏洞。
  • 上述風險可能反映在實際質押權益與相應代幣之間的價差上。例如,Lido 提供的 stEth 代幣與 ETH 之間最近有了 8% 的價差。
  • 將存入大型流動質押服務的權益集中起來會損害 PoS 鏈的去中心化,並降低用戶對其資金的主權。例如,最大的流動質押池 Lido 目前擁有以太坊信標鏈中所有質押 ETH 的 32.1% 的市場份額,該值略低於足以讓對手雙花或停止區塊鏈的 33% 質押比例。這種質押卡特爾化對以太坊意味著的風險,這仍然是社區擔憂的根源。

為什麼 PoS 鏈質押解鎖期那麼長?

流動質押解決方案的風險凸顯了縮短質押解鎖期的重要性,而不是為流動性問題找到解決辦法。為了實現這個目標,我們必須首先了解質押解鎖期的目的是什麼,以及為什麼它會這麼長。因此,我們首先要了解長程攻擊(long range attacks),這也是 Cosmos zone 等 PoS 鏈採用長時間質押解鎖期的原因。

對權益證明鏈的長程攻擊

圖 2:規範鏈。舊的驗證者顯示為深綠色,新的驗證者顯示為藍色。在提取他們的質押權益後,舊的深綠色驗證者將被新的藍色驗證者取代。
圖 3:對規範鏈的長程攻擊。在提取他們的質押權益後,舊的深綠色驗證者(例如區塊鏈的創始人)遭遇對手攻擊,然後攻擊者創建了一條衝突鏈,其從過去的一個區塊處分叉規範鏈。在衝突鏈上,他們啟動了一組新的紫色驗證者,這些驗證者處於攻擊者的控制之下。對於稍後觀察系統的客戶端來說,這兩條鏈看起來同樣有效。

Cosmos zone 的安全性依賴於它們是否有能力追究協議違反者的責任,併罰沒他們的質押權益作為懲罰。例如,如果驗證者對兩個衝突區塊進行簽名並最終確定,從而在客戶端之間造成混淆,則可以通過將衝突的簽名作為證據來將其識別為協議違反者,並隨後對其罰沒。然而,一旦驗證者解除質押,即從鏈中提取他們的權益,他們就不再因違反協議而受到懲罰。因此,攻擊者可以激勵這些舊驗證者進行長程攻擊(參見圖 2 和圖 3)。長程攻擊的一個突出例子是下面描述的創始人攻擊。

在攻擊開始之前,區塊鏈的創始人(即初始驗證者),提取他們的權益。然後,使用他們的舊密鑰,他們構建了一條與現有規範鏈衝突的新區塊鏈。衝突鏈從過去的一個區塊處分叉規範鏈,其中創始人(即舊驗證者)構成了驗證者集的大部分(參見圖 3)。在衝突鏈上,這些創始人再次退出,並將他們的投票權轉移給具有不同密鑰的新驗證者,而這些驗證者實際上是由攻擊者(也可能就是創始人自己!)控制。這使攻擊者能夠在假設的創始人退出後繼續在衝突鏈上進行構建。

長程攻擊對區塊鏈的安全構成了嚴重威脅,因為它們會混淆後來的客戶端,使其採用與早期客戶端採用的規範鏈不同的鏈。不幸的是,這些攻擊是 PoS 所固有的,因而存在 nothing-at-stake(無利害關係)問題。當可以多次使用相同的權益來產生多個衝突的區塊時,就會出現這個問題,就像長程攻擊的情況一樣。相比之下,比特幣等工作量證明(PoW)鏈不易受到 nothing-at-stake(無利害關係)或長程攻擊,因為攻擊者無法使用 “相同” 的計算來構建多個單獨的區塊。

減輕長程攻擊:社會共識?

為了防止長程攻擊,很多 PoS 鏈要求新加入的客戶端和驗證者在可信源的幫助下識別規範鏈上的檢查點區塊。例如,引導 Cosmos 輕客戶端的建議來源包括受信任的網站、包含檢查點區塊列表的 Discord 通道或用於下載客戶端代碼的受信任對等節點。收到檢查點區塊後,客戶端可以安全地忽略舊驗證者構建的衝突鏈(參見圖 4)。

圖 4: 新加入的客戶端向其對等節點詢問規範鏈上的弱主觀性檢查點(帶有綠色複選標記的區塊)。通過觀察檢查點,客戶端可以區分衝突的攻擊鏈(底部)和規範鏈(頂部)。

客戶端對外部可信來源的依賴稱為社會共識,以強調識別規範、正確鏈過程的主觀性。事實上,不同的對等節點可能很容易對規範鏈產生分歧,因為鏈的 “正確性” 沒有基本事實,而比特幣則總是選擇計算量最大的鏈作為 “正確” 鏈。

儘管社會共識是減輕長程攻擊的第一步,但它也有其自身的問題:

  • 社會共識沒有具體說明如何識別受信任的對等方。由於這些對等方對於不同的驗證者可能不同,因此通常很難量化對它們的信任
  • 對於網站等公共信任源,社會共識會將單點故障暴露給潛在的攻擊者。例如列出檢查點的網站被黑了怎麼辦
  • 社會共識引入了圍繞透明度的問題,並可能導致圍繞區塊鏈生態系統的強大參與者的區塊鏈決策中心化。

質押解鎖如何適應這一切?

在社會共識方法的缺點中,最大的問題就是會引入令人沮喪的延遲:所有受信任的對等節點可能需要數天或數週才能就檢查點達成一致。這是由於協議過程的主觀和社會方面。例如,對等方可能通過 Telegram 進行通信(參見圖 4),其中鏈上的協商將花費比共識協議的確認延遲更長的時間。這就是為什麼圖 4 中規範鏈上的最後一個檢查點比鏈的頂端要老得多。

如果舊驗證者可以在社會共識仍在進行時提取權益並創建衝突鏈,則應作為可信來源的對等方可能無法就檢查點達成一致。這就是為什麼包括 Cosmos zone 在內的很多 PoS 鏈會採用一個很長的質押解鎖期。較長的質押解鎖期意味著舊的驗證者必須等到社會共識終止,並在規範鏈上檢查一個區塊,然後才能收回他們的質押資金。這反過來又可以防止惡意驗證者混淆客戶端,因為客戶端會立即將衝突的惡意鏈(圖 4 中的底部鏈)識別為沒有檢查點的鏈。舊的驗證者當然可以選擇在收回他們的質押權益之前建立一個衝突鏈,但在這種情況下,由於雙重簽名,他們的權益可能會被罰沒,並且在實踐中極不可能發生這種攻擊。

小結

設置長時間的質押解鎖期會降低用戶體驗以及 PoS 系統的流動性。儘管緩解長程攻擊需要一段時間的質押解鎖期,但如果社會共識可以更快地做出決策,那麼時間就可以大大縮短。因此,在下一節中,我們將研究是否可以通過用更快的信任來源來取代社會共識,以實現更短的質押解鎖期。

三、使用 Babylon 實現更快的 PoS 鏈質押解鎖

使用比特幣作為檢查點的來源

幸運的是,通過使用比特幣(世界上最安全的區塊鏈)作為關於提款請求的確定性協議,我們可以加快和自動化社會共識的過程。為此,PoS 區塊上的弱主觀性檢查點會被比特幣上這些區塊的實際檢查點所取代(圖 5)。這些檢查點的順序決定了規範的 PoS 鏈。一旦 PoS 區塊的檢查點在比特幣中變得足夠深(例如,k=6 區塊深度),該檢查點就無法被回滾,這意味著任何攻擊鏈的檢查點都會稍後出現在比特幣上,並且隨後可以被忽略。因此,要批准提款請求,包含請求的 PoS 區塊的檢查點出現早於比特幣上的衝突檢查點就足夠了,並且確保 K 值要足夠大。由於這需要數小時而不是數週,因此使用比特幣作為檢查點,可以將質押解鎖延遲從數週減少到數小時(技術細節參見原論文‌)。

圖 5:頂部(藍色)PoS 鍊是規範的 PoS 鏈。帶提款請求的頂部(藍色)鏈上的 PoS 區塊在比特幣上具有一個較早的檢查點。一旦這個檢查點變得足夠深,提款就會被批准。此時,如果提款驗證者進行長程攻擊,則底部(紫色)長程攻擊鏈的檢查點必然晚於頂部(藍色)規範鏈的檢查點,因為比特幣上的 k 深度檢查點無法被回滾。衝突的檢查點可以被識別為來自攻擊鏈,隨後可以被忽略。

我們可以直接向比特幣發送檢查點嗎?

讓我們考慮一個 Cosmos zone(它是一個 PoS 區塊鏈)向比特幣發送檢查點,以減輕長程攻擊並減少其提款延遲。檢查點可以通過使用比特幣的 OP_RETURN  操作碼來實現,該操作碼允許在不可花費的比特幣交易中發布 80 字節的任意數據。每個檢查點必須至少包含要檢查的 PoS 區塊的哈希(32 個字節)以及最終確定該區塊的簽名(每個 32 字節)。在這裡,哈希用於識別被檢查點的 PoS 區塊。需要簽名來防止對手發送任意哈希並假裝其正在比特幣上檢查 Cosmos 區塊(我們將在下面看到為什麼這是一個問題)。

由於每個 Cosmos 區塊都可能包含一個提款請求,因此該 Cosmos zone 可能必須為每個新的 Cosmos 區塊發送一個新的檢查點。通常 Cosmos zone 每 10 秒就有一個新區塊,但比特幣大約每 10 分鐘才有一個新區塊,這意味著每個比特幣區塊至少要檢查 60 個 Cosmos zone 區塊的數據。然後,即使該 Cosmos zone 由單個驗證者運行,這意味著在每個新的比特幣區塊上至少要檢查 3840 字節的總大小,每個區塊至少需要 48 筆 OP_RETURN  交易,僅僅用於檢查單個 Cosmos zone! 在這一點上,我們甚至沒有考慮由多個驗證者運行的 Cosmos zone,或者為多條 PoS 鏈提供檢查點服務。

總的來說,由於三個主要原因,直接在比特幣上檢查 Cosmos zone 可能是不可行的:

  • 有必要檢查每個包含提款請求的 PoS 區塊,這可能是 Cosmos zone 中的所有區塊。
  • 有必要在每個檢查點發布足夠多的簽名,以防止弱對手(不控制很多驗證者)發送任意哈希並假裝它正在檢查比特幣上的 Cosmos 區塊。不幸的是,Cosmos zone 所使用的 Tendermint 簽名是不可聚合的,並且佔用了大量空間。
  • 可能有很多 Cosmos zone 或其他 PoS 鏈發送檢查點。在這種情況下,比特幣有限的區塊空間意味著檢查點解決方案會面臨基本的可擴展性問題。

為了減少檢查點的佔用空間,並開發可同時支持多個 Cosmos zone 的可擴展檢查點解決方案,我們需要聚合檢查點以適應每個比特幣區塊提供的有限空間。此外,我們需要使這些檢查點盡可能緊湊。

而這就是 Babylon 要做的事。

Babylon 的架構

Babylon 是一個 PoS Cosmos zone 區塊鏈,它接收來自多條 PoS 鏈的檢查點流作為交易數據,並代表它們將單個檢查點流發佈到比特幣。通過使用 Babylon 驗證者的聚合簽名來最小化檢查點大小,並且這些檢查點的頻率通過允許 Babylon 驗證者在很多區塊時間的每個 epoch 僅更改一次來控制。

例如,完整的 Babylon 架構由三條區塊鏈組成:消費者 PoS 鏈(例如其他 Cosmos zone)、Babylon 以及比特幣(圖 6)。

圖 6

為了盡量減少對 Babylon 的信任以準確檢查 PoS 區塊,各個 PoS 鏈的驗證者(為了清楚起見,我們只提一條鏈)下載 Babylon 區塊,並觀察其 PoS 檢查點是否包含在比特幣檢查的 Babylon 區塊中。這使 PoS 鏈能夠檢測到差異,例如,如果 Babylon 驗證者創建了一個由比特幣檢查的不可用區塊,並對不可用區塊中包含的 PoS 檢查點撒謊(圖 10)。協議的主要組成部分描述如下:

1)Checkpointing: 只有 Babylon epoch 的最後一個區塊被比特幣檢查。檢查點由區塊的哈希以及單個聚合 BLS 簽名‌組成,該簽名對應於已簽署區塊以進行最終確定的 2/3 驗證者集的簽名。Babylon 檢查點也包含 epoch 編號。

PoS 區塊可通過 Babylon 檢查點分配比特幣區塊的時間戳。例如,圖 6 中的前兩個 PoS 區塊由 Babylon 區塊設置檢查點,而 Babylon 區塊又由時間戳為 t_3  的比特幣區塊設置檢查點。因此,這些 PoS 區塊被分配了比特幣時間戳 t_3

2)規範 PoS 鏈:當 PoS 鏈上出現分叉時,第一個區塊具有較早比特幣時間戳的鏈就被視作規範 PoS 鏈(圖 7)。如果兩個分叉具有相同的時間戳,則平局被打破,有利於具有 Babylon 上較早檢查點的 PoS 區塊。

圖 7: 使用 Babylon 從 PoS 鏈中提取質押權益。提款的 k 深度規則防止提款驗證者進行成功的長程安全攻擊。

3)提款規則:要提款,驗證者向 PoS 鏈發送提款請求(圖 7)。包含提款請求的 PoS 區塊由 Babylon 檢查,然後再由比特幣檢查,並分配時間戳 t_1。一旦時間戳為 t_1  的比特幣區塊深度變為 k,就在 PoS 鏈上授予提款。此時,如果已提取質押權益的驗證者進行長程攻擊,則攻擊鏈(圖 7 中的底部鏈)上的區塊只能被分配一個晚於 t_1  的比特幣時間戳。這是因為,一旦時間戳為 t_1 的比特幣區塊變為 k 深度,它就無法回滾。然後,觀察比特幣上這些檢查點的順序,PoS 客戶端可以區分出規範鍊和攻擊鏈,隨後可以將攻擊鏈忽略掉。

圖 8:一種短程安全攻擊,導致在圈內對沖突的 PoS 區塊進行雙重簽名的對抗性 PoS 驗證者的權益被罰沒。

4) 罰沒規則:如果驗證者在檢測到攻擊時沒有撤回其質押,則可以對具有雙重簽名衝突 PoS 區塊的驗證者進行罰沒(圖 8)。惡意的 PoS 驗證者知道,如果他們等到提款請求被批准後再進行長程安全攻擊,他們將無法迷惑客戶端,客戶端可以查看比特幣來識別規範鏈(圖 7)。因此,他們可能會在為規範 PoS 鏈(圖 8 中的頂部鏈)上的區塊分配比特幣時間戳(例如 t_2)時分叉 PoS 鏈。然後,這些 PoS 驗證者與惡意 Babylon 驗證者以及比特幣礦工合作,將 Babylon 和比特幣分叉,並將時間戳 t_2  的比特幣區塊替換為另一個時間戳 t_3  的區塊。在後來的 PoS 客戶端看來,這將規範 PoS 鏈從頂部鏈更改為底部鏈。雖然這是一次成功的安全攻擊,但它會導致惡意 PoS 驗證者的權益被罰沒,因為他們有雙重簽名的衝突區塊(圖 8 中以紅色圈出),但尚未提取其質押權益。

圖 9:Babylon 上不可用 PoS 檢查點的停止規則。

5) 不可用 PoS 檢查點的停止規則:PoS 驗證者在觀察到 Babylon 上不可用的 PoS 檢查點時必須暫停他們的 PoS 鏈。在這裡,一個不可用的 PoS 檢查點是由 2/3 的 PoS 驗證者簽名的哈希,其假定對應於無法觀察到的 PoS 區塊。如果 PoS 驗證者在觀察到不可用的檢查點時沒有停止 PoS 鏈,那麼攻擊者可以揭示以前不可用的攻擊鏈(圖 9 中以深綠顯示),並在後來的客戶端視圖中更改規範鏈。這是因為稍後顯示的陰影鏈的檢查點出現在 Babylon 的早期。

上面的暫停規則揭示了我們要求作為檢查點發送的 PoS 區塊哈希由 PoS 驗證者集簽名的原因。如果這些檢查點沒有簽名,那麼任何攻擊者都可以發送任意哈希,並聲稱它是 Babylon 上不可用的 PoS 區塊檢查點的哈希。然後,PoS 驗證者將不得不暫停檢查點。請注意,創建不可用的 PoS 鍊是困難的:它需要破壞至少 2/3 的 PoS 驗證者,以便它們用簽名完成 PoS 區塊,但不向誠實的驗證者提供數據。然而,在上面假設的攻擊中,惡意對手在沒有攻擊任何一個驗證者的情況下,就停止了 PoS 鏈。為了防止此類攻擊,我們要求 PoS 檢查點由 2/3 的 PoS 驗證者驗證。因此,只有當 2/3 的 PoS 驗證者確實被攻擊者控制時,Babylon 才會有不可用的 PoS 檢查點。由於破壞 PoS 驗證者的成本,這種攻擊極不可能發生,並且不會影響其他 PoS 鍊或 Babylon 本身。

圖 10:比特幣上不可用 Babylon 檢查點的暫停規則。

6)不可用 Babylon 檢查點的暫停規則:PoS 和 Babylon 驗證者必須在觀察到比特幣上不可用的 Babylon 檢查點時暫停區塊鏈。在這裡,不可用的 Babylon 檢查點是具有 2/3 Babylon 驗證者的聚合 BLS 簽名的哈希,據推測它對應於無法觀察到的一個 Babylon 區塊。如果 Babylon 驗證者沒有停止 Babylon 區塊鏈,那麼攻擊者可以揭示一條以前不可用的 Babylon 鏈(在圖 9 中以深藍顯示),從而在後期客戶端的視圖中更改規範的 Babylin 鏈。類似地,如果 PoS 驗證者沒有停止 PoS 鏈,那麼攻擊者可以揭示以前不可用的 PoS 攻擊鏈(圖 10 中以深綠顯示)以及以前不可用的 Babylon 鏈,從而在後期客戶端的視圖中規範 PoS 鏈。這是因為後來揭示的深色 Babylon 鏈在比特幣上具有較早的時間戳,並且包含後來揭示的 PoS 攻擊鏈的檢查點。

就像不可用 PoS 檢查點的暫停規則一樣,上述規則揭示了為什麼我們要求作為檢查點發送的 Babylon 區塊哈希必須附有一個聚合 BLS 簽名,以證明 2/3 的 Babylon 驗證者的簽名。如果 Babylon 檢查點沒有簽名,那麼任意對手都可以發送任意哈希,並聲稱它是比特幣上不可用 Babylon 區塊檢查點的哈希。然後,PoS 驗證者和 Babylon 驗證者將不得不等待一個在其原像中沒有任何不可用 Babylon 或 PoS 鏈的檢查點!創建不可用的 Babylon 鏈需要破壞至少 2/3 的 Babylon 驗證者。然而,在上述假設的攻擊中,攻擊者停止了系統中的所有鏈,甚至沒有破壞單個 Babylon 或 PoS 驗證者。為防止此類攻擊,我們要求 Babylon 檢查點通過聚合簽名進行證明;因此只有當確實有 2/3 的驗證者被損壞時,才會有不可用的 Babylon 檢查點。由於破壞 Babylon 驗證者的成本,這種數據可用性攻擊極不可能發生。不幸的是,一旦發生這種情況,它就會通過迫使它們停止來影響所有 PoS 鏈。

小結

通過使 PoS 鏈能夠使用比特幣作為時間戳服務(類似於社會共識的作用),Babylon 將 PoS 鏈的質押解鎖時間從幾週縮短到幾個小時。由於比特幣區塊內空間不足,無法直接在比特幣上對 PoS 區塊進行檢查,Babylon 作為單獨的 PoS 鏈聚合 PoS 鏈所發送的檢查點,並代表它們發佈到比特幣。Babylon 架構通過其針對未綁定驗證者的 K 深度提取規則防止長程攻擊,並保證在發生短程安全攻擊的情況下罰沒攻擊者的質押權益。

四、通過 Babylon 提高審查抗性

審查抗性

Cosmos zone 等 PoS 區塊鏈通常要求持有超過 2/3 的質押權益的驗證者誠實地遵循協議,以便在鏈中包含新交易。當持有超過 1/3 質押權益的驗證者變得惡意時,他們可以任意阻止區塊的最終確定,從而選擇性地審查交易。例如,惡意驗證者可以進行勒索攻擊,他們通過向時間敏感的交易用戶索取賄賂(類似於 Validium 贖金攻擊‌)。

不幸的是,1/3 審查攻擊並不是 Cosmos zone 設計的缺點,而是 PoS 協議的基本限制‌,它能夠罰沒行為不端的驗證者(例如,簽署了衝突區塊的驗證者)。這個可罰沒保證阻止攻擊者創建衝突鏈,然而,這導致審查抗性從比特幣的 1/2 下降到 Cosmos zone 的 1/3。

Babylon 如何提升 PoS 鏈的審查抗性

Babylon 可以幫助具有可罰沒保證的 PoS 鏈(例如 Cosmos zone)實現 1/2 的審查抗性。為了實現這一目標,Babylon 將 PoS 鏈連接到比特幣,使它們能夠以 rollup 的模式運行,其中比特幣被用作 PoS 交易的排序服務。在 rollup 模式下,PoS 驗證者只負責驗證 PoS 區塊內數據的可用性,而區塊的規範順序由它們在 Babylon 上的檢查點的順序決定。規範的 Babylon 鏈依次使用比特幣上 Babylon 區塊的檢查點構建,因而比特幣是 PoS 區塊排序的最終權威。

進入 Rollup 模式

圖 11:Babylon 的審查投訴

如果 PoS 鏈的一個用戶認為某筆交易 tx 被 PoS 鏈審查,可以通過向 Babylon 發送審查投訴來提示該鏈進入 rollup 模式(圖 11)。審查投訴是一筆 Babylon 交易,其中包含審查交易 tx 的哈希。

圖 12:審查投訴的檢查點在比特幣的深度變為 K,此時,驗證者停止執行 PoS 協議。

在觀察到關於 Babylon 的審查投訴後,PoS 驗證者會等到投訴的檢查點在比特幣中達到 k 深度。此時,如果一名驗證者尚未看到 tx 在 PoS 鏈中最終確定,它將停止提出新的 PoS 區塊或簽署新的提案(圖 12)。相反,它會向 Babylon 發送一個用於查看 PoS 鏈的檢查點(圖 13)。

圖 13: 審查投訴的檢查點在比特幣的深度變為了 2 k。驗證者和用戶進入 rollup 模式。

一旦審查投訴的檢查點在比特幣的深度達到了 2 k,如果比特幣上的所有檢查點都沒有證明 PoS 區塊在其前綴中包含 tx,則驗證者(和用戶)進入 rollup 模式(圖 13)。

在 rollup 模式期間

圖 14: 在 rollup 模式下,驗證者創建捆綁包(bundle)並簽署他們視圖中可用的捆綁包。具有足夠多簽名的捆綁包(bundle)在 Babylon 上通過發布它們的哈希以及相關簽名進行檢查。

在 rollup 模式中,任何驗證者都可以提出一個 PoS 交易捆綁包(圖 14)。在收到一個 bundle 時,進入 rollup 模式的每個驗證者都會對 bundle 的哈希進行簽名,如果其事務在驗證者視圖中可用。從擁有超過 1/2 質押權益的驗證者那裡收集簽名的捆綁哈希被發佈到 Babylon。這些哈希和相關聯的簽名稱為捆綁檢查點(bundle checkpoint)。如果捆綁檢查點附有持有超過 1/2 質押權益的驗證者的簽名,則捆綁檢查點有效。

捆綁包簽名需要防止對手向比特幣發布任意哈希,並假裝它們是不可用 PoS 交易的檢查點。回想一下,當觀察到不可用的檢查點時,驗證者會停止輸出新的 PoS 區塊,以防止數據可用性攻擊。因此,在沒有簽名的情況下,攻擊者可以發布類似於不可用檢查點的任意哈希,並阻止 PoS 鏈。有了簽名,攻擊者必須按比例破壞一半以上的驗證者,以獲得由這些驗證者簽名的不可用檢查點。

為了在 rollup 模式下構建 PoS 鏈,鏈的用戶首先識別時間戳在比特幣審查投訴檢查點 2 k 區塊內的 PoS 檢查點。他們隨後確定了這些檢查點證明的最長 PoS 鏈。最後,他們按照檢查點出現在 Babylon 上的順序,將帶有有效檢查點的 bundle 捆綁包附加到該鏈的頂端。

退出 Rollup 模式

驗證者在觀察到建立在比特幣審查投訴檢查點上的 T>2 k 區塊後退出 Rollup 模式。這裡,T 是一個協議參數,表示 Rollup 模式的持續時間。在觀察這些 T 區塊後,PoS 鏈的驗證者和用戶都將添加到他們的鏈視圖中的最後一個捆綁包視為新的創世區塊,該區塊用作 PoS 協議的錨點重啟或引導。

抗審查的限制

通過 rollup 模式,只要有足夠的誠實驗證者簽署捆綁哈希,PoS 鏈就可以減輕審查攻擊。這意味著審查抗性為 1/2,與比特幣的抗性百分比相當。不幸的是,即使在比特幣的幫助下,也不可能設計出一個審查抗性超過 1/2 的協議,除非所有 PoS 區塊數據都發佈到比特幣,然而這是不可行的(參見論文的定理 4 ‌)。鑑於這種不可能的結果,Babylon 的設計實現了針對 Cosmos zone 的審查攻擊的最佳抗性。

五、共享安全性

Cosmos zones 等 PoS 鏈可以使用具有緩慢確定性規則的 Babylon 來實現比特幣級別的交易安全。為了通過慢速確定性規則確認交易,PoS 鏈的客戶端等到包含該交易的 PoS 區塊的時間戳在比特幣上變為 k 深度。通過這種方式,客戶端可以保護高價值交易的安全性,防止雙花攻擊。使用比特幣保護高價值交易的可能性,使得 Cosmos zone 即使在代幣估值較低的情況下也能支持高價值交易,從而促進新 zone 用於 NFT 轉移等高價值用例。通過聚合多個 Cosmos zone 的比特幣時間戳,Babylon 使這些 zone 能夠同時享受慢確定性規則提供的比特幣級別的安全性。

比特幣慢確定性帶來的安全性

圖 15:時間戳變為 k 深度的 PoS 區塊用綠色複選標記表示。這些區塊通過慢確定性規則確認。任何與這些區塊衝突的 PoS 鏈都將被識別為攻擊鏈並被拒絕,因為它的時間戳將出現在通過慢確定性規則確認的 PoS 區塊的時間戳之後。

在上文中,我們已經看到 Babylon 如何通過在比特幣上為 PoS 鏈的質押解鎖請求加時間戳來幫助縮短解鎖時間。一旦為解鎖請求加時間戳的比特幣區塊被確認,即在比特幣最長鏈中的深度變為 k,攻擊者就無法通過分叉比特幣來覆蓋攜帶質押解鎖請求的 PoS 區塊的時間戳。因此,PoS 鏈一旦在比特幣上得到確認,就可以授予解鎖請求,而不會使其遭受攻擊。

將上述觀察推廣到所有 PoS 區塊以及交易,我們就可以得到一種更強的 PoS 交易確定性概念:如果客戶端等到 PoS 區塊的時間戳在比特幣上的深度變為 k,則該時間戳不能被任何衝突區塊取代(除非比特幣本身失去安全性)。這一概念使客戶端能夠在此類區塊內獲得比特幣級別的交易安全,但代價是更長的延遲,因此被稱為慢確定性。這種延遲來自於對 PoS 交易加時間戳的比特幣區塊的確認延遲(k 深度的時間)。

慢確定性的用例

1、保護重要交易

Cosmos zone 的客戶端可選擇使用慢確定性來為關鍵的高價值交易實現比特幣級別的安全性。考慮購買一輛昂貴的汽車。如果商家在發貨前等到付款被比特幣上的 k 深度區塊打上時間戳,這可以避免買家的任何雙花風險。這是因為這種攻擊不僅要求買方分叉底層 Tendermint 鏈(有被罰沒的風險),而且還要分叉比特幣本身,以移除包含支付交易的 Tendermint 區塊的時間戳。

2、引導新的區塊鏈

緩慢確定性的一個重要用例,是支持具有低代幣估值的新 Cosmos zone 進行高價值交易(例如 NFT 轉移)。在上面的雙花示例中,惡意買家可能會毫不猶豫地賄賂驗證者以分叉該 Cosmos zone,由於代幣估值較低時,罰沒的財務影響會很小,這導致了自舉困境:由於安全攻擊風險,區塊鏈的低初始估值阻礙了用戶進行高價值交易,這反過來又因交易量低而阻礙了代幣價值的任何增長。而有了 Babylon 以及緩慢確定性,進行雙花交易的攻擊者還需要支付攻擊比特幣的費用,而這需要購買大量的算力。因此,通過阻止惡意者進行雙花攻擊,緩慢確定性可通過確保鏈上的高價值資產來打破引導困境,進而推高代幣的價值。

為 Cosmos 生態分享比特幣的安全性

通過緩慢的最終確定性,Cosmos zone 可以為重要交易提供比特幣級別的安全性。然而,如果這些鏈選擇直接向比特幣發送時間戳,則帶寬要求會非常高。在這種情況下,通過代表多個 Cosmos zone 聚集和發送檢查點,Babylon 可以使整個 Cosmos 生態能夠受益於比特幣提供的安全性。

原文鏈接:

1、https://babylonchain.io/blogs/f/babylon-bitcoin-security-for-all

2、https://babylonchain.io/blogs/f/why-is-stake-unbonding-so-slow

3、https://babylonchain.io/blogs/f/babylon-for-fast-stake-unbonding

4、https://babylonchain.io/blogs/f/censorship-resistance-via-babylon

5、https://babylonchain.io/blogs/f/shared-security

免責聲明:作為區塊鏈信息平台,本站所發布文章僅代表作者及嘉賓個人觀點,與 Web3Caff 立場無關。本文內容僅用於信息分享,均不構成任何投資建議及要約,並請您遵守所在國家或地區的相關法律法規。