改進 Solana TFM 的建議

進階Feb 25, 2024
本文分析了 Solana 現有的費用市場,併討論了幾種可能對 Solana 有價值的交易費用機製和框架。
改進 Solana TFM 的建議

轉髮原文標題:Solana 和以太坊交易費用機製:改進 Solana TFM 的建議

謝謝 Andrew Fitzgerald, Harsh Patel, Jon Charbonneau, Kevin Galler, Lanre Ige, Mert Mumtaz, Pranav Garimidi, Ryan Chern, Tao Zhu, 和 Tarun Chitra提供反饋和審查。

介紹

Eclipse 是以太坊的第一個 SVM L2。我們非常高興能夠將現有 SVM 的強大功能帶給更多用戶,但我們也緻力於推動圍繞 SVM 本身的持續研髮。我們專註於確保 Eclipse 的開髮能夠爲所有 SVM 鏈(尤其是 Solana)帶來無可爭議的價值回報。

作爲我們未來關於費用市場思考的文章的前奏,本文將分析 Solana 現有的費用市場以及相關的改進建議。我們在大量借鑒蒂姆·拉夫加登,瑪麗亞姆·巴赫拉尼、普拉納夫·加裡米迪,Hao Chung, Elaine Shi等人的研究成果的基礎上,將這些建議與任何交易收費機製(TFM)的主要理論目標結合起來。我們將在全文中用 ** 錶示核心定義。

一般來説,TFM 確定:

  • 特定區塊包括哪些交易、
  • 特定交易支付的費用,以及
  • 纍積的交易費用如何分配(以及分配給誰)。

最終,本文旨在將以以太坊爲中心的 TFM 研究成果與 Solana 的創新工程相結合。

Solana 和以太坊當前 TFM 概述

Solana 與以太坊基礎知識

我們將首先概述 Solana 的 TFM,併將其與以太坊的進行對比。這將更好地結合相關提案,以便我們能夠努力修改和改進 TFM。首先:

Solana 的基本費用爲每次簽名固定收取 5,000 lamports(0.000005 SOL),大多數交易隻需一次簽名。它不考慮交易的更廣泛計算資源(按 CUs 計算)。

Solana Tx 基本費用 = (5,000 Lamports) x (Tx 簽名數量)

以太坊的基本費用機製主要有兩個不衕之處:

  1. 動態的 - 以太坊的基本費用(以每單位 Gas 的 gwei 衡量)根據跟蹤市場需求浮動。
  2. 每單位計算的更細粒度的費用 - 以太坊的每筆交易基本費用與消耗的 Gas 量成線性關繫。

所以以太坊的每筆交易基本費用是:

以太坊 Tx 基本費用 = (現行汽油價格(gwei)) x (tx 中使用的氣體)

Solana 用戶還可以添加可選的優先費以提高其納入概率。與基本費用不衕,優先費用是是按交易申請的每個 CU 計算的。Solana 交易可包括以下計算預算 指令

  • SetComputeUnitLimit (設置計算單元限製)- 交易可設置允許消耗的最大 CU 數(每個交易最多 140 萬 CU)。執行時,交易最多可使用所請求的 CU 限製。如果沒有提供 SetComputeUnitLimit 指令,交易的 CU 限製計算公式爲(交易中的指令數)x (200k CU)。
  • SetComputeUnitPrice(設置計算單位價格) - 交易在優先費用中支付的每個 CU 請求的 微型燈端口(Micro-lamport)數。

將它們放在一起:

Tx 優先費 = (Tx CU 限額) x (CU 價格)

請註意,此優先費是根據請求的全部 CU 支付的(無論交易是否使用請求的總金額),這與以太坊不衕。在以太坊中,費用是交易實際使用的 Gas 量的函數。

費用消耗與驗證者獎勵

雖然驗證者優先處理高費用交易的動機不在共識範圍內,但在共識中,基本費用和優先費用各占一半,燒毀/髮送給 Solana 中的領導者(當前區塊生産者):

  1. 基本費用 — 納入區塊的必備條件。缺乏必要基礎費用的交易將被拒絶。
  2. 優先費 — 不強製要求區塊包含。用於選擇性地優先考慮那些希望提高其被快速納入概率的交易

用戶無法避免支付基本費用,但可以避免優先費用,併以另一種方式錶明他們希望穫得優先權。我們已經在實踐中看到了這一點—— Jito-Solana 拍賣曏帶外領導者支付 100%(減去費用)。SIMD-0096 針對這個問題提供了一個簡單的解決方案,將 100% 的優先費獎勵給驗證者。

直接轉移*:通過 MEV-Boost / Jito-Solana 拍賣進行協調

重要的是,Solana 驗證者對鏈上交易的每個區塊進行投票。他們爲每筆交易支付基本費用。

受優先權費用急劇增加的推動,Solana 最近的網絡費用創下歷史新高最近的費用分配如下所示

資料來源:Solana Compass

以太坊區塊生成器與 Solana 調度程序

以太坊的區塊生産通常更容易理解,所以我們從這裡開始。幾乎所有驗證者(又稱提議者)都通過以下方式將區塊生産外包給協議外構建者 MEV-Boost。構建者每 12 秒(以太坊的時隙時間)創建一個區塊,併將這些整個區塊傳遞給提議者(通過中繼),提議者選擇價值最高的區塊。

在以太坊和 Solana 中,區塊生産者都有權在區塊內任意訂購交易。他們被激勵以利潤最大化的方式這樣做。例如,不衕的以太坊構建者可以通過運行專有算法進行競爭,這種算法能更有效地實現利潤最大化,而競爭對手則無法做到這一點。

這意味著,即使在以太坊中,髮送高優先級費用也無法在協議內實現對區塊包含或排序的確定性保證。然而,由於以太坊當前區塊構建過程的性質,即構建者在每個離散時隙結束時構建一個完整的利潤最大化區塊,它很有可能實現預期結果。

例如,搜索者可能會曏構建者髮送優先級極高的套利交易(例如,高於所有其他符合條件的交易的總和),要求將其納入區塊頂部,如果沒有穫得區塊頂部位置,則將該交易完全排除在區塊之外。在這種情況下,一個理性的利潤最大化建設者會將這筆交易放在區塊的最頂端,即使他們隻是在 12 秒時段快結束時才收到這筆交易。

你會註意到,這裡的收費有兩種不衕的保證:

  1. 包容性 - 用戶希望將他們的交易包含在該區塊中,但他們不關心交易位於該區塊的何處。
  2. 排序 - 用戶不隻是想被包含在區塊中的任何地方;他們希望在給定時間優先訪問特定狀態。

事實證明,以太坊的EIP-1559 機製非常有效,可以讓用戶輕鬆競標區塊包含,併且成功的可能性很高。每個人都知道要支付一個全球底價,支付該底價(通常還有象徵性的優先權費用)應該可以可靠地讓用戶的交易立即包含在內。然而,該機製併不尋求提供任何有關排序的保證(即優先訪問狀態),而協議外機製對於尋求此類保證的用戶(例如直接從構建者處)來説是可靠的。

Solana 的區塊構建過程非常不衕。驗證者不會將離散時間段內的完整區塊生産外包給協議外構建者。這 ”調度程序”是Solana Labs 驗證器客戶端中包含的默認算法,用於調度交易的執行併連續構建區塊。

此外,Solana 交易 指定哪些帳戶必鬚被讀和寫鎖定才能執行。這允許調度程序迭代地排序哪些交易可以併髮執行——因爲不觸及相衕狀態的交易可以併行執行。

在一個塊內,最多有12,000,000 CU 可用於對單個帳戶(“狀態片段”)進行順序寫入。大約是這個量每 400ms 時隙可通過單線程處理的 CU 合理的節點要求。 Solana 的每塊限製爲48,000,000 CU。當前的調度程序實現使用四個線程進行非投票交易,12M x 4 = 48M。理論上,這意味著使用更多核心 = 增加 CU 限製。通過硬件進行擴展。

調度程序非確定性地優先處理優先級較高的交易。然而,與以太坊目前所採用的機製相比,這通常無法提供可靠的優先級保證。

在 Solana 中,運行默認調度程序的驗證器會連續構建區塊,因此交易可以添加到正在進行的區塊中併執行,然後等到時段結束後再完全按照優先級費用來組織交易。這樣做的目的是讓調度程序基於他們的 CU 總價格確定優先級,從而實現利潤最大化。

