輕節點設計的安全性和效率

新手5/29/2024, 1:15:17 AM
TeleportDAO 和 Eigen Labs聯合發表的論文,探討了權益證明(PoS)區塊鏈中輕節點面臨的安全和效率挑戰,並提出了一種新的解決方案。通過經濟激勵、有保險的預安全機制和“可編程安全”性,旨在提高輕節點的安全性和效率,對跨鏈通信和區塊鏈技術發展具有重要意義。

轉發原文標題《TeleportDAO:數據驗證安全與效率之弈 —— 輕節點設計最新實踐》

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 協議傳播數據。輕節點連接到一些數據提供者以發送請求和接收響應。

方案一:安全優先

方案一主要通過提出挑戰期與檢察官網路實現數據可信性。簡單來說,輕節點會在收到提供商籤署過的數據後,將這部分的數據發給檢察官網路審查,在一段期限內,如出現數據作假,檢察官會提醒輕節點數據不可信,智能合約的罰沒模塊會罰沒對於數據提供商的質押代幣,反之,輕節點可以相信這些數據的可信性。

輕節點請求數據具體流程:

  1. 輕節點從當前網路中獲取最新的數據提供商名單,並決定一個挑戰期限。值得注意的是該挑戰期對於不同的輕節點之間是互相獨立的,但挑戰期上限是適用於所有輕節點。挑戰期限是檢察官網路用於檢查數據可信性的最長時間,因此時間越長,單比交易傳遞延遲越久。
  2. 獲取完名單後,輕節點會挑選一組數據提供商,並確保他們各自的質押資金大於當前交易的價值,理論上越高的質押資金,數據提供商做惡成本越高,輕節點信任成本則越低。
  3. 輕節點向這組數據提供商發送相應數據請求,該請求包括對應區塊編號和該目標狀態(該交易的 inclusion proof)
  4. 數據提供商發送對應區塊的哈希和該交易的 inclusion proof,並附上籤名。
  5. 輕節點收到上述資料後,轉發給當前連結的檢察官網路。如果在挑戰期結束後沒有收到數據可信性警示,那麼輕節點就對該籤名進行驗證,無誤後便通過數據可信性測試。

  1. 但如果從檢察官網路中收到了警示,那麼輕節點需要舍棄先前收到的籤名。檢察官網路會提交相關的證明給智能合約的罰沒模塊,智能合約在檢查過數據後如果發現做惡情況確實發生,那麼對應的數據提供商的質押則會被罰沒。由於部分/全部選擇的數據提供商被罰沒,所以輕節點需要重新從當前網路中獲取新一批數據提供商名單,以確罰沒事件的確發生。


其他要點:

  • 任何全節點都可以通過向智能合約發起“註冊”和“提款“請求去參與/離開數據提供商網路。註冊參與數據提供商網路有最低的質押門檻。一旦全節點選擇發起提款,那麼他們在該網路的狀態會立刻改爲“離開”,並且無法接收輕節的請求,以防快進快出的做惡可能。另外,數據提供商網路會按照一個週期更新當前網路活躍的數據提供商,在此期間數據提供商無法收到提款款項,提款請求會在當前更新週期內的最後一個區塊生效,同時更新頻率會比挑戰期限上限高,以確保所有輕節點數據可用性測試皆已完成。因爲數據提供商網路的活躍性,輕節點需要在每輪網路更新週期的時候重新獲取當前網路活躍提供商的名單。如果選擇延長這個更新週期,輕節點可以享受更簡潔的驗證過程(可通過上一個週期的“註冊”和“提款“請求去預估當前活躍名單),但希望離開的全節點則需要面臨更長的等候時間。
  • 檢察官網路收到數據籤名後,會檢查籤名是否屬於該數據提供商,並且衡量數據是否在共識網路中被”最終確認“。如果數據沒有出現在合理鏈上有兩種可能。第一,數據還沒有被當前區塊鏈最終確認,不同鏈有不同的最終確定性規則,比如最長鏈原則。第二,交易在別的合理鏈的區塊。如果上述數據出現作假,檢察官網路會發送一個罰沒請求至智能合約,當中包括數據提供商的公鑰、數據提供商的籤名、區塊編號,同時間發送該罰沒事件的證明以提醒輕節點。智能合約會在收到這些數據後,通過共識層的最終確定性原則衡量當前最終確認的區塊編號與收到的數據是否一致,如果不一致,那麼罰沒事件觸發。另外,如果輕節點在選擇數據提供商後,該數據提供商因另一組數據請求被罰沒,檢察官網路會及時發送該罰沒事件以提醒輕節點該提供商的數據可信性較低,輕節點則會重新獲取名單並選擇其他提供商。

