新聞視界時報
業界動態

談談Layer2的激勵機制:Fiat-Shamir heuristic在FOX的又一次妙用

2023/04/28

新聞視界時報/記者陳品妤 報導

談談Layer2的激勵機制:Fiat-Shamir heuristic在FOX的又一次妙用

新聞視界時報-記者黃柏翰

 

zkRollup是非常有前景的Layer2擴容方案,通過將計算搬到鏈下並向Layer1鏈上提供零知識證明的方式來實現。在實現zkRollup的方案當中,FOX系統採用了當下主流結構,主要有兩種節點,分別是Sequencer和Folder。簡單來說,Sequencer負責對使用者提交的交易進行排序打包,並且更新Layer2鏈上狀態,Folder負責對Sequencer打包的交易生成證明並提交到Layer1。

一個有意義的問題是,Layer2的節點是否應該是去中心化的,如果是,如何設計激勵機制來保證這一點。因為可以想像,Layer1效率低的本質就是,為了實現去中心化每個節點都需要進行大量的計算和通訊。而使用了Layer2系統,將計算過程解耦,如果在這部分依然用完全等效於Layer1的去中心化模式,則又會因為同樣的原因造成Layer2的擁堵,所以這裡需要做權衡。

激勵機制的設計就是通過調整Layer2節點獲得激勵手續費的方式以及平衡支付給Layer2節點的費用,來鼓勵節點參與Layer2系統維護。本質上,Layer2節點收到的激勵費用來源與乙太坊一樣,來自於提交交易的使用者付出的Gas費。本文會探討在FOX的系統當中,FOX的節點如何參與系統收取手續費,以及這樣做的原因。

Gas的作用

首先我們來回顧Gas費在乙太坊系統當中的作用。Layer1的計算資源是有限的,使用者提交交易時候會指定交易Gas費,Gas費基本同交易的執行操作複雜度相關,而在此基礎上願意支付更高昂的Gas費的用戶可以獲得更優先的交易執行。礦工的激勵就來源於打包的區塊的Gas費總和。此外,Gas費機制還可以有效防止惡意合約(例如無限迴圈),限制區塊容量大小,這樣在一定程度上保障了安全性。

所以可以看出,Gas費的合理利用,本質上是對鏈上計算資源的合理調度和分配,同時也是專案方、礦工和用戶的多方博弈。好的激勵機制的設計以及手續費的使用和分配對於系統運行至關重要。

{{AD}}

交易上鏈流程

使用者提交交易給FOX系統當中的交易池同時要附加一筆用來激勵FOX節點的手續費,然後系統中的Sequencer節點將從交易池中抓取交易進行打包排序,這裡每次打包的交易就構成Layer2的區塊,同時Sequencer需要執行交易計算,並將計算結果傳到Layer1的FOX合約當中,並且,Sequencer還需要將交易資料存到ZK-Ringer當中來保障資料可用性。之後,Sequencer的排序結果以及計算結果會傳給Folder節點,Folder正確計算證明(包括證明聚合部分)並傳到Layer1的合約當中。在這個過程中,Sequencer對於交易的執行結果會在執行結束之後直接更新到Layer2當中,而交易真正被Layer1共識的時間節點可以認為是Folder的證明被驗證之後。

可以看到,在這個流程當中,使用者最初附上的手續費要涵蓋幾個用途:

免費架站 - 點擊時代網頁設計,新聞視界時報嚴選推薦,AI 世代限時免費架設專屬網站,立即免費諮詢
  • 支付給Sequencer的手續費
  • 支付給Folder的手續費
  • Sequencer將交易結果提交到Layer1的Gas費
  • Sequencer將資訊存儲到ZK-Ringer的手續費
  • Folder調用合約的Gas費

為此,我們需要梳理具體的機制來激勵各方參與。

FOX的激勵機制

FOX的激勵模式比較新穎。首先,為了平衡去中心化和效率的問題,我們將節點的角色分為負責排序以及執行交易的Sequencer節點,以及負責對交易執行正確性生成證明並聚合的Folder節點。FOX的Folder節點採用了去中心化的模式,也就是說任何FOX礦工都可以接入網路擔任證明生成者,為了鼓勵更多節點的參與,成功提交正確證明到Layer1合約的Folder可以獲得代幣獎勵。與此同時,為了避免算力浪費,我們指出,並不是只有第一個證明提交者可以獲得獎勵,在第一個證明提交者成功提交之後的一個時間視窗和數量視窗內(這裡具體參數會隨系統狀況進行調整),所有正確的證明者都可以獲得獎勵。

 

