TL;DR
TeleportDAO 和Eigen Labs 於近日聯合發表了一篇論文,重點關注了輕節點在權益證明(PoS)區塊鏈中存取和驗證鏈上資料時面臨的安全和效率挑戰。該論文提出了一種新的解決方案,透過經濟激勵和有保險的預安全機制,以及客製化「可程式安全」性和具有成本效益等一系列措施來確保PoS 區塊鏈中輕節點的安全性和效率。 十分具有前瞻性,值得深入研究。
註:Eigen Labs 是Restaking 協議EigenLayer 和EigenDA 的背後開發商,Eigen Labs 目前已從a16z、Polychain、Blockchain Capital 等著名風投機構募集了超過1 億5 千萬美金。
TeleportDAO 位於加拿大溫哥華,是一家專注於比特幣和EVM 公鏈之間的跨鏈通訊基礎設施項目,目前該協議已透過Coinlist 進行了一輪公開發售和融資成功籌集了900 萬美元。此輪融資得到了包括Appworks、OIG Capital、DefinanceX、Oak Grove Ventures、Candaq Ventures、TON、Across 和bitSmiley 在內的多家投資者的參與。
輕節點設計現存問題
目前來說,在PoS 區塊鏈中,驗證者透過鎖定一定數量的質押(如以太坊中的32 ETH)來參與共識網絡,從而確保網路安全。因此,PoS 區塊鏈安全的本質是由經濟保護的,即總質押越大,攻擊共識網路所需的成本或損失就越大。執行這種罰沒機制依賴於一種稱為「問責安全」的功能,即如果驗證者簽署了相互衝突的狀態,就可以罰沒質押。
全節點在維護PoS 區塊鏈完整性方面發揮著至關重要的作用。它們儲存所有區塊交易資訊、驗證共識簽名、複製完整的交易歷史副本,並執行狀態更新。這些過程需要大量計算資源和複雜的硬體。例如,運行一個完整的以太坊節點需要至少2 TB 的固態硬碟儲存。相較之下,輕節點減少了運算資源需求,只儲存區塊頭,所以應用程式上也只適用於驗證特定交易/狀態的場景,例如行動裝置錢包和跨鏈橋。另外,輕節點在驗證交易時依賴全節點提供區塊信息,但目前的節點服務商市場份額較為集中,因此安全性、獨立性和即時性都無法完全保障。因此本文探討了輕節點達到最佳安全性下,在資料取得成本與延遲之間的權衡方案。
現有的輕節點設計方案
比特幣引入了簡單支付驗證(SPV)作為其輕節點協定。 SPV 使輕節點能夠使用Merkle Proof 和區塊頭來驗證特定區塊中是否包含交易。因此,輕節點只需下載區塊鏈的區塊頭,就可以透過檢查區塊的深度來驗證交易的最終性。在這種情況下,比特幣中輕節點驗證共識的計算成本相對較低。然而在以太坊這樣的PoS 區塊鏈中,共識檢查的設計本質上更為複雜。它涉及維護整個驗證者集,追蹤他們的質押變化,以及為共識網路執行許多簽名檢查。另一方面,PoW 輕節點的安全性依賴於大多數完整節點都是誠實的假設。為解決SPV的局限性,FlyClient 和非互動式工作證明(NiPoPoW)以亞線性(sublinear)成本向客戶端證明這些區塊。然而,他們對PoS 共識模型的適用性較弱。
相較之下,PoS 區塊鏈透過罰沒機制獲得安全性。該系統依賴共識參與者皆為理性,即攻擊成本超過任何潛在利潤,則不會攻擊網路。為了降低驗證成本,以太坊目前的輕節點協議依賴同步委員會(sync committee),該委員會由512 個隨機選擇的以太坊驗證者組成,每個驗證者質押32 個以太坊,但簽名過程不會被罰沒。這種不可罰沒的設計有重大安全缺陷,同步委員會中不誠實的簽名可能會誤導輕節點接受無效數據,並且不會受到任何懲罰。即使引入罰沒機制,同步委員會的總質押與龐大的以太坊驗證者池相比仍然很少(截至2024 年3 月,以太坊驗證者的數量已超過100 萬)。因此,這種方法為輕節點提供的安全性無法等價於以太坊驗證者集。此模型代表了理性設定下多方運算的特殊變體,但無法提供基於經濟的保障,也無法解決惡意、非理性資料提供者所帶來的威脅。
為了解決PoS 引導過程中的安全和效率挑戰,PoPoS 引入了一個分段博弈,以有效挑戰PoS 時序的對抗性Merkle 樹。雖然它們實現了最小空間,並避免了要求客戶端始終在線和保持質押,但使客戶端能夠在重新加入網路不產生大量成本的情況下離線的問題仍未解決。
另一種研究方法則著重於使用零知識證明來創建簡潔的證明。例如,Mina 和Plumo 透過使用遞歸SNARK 組合和基於SNARK 的狀態轉換證明,有效促進了輕量級共識驗證。然而,這些方法給區塊生產者產生證明帶來了相當大的運算負擔,而且它們沒有解決輕節點潛在損失的補償問題。在其他PoS 協定(如Cosmos 中使用的Tendermint 協定)的背景下,輕節點的角色在其區塊鏈間通訊(IBC)協定中進行了探討。但這些實現是針對其各自生態的,並不直接適用於以太坊或其他各種PoS 區塊鏈。
輕節點新方案設計
大體上來說新方案引入了經濟安全模組以實現“可編程性安全”,輕節點可根據自身安全需求以決定不同方案設計。在安全性假設上基本服從1/N + 1/M,即只要保證全節點和檢察官網路各有一個誠實有效的節點即可保證網路正常運作。
涉及模組/角色:
-
區塊鏈:協議建立在一個可編程的區塊鏈,其區塊的最終確定規則是確定的。例如在以太坊區塊鏈上,一個區塊的最終完成至少需要兩個後續的epoch,通常需要13 分鐘左右。
-
罰沒智能合約:該協議包括一個符合標準智能合約抽象的鏈上罰沒合約。它可以存取區塊鏈中前一個區塊的區塊哈希值。所有各方都可以向該合約發送訊息。
-
數據提供者:數據提供者運行全節點並追蹤區塊鏈的最新狀態。他們以資產為質押,提供服務以驗證輕節點請求的狀態有效性。他們用與其公鑰相對應的秘鑰簽署發送給輕節點的所有數據,從而驗證數據的來源和完整性。
-
檢察官:檢察官是連接到輕節點的全節點,協助資料驗證。任何人都可以成為檢察官,透過監視和罰沒行為不當的一方獲利。為簡單起見,下述方案假設每個輕節點至少連接到一個誠實的檢察官。
-
輕節點:輕節點為求以最小的成本驗證區塊鏈上是否包含了特定狀態/交易。輕節點在驗證過程中與一組資料提供者和檢察官連接。
-
網路:資料提供者組成一個點對點(p2p)網絡,使用Gossip 協定傳播資料。輕節點連接到一些資料提供者以發送請求和接收回應。
方案一:安全優先
方案一主要透過提出挑戰期與檢察官網路實現資料可信賴性。簡單來說,輕節點會在收到提供者簽署過的資料後,將這部分的資料發給檢察官網路審查,在一段期限內,如出現資料作假,檢察官會提醒輕節點資料不可信,智慧合約的罰沒模組會罰沒對於資料提供者的質押代幣,反之,輕節點可以相信這些資料的可信度。
輕節點請求資料具體流程:
-
輕節點從目前網路中取得最新的資料提供者名單,並決定一個挑戰期限。值得注意的是該挑戰期對於不同的輕節點之間是相互獨立的,但挑戰期上限是適用於所有輕節點。挑戰期限是檢察官網路用於檢查資料可信賴性的最長時間,因此時間越長,單比交易傳遞延遲越久。
-
取得完名單後,輕節點會挑選一組資料供應商,並確保他們各自的質押資金大於目前交易的價值,理論上越高的質押資金,資料提供者做惡成本越高,輕節點信任成本則越低。
-
輕節點向這組資料提供者發送相應資料請求,該請求包括對應區塊編號和該目標狀態(該交易的inclusion proof)
-
數據提供者發送對應區塊的哈希和該交易的inclusion proof,並附上簽名。
-
輕節點收到上述資料後,轉發給目前連結的檢察官網路。如果在挑戰期結束後沒有收到資料可信賴性警示,那麼輕節點就對該簽章進行驗證,無誤後便通過資料可信賴性測試。
- 但如果從檢察官網路中收到了警示,那麼輕節點就需要捨棄先前收到的簽名。檢察官網路會提交相關的證明給智能合約的罰沒模組,智能合約在檢查過數據後如果發現做惡情況確實發生,那麼對應的數據提供商的質押則會被罰沒。由於部分/全部選擇的資料提供者被罰沒,所以輕節點需要重新從目前網路中取得新一批資料提供者名單,以確罰沒事件的確發生。
其他要點:
-
任何全節點都可以透過向智慧合約發起「註冊」和「提款「請求去參與/離開資料提供者網路。註冊參與資料提供者網路有最低的質押門檻。一旦全節點選擇發起提款,那麼他們在該網路的狀態會立刻改為“離開”,並且無法接收輕節的請求,以防快進快出的做惡可能。另外,數據提供商網路會按照一個週期更新當前網路活躍的數據提供商,在此期間數據提供商無法收到提款款項,提款請求會在當前更新周期內的最後一個區塊生效,同時更新頻率會比挑戰期限上限高,以確保所有輕節點資料可用性測試皆已完成。因為資料提供者網路的活躍性,輕節點需要在每輪網路更新周期的時候重新取得目前網路活躍提供者的名單。如果選擇延長這個更新週期,輕節點可以享受更簡潔的驗證過程(可透過上一個週期的「註冊」和「提款「請求去預估當前活躍名單),但希望離開的全節點則需要面對更長的等候時間。
-
檢察官網路收到資料簽名後,會檢查簽名是否屬於該資料提供者,並且衡量資料是否在共識網路中被」最終確認「。如果資料沒有出現在合理鏈上有兩種可能。第一,數據還沒有被目前區塊鏈最終確認,不同鏈有不同的最終確定性規則,例如最長鏈原則。第二,交易在別的合理鏈的區塊。如果上述資料出現作假,檢察官網路會發送一個罰沒請求至智慧合約,其中包含資料提供者的公鑰、資料提供者的簽章、區塊編號,同時間發送該罰沒事件的證明以提醒輕節點。智能合約會在收到這些數據後,透過共識層的最終確定性原則衡量當前最終確認的區塊編號與收到的數據是否一致,如果不一致,那麼罰沒事件觸發。另外,如果輕節點在選擇資料提供者後,該資料提供者因另一組資料請求被罰沒,檢察官網路會及時發送該罰沒事件以提醒輕節點該提供者的資料可信賴性較低,輕節點則會重新取得名單並選擇其他提供者。
評估:
-
安全性:輕節點透過質押模組與檢察官網路決定了理性與非理性的資料提供者的做惡成本,以提高資料可信賴性。但因為整個協議是基於共識網路(本文在以太坊進行測試)的,所以一旦共識層遭受攻擊,本協議也會受到潛在信任危機,因此可以進一步引入名譽機制確保極端情況下的系統性風險。
-
全節點層級安全性:本方案希望提供等價於以太坊PoS 的安全假設,即全節點做出虛假聲明需要承擔罰沒風險。
-
網路活躍性:如果目前網路只有少數理性資料供應商,輕節點將面臨多輪的延遲,但由於每個資料提供者的吞吐量不為零,每筆請求始終都能完成。因此只要該網路有一個理性的全節點,就能確保網路能夠持續運作。同時,由於資料提供者的收益與質押金額大小掛鉤,這也鼓勵了全節點採取超額質押的方式保護網路。
-
效率:文章作者團隊預估以太坊驗證者是主要參與數據提供者的用戶,因為驗證者已經在運行全節點了,並且可以透過該協議獲得額外的收益。小金額的交易可能透過單一資料提供者便可以獲得可信任資料(對輕節點來說只需要驗證一次),而大筆交易可能需要多個資料提供者才能取得可信任資料(驗證次數會根據提供者數量線性增加)。
方案二:效率優先
方案二在方案一的基礎上透過提出保險機制實現數據快速確認。簡單來說,輕節點根據保單金額與時長確定保險後,數據提供者部分/全部的質押可以被償還輕節點後續因數據做惡而產生的損失,因此輕節點收到並驗證提供者提供的數據簽署後,便可確定該資料的初始可信性。
輕節點請求資料具體流程:
-
輕節點計算當前交易潛在最大損失,隨後制定保單金額大小與保單保期。數據提供者質押在保險的資金量大小應大於保單金額大小已確保有足夠的償還金。
-
輕節點決定該交易的挑戰週期。值得注意的是保單保期可以涵蓋多筆交易的inclusion check,因此輕節點選擇的總挑戰週期不能超過保期,否則可能出現部分交易無法收到保障。
-
選擇完參數後(保單金額、保單保期、資料提供者質押在保險的資金大小、資料提供者意願名單),輕節點就可以發送請求至智慧合約。隨後等待區塊最終確認時間,便可以驗證保險購買是否成功。如果出現失敗,情況可能來自其他的輕節點也選擇了該數據提供商,並且先結算,因此剩餘質押不足以匹配他原本的需求。
-
輕節點發送資料請求,當中除了區塊編號和該目標狀態(該交易的inclusion proof)還需要包括保險編號。
-
資料提供者發送資料以及簽名,輕節點驗證該簽名並轉發至檢察官網絡,隨後該筆交易已被初步確信。
-
檢察官在收到資料以及簽名後會初步驗證資料可信性,如果出現做惡則提交證明至智能合約,並且向對應的資料提供者罰沒,該罰沒會分發給輕節點。
其他要點:
-
數據提供者的質押在保險的代幣在不同輕節點請求之間互相獨立,以防出現多重保險的償還風險。智能合約在輕節點選定資料提供者後,會把對應的質押在保險的代幣鎖定,並且其他輕節點在該保期結束前無法分配此部分的質押。如果交易之間是獨立的,那麼保單金額大小與最大交易金額相同。反之,保單金額大小與交易總金額相同。在相同質押金金額前提下,輕節點一般會選擇盡可能少的資料提供者以確保驗證效率。
-
資料提供者在保險期間結束前雖然可以發起發起「提款」請求,但提款款項必須在保期結束後才會收到。
-
嚴謹來說保單保期時間應大於區塊最終確認時間+總挑戰期+通訊延遲+計算/驗證延遲。選擇越多的資料提供者,所需的保單保期會根據總挑戰期延長。
評估:
-
可擴充性:方案二的可擴充性由資料提供者願意質押在保險的代幣金額總量決定。
-
保單成本:因為更高的安全水準與挑戰週期掛鉤,這意味著資料提供者要質押的時間要大於或等於挑戰週期,所以越高安全需求,質押週期越長,輕節點所支付的費用越高。以公式來看,資料提供者的質押成本由資料提供者節點收益/(全年平均質押利用乘以每年區塊總量)計算。而輕節點所需要付出的價格則是由質押成本乘以保單保期和保單大小。
方案有效性
第一,在輕節點運算效率上,輕節點兩個方案都體現了毫秒等級的驗證效率(輕節點只需要對資料進行一次驗證)。
第二,在輕節點延遲上,依照實驗配置的不同情境(下圖),延遲都在毫秒等級。值得注意的是延遲會根據資料提供者的數量線性增加,但延遲始終在毫秒層級。另外,方案一由於輕節點需要等候挑戰期結果,所以延遲都在5 小時。如果檢查者網路夠可靠高效,那麼這個5 小時的延遲也是可以大幅減少的。
第三,在輕節點成本上,實際情況來看,輕節點的成本有二:gas fee 和保費,都會因為保單金額增加而增加。另外,對於檢查者來說,他們遞交資料時所涉及的gas 會以罰沒金額償還,以確保有足夠的參與誘因。
延展方向
-
更多抵押品:目前數據提供者質押的代幣是ETH,但交易資訊是以U 本來計算的,這意味著輕節點在每次獲取數據時都需要衡量ETH 的匯率以確足以維持夠高的抵押資金量如果允許多種代幣質押,數據提供者可以有更多的質押選擇,也就避免了單幣的風險敞口。
-
授權:類似於聯合挖礦,一些散戶可以透過授權他們自己的ETH 給全節點用以參與資料提供者網絡,收益則按照他們自身的協議進行分配,可參考LSD。
-
出塊保證:為了避免等候最終確定週期(在以太坊是12 – 13 秒),輕節點可以通過一種保證,以減少這部分的等候時間。輕節點會先在資料請求時新增一個符號/標識,並且確定需要哪種保證(最終確認/Proposed)。資料提供者在收到請求後提供對應的資料以及簽名。當資料提供者在「Proposed 保證」情況下沒有proposed 區塊,那麼他們會被罰沒。
註:Proposed 的區塊會最後被finalized 或成為uncle block。
-
成本與費用:對於檢察官網路來說,他們需要質押一定量的代幣(大於gas)才能向智能合約提交證明。另外這部分的證明是可以透過zkp 的方式減少費用。另外,在保險機制下,輕節點提交的保費將會給到資料提供者,而檢察官網路則抽取部分做惡提供者的罰沒收益。
-
資料可用性:資料提供者本質上是全節點,他們除了可以參與共識層網絡,也可以驗證資料可用性。驗證可用性檢驗有兩類方案:Pull model 和Push model。前者指的是輕節點隨機抽取從全節點獲得的資料。後者指的是出塊人分發不同區塊給資料提供者。對於採用Pull model 的資料提供者,他們有責任去返回抽樣請求,輕節點在收到資料後轉發給受信節點/驗證者,並由他們嘗試還原區塊,如果不能,那麼資料提供者則會被罰沒。本文的輕節點協議在此基礎上提出了保險機制,為數據可用性研究提供了新的探索方向。
總結
本文提出的輕節點方案提供了「可程式性安全性」以符合不同情況下的安全需求。方案一以更高延遲換取高安全性,而方案二透過引入保險機制為輕節點提供了「即時確認」服務。這些方案可用於需要確認交易最終性的場景,例如原子交易、跨鏈。
附:論文文獻連結:
https://arxiv.org/pdf/2405.01459
* 聲明:本內容不構成投資建議或財務規劃。在進行任何投資或財務決策之前,請諮詢合格的專業人士。