Solana 的默認多線程調度程序還引入了額外的“抖動(jitter)”。交易被隨機分配給四個線程之一,每個線程維護自己的等待執行的交易隊列。然後使用優先費來確定線程內交易的優先級。但是,它們無助於確定線程間交易的優先級。

例如,兩個搜索者可能會衕時髮送一筆交易來捕捉相衕的套利機會,而髮送較低優先級費用的那個搜索者甚至可能穫勝,因爲他們偶然進入了一個不那麽擁堵的隊列。與以太坊相比,這就降低了優先級費用的效力,增加了垃圾郵件的誘因—尤其是因爲交易的收録也取決於在給定時間段內,交易何時到達當前區塊生産者。

請註意,有計畫的改變 Solana 的默認調度程序,目的是通過依賴交易依賴關繫圖,調度圖中優先級最高的未阻塞(非寫鎖定)交易,從而解決當前實現中的一些問題。

雖然 Jito-Solana 客戶端主要不在本文討論範圍之內,但它允許搜索者以最小化 Solana 負麵外部性的方式更高效地穫取礦工/最大可提取價值(MEV)。Jito-Solana 偏離了 Solana 的默認調度程序,引入了協議外離散的 200 毫秒 Flashbots 式捆綁拍賣,與默認的連續區塊生産和私有 mempool(衕樣偏離了 Solana 的默認 TFM)併行運行。Solana 驗證者採用 Jito-Solana 客戶端(目前有超過 50% 的驗證者使用該客戶端)有助於解決 Solana 現有 TFM 的一些問題,即由 MEV 驅動的垃圾郵件。

Solana 當前 TFM 的缺點

盡管 Solana 的 TFM 前景廣闊,但目前它也存在一些潛在的缺點:

垃圾郵件的誘因

如上所述,交易一旦到達區塊生産者,就會以某種先入先出(FIFO)的方式排序。此外,它們還受到網絡抖動和默認調度程序隨機線程分配的非確定性影響。雖然在某些情況下,優先級費用可能有助於提高收録概率,但仍然存在著大量的誘因,促使人們進行垃圾交易,以最大限度地提高最快的收録概率(例如,搜索者競相在借貸市場上清算違約頭寸)。這下圖來自 Jito Labs 有助於證明垃圾郵件交易的次優性質。

資料來源:Jito 基金會

一口價拍賣

在簡單的一口價拍賣(FPA)中,用戶隻需提交出價,最高的價格就會被納入該區塊。FPA的一個問題 是它不太用戶友好。例如,用戶必鬚猜測其他用戶的出價,考慮自己願意出價到什麽價位,例如,可能會根據自己認爲其他用戶的出價來降低自己的出價,以免出價過高。

更正式地説,FPA 模型是非 DSIC:

**主導策略激勵兼容(DSIC): 假設區塊生産者誠實地執行了 TFM,那麽規定的出價策略應該是用戶的主導策略。這意味著用戶將按照他們對交易包含性所賦予的確切價值出價(交易費)[Chu22]

DSIC 是 EIP-1559 的創建者旨在將其引入以太坊 TFM 的關鍵特性之一,正如我們前麵所描述的,它可以説是成功的。用戶更容易知道在特定時間(通過動態基礎費用)包含在區塊中的公共底價,因此支付該價格(加上任何名義上的優先權費用)幾乎總能讓您的交易迅速被包含在內。

相反,Solana的TFM是一種過於簡單天真的FPA。它缺乏一個可靠的機製讓用戶準確地錶達他們對區塊包含的偏好,併且是非DSIC的。在實踐中,試圖在正確的時間設定正確的優先費用是極其具有挑戰性的。這對於能夠更好地繞過網絡和調度抖動的覆雜參與者極爲有利(例如,通過共享位置或垃圾郵件交易)。

50/50 銷毀/驗證者支付

如前所述,以太坊會燒掉 100%的基礎費用,衕時將 100%的優先級費用髮送給區塊生産者,而對於 Solana,基礎費用和優先級費用各燒掉/支付給區塊生産者一半。因此,Solana TFM 是不防 OCA 的:

**鏈下協議證明(OCA 證明或 SCP):用戶和區塊生産者之間沒有鏈下協議可以Pareto改進指定區塊的TFM結果 [Rou21]。 c-SCP 協議可以防止區塊生産者聯盟和最多 c 個用戶通過偏離真實報告而穫利。

我們看到的一個明顯例子是,Jito-Solana 的協議外拍賣曏區塊生産者支付 100%的出價(扣除 Jito 的分成),而不是燒掉 50%— Jito-Solana 是區塊生産者使用鏈下協議的一個例子。不過,我們註意到,Jito-Solana 的小費併不等衕於優先權費用,因爲前者隻有在相關交易(和捆綁)成功執行時才會支付。

最近提出的SIMD-0109 將在協議中引入一種小費機製(類似於 Jito-Solana 的協議外拍賣所使用的機製)作爲本地指令。

缺乏特權交易類型

Solana 投票交易髮布在鏈上,併且必鬚包含在區塊中,然而每個驗證者必鬚支付所述交易的費用。這代錶了一項重大的固定成本(由驗證者私人支付),盡管包含投票交易的外部性是積極的。相對於所消耗的 CU,投票交易被多收了費用(即相對於普通交易,投票交易使用的 CU 相對較少),這又加劇了這一成本。經濟學在這裡産生了集中效應,因爲任何驗證者的總投票成本大緻恆定,而穫得的獎勵與權益權重成正比。

來源:Ceteris、Solana the Monolith

順便説一句,類似的邏輯可以擴展到包括可靠的預言機更新,盡管準確的鏈上價格反饋具有正外部性,但網絡通常會對預言機收取費用。一個更有主見的鏈,如果從某個特定的穩健預言機中穫得了很高的價值,可能會選擇建立一個補貼其成本的機製。

Solana 的本地費用市場

Solana 近似於本地收費機製,因爲沒有賬戶可以在每個 48M 區塊限製內寫入超過 1200 萬個 CU。再加上 Solana 默認調度程序的多線程特性,這意味著一個區塊中最多有 25% 的交易可以對應一個單一的需求狀態。從理論上講,與有需求狀態的用戶相比,需求較少狀態的用戶不應該爲穫得較強的包含保證而增加優先級費用。

可以説,這不是真正的本地收費機製。該機製不是通過共識來執行的(隻在調度器層麵),而且優先級費用和區塊包含之間的關繫是非確定的(如前所述)。此外,它還缺乏 “彈性 “概念,即衕時存在目標和最大資源限製。

CU 使用和請求效率低下

由於 Solana 的基本費用不考慮 CU,因此它不會激勵交易:

  1. 高效使用 CU — 在其他條件相衕的情況下,使用 140 萬 CUs 的交易與使用 10 萬 CUs 的交易收取相衕的基本費用。
  2. 高效請求 CU — 即使交易使用了 5 萬 CU,無論申請 10 萬 CU 還是 100 萬 CU,基本費用都是一樣的。

這可能會導緻調度程序高估給定區塊內的計算需求,併且與給定時隙的區塊生産者所需的資源相比,會造成效率損失。DSIC TFM 可以解決這個問題,因爲用戶的主導策略將是規定的投標策略,在這種情況下,它可以準確地反映 CU 的預期使用情況。

無成本寫鎖賬戶

如前所述,Solana交易在執行時會預先指定它們將讀取或寫入的所有賬戶。然而,如今這種機製可以被濫用,以實質上無成本的方式全球鎖定任何賬戶。例如:

  1. 我髮送 TxA,這指定它將寫入到 AccountA
  2. 領導者收到 TxA,安排它,併開始執行它。現在,AccountA 已被鎖定 - 在TxA 完成執行之前,不能執行任何其他觸及 AccountA 的交易。

問題源於這樣一個事實:任何人都可以髮送交易來鎖定他們想要的任何賬戶。鎖定賬戶是免費的,甚至可以鎖定他們不使用的賬戶,這顯然是一種垃圾郵件攻擊手段。更糟糕的是,賬戶所有者無法控製誰可以鎖定他們自己的賬戶。

TFM 提案和框架

每個區塊鏈最終都必鬚決定如何在用戶之間分配其有限區塊空間的稀缺資源,這需要通過其 TFM 來實現。下麵,我們將討論幾個可能對 Solana 有價值的相關 TFM 提議和框架。

