這篇文章討論了L2代幣支付交易手續費的優缺點。用戶可透過L2代幣支付手續費,增加代幣用途,搭配EIP-1559銷毀代幣也能提升價值。但是,使用者體驗可能會變差,尤其是涉及跨L2使用體驗。如果L2接受ETH和L2代幣支付手續費,使用體驗就不會受影響。 StarkNet是第一個計畫接受STRK支付手續費的L2,引進Oracle計畫為ETH和STRK提供匯率報價。文中也重點介紹了Sequencer的權力和Oracle適用的場景,指出Oracle在L1的Force Inclusion機制中發揮更大作用。
這篇文章介紹了L2讓使用者利用該L2代幣來支付交易手續費的優缺點。
先備知識:
知道Rollup的運作機制及強制包容機制
Rollup 的強制包容機制介紹
這篇文章將會介紹Rollup這個工具抗審查機制—Force Inclusion,機器幾個著名的Rollup的設計與執行實例。
L2幾乎都會發行自己的代幣,但信徒的實際用途都只是用來參加治理(Arbitrum、Optimism)。有些L2會提供質押L2代幣的功能,例如Mantle及Manta。這些質押可以用來「決定誰可以排序交易的權力」、「決定生產零知識證明的權力」,或用來「確保L2資料資料發布特性(Data Publication)有保障」,詳細可參考官方文章或文件:StarkNet、zkSync、Mantle、Manta。
註:不過請注意「數據是否正確發布」是沒辦法被客觀證明的,因此也就沒辦法進行懲罰,所以我個人對「為了數據發布特性而質押L2代幣」設計的仍然存疑。
資料可用性重新命名:以資料發布取代資料可用性
最近有人提出用“Data Publication”來取代“Data Availability”,避免DA術語所造成的標記。本條款介紹DA術語該請求標記以及為何要用Data Publication來取代Data…
那L2代幣如何支付使用者的服務手續費?有優點和缺點嗎?
優點
增加代幣用途,讓L2代幣不是只有單純的治理功能。 最多搭配EIP-1559嘗試去銷毀L2代幣,讓L2代幣成為通縮代幣增加價值。
缺點
L2數據成本還是以L1代幣價格
Rollup Sequencer在上傳資料到以太坊時,仍得以ETH支付手續費,所以Sequencer得要承擔風險Rollup代幣及ETH之間的價格波動。如果在「收到Rollup代幣」到「將Rollup代幣兌換成ETH」的期間,Rollup代幣價格相對ETH價格下跌,那就表示賠錢;當然反之賺錢,不過Sequencer未必想再多承擔一層風險。
註:如果該L2不是Rollup、不是將資料上傳到以太坊而是改成上傳到其他DA層的話,一樣會遇到這個問題,只是ETH換成了該DA區的代幣。像是Mantle或Manta都是將資料上傳到其他DA層。
影響使用者體驗
如果L2只能使用自己的代幣來支付手續費,會造成使用者使用體驗變差,因為使用者進到該L2就得想辦法再換成該L2的代幣。例如Polygon PoS,如果使用者第一次使用Polygon PoS,以為把ETH存進去就可以開始使用,使用者會發現ETH沒辦法用來支付手續費,而且他也沒有用來換成手續費的Matic代幣,因此沒辦法把ETH換成Matic,所以他必須再一次在L1先換到Matic然後再把Matic存進Polygon PoS才能正常使用。
註:嚴格來說Polygon PoS是屬於安全性優先的側鏈(Sidechain)而非L2,不過不影響這裡舉的使用體驗範例。
如果每個L2都變換,那麼N個L2就會造成使用者N次麻煩。
L2互通多層阻礙
如果L2都用自己的代幣支付手續費,那麼L2之間的互通性(互通性)將會變得很差。例如單純的L2跨鏈轉賬,用戶可以不能單純地把ETH跨過去就可以順利在目標L2上開始交易,然後遇到和前面Polygon一樣的問題,所以他必須換成目標L2的代幣,例如(假設)從ARB換成OP,而這也會受到ARB OP的流動性所影響。如果有N條L2,那麼流動性就要分割到N-1個礦池子,使用者也要兌換N次才能在N條L2上開始交易。
或例如樂觀為互通性而打造的超級鏈,如果超級鏈生態裡每個人都Rollup都用自己的代幣支付手續費,那就等於直接抵觸超級鏈的目的和願景。
不過以上「使用體驗變糟」及「L2互通性變差」的前提都是L2都「只」接受用自己L2代幣來支付手續費。如果L2都開放讓用戶可以選擇以ETH或L2代幣支付的話,就不會有上述這兩個缺點:用戶可以在做跨鏈操作時就以ETH為準則,在L2上獨立操作的話就以L2代幣支付手續費。而StarkNet便是即將成為同時提供ETH或STRK來支付手續費的L2。
STRK做交易手續費
StarkNet去年底宣布將會支援「以STRK代幣支付手續費」的選項,用戶可以選擇以ETH或STRK來支付手續費,Sequencer(StarkNet稱為Operator)將承擔ETH STRK匯率變動探索。那Sequencer要怎麼決定一筆錢是不是0.1 ETH手續費這個專案如果改成STRK支付的話要收多少STRK?
Sequencer 的權力
無論在L1或L2中,用戶的貨幣交易基本上都是指定一個他願意輸手續費的峰值,例如在Ethereum、Arbitrum或Optimism等採用EIP-1559模式的鏈上,用戶爭奪一個maxFeePerGas值,maxFeePerGas乘上gasLimit就代表這筆交易的手續費高峰。如果是在非EIP-1559(例如Bitcoin或是依據以太坊)的鏈上,用戶就是指定一個固定的手續費。
註:StarkNet雖然沒有EIP-1559,但也是指定一個maxFee值。
無論在哪一條鏈上,有權排序、收入交易的人(礦工、驗證者、序列器等等)都有權力交易、不收入特定交易,但只要某筆交易被收入了,那筆交易最多就是被徵收用戶指定的手續費最大值。
公開Oracle提供ETH STRK報價?
有些人會覺得要有一個公開的Oracle來提供ETH STRK報價,這樣在把0.1 ETH的手續費轉換成STRK數量時才有一個公開公正的轉換匯率。不過,與前面一段提到的一樣,Sequencer可以不收入特定交易,但只要收入了,最多就是採用用戶指定的手續費最大值,所以重點是用戶指定的願意支付的手續費最大值(不管單位是ETH還是STRK),剩下就是等交易被收入。 ETH STRK的匯率是否公開並沒有影響,只要Sequencer想要,他都有手段可以將用戶的交易手續費收到滿。
那就不需要Oracle了?
StarkNet Sequencer 的鏈下預言機
其實還是需要Oracle,而StarkNet也宣布會有Oracle來提供ETH STRK報價,只是這個Oracle會在鏈下針對StarkNet Sequencer提供報價服務。但我覺得Oracle不應該在這個場景使用,後面會說明。
如果Oracle是在鏈下去提供報價給Sequencer,要怎麼說服社會群Sequencer真的照著Oracle報價來計算STRK手續費? Oracle至少得公佈他們的報價,讓社會群能比對Sequencer是否有如實按照報價計算,如果發現Sequencer沒有如實參考報價,那社會群至少可以提出證據來譴責Sequencer️。
如果Oracle的報價能寫到鏈上或整合進協議裡,就能免除Sequencer作惡或失誤的可能,不過這得牽涉到協議層的衝突,所以或許目前這個做法是以盡力獲取信息於社會的最大利益做法的,畢竟StarkNet其實是可以完全讓Sequencer自己決定的。反正如先前一樣,使用者指定maxFee後剩下就是由Sequencer決定的。
那Oracle在哪才會真的派上用場?
力量包容機制
為什麼Force Inclusion機制需要Oracle?先生態StarkNet目前還沒有真正履行Force Inclusion機制,其他L2像是Optimism或zkSync都會在用戶在L1上執行Force Inclusion函數時,先向用戶接收L2的手續費。例如Optimism的depositTransaction函式會依照使用者指定的L2 gas limit去燒毀(消耗掉)對應的gas,也就是接收L1 ETH的意思;zkSync的requestL2Transaction函式會算出L2交易的基本成本並要求L1交易要帶上足夠的ETH來支付基本成本。如果今天Optimism或zkSync也推出自己的代幣支付手續費的功能,那Force Inclusion機制有什麼影響?
假設用戶從L1請求強制獲得他的L2交易收入,但是L1接收的是ETH,而L2手續費是用OP支付的話,要怎麼計算該在L1收他多少ETH? 如果沒有公正的匯率,就有可能造成用戶的超額手續費,等於是懲罰Force Inclusion用戶;要么造成用戶害怕低廉手續費,都從L1去送交易而不是從L2。而這才是我覺得Oracle該派上用場的場景:讓L1合約可以公正地計算Force Included交易要收的手續費。
不過L2可以規定Force Inclusion交易和L2交易都以L2代幣計價(即都接收OP),這樣就不需要煩惱L1與L2手續費單位換算的問題。但要注意的是,仍然有一個成本是不可避免要以ETH計價—資料上傳成本,所以用戶的Force Inclusion交易會變成要同時支付ETH以及OP,這可能會造成一些使用體驗上的摩擦,但這也是L2用自己代幣支付手續費本來就需要面對的挑戰。
總結L2發行自己的代幣可以有不同用途,但如果L2用於支付L2手續費會有什麼樣的優缺點? 優點我相信:L2代幣會有一個明確的實際用途,如果搭配EIP-1559燒毀代幣,可以進一步提升幣價但缺點也不少:Sequencer承擔風險變大、用戶的使用體驗變差、尤其跨L2使用體驗會糟糕很多不過如果L2保留ETH和L2代幣回到用來支付手續費,那就不會影響到使用體驗(L2或跨L2)太多StarkNet是幾個較知名的L2中第一個計畫開放以STRK支付手續費的L2,並會引進第三方Oracle專案來為ETH STRK匯率進行報價而這篇文章的重點是介紹「Sequencer權力」及「Oracle真正適合的場景」 「Sequencer權力」: Sequencer在收入及排序交易這件事上的權利每天都是大的,使用者沒辦法去挑戰Sequencer的公平性,因為公平這件事是沒辦法在鏈上去證明的用戶能做的就是指定他願意為他這筆交易罰金多少手續費(maxFee、maxFeePerGas),剩下就是找不到Sequencer並相信他了“Oracle真正適合的場景”:正因為“只要Sequencer需要,它就可以將用戶的手續費收到滿”,所以L2交易引進一個Oracle來報價並沒有太大的用途,更多的是讓社會和用戶安心, 真正有Oracle適合的場景應該是在L1上的Force Inclusion機制,因為Force Inclusion交易收取的手續費如果和L2手續費單位不同,且沒有公正的匯率的話,就會造成無辜的用戶超額Force Inclusion手續費,要么共用欺詐低廉手續費,都從L1送交易如果L2規定強制納入手續費和L2手續費都用L2代幣的話,就不需要煩惱匯率問題了,不過用戶的強制納入交易就要同時支付「交易數據上傳到L1費用」及「L2手續費」,分別是以L1代幣及L2代幣計價。這妨礙到使用體驗,不過這本來就是L2使用自己代幣支付手續費就必須面對的挑戰。
資訊來源:0x資訊編譯自網際網路。版權歸作者NIC Lin所有,未經許可,不得轉載