然而在這種機制下,惡意的Folder會有一種很狡猾的攻擊。

當某一個惡意的Folder,記作Adv,在完成了證明生成之後,一方面將證明提交到Layer1中的Verifier合約進行驗證,另一方面它串通一些節點(或者就是該Folder控制的節點),將計算好的證明透露給這些節點,然後它們就可以不經過自己計算而直接將Adv計算好的證明提交,也可以領取到一部分獎勵,而這個過程之中他們沒有付出任何算力,從另一個角度來說,Adv通過較少的算力獲得了多份的收益,並且造成其它節點即便生成了正確的證明也難以爭搶過Adv。

 

在這個攻擊當中,產生問題的原因是Verifier無法區分每一份證明是否由該Folder獨立生成,因為證明值都是相同的。為了規避這個問題,我們需要將Folder的獨特的位址資訊加入到Folder提交的證明當中,從而使得每一個Folder提交的證明都只能是自己獨立生成的而不能是其它節點提交的。

而融入這種資訊的方法很巧妙,使用Fiat-Shamir heuristic(讀者可以參考FOX之前的文章《如何將互動式證明改造為非互動式?Fiat-Shamir Heuristic!》來瞭解技術細節)。按照生成證明的過程計算,其中一步,證明者,也就是Folder需要通過雜湊函數來生成一個隨機挑戰值,只需要要求在這個雜湊的輸入當中加入Folder的位址,就可以保證挑戰值與Folder的位址相對應,且仍然是一個Folder無法預測和控制的亂數。

嚴格說明這種方法的安全性需要用到比較深入的密碼學中理論安全的隨機函數的概念以及不可區分性等等,我們不在這裡詳細討論。簡單來說,可以認為,由於雜湊函數本身的安全性以及Fiat-Shamir heuristic結構的安全性,添加一個固定的值作為雜湊的原像並不會破壞輸出的不可預測性,所以原來zkp演算法的安全性仍然可以保證。

這樣一來,每個Folder就必須獨立進行證明生成而不能直接利用其它節點結果,從而實現了我們的目標。

 

結語

本文從節點手續費的重要作用角度出發,介紹了手續費與如何激勵節點參與系統維護之間的聯繫,同時指出,好的激勵機制可以有效地維護系統安全性。在此基礎之上,我們詳細討論了FOX當中採用的對於Layer2的Folder的激勵機制,並且解釋了這種做法的合理性,以及技術上如何巧妙地運用Fiat-Shamir heuristic來實現這一點。

 

 

你可能也想看

創業理財

創業第一年最容易犯的10個錯誤!超過一半的新創企業都曾踩過的經營陷阱

創業成功不只是有好的產品或服務,更重要的是避免經營上的致命錯誤。根據許多中小企業與創業顧問的觀察,新創企業倒閉往往不是因為沒有市場,而是資金管理、客戶開發、成本控制及經營策略出現問題。本文整理創業第一年最常見的10個錯誤,協助創業者提前避開經營陷阱,提高企業存活率。

創業理財

現金流比營收更重要!為什麼很多公司有訂單卻還是倒閉?創業者一定要懂的財務觀念

許多人認為,只要公司有訂單、有營收,就代表經營沒有問題。然而,許多企業真正倒閉的原因並非沒有生意,而是現金流出現危機。當應收帳款無法及時回收、固定支出持續增加,即使營收持續成長,也可能面臨資金周轉困難。本文解析現金流的重要性,以及創業者應掌握的財務管理重點,幫助企業建立穩健的經營基礎。

創業理財

創業一定要成立公司嗎?有限公司、行號怎麼選?一次搞懂創業登記差異

第一次創業時,不少人都會遇到同樣的問題:「到底要成立公司,還是先申請行號?」兩者在法律責任、稅務、品牌形象、資金募集及未來發展都有明顯差異。如果沒有依照自己的商業模式選擇適合的登記方式,日後可能需要重新變更組織,增加時間與成本。本文完整解析公司與行號的差異、適合對象及創業前應注意的重點,幫助創業者做出正確選擇。

創業理財

第一次創業資金怎麼準備?自有資金、銀行貸款、政府補助一次完整解析

創業需要多少資金?該用自己的存款,還是向銀行貸款?第一次創業最容易遇到的問題就是資金規劃。除了店面租金、設備採購及裝潢費用之外,營運初期的現金流更是企業能否持續經營的重要關鍵。本文完整解析創業資金來源、自備資金比例、銀行貸款、政府創業補助及資金規劃技巧,協助創業者降低創業風險。