多維區塊鏈費用市場

大多數現有的費用市場都是一維的,圍繞單個可替代的賬戶單位(例如以太坊中的燃氣)構建。然而,購買的這種單一資源是許多底層不可替代資源(例如帶寬、計算和存儲)的代理。

例如,每個以太坊操作碼 攜帶其消耗的一定固定數量的燃氣(例如,ADD 使用 3 份燃氣,而 MUL 使用 5 份燃氣)。每個操作碼的氣體價格是根據其使用的底層資源以及網絡中節點認爲這些資源的昂貴程度而設定的。例如,可以通過在真實世界的硬件上運行基準來確定對操作成本的這種隱性衡量。

然而,也可以構建多維費用市場,對這些不衕的不可替代資源單獨定價,而不是將它們組合成一個單位。EIP-4844 是一個簡單的二維費用市場,因爲數據塊有自己的費用市場,獨立於以太坊執行燃氣。

Diamandis、Evans、Chitra 和 Angeris 於 2022 年髮錶的這篇論文分析了如何構建這樣的多維收費市場。他們的研究從網絡設計者的角度出髮,提出了 TFM 構建問題,目的是在區塊鏈的交易和區塊限製(例如智能合約限製或 CU/gas 限製)下,最大化區塊鏈用戶的福利(或總效用),減去上述用戶的資源消耗。論文的主要成果是,盡管福利是未知的,但他們設計出了一種能使福利最大化的機製,併展示了如何顯式構建上述機製。

**福利最大化(Welfare Maximizing):預期的分配和支付規則意味著消費者和礦工剩餘的總和(大約)最大化。

他們的主要髮現是,一種等效的 TFM 是可以實現的,即資源價格被設定爲最小化驗證者和用戶之間的福利差異 —- 從福利最大化的角度來看,這樣的價格理論上應導緻區塊最優化。雖然這項工作更多地被視爲設計最優 TFM 的學術框架,但它有助於錶明,對資源進行單獨定價可以提高區塊鏈的效率,使其在擁堵或垃圾郵件高髮期更具彈性。基於控製器的基礎費用機製(如 EIP-1559)被強調爲一種潛在的方法,它可以在 Solana 和 SVM 鏈上運行得非常好,因爲區塊時間很短,允許基礎費用根據用戶需求和資源可用性的變化進行快速調整。

如前所述,本文的一個結論是,可以設計繫統且計算高效的方法來幫助定義和更新區塊鏈多維資源的定價。然而,一個自然而然的問題應該是:對哪些資源進行單獨定價才有意義?在其他區塊鏈環境中,已經開展了一些實際工作來做出這樣的決定。例如,Penumbra 已經實施了一種多維資源定價形式,在其以隱私爲中心的區塊鏈上對全節點和終端用戶設備使用的資源分別定價。

雖然 2022 年的論文一般討論了基礎資源(例如計算、帶寬、存儲)的多維定價,但也可以實現每個賬戶(即每個“狀態”)的多維資源定價。每個帳戶都被視爲不衕的資源。最近的這篇文章在原始論文的基礎上對此進行了討論。將帳戶(而不是計算、存儲、帶寬等)作爲底層資源單獨定價,可能更易於實施,併能降低資源耗盡攻擊風險。

寫鎖賬戶 (Write Lock Account) 的指數費用

Anatoly 最近髮錶關於SVM 執行經濟學的文章之後,Tao Zhu與Anatoly合作,提出SIMD-0110。其主要動機是通過經濟背壓(即隨著時間的推移有針對性地增加費用以降低垃圾郵件的誘因)來阻止垃圾郵件,從而提高網絡資源的利用效率。失敗的套利交易繼續占據大約一半(或更多) 的Solana區塊空間,因爲垃圾郵件既合理又便宜得令人難以置信。

提案建議跟蹤每個賬戶每個區塊的 CU 使用率的指數移動平均值 (EMA),以實現這一目標。寫鎖賬戶的成本將根據其各自的尾隨 CU 利用率呈指數增長,從而阻止垃圾郵件。其核心邏輯類似於 EIP-1559 將以太坊的全局基本費用設定爲尾隨區塊中燃氣使用量的函數。不過,這種 SIMD 在設置每個賬戶的本地基本費用市場時,要精細得多。

基於賬戶的不衕寫鎖費用的基本實現思路如下:

  • 跟蹤每個有爭議賬戶在過去 150 個時段的 EMA 計算單元使用率。
  • 跟蹤的賬戶數最多爲 2048 個,其中隻有爭議最大、寫鎖成本率最高的賬戶才會被跟蹤。
  • 如果賬戶的 EMA計算單元利用率 > 其最大 CU 限製的 50%,其寫鎖定成本率將增加 X%。如果<50%的限製,成本率將減少 X%。
  • V0 建議初始寫鎖成本率爲 1000 micro-lamports/CU,成本率調整率爲每個插槽 1%(請註意,鑒於提案的早期性質,此處的確切百分比可能會髮生變化)。
  • 某一區塊賬戶的寫入鎖定費是用寫入鎖定費率乘以交易申請的 CU 計算得出的。
  • 交易仍需支付簽名費,可選的優先權費也依然存在。
  • 收取的寫鎖費用將被 100% 銷毀。
  • 收取的優先權費用100%獎勵。
  • 收集到的簽名費50%被銷毀,50%被獎勵。

該提議將使 Solana(通常)DSIC 的寫入鎖定功能類似於 EIP-1559 使以太坊 TFM(通常)DSIC 和 MMIC [Rou23] 的寫入鎖定功能—除了在費用突然激增的情況下。

我們可以如下定義 MMIC 特性:

**短視礦工激勵兼容性(MMIC, Myopic Miner Incentive Compatibility ):區塊生産者通過不創建虛假交易併遵守 TFM 的既定規則來實現其效用最大化。短視意味著在判斷效用最大化時,這一目標隻涉及當前區塊[Rou21]。

任何跟蹤機製都是不完美的,因爲它可能無法準確地代錶當前的需求狀態。例如,需求可能會在很長一段時間內處於較低水平(因此,動態基本費用較低),然後 NFT 鑄幣的需求突然飆升。這種情況可能髮生在全球層麵(如以太坊的 TFM),也可能髮生在本地的每個賬戶層麵(如 SIMD-0110 中考慮的情況),甚至更加不穩定。

然而,Solana 也受益於其極低的出塊時間。這可以使基本費用更快地適應突如其來的需求衝擊,具體取決於曲線移動的積極程度。在這裡,收費控製器的形狀非常重要。

事實上,這種對請求的CUs收取寫鎖費用的事實也適當地激勵用戶和開髮人員準確估計交易的CU使用量。這避免了我們之前討論的問題,即當前的平均簽名基數對請求的CUs遠超所需的情況(甚至可達到最大的140萬CUs)沒有任何懲罰。否則,隻有優先費用在今天承擔這種激勵(因爲它也是根據請求的CUs收費)。

這裡一個潛在的批評是,基於賬戶的本地費用市場(尤其是這個提案,它要求爲每個賬戶計算持續的 EMA)可能在計算上非常昂貴。這種類型的多維費用是無限製的,因爲任何賬戶都可能出現擁塞,這可能會給這種 TFM 帶來睏難。然而,在 SIMD-0110 的情況下,通過設置可以在給定時間跟蹤 CU 使用 EMA 的帳戶數量上限來避免這種情況。

**高效可計算(Efficiently Computable):區塊拍賣機製的設計必鬚能夠針對給定的區塊生産者(或構建者)進行高效計算——Eclipse 和 Solana 的時隙小於 400 毫秒,這對給定區塊的最大計算時間提出了嚴格的限製。

考慮到即使實施了這一建議,Solana 區塊的納入仍將是非確定性的,因此仍有可能出現用戶實時準確更新出價以確保其交易被納入區塊的問題。要進一步解決這個問題,需要對調度程序進行修改,我們將在下一節討論。

Solana 默認調度程序的更改

正如前麵所討論的,這 ”調度程序”是Solana Labs 驗證器客戶端中包含的默認算法,用於調度交易的執行併連續構建區塊。它在 Solana 的費用市場中髮揮著極其重要的作用,盡管它的默認行爲併未在協議中強製執行,因爲驗證者可能會選擇運行其他算法。我們將在這裡重點關註當前的調度程序和即將提出的更改,Andrew Fitzgerald 正在研究這些變更。

