時(shí)間:2023-04-28|瀏覽:235
撰文:孟鉉濟(jì),F(xiàn)ox Tech 首席科學(xué)家;康水躍,F(xiàn)ox Tech CEO
Layer1作為一種分布式系統(tǒng),為了達(dá)成共識(shí)需要高昂的通訊代價(jià),并且大量的計(jì)算也會(huì)消耗昂貴的gas。所以,作為L(zhǎng)ayer1的擴(kuò)展,Layer2的設(shè)計(jì)可以有效地提升Layer1的效率。但是從這個(gè)角度來(lái)說(shuō),Layer2的設(shè)計(jì)仍然面臨著和Layer1一樣的一大難題,就是如何平衡去中心化程度和高效性。
zkRollup是非常有前景的Layer2擴(kuò)容方案,通過(guò)將計(jì)算搬到鏈下并向Layer1鏈上提供零知識(shí)證明的方式來(lái)實(shí)現(xiàn)。在實(shí)現(xiàn)zkRollup的方案當(dāng)中,F(xiàn)OX系統(tǒng)采用了當(dāng)下主流結(jié)構(gòu),主要有兩種節(jié)點(diǎn),分別是Sequencer和Folder。簡(jiǎn)單來(lái)說(shuō),Sequencer負(fù)責(zé)對(duì)用戶提交的交易進(jìn)行排序打包,并且更新Layer2鏈上狀態(tài),F(xiàn)older負(fù)責(zé)對(duì)Sequencer打包的交易生成證明并提交到Layer1。
一個(gè)有意義的問(wèn)題是,Layer2的節(jié)點(diǎn)是否應(yīng)該是去中心化的,如果是,如何設(shè)計(jì)激勵(lì)機(jī)制來(lái)保證這一點(diǎn)。因?yàn)榭梢韵胂?,Layer1效率低的本質(zhì)就是,為了實(shí)現(xiàn)去中心化每個(gè)節(jié)點(diǎn)都需要進(jìn)行大量的計(jì)算和通訊。而使用了Layer2系統(tǒng),將計(jì)算過(guò)程解耦,如果在這部分依然用完全等效于Layer1的去中心化模式,則又會(huì)因?yàn)橥瑯拥脑蛟斐蒐ayer2的擁堵,所以這里需要做權(quán)衡。
激勵(lì)機(jī)制的設(shè)計(jì)就是通過(guò)調(diào)整Layer2節(jié)點(diǎn)獲得激勵(lì)手續(xù)費(fèi)的方式以及平衡支付給Layer2節(jié)點(diǎn)的費(fèi)用,來(lái)鼓勵(lì)節(jié)點(diǎn)參與Layer2系統(tǒng)維護(hù)。本質(zhì)上,Layer2節(jié)點(diǎn)收到的激勵(lì)費(fèi)用來(lái)源與以太坊一樣,來(lái)自于提交交易的用戶付出的Gas費(fèi)。本文會(huì)探討在FOX的系統(tǒng)當(dāng)中,F(xiàn)OX的節(jié)點(diǎn)如何參與系統(tǒng)收取手續(xù)費(fèi),以及這樣做的原因。
首先我們來(lái)回顧Gas費(fèi)在以太坊系統(tǒng)當(dāng)中的作用。Layer1的計(jì)算資源是有限的,用戶提交交易時(shí)候會(huì)指定交易Gas費(fèi),Gas費(fèi)基本同交易的執(zhí)行操作復(fù)雜度相關(guān),而在此基礎(chǔ)上愿意支付更高昂的Gas費(fèi)的用戶可以獲得更優(yōu)先的交易執(zhí)行。礦工的激勵(lì)就來(lái)源于打包的區(qū)塊的Gas費(fèi)總和。此外,Gas費(fèi)機(jī)制還可以有效防止惡意合約(例如無(wú)限循環(huán)),限制區(qū)塊容量大小,這樣在一定程度上保障了安全性。
所以可以看出,對(duì)Gas費(fèi)的合理利用,本質(zhì)上是對(duì)鏈上計(jì)算資源的合理調(diào)度和分配,同時(shí)也是項(xiàng)目方、礦工和用戶的多方博弈。好的激勵(lì)機(jī)制的設(shè)計(jì)以及手續(xù)費(fèi)的使用和分配對(duì)于系統(tǒng)運(yùn)行至關(guān)重要。
用戶提交交易給FOX系統(tǒng)當(dāng)中的交易池同時(shí)要附加一筆用來(lái)激勵(lì)FOX節(jié)點(diǎn)的手續(xù)費(fèi),然后系統(tǒng)中的Sequencer節(jié)點(diǎn)將從交易池中抓取交易進(jìn)行打包排序,這里每次打包的交易就構(gòu)成Layer2的區(qū)塊,同時(shí)Sequencer需要執(zhí)行交易計(jì)算,并將計(jì)算結(jié)果傳到Layer1的FOX合約當(dāng)中,并且,Sequencer還需要將交易數(shù)據(jù)存到ZK-Ringer當(dāng)中來(lái)保障數(shù)據(jù)可用性。之后,Sequencer的排序結(jié)果以及計(jì)算結(jié)果會(huì)傳給Folder節(jié)點(diǎn),F(xiàn)older正確計(jì)算證明(包括證明聚合部分)并傳到Layer1的合約當(dāng)中。在這個(gè)過(guò)程中,Sequencer對(duì)于交易的執(zhí)行結(jié)果會(huì)在執(zhí)行結(jié)束之后直接更新到Layer2當(dāng)中,而交易真正被Layer1共識(shí)的時(shí)間節(jié)點(diǎn)可以認(rèn)為是Folder的證明被驗(yàn)證之后。
可以看到,在這個(gè)流程當(dāng)中,用戶最初附上的手續(xù)費(fèi)要涵蓋幾個(gè)用途:
支付給Sequencer的手續(xù)費(fèi)
支付給Folder的手續(xù)費(fèi)
Sequencer將交易結(jié)果提交到Layer1的Gas費(fèi)
Sequencer將信息存儲(chǔ)到ZK-Ringer的手續(xù)費(fèi)
Folder調(diào)用合約的Gas費(fèi)
為此,我們需要梳理具體的機(jī)制來(lái)激勵(lì)各方參與。
FOX的激勵(lì)模式比較新穎。首先,為了平衡去中心化和效率的問(wèn)題,我們將節(jié)點(diǎn)的角色分為負(fù)責(zé)排序以及執(zhí)行交易的Sequencer節(jié)點(diǎn),以及負(fù)責(zé)對(duì)交易執(zhí)行正確性生成證明并聚合的Folder節(jié)點(diǎn)。FOX的Folder節(jié)點(diǎn)采用了去中心化的模式,也就是說(shuō)任何FOX礦工都可以接入網(wǎng)絡(luò)擔(dān)任證明生成者,為了鼓勵(lì)更多節(jié)點(diǎn)的參與,成功提交正確證明到Layer1合約的Folder可以獲得代幣獎(jiǎng)勵(lì)。與此同時(shí),為了避免算力浪費(fèi),我們指出,并不是只有第一個(gè)證明提交者可以獲得獎(jiǎng)勵(lì),在第一個(gè)證明提交者成功提交之后的一個(gè)時(shí)間窗口和數(shù)量窗口內(nèi)(這里具體參數(shù)會(huì)隨系統(tǒng)狀況進(jìn)行調(diào)整),所有正確的證明者都可以獲得獎(jiǎng)勵(lì)。
圖1:原始版本的激勵(lì)模式
然而在這種機(jī)制下,惡意的Folder會(huì)有一種很狡猾的攻擊。
當(dāng)某一個(gè)惡意的Folder,記作Adv,在完成了證明生成之后,一方面將證明提交到Layer1中的Verifier合約進(jìn)行驗(yàn)證,另一方面它串通一些節(jié)點(diǎn)(或者就是該Folder控制的節(jié)點(diǎn)),將計(jì)算好的證明透露給這些節(jié)點(diǎn),然后它們就可以不經(jīng)過(guò)自己計(jì)算而直接將Adv計(jì)算好的證明提交,也可以領(lǐng)取到一部分獎(jiǎng)勵(lì),而這個(gè)過(guò)程之中他們沒(méi)有付出任何算力,從另一個(gè)角度來(lái)說(shuō),Adv通過(guò)較少的算力獲得了多份的收益,并且造成其它節(jié)點(diǎn)即便生成了正確的證明也難以爭(zhēng)搶過(guò)Adv。
圖2:惡意Folder的攻擊方式
在這個(gè)攻擊當(dāng)中,產(chǎn)生問(wèn)題的原因是Verifier無(wú)法區(qū)分每一份證明是否由該Folder獨(dú)立生成,因?yàn)樽C明值都是相同的。為了規(guī)避這個(gè)問(wèn)題,我們需要將Folder的獨(dú)特的地址信息加入到Folder提交的證明當(dāng)中,從而使得每一個(gè)Folder提交的證明都只能是自己獨(dú)立生成的而不能是其它節(jié)點(diǎn)提交的。
而融入這種信息的方法很巧妙,使用Fiat-Shamir heuristic(讀者可以參考FOX之前的文章《如何將交互式證明改造為非交互式?Fiat-Shamir Heuristic!》來(lái)了解技術(shù)細(xì)節(jié))。按照生成證明的過(guò)程計(jì)算,其中一步,證明者,也就是Folder需要通過(guò)哈希函數(shù)來(lái)生成一個(gè)隨機(jī)挑戰(zhàn)值,只需要要求在這個(gè)哈希的輸入當(dāng)中加入Folder的地址,就可以保證挑戰(zhàn)值與Folder的地址相對(duì)應(yīng),且仍然是一個(gè)Folder無(wú)法預(yù)測(cè)和控制的隨機(jī)數(shù)。
嚴(yán)格說(shuō)明這種方法的安全性需要用到比較深入的密碼學(xué)中理論安全的隨機(jī)函數(shù)的概念以及不可區(qū)分性等等,我們不在這里詳細(xì)討論。簡(jiǎn)單來(lái)說(shuō),可以認(rèn)為,由于哈希函數(shù)本身的安全性以及Fiat-Shamir heuristic結(jié)構(gòu)的安全性,添加一個(gè)固定的值作為哈希的原像并不會(huì)破壞輸出的不可預(yù)測(cè)性,所以原來(lái)zkp算法的安全性仍然可以保證。
這樣一來(lái),每個(gè)Folder就必須獨(dú)立進(jìn)行證明生成而不能直接利用其它節(jié)點(diǎn)結(jié)果,從而實(shí)現(xiàn)了我們的目標(biāo)。
圖3:修改后的激勵(lì)模式
本文從節(jié)點(diǎn)手續(xù)費(fèi)的重要作用角度出發(fā),介紹了手續(xù)費(fèi)與如何激勵(lì)節(jié)點(diǎn)參與系統(tǒng)維護(hù)之間的聯(lián)系,同時(shí)指出,好的激勵(lì)機(jī)制可以有效地維護(hù)系統(tǒng)安全性。在此基礎(chǔ)之上,我們?cè)敿?xì)討論了FOX當(dāng)中采用的對(duì)于Layer2的Folder的激勵(lì)機(jī)制,并且解釋了這種做法的合理性,以及技術(shù)上如何巧妙地運(yùn)用Fiat-Shamir heuristic來(lái)實(shí)現(xiàn)這一點(diǎn)。
《深度|迭代與競(jìng)爭(zhēng)——以太坊的 Layer2 擴(kuò)容之路》國(guó)盛區(qū)塊鏈研究院 https://www.theblockbeats.info/news/24443
熱點(diǎn):NFT激勵(lì) 談?wù)勗钪?/a> BLURR fo虛擬幣 比特幣ts