從第一原理理解 rollup 經濟學

買賣虛擬貨幣

來源 | barnabe.substack.com

以 l1 經濟為基礎對資源進行定價


rollup 是一種令人驚歎的原語。rollup 將成為以太坊未來擴容的首選方案 (可以參考文章《圖解以太坊發展路線》),併為以太坊上的操作提供廣闊的設計空間。總的來說,rollup 擴充套件了它們所建基的協議,並保留了協議的大部分屬性。在整個過程中最重要的是保證鏈下執行的正確性,以及執行背後的資料可用性。而如何實現這兩點取決於設計者。

最近我開始對從經濟學的角度理解 rollup 感興趣。這不僅僅是一個理論上的問題。基礎層 (l1) 的費用很高,我們應該積極地提供一些空間,以便使用者在此處可以支付得起交易費用。更好的經濟學意味著更合理的定價,使用者也會更滿意。

那我們應該如何具體思考 rollup 的經濟學?本文將首先確定 rollup 系統中的各部分,它們的角色和職責。接著梳理出 rollup 系統中的各種開銷、收益與費用,從而給我們提供一些線索如何探索這個廣泛的設計空間。


rollup 遊戲中的角色

簡單來說,我們將理想化地分為三個角色:

  • 使用者:使用者可以在 l2 網路上傳送交易,和在 l1 上一樣。他們在 l2 上持有資產,並且與部署在 rollup 上的合約進行互動。
  • rollup 執行者:這個角色包含了許多其他角色。rollup 執行者代表著處理 l2 網路交易需要用到的所有基礎設施。我們現在有釋出交易批次 (batches) 的定序者、釋出斷言 (assertions) 的執行者、提出欺詐證明 (fraud proofs) 的挑戰者、計算有效性證明 (validity proofs) 的證明者 (詳細請看這篇論文)...
  • 基礎層:為 rollup 釋出的資料提供安全性的協議。這樣的協議可以只需保證資料可用性而不需要結算功能 (比如,部署在其執行層上的 “模板 template” 橋接合約),但也可以是像以太坊這樣的通用結算引擎。

這三個角色的運作:使用者在 l2 進行交易,執行者連線使用者和基礎層 (資料最終釋出在基礎層上)。


rollup 的開銷

在本文中,我們從 “系統” 的角度看待 rollup,主要關注其開銷、收益和費用。執行一個系統會產生開銷,這就像 “能量庫” (energy sinks),價值從系統內部流向外部。另一方面,系統也會獲得收益,這就是 “能量源” (energy sources),價值從系統外部流向內部。費用則在 “能量源” 和 “能量庫” 之間架起了橋樑,在系統的各個元件之間轉移價值,以便每個元件正確地履行其功能。

比如,在之前我寫的一篇關於 eip-1559 的文章中,我解釋瞭如何分解使用者支付的交易費用:

  • 打包交易的部分費用歸執行者所有:在 pow 基礎層的情況下,礦工費是對礦工的補償,以對沖增加的叔塊風險。這筆費用覆蓋了執行者釋出區塊的開銷,使他們成為網路的一部分。而這也是當前你在傳送交易時預設按 1 或 2 gwei 來支付費用。
  • 其餘的費用支付用於使得其交易優先被打包進區塊鏈,即擁堵定價 (pricing congestion)。這個費用使網路和遭受擁堵情況的使用者在系統中激勵相容。這就是在正常情況下 l1 的 basefee 的作用。

好訊息是,我們將使用一些相同的思路來理解 rollup 的開銷。eip-1559 的開銷只涉及兩部分:使用者和基礎層。由於 rollup 和 eip-1559 兩者的架構不同,而執行者位於使用者和基礎層之間,那麼我們必須將執行者的開銷與基礎層的開銷分開。這一點我們在下文中展開討論:

l2 執行者的開銷 (l2 operator costs)

rollup 必須找到願意花費計算資源來處理 rollup 資料的執行者,如維護一個交易池、對交易 batch 進行排序、計算狀態根/狀態差異/有效性證明等等。這是一種有形的開銷,用來量化執行者執行基礎設施所需要的花費。

l1 資料釋出的開銷 (l1 data publication costs)

花一些時間研究資料釋出的開銷是值得的,因為這確實是 rollup 經濟中的新開銷型別。一旦執行者收集了足夠大的交易集,他們就需要在基礎層上釋出該交易集的壓縮資訊。目前,這個過程還沒能以一種特別優雅的方式完成:資料僅簡單地作為 “calldata” 釋出,這是一種允許傳送者新增一個任意的位元組序列交易屬性。

通常,calldata 包含被交易呼叫的智慧合約方法的引用,以及該方法的輸入引數。這樣理解可能會有幫助:rollup 執行者把代表壓縮交易的位元組塊作為輸入引數來呼叫 l1 “rollup 鏈“ 智慧合約的一些 ”registercompresseddata” 方法。這裡是 optimism 的 “canonical 交易鏈” 合約的一個例子。