Solana的當前調度器在處理用戶交易時引入了“抖動 (jitter)”,通過隨機將它們分配到四個非投票交易線程中的一個(另外兩個線程保留用於處理投票交易), 然後嘗試按優先級費用對未完成的交易進行排序,併檢查相關的鎖定(’鎖定抓取’),如下麵的圖錶所示。在“銀行階段(Banking Stage)”期間,將提取多批交易以分配給線程 - 這是Solana驗證者運行的過程,其中處理交易併在其下進行調度過程。

資料來源:Andrew Fitzgerald,Solana Banking Stage 和 Scheduler (調度器)

默認調度程序的一個重要問題是,在網絡活動頻繁的時期,每個線程的隊列中經常充滿了相互衝突的交易(例如,在 NFT 鑄幣或廣泛預期的代幣生成事件之前)。每個線程都可能包含具有相衕或重疊讀鎖或寫鎖的交易,這意味著這些交易必鬚重新安排執行時間。然而,這樣做的結果是,在極端最壞的情況下,四個默認調度線程中隻有一個線程可以在給定時間內執行交易。

升級 Solana 默認調度器的關鍵在於從傳統方法(名爲 ThreadLocalMultiIterator 模式)過渡到新的調度方法,名爲 CentralScheduler 模式。本文僅提供對變化的概述和分析。然而,可以在 Andrew Fitzgerald 的文章和 Harsh Patel 的 Tiny Dancer團隊的附帶@harshpatel_36138/whats-new-with-solana-s-transaction-scheduler-bcf79a7d33f7">摘要博客文章中找到更多信息。以下展示了新調度過程的概述。

資料來源:Andrew Fitzgerald,Solana Banking Stage 和調度器

新的調度器由一個中央單調度器負責接收來自通道的交易,然後檢查相關的鎖。之後,交易被分配給特定的併行工作線程執行。中央調度器可以查看特定工作線程使用的各種讀寫鎖,從而確定新交易的最佳線程。在特定工作線程執行和處理交易的過程中,會曏中央調度程序髮送消息,以便其重新評估 Solana 狀態中哪些部分被認爲是鎖定的。

調度程序使用一種稱爲“prio-graph(優先圖)”的算法,這是一個直接的有曏無環圖,以最高優先級(收費)交易爲起點,在給定的最高優先級交易和因鎖重疊而與之衝突的後續最高優先級交易之間畫線(或更準確地説,畫邊)。這(暫定)是針對一個 “前瞻 “窗口完成的,該窗口的預設大小爲 2,048 個交易(可能會有變化),這些交易可以添加到圖形中—以下圖錶顯示了優先圖在一組給定交易中的工作情況,其中交易之間的邊代錶衝突鎖。

除了採用 prio-graph 調度程序之外,該版本還引入了額外的效率來幫助減少處理開銷,例如刪除銀行階段的冗餘元素。新的調度程序應該會得到改進,顯著降低 Solana 活動頻繁期間寫入失敗和讀取鎖定的概率。由於新的默認調度程序,我們預計抖動會減少。盡管如此,鑒於區塊構建過程的連續性,區塊包容性仍將存在不確定性。

可返還賬戶寫入 (PRAW, Program Rebatable Account Write) 費用

Godmode Galactus Max Schneider 所撰寫的 SIMD-0016 提出了可返還賬戶寫入(PRAW)費用。它們將給應用程序開髮者提供顯著的控製權,因爲他們可以設定支付和這些費用的返還標準,從而在他們認爲合適的情況下激勵或抑製用戶行爲。

目前,Solana 程序無法懲罰對其狀態進行寫鎖定的交易。PRAW 費用將允許 Solana 賬戶所有者對寫入鎖定其狀態的失敗交易收費。這些費用將轉嫁到被鎖定的可寫賬戶。不過,賬戶所有者可以設置這些費用,以便在交易結束時,如果符合指定標準,這些費用將返還給用戶。

特別是,這可以阻止用戶寫入鎖定他們在交易執行中實際上併不使用的賬戶。由於 Solana 目前併沒有事先檢查特定賬戶是否會被寫入鎖定的特定交易使用,因此這種情況是有可能髮生的。PRAW 爲程序提供了一種方法,可以抑製那些鎖定程序狀態的交易,這些交易試圖識別機會,併打算在執行時機會不再有效時還原。即使交易在執行過程中失敗,這些費用也將適用。

相反,用戶可以指定他們願意在交易中支付的 PRAW 費用的最高金額。交易中指定的任何高於給定寫鎖定賬戶當前 PRAW 費用的費用都將被退還。

Solana 社區的成員指出了該提案的問題:不衕項目完全自主運行的能力似乎不太理想,而且準確估算費用的能力也很睏難。此外,可能有更簡單、更統一的方法來處理這些圍繞寫鎖定帳戶的惡意問題,例如 SIMD-0110。

**抵製惡意破壞(Griefing Resistance):DSIC 的一個子集,其中用戶不會被激勵去歪曲其訪問列錶——錯誤地陳述其事務所需的資源[Gar23]。

PRAW 提議有可能無法防止垃圾郵件,因爲它依賴於應用程序開髮人員的充分能力: 1)能夠將垃圾郵件與 “正常行爲 “區分開來;2)自願選擇爲他們應承擔部分責任的負麵外部性收取更多費用,而這樣做可能併不符合他們的最佳利益,他們可以選擇不這樣做。

相比之下,雖然 Solana 研究社區的成員在引入 EMA 基本費用方麵存在不可否認的分歧,但普遍衕意添加一些與 CU 相關的基本費用組成部分。這可以激勵開髮人員準確地估計 CU 併有效地使用 CU。

最後的想法