評估:

  • 安全性:輕節點通過質押模塊與檢察官網路決定了理性與非理性的數據提供商的做惡成本,以提高數據可信性。但是因爲整個協議是基於共識網路(本文在以太坊進行測試)的,所以一旦共識層遭受攻擊,本協議也會受到潛在信任危機,因此可以進一步引入名譽機制確保極端情況下的系統性風險。
  • 全節點級別安全性:本方案希望提供等價於以太坊 PoS 的安全假設,即全節點做出虛假聲明需要承擔罰沒風險。
  • 網路活躍性:如果當前網路只有少數理性數據提供商,輕節點將面臨多輪的延遲,但由於每個數據提供商的吞吐量不爲零,每筆請求始終都能完成。因此只要該網路有一個理性的全節點,就能確保網路能夠持續運行。同時,由於數據提供商的收益與質押金額大小掛鉤,這也鼓勵了全節點採取超額質押的方式保護網路。
  • 效率:文章作者團隊預估以太坊驗證者是主要參與數據提供商的用戶,因爲驗證者已經在運行全節點了,並且可以通過該協議獲得額外的收益。小金額的交易可能通過單個數據提供商便可以獲取可信數據(對輕節點來說只需要驗證一次),而大筆交易可能需要多個數據提供商才能獲取可信數據(驗證次數根據提供商數量線性增加)。

方案二:效率優先

方案二在方案一的基礎上通過提出保險機制實現數據快速確認。簡單來說,輕節點根據保單金額與時長確定保險後,數據提供商部分/全部的質押可以被償還輕節點後續因數據做惡而產生的損失,因此輕節點收到並驗證提供商提供的數據籤名後,便可以確定該數據的初始可信性。

輕節點請求數據具體流程:

  1. 輕節點計算當前交易潛在最大損失,隨後制定保單金額大小與保單保期。數據提供商質押在保險的資金量大小應當大於保單金額大小已確保有足夠的償還金。
  2. 輕節點決定該交易的挑戰週期。值得注意的是保單保期可以覆蓋多筆交易的 inclusion check,因此輕節點選擇的總挑戰週期不能超過保期,否則可能出現部分交易無法收到保障。
  3. 選擇完參數後(保單金額、保單保期、數據提供商質押在保險的資金大小、數據提供商意向名單),輕節點就可以發送請求至智能合約。隨後等待區塊最終確認時間,便可以驗證保險購買是否成功。如果出現失敗,情況可能來源於其他的輕節點也選擇了該數據提供商,並且先結算,因此剩餘質押不足以匹配他原本的需求。
  4. 輕節點發送數據請求,當中除了區塊編號和該目標狀態(該交易的 inclusion proof)還需要包括保險編號。
  5. 數據提供商發送數據以及籤名,輕節點驗證該籤名並轉發至檢察官網路,隨後該筆交易已經被初步確信。
  6. 檢察官在收到數據以及籤名後會初步驗證數據可信性,如果出現做惡則提交證明至智能合約,並且向對應的數據提供商罰沒,該罰沒會分發給輕節點。

其他要點:

  • 數據提供商的質押在保險的代幣在不同輕節點請求之間互相獨立,以防出現多重保險的償還風險。智能合約在輕節點選定數據提供商後,會把對應的質押在保險的代幣鎖定,並且其他輕節點在該保期結束前無法分配此部分的質押。如果交易之間是獨立的,那麼保單金額大小與最大交易金額相同。反之,保單金額大小與交易總金額相同。在相同質押金額前提下,輕節點一般會選擇盡可能少的數據提供商以保證驗證效率。
  • 數據提供商在保險期限結束前雖然可以發起發起“提款”請求,但提款款項必須在保期結束後才會收到。
  • 嚴謹來說保單保期時間應當大於區塊最終確認時間+總挑戰期+通訊延遲+計算/驗證延遲。選擇越多的數據提供商,所需要的保單保期會根據總挑戰期延長。