使用者傳送交易,執行者壓縮這些交易並將其釋出至基礎層的 rollup 鏈智慧合約中

釋出資料的開銷是由基礎層產生的。為了在以太坊上釋出資料,目前資料的市場價格由 eip-1559 控制,其中 calldata 的每個非零位元組消耗 16 gas,而每個零位元組消耗 4 gas。有了多維度 eip-1559 (在 vitalik 寫的簡單的《sharding-format blob-carrying transactions (用於分片的攜有 blob 的交易型別》中有例項),calldata 的價格可以在它自己的 eip-1559 市場中確定,將資料市場與傳統的執行市場分開定價。

在這個 dune analytics dashboard 中,我試著整理由幾個主要 rollup 釋出的資料。我不確定我是否捕獲了完整的資訊,尤其是 zk-rollup 的。如果你發現了一些對不上的地方,請告訴我!:)

還可以參考 aditi 最近釋出的文章 ethereum rollup call data 定價分析 和 l2fees.info

l2 擁堵開銷 (l2 congestion costs)

還有第三個,更無形的開銷。只要 rollup 區塊空間的供應不能滿足現有的需求,稀缺資源就必須被分配。在一個由對時間不敏感的使用者組成的球形奶牛世界中,使用者只需排隊等待。擁堵的系統不會造成價值損失。但是當使用者因等待產生成本時,他們應該會想要儘可能地減少交易延遲。對於排在佇列後面的使用者,他們福利的減少對整個 rollup 系統來說是增加了的開銷。

依賴費用市場來執行這種分配是典型的 (至少在以太坊世界中是如此),使得這種開銷顯現出來[1]。沒有一個費用市場或者某種形式的擁堵定價,使用者要麼 “用時間支付” (交易被延遲打包)、在鏈下賄賂區塊提議者以打包其交易、或重複傳送他們的交易以保證其中一筆交易會被選中打包。在所有這些情況下,使用者都是透過耗費資源來防止擁堵造成的效用損失。


rollup 收益

現在我們已經清楚 rollup 的開銷了,我們將嘗試分析系統收益。在這裡,我們區分兩種主要資源:交易價值和代幣發放。

交易價值

使用者從 rollup 上的交易獲得價值而不是其他地方,因此準備為他們獲得的服務支付費用。這裡的價值是指使用者從他們的交易被打包到 rollup 上獲得效用 (utility)。如果交易被打包我能獲得 50 美元的效用,我願意支付這個金額,讓我的交易被打包。如果我們最終支付了 2 美元,我的盈餘是 48 美元。但從 rollup 系統的角度,無論是誰獲得 2 美元的收益,最初流入的價值都是 50 美元。

第二,只要交易包含正的 mev,例如在有些 dex 上可被三明治夾擊的兌換交易,這個概念也會被新增到我們的交易價值概念中。在這一點上,誰獲得這個價值不重要,無論是定序者提取這個價值,使用者對交易進行三明治夾擊,還是其他。這裡唯一重要的是我們的最初交易給這整個系統帶來的價值比最初這個使用者從這筆交易中獲得的價值更大。這樣,我們得出:

交易價值 = 使用者價值 + mev

代幣發放

收益的第二個來源是“代幣發放”。在基礎層上,出塊者獲得的收益是新鑄造的代幣,增發出塊者幫助維護的網路的原生加密資產。這些收益抵消他們的基礎設施開銷,只要他們這樣做是有利可圖的,就會有越來越多的出塊者加入。

假設 rollup 能夠鑄造它們自己的代幣,且這個代幣價值不為零。rollup 可以透過發行新代幣支付其部分運作,以履行其職責。這裡的模型比較模糊,有不同方式將收入來源用於 rollup 開銷。現在,我們只考慮發行有價值的代幣是可能的,且透過這樣做可以給系統帶來更多價值。


傳遞責任:rollup 版本

綜上所述,一個 rollup 系統包括三個相關方:使用者、rollup 執行者和基礎層。執行這個系統會產生三種型別的開銷:執行成本、在基礎層釋出資料的開銷和擁堵開銷。這個系統以兩種形式獲得收入:交易價值和代幣發放。

現在剩下的就是匹配誰支付什麼,以及什麼時候支付的遊戲。有些配對是很容易處理的。執行者必須向基礎層支付 l1 資料釋出的費用。他們必須在他們釋出資料的那一刻就支付,而且按照基礎層的報價來支付。[2]

當在費用市場裡費用的定價是動態的,l2 擁堵的開銷也是即時的。使用者觀察 rollup 區塊空間當前的需求,並基於可用供應調整他們的費用。例如,rollup 可能想在它們的網路上部署 eip-1559 式的市場機制來管理 l2 交易的打包。然後 l2 基本費用可以讓使用者輕鬆預估當前的 l2 擁堵開銷。

