目前爲止,幣圈/區塊鏈行業的造福神話仍舊在繼續,下一個重要的“造富”領域正在聚焦“遊戲賽道”。XAI項目正在舉辦奧德賽活動,如果你感興趣,請參與我在廣場的這篇文章:XAI遊戲公鏈奧德賽活動零成本新手入門指南
這篇文章,我將爲你帶來XAI遊戲公鏈Sentry節點的詳細解讀!這篇文章相對偏技術,如果你對賺錢感興趣,那麼你必須認真閱讀。因爲只有你自己理解了”邏輯“,提升了認知,你纔有機會賺錢!
如果你想直接看有關Sentry節點的情況,直接閱讀第一部分,後面不用看;如果你希望有一個邏輯上的閉環,那麼你需要閱讀第二部分、第三部分和第四部分!
我想強調的是Xai獲得Offchain Labs的直接技術支持。這種支持對其他Orbit鏈是不可想象的!並且是Xai作爲Arbitrum生態系統中的戰略遊戲計劃的一個關鍵組成部分。
第一部分:Sentry(哨兵)節點解釋
Sentry(哨兵)節點是一個觀察節點,用於監控Xai rollup協議,如果提議了一個錯誤的區塊,它會發出警報(通過其操作者選擇的任何方式),以便其他人可以干預。哨兵節點的目的是解決驗證者的困境(驗證者困境詳見第四部分)。
點這裏查看推介視頻:
哨兵節點可以在社區成員的筆記本電腦、桌面電腦甚至雲實例上運行。只要節點在運行,就有一個概率算法決定節點操作者是否會從網絡獲得esXai代幣獎勵。通過質押Xai,可以增加該算法的概率。如果你對esXai不瞭解,請參與我在廣場的這篇文章:XAI項目“代幣經濟”解讀
1.哨兵節點工作原理
Attention挑戰v2協議涉及多個參與者,包括Xai鏈、一個母鏈(Arbitrum One)、一個受信任的挑戰者、Xai哨兵及其許可密鑰,以及一個Referee(裁判)合約。挑戰者創建一個BLS密鑰對,將公鑰註冊到裁判合約,並簽署由驗證者在Arbitrum One上的Xai rollup協議中所做的聲明。這些簽名由裁判合約驗證並記錄爲與聲明相關的挑戰。
Xai哨兵可以通過購買哨兵許可密鑰向裁判合約註冊,以有資格發佈關於聲明的聲明。他們獲取正確聲明的狀態根,該聲明將是發佈聲明的後續者。如果滿足某個條件,他們通過調用裁判合約發佈關於聲明的聲明。如果創建並確認了一個後續聲明,並且哨兵發佈了正確的聲明,哨兵會聯繫裁判合約發佈一個贖回交易。裁判在向哨兵支付獎勵之前,會驗證幾個條件。
該協議確保每個聲明必須完全消耗其前驅聲明創建時存在的收件箱消息。這意味着,一旦創建了一個聲明,其正確的後續聲明的狀態根就完全確定了,並且可以由任何節點計算。這鼓勵每個哨兵確定正確的下一個狀態根。哨兵的獎勵取決於哨兵的狀態許可ID、後續狀態根以及一個挑戰值,該值在完全確定後續狀態根之後纔會變得已知。
2.誰可以運行節點?
任何人都可以通過下載軟件、安裝並運行來操作哨兵。但是,要獲得代幣獎勵,必須購買至少一個哨兵許可密鑰。
購買者必須成功通過KYC檢查,以確保他們:
不在美國
沒有受到任何美國OFAC制裁(OFAC體現爲一張美國製裁清單)
那些不運行或沒有適當資金支付燃氣費(GAS)的哨兵節點不會累積獎勵,即使有許可密鑰。因此,運營商會希望確保他們的節點有資金、在線並且正在運行。
3.Referee(裁判)合約
Referee(裁判)是一個智能合約,設計用來強制遵守預定義的規則,驗證提交的來源,並在系統內向獲勝者分發獎勵。裁判智能合約是Xai生態系統中的關鍵組件,它負責管理和驗證網絡中哨兵節點所做的聲明。該合約有幾個關鍵功能:
3.1 提交聲明
裁判合約允許哨兵節點向挑戰提交聲明。這個功能只能由哨兵許可密鑰的所有者或他們在此合約上批准的地址調用。該功能檢查挑戰是否仍開放提交,以及NodeLicense是否已經爲這個挑戰提交過。
3.2 領取獎勵
合約包含一個功能,允許用戶爲成功的聲明領取獎勵。此功能檢查挑戰是否已關閉提交,並檢查節點密鑰的所有者是否已經完成KYC。如果滿足這些條件並且聲明符合支付條件,獎勵將發送給用戶。
3.3 創建聲明哈希並檢查支付。
合約有一個功能,可以創建哨兵許可ID、挑戰ID、挑戰中的challengerSignedHash以及後續狀態根的哈希。然後它檢查哈希是否低於某個閾值,該閾值是基於已經鑄造的哨兵許可總數來計算的。如果哈希低於閾值,那麼聲明就符合支付條件。
裁判合約通過驗證聲明並獎勵成功的聲明,確保了Xai網絡的完整性,從而激勵哨兵節點準確和勤奮地監控網絡。
4.Challenger(挑戰者)組件
挑戰者是Xai生態系統中的一個受信任的實體。它創建一個BLS密鑰對,並將公鑰註冊到裁判合約。當驗證者在Xai rollup協議中做出一個聲明時,挑戰者使用其私鑰簽署聲明,並將簽名提交給裁判。裁判驗證簽名並將其記錄爲與聲明相關的挑戰。這個過程確保了在Xai rollup協議中所做的聲明的完整性。
5.密鑰(哨兵節點密鑰許可,基於NFT)
哨兵許可密鑰是一個獨特的、不可替代的令牌(NFT),在Xai網絡中操作哨兵節點時需要它。哨兵許可作爲節點提交聲明和接收獎勵的資格證明。它通過發送正確數量的ETH來鑄造,鑄造的價格由一個遞增的閾值系統決定。
節點許可在裁判合約中起着關鍵作用。當一個節點想要向挑戰提交一個聲明時,它必須提供其哨兵許可ID。裁判合約檢查哨兵許可是否有效,以及節點是否是哨兵許可的所有者或一個被批准的運營者(上文KYC部分)。如果這些條件得到滿足,節點的聲明被提交給挑戰。
當爲成功的聲明領取獎勵時,哨兵許可也起到作用。裁判合約檢查哨兵許可的所有者是否已經完成KYC,以及聲明是否符合支付條件。如果這些條件得到滿足,獎勵被髮送給哨兵許可的所有者。
總之,哨兵許可是Xai網絡中的一個關鍵組件,它規範了哨兵節點的操作、聲明的提交和獎勵的分配。
6.節點下載和運行
要運行哨兵節點,用戶只需下載一個特定的軟件包。這個軟件包可以在計算機的桌面應用或命令行工具中使用。簡單來說,這些應用程序就是讓哨兵軟件更容易使用的工具。這個軟件包的目的是自動完成所有運行哨兵所需的操作,使得設置和使用變得非常簡單,即使你不懂技術也可以輕鬆上手。
這個軟件包幫助用戶完成如設置、管理和與其他部分的互動等任務,並且有一個易於使用的界面,讓用戶可以輕鬆查看和調整設置。使用這個軟件包,用戶可以更專注於如何更好地運行和獲得更多的代幣獎勵。用戶可以選擇使用桌面應用或命令行工具運行這個軟件包,兩者都非常易於使用,使得操作過程非常流暢。
7.哨兵錢包功能
在Xai生態系統中,哨兵錢包在哨兵節點和裁判智能合約之間的互動中起到關鍵作用。哨兵錢包作爲一箇中介代理,負責代表相關的哨兵向裁判提交聲明。這是通過裁判合約中的特定功能實現的,這些功能只能由哨兵許可密鑰的所有者或他們在此合約上批准的地址調用。
哨兵錢包可以通過調用裁判合約中的submitAssertionToChallenge功能向挑戰提交聲明。這個功能檢查挑戰是否仍開放提交,以及節點密鑰是否已經爲這個挑戰提交過。
哨兵錢包還可以通過調用裁判合約中的claimReward功能爲成功的聲明領取獎勵。此功能檢查挑戰是否已關閉提交,並檢查哨兵許可的所有者是否已經完成“KYC”檢查。如果這些條件得到滿足並且聲明符合支付條件,獎勵將發送給哨兵的所有者。
總之,哨兵錢包作爲一個信使,促進了節點和裁判之間的互動,從而確保了Xai網絡的順利運行。
8.授權許可
許可數量與節點的提交能力之間的關係是基本的。雖然一個節點可以關聯多個許可證是可能的,但必須認識到許可證的數量直接影響節點的提交能力。本質上,爲了確保公平的提交配額,許可證與節點實例的比率被維持在1:1。通過遵循上述原則,系統建立了一個結構化的方法來許可、提交權利和生態系統內節點的整體操作。
9.Sentry(哨兵)節點軟硬件件要求
哨兵節點軟件支持Windows桌面、Mac和Linux(需要64位)。以下是運行最多100個許可密鑰的哨兵節點軟件所需的當前資源:
4 GB RAM
2 CPU核心
60 GB磁盤空間
x86/X64處理器 (支持ARM處理器,如Apple M1/M2芯片)
穩定的互聯網連接
當在節點中加入額外的密鑰時,理想情況下硬件能力也應該相應增加。然而,爲每個密鑰分配一個單獨的機器並不是強制性的。預計系統的可擴展性可以在一臺機器上容納數十個密鑰,甚至可能更多。
注意:這些硬件要求可能會發生變化。
10. 預計的Sentry節點網絡獎勵
XAI代幣經濟模型參閱:XAI項目“代幣經濟”解讀
以下是三種估計運行Sentry節點可能獲得的Xai獎勵的情況。這三種情況基於以下條件假設:
XAI和esXAI的總和永遠不會超過2,500,000,000。鑑於Xai生態系統是動態的,準確預測每個Sentry密鑰的每月代幣獎勵是不可能的。
100%的GAS都被燃燒掉了,所以不能保證供應總是通貨膨脹的,有可能會是通縮的。
Xai基金會不會出售超過50,000個Sentry密鑰(一個節點可以加載多個密鑰)。這預計需要2-3年。Sentry密鑰的價格會隨着時間的推移而越來越貴。
每個Sentry密鑰的每月esXAI數量也可能根據生態系統中的質押參與者數量而波動。
下面三個表格的意思是,在XAI和esXAI代幣不同流通量的情況下,網絡中激活的節點密鑰數量和對應的預計每月每密鑰的代幣獎勵:
情況A預估:如果流通中總共有750,000個XAI和esXAI代幣,那麼每個Sentry密鑰將根據下表獲得esXAI獎勵:
情況B預估:如果流通中總共有1,250,000,000個XAI和esXAI代幣,那麼每個Sentry密鑰將根據下表獲得esXAI獎勵:
情況C預估:如果流通中總共有2,187,500,000個XAI和esXAI代幣,那麼每個Sentry密鑰將根據下表獲得esXAI獎勵:
第二部分:XAI是由Arbitrum(ARB)開發和維護的,因此我們必須對Arbitrum的體系結構進行一些闡述:
1.Arbitrum Nitro
所有的Arbitrum鏈都是基於Arbitrum Nitro構建的,這是生態系統中所有鏈的基礎技術。Nitro運行一個Geth的分叉版本,並使用WebAssembly作爲其欺詐證明的底層虛擬機。
2.Arbitrum Anytrust
Anytrust是一個Arbitrum協議,通過一個被稱爲數據可用性委員會(DAC)的許可方集合來管理數據可用性。這個協議通過引入一個關於數據可用性的額外信任假設來降低交易費用,而不是使用以太坊的無需信任的數據可用性機制。
3.你可能知道的Arbitrum 2層簡介
Arbitrum Nova是一個AnyTrust鏈的例子;Arbitrum One是另一個實現了純粹無需信任的(並且更加消耗L1-gas)的Arbitrum Rollup協議的備選鏈。這兩條鏈都是基於Nitro構建的。
4.Orbit 鏈
Arbitrum Orbit允許第三方創建他們自己的自我管理的Arbitrum Rollup和AnyTrust鏈。Arbitrum提供Rollup和AnyTrust技術,以在構建Orbit鏈時獲得最大的靈活性。與Arbitrum生態系統中的所有鏈一樣,Arbitrum Rollups和Arbitrum Anytrust Orbit鏈都使用Nitro作爲底層技術進行構建。
5.理解Xai的基本情況
在上述這個背景下我們來理解Xai。Xai作爲一個Arbitrum Orbit鏈運行,利用Anytrust技術實現最大的速度和最小的成本。與大多數“自我管理”的Orbit鏈不同,Xai得益於來自Offchain Labs的直接技術支持。這種支持對其他Orbit鏈是不可想象的!並且是Xai作爲Arbitrum生態系統中的戰略遊戲計劃的一個關鍵組成部分。
第三部分:當你有了上述這些概念後,我們進一步深入瞭解體系架構:
1.AnyTrust:革命化的區塊鏈基礎設施
在AnyTrust框架內,作爲Arbitrum Nitro技術的前沿變種,Offchain Labs利用創新來解決區塊鏈領域中一些最緊迫的挑戰。AnyTrust通過融入輕度的信任假設,爲我們帶來了全新的視角,顯著降低了成本,同時確保了強大的數據可用性和安全性。
2.通過信任假設降低成本
在Arbitrum協議的核心,所有Arbitrum節點(包括驗證鏈的正確性並對準確結果進行質押的驗證者)都需要訪問Arbitrum鏈收件箱內的每一個第二層(L2)交易的數據。傳統上,Arbitrum rollup通過在第一層(L1)以太坊上以calldata的形式發佈數據來確保數據訪問,這一過程產生了大量的以太坊gas費用,這是Arbitrum中的主要成本組成部分。
3.Ketsets 靈活性
Ketsets在AnyTrust的架構中起到了關鍵作用。它們指定了委員會成員的公鑰和驗證數據可用性證書(DACert)所需的簽名數量。Ketsets爲更改委員會成員提供了靈活性,並使委員會成員能夠根據需要更新他們的密鑰。
4.數據可用性證書(DACerts)
在AnyTrust中,一個基本的概念是數據可用性證書(DACert)。DACert包括數據塊的哈希、一個過期時間以及證明N-1個委員會成員已經簽署了(哈希,過期時間)對的證明。這個證明包括用於簽名的關鍵集的哈希、一個指示哪些委員會成員簽署的位圖,以及一個在BLS12-381曲線上的BLS聚合簽名,證明簽名者。
由於2-of-N的信任假設,DACert作爲一個證據,表明一個區塊的數據至少會在一個誠實的委員會成員那裏可用,直到指定的過期時間。這種信任假設是AnyTrust框架內數據可用性的可靠性和安全性的基礎。
5.雙重數據發佈機制
AnyTrust引入了在L1上發佈數據塊的雙重方法。除了傳統的發佈完整數據塊的方法外,它還允許發佈DACerts,這些證書證明數據的可用性。L1收件箱合約驗證DACerts的有效性,包括參考DACert中指定的有效Ketsets。
負責從收件箱讀取數據的L2代碼被設計爲可以無縫處理兩種數據格式。當遇到DACert時,它執行有效性檢查,包括確保簽名者的數量滿足Ketsets的要求、驗證聚合簽名,並確認過期時間超過當前的L2時間戳。有效的DACerts確保數據塊是可訪問的,並且可以被L2代碼利用。
6.數據可用性服務器(DAS)
委員會成員操作數據可用性服務器(DAS),它提供兩個關鍵的API:
(1)排序器API:專爲Arbitrum鏈的排序器使用,這個JSON-RPC接口使排序器能夠將數據塊提交給DAS進行存儲。
(2)REST API:設計爲更廣泛的可訪問性,基於RESTful HTTP(S)的協議允許通過哈希檢索數據塊。它是完全可緩存的,部署時可以結合緩存代理或CDNs來增強可擴展性並防禦潛在的DoS攻擊。
7.排序器-委員會交互
當Arbitrum排序器打算通過委員會發佈一個數據批次時,它通過RPC並行地將數據和一個過期時間發送給所有的委員會成員。每個委員會成員存儲數據,使用其BLS密鑰簽署(哈希,過期時間)對,並將簽名和成功指示符返回給排序器。 一旦收集到足夠的簽名,排序器將它們聚合起來爲(哈希,過期時間)對創建一個有效的DACert。然後,這個DACert被髮布到L1收件箱合約,使其對L2的AnyTrust鏈軟件可訪問。 在排序器無法在指定的時間範圍內收集到足夠的簽名的情況下,它採用“回退到rollup”策略,直接將完整數據發佈到L1鏈。L2軟件擅長理解兩種數據發佈格式(通過DACert或完整數據),並適當地處理每種格式。 總之,AnyTrust作爲Offchain Labs生態系統內的一個開創性的創新,代表了在解決數據可用性、安全性和區塊鏈基礎設施的成本效率方面的關鍵進步。通過一個明智的信任假設和一種新穎的數據發佈方法,AnyTrust爲更可擴展、可訪問和安全的區塊鏈解決方案鋪平了道路。
第四部分:有了上述概念,現在讓我們來解釋爲什麼哨兵節點很重要:作弊者檢查問題,爲什麼驗證者的困境比你想象的要困難以及解決方案!
作者是Ed Felten,Arbitrum首席科學家
在區塊鏈系統中,一個常見的設計模式是讓一個方做一些工作併爲正確的行爲託管一個保證金,然後邀請其他人來驗證這項工作,並在他們發現工作者作弊時拿走這個保證金。你可以稱之爲"斷言-挑戰"設計模式。我們在Arbitrum中這樣做,最近在新聞中也看到了像Optimistic Rollup這樣的提議。
這些系統可能會受到驗證者的困境的影響,基本上是觀察到,如果你知道他們不會作弊,那麼檢查某人的工作就沒有意義;但如果你不去檢查,他們就有作弊的動機。如果你是一個設計師,你希望證明你的系統是激勵兼容的,這意味着如果每個人都與他們的激勵一致行事,就不會發生作弊。這是一個直覺可能會誤導你的領域。這個問題比看起來要難得多,當我們解開下面各方的激勵時,我們會看到。
一個超簡單的模型
我們首先構建一個我們能夠構建的最簡單的模型。假設有兩個玩家。斷言者提出一個聲明,可能是真的也可能是假的。檢查者可以檢查斷言者的聲明,或者檢查者可以選擇什麼都不做,大概是基於假設斷言者可能在說實話。我們假設檢查者檢查的成本爲C,如果檢查者檢查並發現斷言者作弊,檢查者將獲得R的獎勵。(R包括檢查者因捕獲作弊而獲得的所有利益。這包括在“系統外”實現的利益,以及由於增加了對系統的信心而獲得的任何利益。)如果斷言者在沒有被抓到的情況下作弊,檢查者會損失L,例如因爲作弊的斷言者可以欺詐地從檢查者那裏拿走有價值的物品。
現在我們需要擔心兩個威脅:賄賂和懶惰。賄賂是斷言者可能會賄賂檢查者不檢查的可能性,從而允許斷言者在沒有被發現的情況下作弊。我們可以通過確保斷言者託管一個非常大的存款來防止這種情況發生,這個存款大於系統中的總價值,並且在檢測到作弊時支付給檢查者,這樣斷言者就不願意支付大於檢查者獎勵R的賄賂。這將防止賄賂,但它要求系統完全抵押,這可能非常昂貴。
另一個威脅是懶惰,即檢查者決定不檢查斷言者的工作的風險。(請記住,檢查者可能會說他們正在檢查,但實際上並沒有這樣做。)讓我們看看檢查者的激勵,看看這是否是一個合理的策略。
假設斷言者以X的概率作弊。現在,檢查者的效用如下:
如果檢查者檢查:RX-C
如果檢查者不檢查:-XL
只有在檢查的效用大於不檢查的效用時,檢查纔是值得的,也就是說,如果X > C/(R+L)。這裏有個壞消息:斷言者可以隨機作弊,作弊的概率小於C/(R+L),一個理性的檢查者永遠不會檢查,所以斷言者永遠不會被抓到作弊。
讓我們插入一些數字。如果檢查每筆交易的成本爲0.10美元,檢查者如果檢測到作弊,將獲得75美元的賞金,但如果檢查者未能檢測到作弊,將損失25美元,那麼斷言者可以毫無懲罰地作弊一千次。如果我們希望這個系統運行數千筆交易,那麼我們就有一個大問題。在這個模型中,我們顯然不能做什麼來將作弊的概率降到零。我們只能希望超額抵押系統,以使C/(R+L)的分母變大。
這是一個令人驚訝的穩健結果——以一種不好的方式。它完全不依賴於斷言者的激勵。只要斷言者從成功的作弊中獲得非零的優勢,它就能以某種概率這樣做,知道檢查者不值得付出努力去檢查。這個結果也不依賴於我們給檢查者多少時間來完成工作,或者我們是否爲(聲稱)檢查者付費。也許你現在在想,問題是隻有一個檢查者。增加更多的檢查者是否會減少作弊的可能性?令人驚訝的是,它不會。
增加檢查者並不能幫助防止作弊
再次,讓我們制定一個最簡單的模型。現在有兩個獨立行動的檢查者。每個檢查者支付C如果它檢查,如果有人檢查並捕獲斷言者作弊,R的獎勵支付給成功的檢查者,或者如果他們都檢查了,獎勵平均分配給兩個人。(如果你喜歡,他們都檢查的情況下,你可以給其中一個隨機的R的全部獎勵。這不影響任何人的策略或結果。)和以前一樣,每個檢查者將損失L,如果斷言者在沒有被抓到的情況下作弊。
現在仍然是這樣,如果斷言者少於C/(R+L)的時間作弊,那麼檢查者檢查是不值得的,因爲檢查的效用小於不檢查的效用。事實上,激勵問題比以前更糟,因爲每個檢查者檢查的成本仍然是C,但成功的檢查者捕獲作弊的預期獎勵少於R,因爲獎勵有時需要分割——預期獎勵將在R/2和R之間。如果預期獎勵是bR,其中b在0.5和1之間,那麼斷言者可以作弊高達C/(bR+L)的時間——這比只有一個檢查者時更多的未被發現的作弊!(數學變得有點複雜,因爲b的值取決於檢查者的策略,他們的策略取決於b,但應該很清楚,他們有時會需要分割獎勵。而且,L的有效值也減少了,因爲一個不檢查的檢查者可能不會因爲其他檢查者檢查而失去他們的L。)
增加檢查者的一個真正有幫助的地方是防止賄賂。有了兩個檢查者,斷言者必須支付超過R的賄賂給每個斷言者,使賄賂變得兩倍昂貴,從而允許50%的抵押,而不是完全的抵押。但是權衡是作弊的數量增加了。
我不會在這裏詳細介紹所有的數學,但在合理的假設下,從一個檢查者增加到兩個可能導致未被發現的作弊增加50%。
增加檢查者會使事情變得更糟!
你可以增加更多的檢查者,事情會變得更糟。隨着檢查者的增加,檢查者需要更多地擔心獎勵被多種方式分割,所以每個成功的檢查者的預期獎勵逐漸下降,導致斷言者安全作弊的概率逐漸上升。從這個角度看,最壞的情況是世界上的每個人都可能成爲一個檢查者。這不是無限壞的,因爲隨着檢查者的增加,事情變得越來越糟,但它肯定不會幫助防止作弊,即使它確實有效地消除了賄賂的風險。
你確定你的系統是激勵兼容的嗎?
如果你有一個適合這種類型的模型的系統,並且你認爲它是激勵兼容的,你需要仔細考慮爲什麼。特別是,你需要解釋爲什麼檢查者會做檢查的工作,即使他們認爲斷言者不太可能作弊。僅僅有一個大的作弊懲罰是不夠的。僅僅有一個捕獲作弊者的獎勵是不夠的。僅僅有很多檢查者是不夠的——事實上,這可能使事情變得更糟。爲什麼你的系統免疫?
這個挑戰適用於像Optimistic Rollup這樣的系統。當我們談論Arbitrum時,它也適用於我們。
綜合上述內容,傳統的激勵檢查方法並沒有得到期望的結果——存在一個基線的作弊率,低於這個率的檢查者會認爲檢查是不值得的。總結來說:
有兩個玩家,一個斷言者,他提出的聲明是真的還是假的,還有一個檢查者,他可以檢查這個聲明,但需要一些計算成本。如果檢查者進行檢查,其效用是RX-C,如果不檢查,其效用是-XL,其中R是捕獲作弊的獎勵,C是檢查的成本,L是檢查者因未檢測到作弊而損失的,X是斷言者作弊的概率(由斷言者選擇)。一些代數運算顯示,如果X < C/(R+L),檢查者就不會費心去檢查,所以斷言者可以逃脫這麼多的作弊。
爲了解決這個問題,並創建一個激勵驅動的檢查者總是會檢查的情境,我們必須改變檢查者的激勵。基本的問題是,在原始模型中,檢查者檢查的積極激勵都是與X成比例的,即作弊的概率,所以斷言者可以使這些項變小,只要他們不作弊太多。如果我們想要一個無論如何都會操作的檢查激勵,我們需要創建一個與斷言者的行爲無關的檢查激勵或不檢查的不激勵。
TrueBit嘗試通過向斷言集添加故意錯誤的聲明來做到這一點,本質上是用X加上一個常數來替換X。這種方法存在一些問題。(原始的Arbitrum論文有關於TrueBit的激勵問題的一節。)
關注挑戰
我們使用一個我們稱之爲關注挑戰的不同方法。其思想是,如果斷言者正在計算一個值f(x),它首先發布x和一個加密的挑戰。爲了正確地應對挑戰,檢查者需要知道f(x)。只有在挑戰發生後,斷言者才發佈f(x)——此時,檢查者已經完成了計算f(x)的艱難工作,所以它沒有懶惰的動機。(關於協議的更多細節如下。)
爲了減少這需要的鏈上交易數量,我們會安排事情,使得檢查者對挑戰的正確響應通常是沉默。但在罕見的情況下,檢查者必須在鏈上發佈一個很小的交易。如果檢查者給出了錯誤的答案——在應該發佈時沉默,或者在應該沉默時發佈——它將失去一個小的存款。
讓我們調整原始的激勵模型,以納入關注挑戰。我們需要兩個新的參數(我們都可以選擇):P,檢查者的正確響應是發佈的時間的百分比,和A,如果檢查者給出了錯誤的答案的罰款。現在,檢查者的效用是:
如果檢查:RX-C
如果不檢查:-LX-PA
關鍵的觀察是,只要PA > C,那麼檢查就是最佳策略,無論X(作弊的概率)是多少。
成本非常低
爲了評估成本,讓我們看一個具體的例子。我們假設每五分鐘有一個斷言,檢查成本是$0.001。如果我們將概率P設置爲0.3%,檢查者將必須支付$3的存款。現在,檢查者每次斷言的成本是$0.0003的氣體費用($0.10的氣體費用用於發佈其非沉默的響應,乘以0.3%的概率它必須發佈),加上大約$0.0003的鎖定其$3賭注五分鐘的利息成本,總成本爲每次斷言$0.0006。
多個檢查者的擴展
關注挑戰在有多個檢查者的情況下擴展得很好。協議發出一個挑戰,這個挑戰會對每個檢查者產生不同的影響,迫使每個檢查者自己計算f(x)。每個檢查者都會經歷相同的成本(在我們的例子中,每次斷言$0.0006)。
在一個開放的系統中,任何人都有資格檢查計算,你可以允許任何人註冊爲檢查者並放置所需的小存款。這將使他們有資格接受關注挑戰,並可能從dapp開發者那裏獲得補償。任何人都可以挑戰斷言者的不正確聲明,但只有註冊的檢查者會面臨關注挑戰。
協議的技術細節
瞭解了關注挑戰可以爲我們做什麼,讓我們深入瞭解它們是如何工作的技術細節。
每個檢查者都有一個私鑰k和相應的公鑰gᵏ,在一個合適的組中定義。每個檢查者的公鑰都爲大家所知。我們還將依賴於一個合適的哈希函數H。
爲了對f(x)的計算髮出挑戰,其中函數f事先爲大家所知,斷言者生成一個隨機值r,然後發佈(x, gʳ)作爲挑戰。
擁有私鑰k的檢查者應該響應挑戰,只有在H(gʳᵏ, f(x)) < T時,才發佈一個很小的交易,其中T是一個適當選擇的閾值。注意,只有斷言者(知道r)和那個特定的檢查者(知道其私鑰k)可以計算哈希,因爲他們是唯一可以計算gʳᵏ的人。還要注意,計算哈希需要知道f(x)。
在檢查者有一段時間發佈他們對挑戰的迴應後,斷言者可以發佈其f(x),如果任何檢查者不同意它,它將像往常一樣受到挑戰。此時,斷言者可以指責任何迴應不正確的檢查者;斷言者必須發佈r來證實其指控。礦工或合同可以檢查指控是否正確,並懲罰違法者;但如果斷言者聲稱的f(x)最終不被接受爲正確,指控將被忽略。如果有任何檢查者被罰款,斷言者將獲得一半的被沒收的資金,另一半將被銷燬。
這種方法給了檢查者正確的激勵。知道一個檢查者應該如何響應挑戰需要知道那個檢查者的私鑰和f(x),所以每個檢查者都會想計算f(x)。除非檢查者自己計算f(x),否則它不能安全地執行協議。其他檢查者的響應對確定f(x)沒有用,因爲它們依賴於那些檢查者的私鑰。如果一個檢查者依賴於其他人告訴它f(x),它沒有辦法驗證那個聲稱的值(除了自己計算f(x)),並且如果它是錯誤的,檢查者冒着被罰的風險。甚至有一個方有動機試圖誤導檢查者關於f(x)的信息——那就是斷言者,他從檢查者的錯誤中獲利,可能會用這些利潤賄賂檢查者的“朋友”給檢查者提供錯誤的信息。
優化和結論
有幾個技巧可以使這個協議更有效。例如,我們可以將一個斷言與下一個挑戰捆綁在一起,放入一個鏈上的交易中,這樣挑戰就不會增加交易的數量。如果P很小(例如,在我們的例子中爲0.3%)並且檢查者的數量不是很大,那麼檢查者很少需要在鏈上寫交易,所以協議對鏈上交易的數量的總體影響將是最小的。
通過巧妙的實現,這個協議的成本應該非常低,與在鏈上發佈斷言的預先成本相比。在我們的例子中,將關注挑戰添加到現有的斷言-挑戰協議中,增加的總成本不到1%。
而且收益是實質性的——我們得到了一個激勵兼容的檢查協議,不受驗證者困境的影響。只要至少有一個檢查者是理性的,斷言者的聲明總是會被檢查的。
關於項目的其他信息可以參閱:遊戲公鏈Xai:幣安廣場資料庫