評估:

  • 可擴展性:方案二的可擴展性由數據提供商願意質押在保險的代幣金額總量決定。
  • 保單成本:因爲更高的安全水平與挑戰週期掛鉤,這意味着數據提供商要質押的時間要大於或等於挑戰週期,所以越高安全需求,質押週期越長,輕節點所支付的費用越高。以公式來看,數據提供商的質押成本由數據提供商節點收益/(全年平均質押利用乘上每年區塊總量)計算。而輕節點所需要付出的價格則是由質押成本乘上保單保期和保單大小。

方案有效性


第一,在輕節點計算效率上,輕節點兩個方案中都體現了毫秒級別的驗證效率(輕節點只需要對數據進行一次驗證)。

第二,在輕節點延遲上,按照實驗配置的不同情境下(下圖),延遲都在毫秒級別。值得注意的是延遲會根據數據提供商的數量線性增加,但延遲始終在毫秒級別。另外,方案一由於輕節點需要等候挑戰期結果,所以延遲都在 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 的數據提供商,他們有責任去返回抽樣請求,輕節點在收到數據後轉發給受信節點/驗證者,並由他們嘗試還原區塊,如果不能,那麼數據提供商則會被罰沒。本文的輕節點協議在此基礎上提出了保險機制,爲數據可用性研究提供了新的探索方向。

總結與評價

本文提出的輕節點方案提供了“可編程性安全”以符合不同情況下的安全需求。方案一以更高延遲換取高安全性,而方案二通過引入保險機制爲輕節點提供了“即時確認”服務。這些方案可用於需要確認交易最終性的場景,比如原子交易、跨鏈。

聲明:

  1. 本文轉載自[Eureka Partners],原文標題《TeleportDAO:數據驗證安全與效率之弈 —— 輕節點設計最新實踐》,著作權歸屬原作者[ Andy、Arthur ],如對轉載有異議,請聯系Gate Learn團隊,團隊會根據相關流程盡速處理。
  2. 免責聲明:本文所表達的觀點和意見僅代表作者個人觀點,不構成任何投資建議。
  3. 文章其他語言版本由Gate Learn團隊翻譯, 在未提及Gate.io的情況下不得復制、傳播或抄襲經翻譯文章。

輕節點設計的安全性和效率

新手5/29/2024, 1:15:17 AM
TeleportDAO 和 Eigen Labs聯合發表的論文,探討了權益證明(PoS)區塊鏈中輕節點面臨的安全和效率挑戰,並提出了一種新的解決方案。通過經濟激勵、有保險的預安全機制和“可編程安全”性,旨在提高輕節點的安全性和效率,對跨鏈通信和區塊鏈技術發展具有重要意義。

轉發原文標題《TeleportDAO:數據驗證安全與效率之弈 —— 輕節點設計最新實踐》

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 協議傳播數據。輕節點連接到一些數據提供者以發送請求和接收響應。

方案一:安全優先

方案一主要通過提出挑戰期與檢察官網路實現數據可信性。簡單來說,輕節點會在收到提供商籤署過的數據後,將這部分的數據發給檢察官網路審查,在一段期限內,如出現數據作假,檢察官會提醒輕節點數據不可信,智能合約的罰沒模塊會罰沒對於數據提供商的質押代幣,反之,輕節點可以相信這些數據的可信性。

輕節點請求數據具體流程:

  1. 輕節點從當前網路中獲取最新的數據提供商名單,並決定一個挑戰期限。值得注意的是該挑戰期對於不同的輕節點之間是互相獨立的,但挑戰期上限是適用於所有輕節點。挑戰期限是檢察官網路用於檢查數據可信性的最長時間,因此時間越長,單比交易傳遞延遲越久。
  2. 獲取完名單後,輕節點會挑選一組數據提供商,並確保他們各自的質押資金大於當前交易的價值,理論上越高的質押資金,數據提供商做惡成本越高,輕節點信任成本則越低。
  3. 輕節點向這組數據提供商發送相應數據請求,該請求包括對應區塊編號和該目標狀態(該交易的 inclusion proof)
  4. 數據提供商發送對應區塊的哈希和該交易的 inclusion proof,並附上籤名。
  5. 輕節點收到上述資料後,轉發給當前連結的檢察官網路。如果在挑戰期結束後沒有收到數據可信性警示,那麼輕節點就對該籤名進行驗證,無誤後便通過數據可信性測試。

  1. 但如果從檢察官網路中收到了警示,那麼輕節點需要舍棄先前收到的籤名。檢察官網路會提交相關的證明給智能合約的罰沒模塊,智能合約在檢查過數據後如果發現做惡情況確實發生,那麼對應的數據提供商的質押則會被罰沒。由於部分/全部選擇的數據提供商被罰沒,所以輕節點需要重新從當前網路中獲取新一批數據提供商名單,以確罰沒事件的確發生。