上圖是系統的全貌,流入代表收益 (交易價值+代幣發放),流出代表開銷 (l2 執行者開銷、l1 資料釋出開銷和擁堵開銷)。費用在不同相關方間轉移價值。

預算平衡:傳遞責任的限制

讓我們給我們的系統新增一個新的限制——執行者預算平衡。我們假設 rollup 執行者不能虧損運營,也就是說他們的收益必須至少要等於或大於他們的開銷。這個假設可能並不總是成立,然而在我看來,如果我們關心的是在未來運營者集是否足夠去中心化和開放,這是至關重要的。執行者如果是需要虧本運營的,這會把資本較少的參與者擠出市場,且使得執行者集的規模非常受限。[3] 一個小型的執行者集會削弱抗審查的保證,在最壞的情況下,使用者會被迫在基礎層打包他們的交易,必須支付高額費用。

代幣發放作為一個鬆弛變數遲早會被派上用場,以保證預算平衡。每當執行者“太無利可圖”時,他們就會離開這個系統,這會增加剩餘執行者的發放份額,直到再次達至平衡。同樣,當執行者“收益太高”時,就會有新加入者來爭相分一杯羹,直到執行者再次達到預算平衡。

在延遲支付的情況下維持執行者預算平衡

在預算平衡的規則下,我們必須考慮執行者維持非負的平衡。他們的主要流出,即 l1 資料釋出是可變的,且其費用收取與他們的主要流入 (即交易費) 是分開的。我們假設執行者對他們的 l2 執行開銷是完全瞭解的,並在交易時向使用者報出確切價格 (類似於他們認知中的叔塊率與其對應的用於補償的礦工費用)。但是,他們應該如何為使用者提供最終的 l1 資料釋出開銷報價,延遲一點實現?

今天,rollup 應用啟發式方法來避免 l1 資料釋出開銷可變性帶來的風險。一種情況是,rollup 觀察當前 l1 的基本費用 (感謝 eip-3198 !) 並把費用往高報了一點,作為額外緩衝,即在一開始的時候對使用者超額收費,以防後來執行者在釋出資料時需要支付更多。另一種情況是,按 l1 基本費用的流動平均值函式來向使用者收取費用,以拉平長期的波動。

在我看來,合理的解決方案是呼叫衍生品,即簡單的 l1 基本費用期貨合約。在交易時間,使用者被收取一筆費用,用於鎖定以未來的價格支付在基礎層釋出資料的開銷。透過減少悲觀 (pessimistic) 超額支付,餘額會發回給使用者。關於這種衍生品的最佳設計,目前的研究還沒有定論。