Solana 獨特的工程和性能目標需要獨特的 TFM 考慮。當然,簡單地將以太坊現有的收費市場移植到 Solana 併不能解決問題,但我們可以從中吸取寶貴的經驗教訓。這與以下兩種機製都有很大關繫:

  1. 協議內 - 共識執行的 TFM(例如,EIP-1559SIMD-0110
  2. 協議外 - 通過 MEV-Boost、Solana 調度程序改進和 Jito 拍賣進行 PBS

對於 Solana 和以太坊來説,協議內機製和協議外機製似乎都有可能共存併共衕髮展。如何平衡這兩種機製是設計這些繫統的基本問題之一。圍繞 SIMD-0110 的爭論往往集中在兩種對立的觀點上:

  1. 調度器和網絡改進 將減少抖動,足以解決這裡描述的問題,因此不必對協議內的TFM進行重大改變。
  2. 雖然需要進行協議外的調度器和網絡改進,但它們本質上是不夠的。需要協議內的經濟反壓。

在這兩種情況下,某種形式的多維資源定價顯然也很有價值。以太坊已開始在基礎資源層麵推行這種 TFM,EIP-4844 將 blob 數據從執行市場中分離出來。相反,Solana 正在個人賬戶層麵推進多維資源定價,開創 “本地費用市場”。

這裡的 TFM 研究是最前沿的,研究人員不斷尋找新的創新方法來改進索拉納和其他連鎖店的收費方式。我們樂觀地認爲,這裡討論的所有建議都將繼續使索拉納變得更加高效、可擴展、用戶友好和經濟上可持續。

隨著 Eclipse 主網髮布的臨近,我們也很高興分享更多關於我們將如何將這些現有的工作應用到我們自己的TFM的信息,這肯定會在未來的幾年中繼續髮展。我們打算在這個領域進行實驗併推動機製。模塊化範例的一個重要好處是,它允許不衕生態繫統的研究和工程更容易交叉傳播。這種實驗的速度現在隻會繼續增加,使得長期在此建設的每個人都受益。

聲明:

  1. 本文轉載自[Eclipse],轉髮原標題‘Solana & Ethereum 交易費用機製:改進 Solana 的 TFM 的建議’,所有版權歸原作者所有 [Eclipse],如對轉載有異議,請聯繫Gate Learn團隊,團隊會根據相關流程盡速處理。
  2. 免責聲明:本文所錶達的觀點和意見僅代錶作者個人觀點,不構成任何投資建議。
  3. 文章其他語言版本由Gate Learn團隊翻譯, 在未提及Gate.io的情況下不得覆製、傳播或抄襲經翻譯文章。

改進 Solana TFM 的建議

進階Feb 25, 2024
本文分析了 Solana 現有的費用市場,併討論了幾種可能對 Solana 有價值的交易費用機製和框架。
改進 Solana TFM 的建議

轉髮原文標題:Solana 和以太坊交易費用機製:改進 Solana TFM 的建議

謝謝 Andrew Fitzgerald, Harsh Patel, Jon Charbonneau, Kevin Galler, Lanre Ige, Mert Mumtaz, Pranav Garimidi, Ryan Chern, Tao Zhu, 和 Tarun Chitra提供反饋和審查。

介紹

Eclipse 是以太坊的第一個 SVM L2。我們非常高興能夠將現有 SVM 的強大功能帶給更多用戶,但我們也緻力於推動圍繞 SVM 本身的持續研髮。我們專註於確保 Eclipse 的開髮能夠爲所有 SVM 鏈(尤其是 Solana)帶來無可爭議的價值回報。

作爲我們未來關於費用市場思考的文章的前奏,本文將分析 Solana 現有的費用市場以及相關的改進建議。我們在大量借鑒蒂姆·拉夫加登,瑪麗亞姆·巴赫拉尼、普拉納夫·加裡米迪,Hao Chung, Elaine Shi等人的研究成果的基礎上,將這些建議與任何交易收費機製(TFM)的主要理論目標結合起來。我們將在全文中用 ** 錶示核心定義。

一般來説,TFM 確定:

  • 特定區塊包括哪些交易、
  • 特定交易支付的費用,以及
  • 纍積的交易費用如何分配(以及分配給誰)。

最終,本文旨在將以以太坊爲中心的 TFM 研究成果與 Solana 的創新工程相結合。

Solana 和以太坊當前 TFM 概述

Solana 與以太坊基礎知識

我們將首先概述 Solana 的 TFM,併將其與以太坊的進行對比。這將更好地結合相關提案,以便我們能夠努力修改和改進 TFM。首先:

Solana 的基本費用爲每次簽名固定收取 5,000 lamports(0.000005 SOL),大多數交易隻需一次簽名。它不考慮交易的更廣泛計算資源(按 CUs 計算)。

Solana Tx 基本費用 = (5,000 Lamports) x (Tx 簽名數量)

以太坊的基本費用機製主要有兩個不衕之處:

  1. 動態的 - 以太坊的基本費用(以每單位 Gas 的 gwei 衡量)根據跟蹤市場需求浮動。
  2. 每單位計算的更細粒度的費用 - 以太坊的每筆交易基本費用與消耗的 Gas 量成線性關繫。

所以以太坊的每筆交易基本費用是:

以太坊 Tx 基本費用 = (現行汽油價格(gwei)) x (tx 中使用的氣體)

Solana 用戶還可以添加可選的優先費以提高其納入概率。與基本費用不衕,優先費用是是按交易申請的每個 CU 計算的。Solana 交易可包括以下計算預算 指令

  • SetComputeUnitLimit (設置計算單元限製)- 交易可設置允許消耗的最大 CU 數(每個交易最多 140 萬 CU)。執行時,交易最多可使用所請求的 CU 限製。如果沒有提供 SetComputeUnitLimit 指令,交易的 CU 限製計算公式爲(交易中的指令數)x (200k CU)。
  • SetComputeUnitPrice(設置計算單位價格) - 交易在優先費用中支付的每個 CU 請求的 微型燈端口(Micro-lamport)數。

將它們放在一起:

Tx 優先費 = (Tx CU 限額) x (CU 價格)

請註意,此優先費是根據請求的全部 CU 支付的(無論交易是否使用請求的總金額),這與以太坊不衕。在以太坊中,費用是交易實際使用的 Gas 量的函數。

費用消耗與驗證者獎勵

雖然驗證者優先處理高費用交易的動機不在共識範圍內,但在共識中,基本費用和優先費用各占一半,燒毀/髮送給 Solana 中的領導者(當前區塊生産者):

  1. 基本費用 — 納入區塊的必備條件。缺乏必要基礎費用的交易將被拒絶。
  2. 優先費 — 不強製要求區塊包含。用於選擇性地優先考慮那些希望提高其被快速納入概率的交易

用戶無法避免支付基本費用,但可以避免優先費用,併以另一種方式錶明他們希望穫得優先權。我們已經在實踐中看到了這一點—— Jito-Solana 拍賣曏帶外領導者支付 100%(減去費用)。SIMD-0096 針對這個問題提供了一個簡單的解決方案,將 100% 的優先費獎勵給驗證者。

直接轉移*:通過 MEV-Boost / Jito-Solana 拍賣進行協調

重要的是,Solana 驗證者對鏈上交易的每個區塊進行投票。他們爲每筆交易支付基本費用。

受優先權費用急劇增加的推動,Solana 最近的網絡費用創下歷史新高最近的費用分配如下所示

資料來源:Solana Compass

以太坊區塊生成器與 Solana 調度程序

以太坊的區塊生産通常更容易理解,所以我們從這裡開始。幾乎所有驗證者(又稱提議者)都通過以下方式將區塊生産外包給協議外構建者 MEV-Boost。構建者每 12 秒(以太坊的時隙時間)創建一個區塊,併將這些整個區塊傳遞給提議者(通過中繼),提議者選擇價值最高的區塊。

在以太坊和 Solana 中,區塊生産者都有權在區塊內任意訂購交易。他們被激勵以利潤最大化的方式這樣做。例如,不衕的以太坊構建者可以通過運行專有算法進行競爭,這種算法能更有效地實現利潤最大化,而競爭對手則無法做到這一點。

這意味著,即使在以太坊中,髮送高優先級費用也無法在協議內實現對區塊包含或排序的確定性保證。然而,由於以太坊當前區塊構建過程的性質,即構建者在每個離散時隙結束時構建一個完整的利潤最大化區塊,它很有可能實現預期結果。

例如,搜索者可能會曏構建者髮送優先級極高的套利交易(例如,高於所有其他符合條件的交易的總和),要求將其納入區塊頂部,如果沒有穫得區塊頂部位置,則將該交易完全排除在區塊之外。在這種情況下,一個理性的利潤最大化建設者會將這筆交易放在區塊的最頂端,即使他們隻是在 12 秒時段快結束時才收到這筆交易。

你會註意到,這裡的收費有兩種不衕的保證:

  1. 包容性 - 用戶希望將他們的交易包含在該區塊中,但他們不關心交易位於該區塊的何處。
  2. 排序 - 用戶不隻是想被包含在區塊中的任何地方;他們希望在給定時間優先訪問特定狀態。

事實證明,以太坊的EIP-1559 機製非常有效,可以讓用戶輕鬆競標區塊包含,併且成功的可能性很高。每個人都知道要支付一個全球底價,支付該底價(通常還有象徵性的優先權費用)應該可以可靠地讓用戶的交易立即包含在內。然而,該機製併不尋求提供任何有關排序的保證(即優先訪問狀態),而協議外機製對於尋求此類保證的用戶(例如直接從構建者處)來説是可靠的。

Solana 的區塊構建過程非常不衕。驗證者不會將離散時間段內的完整區塊生産外包給協議外構建者。這 ”調度程序”是Solana Labs 驗證器客戶端中包含的默認算法,用於調度交易的執行併連續構建區塊。

此外,Solana 交易 指定哪些帳戶必鬚被讀和寫鎖定才能執行。這允許調度程序迭代地排序哪些交易可以併髮執行——因爲不觸及相衕狀態的交易可以併行執行。

在一個塊內,最多有12,000,000 CU 可用於對單個帳戶(“狀態片段”)進行順序寫入。大約是這個量每 400ms 時隙可通過單線程處理的 CU 合理的節點要求。 Solana 的每塊限製爲48,000,000 CU。當前的調度程序實現使用四個線程進行非投票交易,12M x 4 = 48M。理論上,這意味著使用更多核心 = 增加 CU 限製。通過硬件進行擴展。

調度程序非確定性地優先處理優先級較高的交易。然而,與以太坊目前所採用的機製相比,這通常無法提供可靠的優先級保證。

在 Solana 中,運行默認調度程序的驗證器會連續構建區塊,因此交易可以添加到正在進行的區塊中併執行,然後等到時段結束後再完全按照優先級費用來組織交易。這樣做的目的是讓調度程序基於他們的 CU 總價格確定優先級,從而實現利潤最大化。

Solana 的默認多線程調度程序還引入了額外的“抖動(jitter)”。交易被隨機分配給四個線程之一,每個線程維護自己的等待執行的交易隊列。然後使用優先費來確定線程內交易的優先級。但是,它們無助於確定線程間交易的優先級。

例如,兩個搜索者可能會衕時髮送一筆交易來捕捉相衕的套利機會,而髮送較低優先級費用的那個搜索者甚至可能穫勝,因爲他們偶然進入了一個不那麽擁堵的隊列。與以太坊相比,這就降低了優先級費用的效力,增加了垃圾郵件的誘因—尤其是因爲交易的收録也取決於在給定時間段內,交易何時到達當前區塊生産者。

請註意,有計畫的改變 Solana 的默認調度程序,目的是通過依賴交易依賴關繫圖,調度圖中優先級最高的未阻塞(非寫鎖定)交易,從而解決當前實現中的一些問題。

雖然 Jito-Solana 客戶端主要不在本文討論範圍之內,但它允許搜索者以最小化 Solana 負麵外部性的方式更高效地穫取礦工/最大可提取價值(MEV)。Jito-Solana 偏離了 Solana 的默認調度程序,引入了協議外離散的 200 毫秒 Flashbots 式捆綁拍賣,與默認的連續區塊生産和私有 mempool(衕樣偏離了 Solana 的默認 TFM)併行運行。Solana 驗證者採用 Jito-Solana 客戶端(目前有超過 50% 的驗證者使用該客戶端)有助於解決 Solana 現有 TFM 的一些問題,即由 MEV 驅動的垃圾郵件。

Solana 當前 TFM 的缺點

盡管 Solana 的 TFM 前景廣闊,但目前它也存在一些潛在的缺點:

垃圾郵件的誘因

如上所述,交易一旦到達區塊生産者,就會以某種先入先出(FIFO)的方式排序。此外,它們還受到網絡抖動和默認調度程序隨機線程分配的非確定性影響。雖然在某些情況下,優先級費用可能有助於提高收録概率,但仍然存在著大量的誘因,促使人們進行垃圾交易,以最大限度地提高最快的收録概率(例如,搜索者競相在借貸市場上清算違約頭寸)。這下圖來自 Jito Labs 有助於證明垃圾郵件交易的次優性質。

資料來源:Jito 基金會

一口價拍賣

在簡單的一口價拍賣(FPA)中,用戶隻需提交出價,最高的價格就會被納入該區塊。FPA的一個問題 是它不太用戶友好。例如,用戶必鬚猜測其他用戶的出價,考慮自己願意出價到什麽價位,例如,可能會根據自己認爲其他用戶的出價來降低自己的出價,以免出價過高。

更正式地説,FPA 模型是非 DSIC:

**主導策略激勵兼容(DSIC): 假設區塊生産者誠實地執行了 TFM,那麽規定的出價策略應該是用戶的主導策略。這意味著用戶將按照他們對交易包含性所賦予的確切價值出價(交易費)[Chu22]

DSIC 是 EIP-1559 的創建者旨在將其引入以太坊 TFM 的關鍵特性之一,正如我們前麵所描述的,它可以説是成功的。用戶更容易知道在特定時間(通過動態基礎費用)包含在區塊中的公共底價,因此支付該價格(加上任何名義上的優先權費用)幾乎總能讓您的交易迅速被包含在內。

相反,Solana的TFM是一種過於簡單天真的FPA。它缺乏一個可靠的機製讓用戶準確地錶達他們對區塊包含的偏好,併且是非DSIC的。在實踐中,試圖在正確的時間設定正確的優先費用是極其具有挑戰性的。這對於能夠更好地繞過網絡和調度抖動的覆雜參與者極爲有利(例如,通過共享位置或垃圾郵件交易)。

50/50 銷毀/驗證者支付

如前所述,以太坊會燒掉 100%的基礎費用,衕時將 100%的優先級費用髮送給區塊生産者,而對於 Solana,基礎費用和優先級費用各燒掉/支付給區塊生産者一半。因此,Solana TFM 是不防 OCA 的:

**鏈下協議證明(OCA 證明或 SCP):用戶和區塊生産者之間沒有鏈下協議可以Pareto改進指定區塊的TFM結果 [Rou21]。 c-SCP 協議可以防止區塊生産者聯盟和最多 c 個用戶通過偏離真實報告而穫利。

我們看到的一個明顯例子是,Jito-Solana 的協議外拍賣曏區塊生産者支付 100%的出價(扣除 Jito 的分成),而不是燒掉 50%— Jito-Solana 是區塊生産者使用鏈下協議的一個例子。不過,我們註意到,Jito-Solana 的小費併不等衕於優先權費用,因爲前者隻有在相關交易(和捆綁)成功執行時才會支付。

最近提出的SIMD-0109 將在協議中引入一種小費機製(類似於 Jito-Solana 的協議外拍賣所使用的機製)作爲本地指令。

缺乏特權交易類型

Solana 投票交易髮布在鏈上,併且必鬚包含在區塊中,然而每個驗證者必鬚支付所述交易的費用。這代錶了一項重大的固定成本(由驗證者私人支付),盡管包含投票交易的外部性是積極的。相對於所消耗的 CU,投票交易被多收了費用(即相對於普通交易,投票交易使用的 CU 相對較少),這又加劇了這一成本。經濟學在這裡産生了集中效應,因爲任何驗證者的總投票成本大緻恆定,而穫得的獎勵與權益權重成正比。

來源:Ceteris、Solana the Monolith

順便説一句,類似的邏輯可以擴展到包括可靠的預言機更新,盡管準確的鏈上價格反饋具有正外部性,但網絡通常會對預言機收取費用。一個更有主見的鏈,如果從某個特定的穩健預言機中穫得了很高的價值,可能會選擇建立一個補貼其成本的機製。

Solana 的本地費用市場

Solana 近似於本地收費機製,因爲沒有賬戶可以在每個 48M 區塊限製內寫入超過 1200 萬個 CU。再加上 Solana 默認調度程序的多線程特性,這意味著一個區塊中最多有 25% 的交易可以對應一個單一的需求狀態。從理論上講,與有需求狀態的用戶相比,需求較少狀態的用戶不應該爲穫得較強的包含保證而增加優先級費用。

可以説,這不是真正的本地收費機製。該機製不是通過共識來執行的(隻在調度器層麵),而且優先級費用和區塊包含之間的關繫是非確定的(如前所述)。此外,它還缺乏 “彈性 “概念,即衕時存在目標和最大資源限製。

CU 使用和請求效率低下

由於 Solana 的基本費用不考慮 CU,因此它不會激勵交易:

  1. 高效使用 CU — 在其他條件相衕的情況下,使用 140 萬 CUs 的交易與使用 10 萬 CUs 的交易收取相衕的基本費用。
  2. 高效請求 CU — 即使交易使用了 5 萬 CU,無論申請 10 萬 CU 還是 100 萬 CU,基本費用都是一樣的。

這可能會導緻調度程序高估給定區塊內的計算需求,併且與給定時隙的區塊生産者所需的資源相比,會造成效率損失。DSIC TFM 可以解決這個問題,因爲用戶的主導策略將是規定的投標策略,在這種情況下,它可以準確地反映 CU 的預期使用情況。

無成本寫鎖賬戶

如前所述,Solana交易在執行時會預先指定它們將讀取或寫入的所有賬戶。然而,如今這種機製可以被濫用,以實質上無成本的方式全球鎖定任何賬戶。例如:

  1. 我髮送 TxA,這指定它將寫入到 AccountA
  2. 領導者收到 TxA,安排它,併開始執行它。現在,AccountA 已被鎖定 - 在TxA 完成執行之前,不能執行任何其他觸及 AccountA 的交易。

問題源於這樣一個事實:任何人都可以髮送交易來鎖定他們想要的任何賬戶。鎖定賬戶是免費的,甚至可以鎖定他們不使用的賬戶,這顯然是一種垃圾郵件攻擊手段。更糟糕的是,賬戶所有者無法控製誰可以鎖定他們自己的賬戶。

TFM 提案和框架

每個區塊鏈最終都必鬚決定如何在用戶之間分配其有限區塊空間的稀缺資源,這需要通過其 TFM 來實現。下麵,我們將討論幾個可能對 Solana 有價值的相關 TFM 提議和框架。

多維區塊鏈費用市場

大多數現有的費用市場都是一維的,圍繞單個可替代的賬戶單位(例如以太坊中的燃氣)構建。然而,購買的這種單一資源是許多底層不可替代資源(例如帶寬、計算和存儲)的代理。

例如,每個以太坊操作碼 攜帶其消耗的一定固定數量的燃氣(例如,ADD 使用 3 份燃氣,而 MUL 使用 5 份燃氣)。每個操作碼的氣體價格是根據其使用的底層資源以及網絡中節點認爲這些資源的昂貴程度而設定的。例如,可以通過在真實世界的硬件上運行基準來確定對操作成本的這種隱性衡量。

然而,也可以構建多維費用市場,對這些不衕的不可替代資源單獨定價,而不是將它們組合成一個單位。EIP-4844 是一個簡單的二維費用市場,因爲數據塊有自己的費用市場,獨立於以太坊執行燃氣。

Diamandis、Evans、Chitra 和 Angeris 於 2022 年髮錶的這篇論文分析了如何構建這樣的多維收費市場。他們的研究從網絡設計者的角度出髮,提出了 TFM 構建問題,目的是在區塊鏈的交易和區塊限製(例如智能合約限製或 CU/gas 限製)下,最大化區塊鏈用戶的福利(或總效用),減去上述用戶的資源消耗。論文的主要成果是,盡管福利是未知的,但他們設計出了一種能使福利最大化的機製,併展示了如何顯式構建上述機製。

**福利最大化(Welfare Maximizing):預期的分配和支付規則意味著消費者和礦工剩餘的總和(大約)最大化。

他們的主要髮現是,一種等效的 TFM 是可以實現的,即資源價格被設定爲最小化驗證者和用戶之間的福利差異 —- 從福利最大化的角度來看,這樣的價格理論上應導緻區塊最優化。雖然這項工作更多地被視爲設計最優 TFM 的學術框架,但它有助於錶明,對資源進行單獨定價可以提高區塊鏈的效率,使其在擁堵或垃圾郵件高髮期更具彈性。基於控製器的基礎費用機製(如 EIP-1559)被強調爲一種潛在的方法,它可以在 Solana 和 SVM 鏈上運行得非常好,因爲區塊時間很短,允許基礎費用根據用戶需求和資源可用性的變化進行快速調整。

如前所述,本文的一個結論是,可以設計繫統且計算高效的方法來幫助定義和更新區塊鏈多維資源的定價。然而,一個自然而然的問題應該是:對哪些資源進行單獨定價才有意義?在其他區塊鏈環境中,已經開展了一些實際工作來做出這樣的決定。例如,Penumbra 已經實施了一種多維資源定價形式,在其以隱私爲中心的區塊鏈上對全節點和終端用戶設備使用的資源分別定價。

雖然 2022 年的論文一般討論了基礎資源(例如計算、帶寬、存儲)的多維定價,但也可以實現每個賬戶(即每個“狀態”)的多維資源定價。每個帳戶都被視爲不衕的資源。最近的這篇文章在原始論文的基礎上對此進行了討論。將帳戶(而不是計算、存儲、帶寬等)作爲底層資源單獨定價,可能更易於實施,併能降低資源耗盡攻擊風險。

寫鎖賬戶 (Write Lock Account) 的指數費用

Anatoly 最近髮錶關於SVM 執行經濟學的文章之後,Tao Zhu與Anatoly合作,提出SIMD-0110。其主要動機是通過經濟背壓(即隨著時間的推移有針對性地增加費用以降低垃圾郵件的誘因)來阻止垃圾郵件,從而提高網絡資源的利用效率。失敗的套利交易繼續占據大約一半(或更多) 的Solana區塊空間,因爲垃圾郵件既合理又便宜得令人難以置信。

提案建議跟蹤每個賬戶每個區塊的 CU 使用率的指數移動平均值 (EMA),以實現這一目標。寫鎖賬戶的成本將根據其各自的尾隨 CU 利用率呈指數增長,從而阻止垃圾郵件。其核心邏輯類似於 EIP-1559 將以太坊的全局基本費用設定爲尾隨區塊中燃氣使用量的函數。不過,這種 SIMD 在設置每個賬戶的本地基本費用市場時,要精細得多。

基於賬戶的不衕寫鎖費用的基本實現思路如下:

  • 跟蹤每個有爭議賬戶在過去 150 個時段的 EMA 計算單元使用率。
  • 跟蹤的賬戶數最多爲 2048 個,其中隻有爭議最大、寫鎖成本率最高的賬戶才會被跟蹤。
  • 如果賬戶的 EMA計算單元利用率 > 其最大 CU 限製的 50%,其寫鎖定成本率將增加 X%。如果<50%的限製,成本率將減少 X%。
  • V0 建議初始寫鎖成本率爲 1000 micro-lamports/CU,成本率調整率爲每個插槽 1%(請註意,鑒於提案的早期性質,此處的確切百分比可能會髮生變化)。
  • 某一區塊賬戶的寫入鎖定費是用寫入鎖定費率乘以交易申請的 CU 計算得出的。
  • 交易仍需支付簽名費,可選的優先權費也依然存在。
  • 收取的寫鎖費用將被 100% 銷毀。
  • 收取的優先權費用100%獎勵。
  • 收集到的簽名費50%被銷毀,50%被獎勵。

該提議將使 Solana(通常)DSIC 的寫入鎖定功能類似於 EIP-1559 使以太坊 TFM(通常)DSIC 和 MMIC [Rou23] 的寫入鎖定功能—除了在費用突然激增的情況下。

我們可以如下定義 MMIC 特性:

**短視礦工激勵兼容性(MMIC, Myopic Miner Incentive Compatibility ):區塊生産者通過不創建虛假交易併遵守 TFM 的既定規則來實現其效用最大化。短視意味著在判斷效用最大化時,這一目標隻涉及當前區塊[Rou21]。

任何跟蹤機製都是不完美的,因爲它可能無法準確地代錶當前的需求狀態。例如,需求可能會在很長一段時間內處於較低水平(因此,動態基本費用較低),然後 NFT 鑄幣的需求突然飆升。這種情況可能髮生在全球層麵(如以太坊的 TFM),也可能髮生在本地的每個賬戶層麵(如 SIMD-0110 中考慮的情況),甚至更加不穩定。

然而,Solana 也受益於其極低的出塊時間。這可以使基本費用更快地適應突如其來的需求衝擊,具體取決於曲線移動的積極程度。在這裡,收費控製器的形狀非常重要。

事實上,這種對請求的CUs收取寫鎖費用的事實也適當地激勵用戶和開髮人員準確估計交易的CU使用量。這避免了我們之前討論的問題,即當前的平均簽名基數對請求的CUs遠超所需的情況(甚至可達到最大的140萬CUs)沒有任何懲罰。否則,隻有優先費用在今天承擔這種激勵(因爲它也是根據請求的CUs收費)。

這裡一個潛在的批評是,基於賬戶的本地費用市場(尤其是這個提案,它要求爲每個賬戶計算持續的 EMA)可能在計算上非常昂貴。這種類型的多維費用是無限製的,因爲任何賬戶都可能出現擁塞,這可能會給這種 TFM 帶來睏難。然而,在 SIMD-0110 的情況下,通過設置可以在給定時間跟蹤 CU 使用 EMA 的帳戶數量上限來避免這種情況。

**高效可計算(Efficiently Computable):區塊拍賣機製的設計必鬚能夠針對給定的區塊生産者(或構建者)進行高效計算——Eclipse 和 Solana 的時隙小於 400 毫秒,這對給定區塊的最大計算時間提出了嚴格的限製。

考慮到即使實施了這一建議,Solana 區塊的納入仍將是非確定性的,因此仍有可能出現用戶實時準確更新出價以確保其交易被納入區塊的問題。要進一步解決這個問題,需要對調度程序進行修改,我們將在下一節討論。

Solana 默認調度程序的更改

正如前麵所討論的,這 ”調度程序”是Solana Labs 驗證器客戶端中包含的默認算法,用於調度交易的執行併連續構建區塊。它在 Solana 的費用市場中髮揮著極其重要的作用,盡管它的默認行爲併未在協議中強製執行,因爲驗證者可能會選擇運行其他算法。我們將在這裡重點關註當前的調度程序和即將提出的更改,Andrew Fitzgerald 正在研究這些變更。

Solana的當前調度器在處理用戶交易時引入了“抖動 (jitter)”,通過隨機將它們分配到四個非投票交易線程中的一個(另外兩個線程保留用於處理投票交易), 然後嘗試按優先級費用對未完成的交易進行排序,併檢查相關的鎖定(’鎖定抓取’),如下麵的圖錶所示。在“銀行階段(Banking Stage)”期間,將提取多批交易以分配給線程 - 這是Solana驗證者運行的過程,其中處理交易併在其下進行調度過程。

資料來源:Andrew Fitzgerald,Solana Banking Stage 和 Scheduler (調度器)

默認調度程序的一個重要問題是,在網絡活動頻繁的時期,每個線程的隊列中經常充滿了相互衝突的交易(例如,在 NFT 鑄幣或廣泛預期的代幣生成事件之前)。每個線程都可能包含具有相衕或重疊讀鎖或寫鎖的交易,這意味著這些交易必鬚重新安排執行時間。然而,這樣做的結果是,在極端最壞的情況下,四個默認調度線程中隻有一個線程可以在給定時間內執行交易。

升級 Solana 默認調度器的關鍵在於從傳統方法(名爲 ThreadLocalMultiIterator 模式)過渡到新的調度方法,名爲 CentralScheduler 模式。本文僅提供對變化的概述和分析。然而,可以在 Andrew Fitzgerald 的文章和 Harsh Patel 的 Tiny Dancer團隊的附帶@harshpatel_36138/whats-new-with-solana-s-transaction-scheduler-bcf79a7d33f7">摘要博客文章中找到更多信息。以下展示了新調度過程的概述。

資料來源:Andrew Fitzgerald,Solana Banking Stage 和調度器

新的調度器由一個中央單調度器負責接收來自通道的交易,然後檢查相關的鎖。之後,交易被分配給特定的併行工作線程執行。中央調度器可以查看特定工作線程使用的各種讀寫鎖,從而確定新交易的最佳線程。在特定工作線程執行和處理交易的過程中,會曏中央調度程序髮送消息,以便其重新評估 Solana 狀態中哪些部分被認爲是鎖定的。

調度程序使用一種稱爲“prio-graph(優先圖)”的算法,這是一個直接的有曏無環圖,以最高優先級(收費)交易爲起點,在給定的最高優先級交易和因鎖重疊而與之衝突的後續最高優先級交易之間畫線(或更準確地説,畫邊)。這(暫定)是針對一個 “前瞻 “窗口完成的,該窗口的預設大小爲 2,048 個交易(可能會有變化),這些交易可以添加到圖形中—以下圖錶顯示了優先圖在一組給定交易中的工作情況,其中交易之間的邊代錶衝突鎖。

除了採用 prio-graph 調度程序之外,該版本還引入了額外的效率來幫助減少處理開銷,例如刪除銀行階段的冗餘元素。新的調度程序應該會得到改進,顯著降低 Solana 活動頻繁期間寫入失敗和讀取鎖定的概率。由於新的默認調度程序,我們預計抖動會減少。盡管如此,鑒於區塊構建過程的連續性,區塊包容性仍將存在不確定性。

可返還賬戶寫入 (PRAW, Program Rebatable Account Write) 費用

Godmode Galactus Max Schneider 所撰寫的 SIMD-0016 提出了可返還賬戶寫入(PRAW)費用。它們將給應用程序開髮者提供顯著的控製權,因爲他們可以設定支付和這些費用的返還標準,從而在他們認爲合適的情況下激勵或抑製用戶行爲。

目前,Solana 程序無法懲罰對其狀態進行寫鎖定的交易。PRAW 費用將允許 Solana 賬戶所有者對寫入鎖定其狀態的失敗交易收費。這些費用將轉嫁到被鎖定的可寫賬戶。不過,賬戶所有者可以設置這些費用,以便在交易結束時,如果符合指定標準,這些費用將返還給用戶。

特別是,這可以阻止用戶寫入鎖定他們在交易執行中實際上併不使用的賬戶。由於 Solana 目前併沒有事先檢查特定賬戶是否會被寫入鎖定的特定交易使用,因此這種情況是有可能髮生的。PRAW 爲程序提供了一種方法,可以抑製那些鎖定程序狀態的交易,這些交易試圖識別機會,併打算在執行時機會不再有效時還原。即使交易在執行過程中失敗,這些費用也將適用。

相反,用戶可以指定他們願意在交易中支付的 PRAW 費用的最高金額。交易中指定的任何高於給定寫鎖定賬戶當前 PRAW 費用的費用都將被退還。

Solana 社區的成員指出了該提案的問題:不衕項目完全自主運行的能力似乎不太理想,而且準確估算費用的能力也很睏難。此外,可能有更簡單、更統一的方法來處理這些圍繞寫鎖定帳戶的惡意問題,例如 SIMD-0110。

**抵製惡意破壞(Griefing Resistance):DSIC 的一個子集,其中用戶不會被激勵去歪曲其訪問列錶——錯誤地陳述其事務所需的資源[Gar23]。

PRAW 提議有可能無法防止垃圾郵件,因爲它依賴於應用程序開髮人員的充分能力: 1)能夠將垃圾郵件與 “正常行爲 “區分開來;2)自願選擇爲他們應承擔部分責任的負麵外部性收取更多費用,而這樣做可能併不符合他們的最佳利益,他們可以選擇不這樣做。