其他要點:

  • 任何全節點都可以通過向智能合約發起“註冊”和“提款“請求去參與/離開數據提供商網路。註冊參與數據提供商網路有最低的質押門檻。一旦全節點選擇發起提款,那麼他們在該網路的狀態會立刻改爲“離開”,並且無法接收輕節的請求,以防快進快出的做惡可能。另外,數據提供商網路會按照一個週期更新當前網路活躍的數據提供商,在此期間數據提供商無法收到提款款項,提款請求會在當前更新週期內的最後一個區塊生效,同時更新頻率會比挑戰期限上限高,以確保所有輕節點數據可用性測試皆已完成。因爲數據提供商網路的活躍性,輕節點需要在每輪網路更新週期的時候重新獲取當前網路活躍提供商的名單。如果選擇延長這個更新週期,輕節點可以享受更簡潔的驗證過程(可通過上一個週期的“註冊”和“提款“請求去預估當前活躍名單),但希望離開的全節點則需要面臨更長的等候時間。
  • 檢察官網路收到數據籤名後,會檢查籤名是否屬於該數據提供商,並且衡量數據是否在共識網路中被”最終確認“。如果數據沒有出現在合理鏈上有兩種可能。第一,數據還沒有被當前區塊鏈最終確認,不同鏈有不同的最終確定性規則,比如最長鏈原則。第二,交易在別的合理鏈的區塊。如果上述數據出現作假,檢察官網路會發送一個罰沒請求至智能合約,當中包括數據提供商的公鑰、數據提供商的籤名、區塊編號,同時間發送該罰沒事件的證明以提醒輕節點。智能合約會在收到這些數據後,通過共識層的最終確定性原則衡量當前最終確認的區塊編號與收到的數據是否一致,如果不一致,那麼罰沒事件觸發。另外,如果輕節點在選擇數據提供商後,該數據提供商因另一組數據請求被罰沒,檢察官網路會及時發送該罰沒事件以提醒輕節點該提供商的數據可信性較低,輕節點則會重新獲取名單並選擇其他提供商。

評估:

  • 安全性:輕節點通過質押模塊與檢察官網路決定了理性與非理性的數據提供商的做惡成本,以提高數據可信性。但是因爲整個協議是基於共識網路(本文在以太坊進行測試)的,所以一旦共識層遭受攻擊,本協議也會受到潛在信任危機,因此可以進一步引入名譽機制確保極端情況下的系統性風險。
  • 全節點級別安全性:本方案希望提供等價於以太坊 PoS 的安全假設,即全節點做出虛假聲明需要承擔罰沒風險。
  • 網路活躍性:如果當前網路只有少數理性數據提供商,輕節點將面臨多輪的延遲,但由於每個數據提供商的吞吐量不爲零,每筆請求始終都能完成。因此只要該網路有一個理性的全節點,就能確保網路能夠持續運行。同時,由於數據提供商的收益與質押金額大小掛鉤,這也鼓勵了全節點採取超額質押的方式保護網路。
  • 效率:文章作者團隊預估以太坊驗證者是主要參與數據提供商的用戶,因爲驗證者已經在運行全節點了,並且可以通過該協議獲得額外的收益。小金額的交易可能通過單個數據提供商便可以獲取可信數據(對輕節點來說只需要驗證一次),而大筆交易可能需要多個數據提供商才能獲取可信數據(驗證次數根據提供商數量線性增加)。

方案二:效率優先

方案二在方案一的基礎上通過提出保險機制實現數據快速確認。簡單來說,輕節點根據保單金額與時長確定保險後,數據提供商部分/全部的質押可以被償還輕節點後續因數據做惡而產生的損失,因此輕節點收到並驗證提供商提供的數據籤名後,便可以確定該數據的初始可信性。