(譯者注:pessimistic approach 是併發控制演算法的一種方法,即如果在未來的某個時間點上存在衝突,該事務會被延遲。它鎖定資料庫的記錄以進行更新訪問,其他使用者只能以只讀方式訪問記錄或必須等待記錄被“解鎖”。[來源](https://www.geeksforgeeks.org/difference-between-pessimistic-approach-and-optimistic-approach-in-dbms/#:~:text=a pessimistic approach is an,of time in the future.)

使用者在交易時給執行者支付費用,但執行者必須按照基礎層的報價支付資料釋出費用,而這不是固定的。

擁堵費用怎麼處理?

假設使用者交易時 rollup 能完美地對擁堵費用進行定價,那麼現在就會產生擁堵費用形式的收益。今天,在以太坊基礎層上,這些費用會被燒燬。這樣做的首要原因是與激勵相容:如果擁堵費用返回到出塊者手裡,協議的基本費用報價就不再有約束力,破壞了 eip-1559 的目的。但是燒燬基本費用不是保持激勵相容性的唯一選擇。

有人提議把所有的"rollup 廢氣",即由經濟外部性 (例如擁堵或 mev) 引起的費用, 都用於公共物品的資助。[4] 這不是一個壞的解決方案。城市裡的擁堵定價通常會被指定用於改善公共交通系統,也就是說,這些錢是用於補償負外部性的,當這些外部性被進行相應的定價,會帶來這些收益。

請注意,我其實悄悄把 mev 加進來了...為什麼我們應該像擁堵費用那樣思考 mev ?首先,因為 mev 與擁堵一樣是外部性。發出一筆攜有 mev 的交易這樣的簡單舉動對那些想要捕獲的人來說創造了正外部性。[5] 外部性是“沒有得到匹配的價值”,也就是說,它們產生於一些用報酬來平衡有用工作的原始經濟活動 (例如,使用者給 l2 執行者支付開銷;執行者支付 l1 釋出開銷),但在這個過程中它們產生或破壞一些額外價值。

這在 mev 競拍的概念裡得到最清晰的說明,在這種設計中,執行者基於他們能從打包區塊提取多少價值去競爭對一個區塊的打包權。這個價值隱含著擁堵開銷,使用者透過互相競爭出價來表現。更明顯的是 mev 本身,這會是執行者要競爭獲得的。再次,假設不允許執行者在虧損的情況下運營,他們的出價必須反映他們從區塊提取價值的真實能力,即執行者會對他們的交易批次中對使用者費用的總和加上他們從這個交易批次裡提取的 mev 進行出價。同時,假設所有的執行者都必須支付等額的 l2 執行者開銷,而 l1 的資料釋出開銷則精確地向使用者收取,我們會得出:

  • 使用者費用 = l1 資料釋出費用 + l2 執行者費用 + l2 擁堵費用
  • 執行者開銷 = l2 執行者開銷 + l1 資料釋出開銷
  • 執行者收益 = 使用者費用 + mev
  • 執行者利潤= 執行者收益 - 執行者開銷 = l2 擁堵費用 + mev

在執行者在一個有效市場中競爭,以贏得提議區塊的權利的環境裡,執行者必須同時為他們的整個利潤出價,即在他們的交易批次中的擁堵費用和可得的 mev。[6] 這是系統隱含的價值:第一項來自使用者為了免受擁堵帶來的損失而支付的費用,第二項來自初始交易造成的漣漪效應。這些價值從一開始就不屬於任何人,它們為什麼不能被捕獲和再分配呢?

使用者願意為打包支付高達其交易價值的費用。外部性用虛線矩形表示。


探索 rollup 經濟學

這篇文章做了很多假設。例如,我假設“執行者預算平衡”,因為我相信社羣應該以批判的眼光看待處於虧損狀態的執行者所執行的 rollup ,它們有可能還不適合去中心化。代幣發放有助於重新建立預算平衡,儘管這依賴於一個外生的價格訊號 (代幣價值) 來協調執行者激勵。在這種觀點下,執行者更偏向於盡可能準確地對他們可以定價的東西定價,即他們的 l2 執行者開銷和 l1 資料釋出成本。這就避免了未來收益的錯配,執行者會期望更高的代幣價格來支付他們的運營。[7]

但這並不是在倡導一種特定形式的 rollup 經濟學。設計空間仍然是寬廣的。探索 l2 執行者開銷發現更多我們還未探索的複雜性,例如,市場機構支援一個去中心化的基礎設施以生成用於 zk-rollup 的有效性證明。專注於 rollup 上特定型別的使用者 (例如,從 l2 到 l1 或跨 l2 橋接的快速提款服務) 還會發現使用者需求的不同面向。在清楚了開銷、收益和費用的概念後,希望現在能更容易分析出 rollup 應該實現什麼樣的結果和商業目標,以及實現這些目標的手段。


其他資源

  • john adler 的“wait, it’s all resource pricing?” (此處是幻燈片和影片) 給出了 l2 執行者開銷,執行與資料可用性開銷分離的背景。
  • patrick mccorry, chris buckland, bennet yee, dawn song, sok: validating bridges as a scaling solution for blockchains

非常感謝 anders elowsson、vitalik buterin、fred lacs 和 alex obadia 非常多有用的意見。

[1]

vitalik 還認為,這種開銷是區塊空間提供者的機會成本。在這種解讀中,如果你的交易被打包了,你應該至少向提供者支付他們本來可以從打包其他交易中獲取的收益。

[2]

這意味著我們可以進一步解鎖我們的模型。資料釋出開銷是透過對基礎層的擁堵情況預測和來報價的,這就與基礎層的執行者,即出塊者一起形成一個整體。

[3]

執行者集的中心化可能並不如基礎層的出塊者集中心化般糟糕,但對 rollup 網路去中心化權衡的評估留待未來進行。

[4]

在撰寫時,甚至那些錯配的費用,例如那些從使用者收取的用於支付資料釋出開銷的費用,都用作一些公共物品募資,像 optimism 發起的追溯性公共物品募資計劃。

[5]

有趣的是,gas 價格競拍這種用於捕獲正外部性的競爭卻對整個網路創造了負外部性,使得網路必須處理更嚴重的擁堵!

[6]

請注意,在有些執行者可以獲得私人交易訂單流,或參與跨領域 mev (致敬 alex obadia!) 的情況裡,失效效率不再是一個公平的假設。在後一種情況裡,在跨域提取者中的市場效率可以在單域構建者競拍中重建市場效率。

[7]

順便說一下,這種模式並不可怕!這主要是礦工一直以來的運作模式。然而,我們必須記住,任何由執行者承擔的額外風險都是中心化的壓力,除非有可用的風險管理的原語,如衍生品。即使有這樣的選擇來對沖風險,開展良好業務的所需知識可能門檻很高,這會使的技術水平不高的執行者望而卻步。


免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读

;