相比之下,雖然 Solana 研究社區的成員在引入 EMA 基本費用方麵存在不可否認的分歧,但普遍衕意添加一些與 CU 相關的基本費用組成部分。這可以激勵開髮人員準確地估計 CU 併有效地使用 CU。

最後的想法

Solana 獨特的工程和性能目標需要獨特的 TFM 考慮。當然,簡單地將以太坊現有的收費市場移植到 Solana 併不能解決問題,但我們可以從中吸取寶貴的經驗教訓。這與以下兩種機製都有很大關繫:

  1. 協議內 - 共識執行的 TFM(例如,EIP-1559SIMD-0110
  2. 協議外 - 通過 MEV-Boost、Solana 調度程序改進和 Jito 拍賣進行 PBS

對於 Solana 和以太坊來説,協議內機製和協議外機製似乎都有可能共存併共衕髮展。如何平衡這兩種機製是設計這些繫統的基本問題之一。圍繞 SIMD-0110 的爭論往往集中在兩種對立的觀點上:

  1. 調度器和網絡改進 將減少抖動,足以解決這裡描述的問題,因此不必對協議內的TFM進行重大改變。
  2. 雖然需要進行協議外的調度器和網絡改進,但它們本質上是不夠的。需要協議內的經濟反壓。

在這兩種情況下,某種形式的多維資源定價顯然也很有價值。以太坊已開始在基礎資源層麵推行這種 TFM,EIP-4844 將 blob 數據從執行市場中分離出來。相反,Solana 正在個人賬戶層麵推進多維資源定價,開創 “本地費用市場”。

這裡的 TFM 研究是最前沿的,研究人員不斷尋找新的創新方法來改進索拉納和其他連鎖店的收費方式。我們樂觀地認爲,這裡討論的所有建議都將繼續使索拉納變得更加高效、可擴展、用戶友好和經濟上可持續。

隨著 Eclipse 主網髮布的臨近,我們也很高興分享更多關於我們將如何將這些現有的工作應用到我們自己的TFM的信息,這肯定會在未來的幾年中繼續髮展。我們打算在這個領域進行實驗併推動機製。模塊化範例的一個重要好處是,它允許不衕生態繫統的研究和工程更容易交叉傳播。這種實驗的速度現在隻會繼續增加,使得長期在此建設的每個人都受益。

聲明:

  1. 本文轉載自[Eclipse],轉髮原標題‘Solana & Ethereum 交易費用機製:改進 Solana 的 TFM 的建議’,所有版權歸原作者所有 [Eclipse],如對轉載有異議,請聯繫Gate Learn團隊,團隊會根據相關流程盡速處理。
  2. 免責聲明:本文所錶達的觀點和意見僅代錶作者個人觀點,不構成任何投資建議。
  3. 文章其他語言版本由Gate Learn團隊翻譯, 在未提及Gate.io的情況下不得覆製、傳播或抄襲經翻譯文章。
即刻開始交易
註冊並交易即可獲得
$100
和價值
$5500
理財體驗金獎勵!