輕節點請求數據具體流程:

  1. 輕節點計算當前交易潛在最大損失,隨後制定保單金額大小與保單保期。數據提供商質押在保險的資金量大小應當大於保單金額大小已確保有足夠的償還金。
  2. 輕節點決定該交易的挑戰週期。值得注意的是保單保期可以覆蓋多筆交易的 inclusion check,因此輕節點選擇的總挑戰週期不能超過保期,否則可能出現部分交易無法收到保障。
  3. 選擇完參數後(保單金額、保單保期、數據提供商質押在保險的資金大小、數據提供商意向名單),輕節點就可以發送請求至智能合約。隨後等待區塊最終確認時間,便可以驗證保險購買是否成功。如果出現失敗,情況可能來源於其他的輕節點也選擇了該數據提供商,並且先結算,因此剩餘質押不足以匹配他原本的需求。
  4. 輕節點發送數據請求,當中除了區塊編號和該目標狀態(該交易的 inclusion proof)還需要包括保險編號。
  5. 數據提供商發送數據以及籤名,輕節點驗證該籤名並轉發至檢察官網路,隨後該筆交易已經被初步確信。
  6. 檢察官在收到數據以及籤名後會初步驗證數據可信性,如果出現做惡則提交證明至智能合約,並且向對應的數據提供商罰沒,該罰沒會分發給輕節點。

其他要點:

  • 數據提供商的質押在保險的代幣在不同輕節點請求之間互相獨立,以防出現多重保險的償還風險。智能合約在輕節點選定數據提供商後,會把對應的質押在保險的代幣鎖定,並且其他輕節點在該保期結束前無法分配此部分的質押。如果交易之間是獨立的,那麼保單金額大小與最大交易金額相同。反之,保單金額大小與交易總金額相同。在相同質押金額前提下,輕節點一般會選擇盡可能少的數據提供商以保證驗證效率。
  • 數據提供商在保險期限結束前雖然可以發起發起“提款”請求,但提款款項必須在保期結束後才會收到。
  • 嚴謹來說保單保期時間應當大於區塊最終確認時間+總挑戰期+通訊延遲+計算/驗證延遲。選擇越多的數據提供商,所需要的保單保期會根據總挑戰期延長。

評估:

  • 可擴展性:方案二的可擴展性由數據提供商願意質押在保險的代幣金額總量決定。
  • 保單成本:因爲更高的安全水平與挑戰週期掛鉤,這意味着數據提供商要質押的時間要大於或等於挑戰週期,所以越高安全需求,質押週期越長,輕節點所支付的費用越高。以公式來看,數據提供商的質押成本由數據提供商節點收益/(全年平均質押利用乘上每年區塊總量)計算。而輕節點所需要付出的價格則是由質押成本乘上保單保期和保單大小。

方案有效性


第一,在輕節點計算效率上,輕節點兩個方案中都體現了毫秒級別的驗證效率(輕節點只需要對數據進行一次驗證)。

第二,在輕節點延遲上,按照實驗配置的不同情境下(下圖),延遲都在毫秒級別。值得注意的是延遲會根據數據提供商的數量線性增加,但延遲始終在毫秒級別。另外,方案一由於輕節點需要等候挑戰期結果,所以延遲都在 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 的數據提供商,他們有責任去返回抽樣請求,輕節點在收到數據後轉發給受信節點/驗證者,並由他們嘗試還原區塊,如果不能,那麼數據提供商則會被罰沒。本文的輕節點協議在此基礎上提出了保險機制,爲數據可用性研究提供了新的探索方向。

總結與評價

本文提出的輕節點方案提供了“可編程性安全”以符合不同情況下的安全需求。方案一以更高延遲換取高安全性,而方案二通過引入保險機制爲輕節點提供了“即時確認”服務。這些方案可用於需要確認交易最終性的場景,比如原子交易、跨鏈。

聲明:

  1. 本文轉載自[Eureka Partners],原文標題《TeleportDAO:數據驗證安全與效率之弈 —— 輕節點設計最新實踐》,著作權歸屬原作者[ Andy、Arthur ],如對轉載有異議,請聯系Gate Learn團隊,團隊會根據相關流程盡速處理。
  2. 免責聲明:本文所表達的觀點和意見僅代表作者個人觀點,不構成任何投資建議。
  3. 文章其他語言版本由Gate Learn團隊翻譯, 在未提及Gate.io的情況下不得復制、傳播或抄襲經翻譯文章。
今すぐ始める
登録して、
$100
のボーナスを獲得しよう!