來源:極客 Web3
比特幣網絡中的MEV概念大約在2013年开始引起關注。盡管MEV問題更常與以太坊相關聯,但比特幣也並非沒有mev問題。比特幣的設計模型和以太坊十分不同,使得自身生態內的MEV未受到太多關注。但隨着Ordinals、Runes和各種L2的开發,MEV在比特幣中越來越顯著。
在本報告中,我們將探討比特幣上日益復雜的MEV,並研究其對生態系統的影響。
爲什么現在需要關注比特幣MEV
在Ordinals火熱之前,比特幣上的MEV活動並不爲人所熟知,主要集中在閃電網絡和側鏈挖礦等攻擊事件中。而Taproot升級帶來了更多的可編程性,促進了如 Ordinals和Runes等協議的推出,這使得MEV問題成爲了焦點。
比特幣10分鐘的出塊時間進一步加劇了這一問題,因爲這會讓交易在mempool中的等待時間增長,給MEV玩家留下更多的觀測空間,如搶跑交易者可以給礦工提供額外的費用等MEV手段獲得更大利益;隨着區塊獎勵的減少,礦工們也可以通過銘文、runes等其他變現渠道尋找收益,這導致了越來越普遍的MEV活動。
下圖展示了在備受期待的Ordinals和Runes發布期間,交易手續費相對於區塊獎勵的激增,有時甚至佔據了比特幣挖礦總收入的60%以上。
(Source:Dune analytics, transaction fee share % of mining reward, data as of 22 July 2024)
除此之外,在2024年,我們還看到越來越多的BTCfi應用和協議。未來,我們可能會看到比特幣的MEV的發展達到更高的規模。
MEV在比特幣和以太坊上的區別
過於關於比特幣MEV的討論比較少,重要的原因在於比特幣的架構和以太坊存在着本質區別。
比特幣的UTXO模型
以太坊通過EVM來執行智能合約,實現了可編程性,並通過維持全局狀態來達到這一目的。以太坊採用账戶模型,通過管理交易的nonce順序執行交易。這意味着交易的先後順序會影響到執行結果,導致搜索者能夠輕松識別MEV機會,並在用戶交易之前或之後直接插入一筆交易。這類似多個用戶同時向數據庫寫入數據時的競爭態(racing condition)問題。
例如Alice和Bob同時向Uniswap發出相同的:用1ETH換取USDT的交易,但在區塊中先執行的交易會獲得更多的USDT。
而比特幣採用了腳本+UTXO的方式,不帶有狀態。如果只是一個典型的用於轉账的交易,只有接收者能通過自己的籤名來解鎖,不會存在與其他人讀寫競爭的問題。
不過比特幣上也可以用腳本或SIGHASH構造出來多人均可解鎖的UTXO,此時先確認的交易會獲得這些錢。但因爲每個UTXO的解鎖條件僅和自身有關,不會依賴於其他的UTXO,因此競爭態只是局限在這筆UTXO內。
引入了BTC以外的資產
除了上述設計的本質區別外,引入BTC外的有價值資產也引發了產生MEV的條件。這些場景產生的MEV,本質上都是協議設計者在BTC上嘗試用腳本+UTXO 構建新的資產類別和鏈上action時,通過順序來規定資產的所得以及action的合法性與否。有了基於順序定義的event,就有了競爭順序的incentive,也就有了 MEV。
在不考慮其他資產的情況下,理性的礦工只會按照交易費率來打包合法交易,並根據交易數據的大小來收取相應費用;但如果一筆交易代表的意義不再是普通轉账,而是mint出一個有價值的資產(如Runes等),礦工就可以有多種策略:
1)拒絕這筆交易並自己mint銘文資產;
2)向用戶索要更高的手續費;
3)讓多個同時發出交易的用戶競價
Mint
最直接的例子就是在 Runes、BRC20等資產的mint過程中,一般都會約定好資產mint的上限。先確認的mint交易會被認爲是成功的,否則會認爲無效。那么交易的先後在這種場景中就會至關重要,也就提供了MEV交易的先後排序機會。另外,ordinals引入的稀有聰概念,甚至讓一些人擔心在減半時礦工爲了爭搶高價值稀有聰會引發區塊重組。
Staking
除了mint,Babylon等staking協議也會規定每個階段用戶可stake資產的上限。盡管在達到上限後,用戶仍然可以構造並發送比特幣到staking的鎖定腳本中,但此時已無法被認爲是成功stake並能在未來獲得獎勵。也就是說,staking交易的先後排序也至關重要。
例如,Babylon主網上线後很快就到達了phase-1的1000個BTC的上限,導致後面的大約300個BTC超出限額、需要用戶手動解鎖。
(Babylon主網上线時,費率飆升至超過1k sats/vBytes, Source: Mempool.space)
除了主鏈上的銘刻/蝕刻資產和staking外,側鏈或rollup上的一些活動也會收到影響。我們將在“比特幣上MEV的事件”列舉更多實例。
哪些算比特幣的MEV
那么究竟哪些可以算作是MEV,或者更嚴格的說,比特幣上的MEV?畢竟MEV 的定義也在各種語境下並不十分一致。
通常來說,MEV,礦工可提取價值或最大可提取價值,指的是礦工通過操縱區塊創建過程以提取最大利潤的不同方式。這類活動可以通過多種方式呈現。我們可以按照其參與者和收益去向大概分爲以下幾類:
用戶支付額外費用:例如帶外交易加速服務、私密交易池(private mempool)等。交易者也可以通過RBF、CPFP等手段給礦工更高的費用從而確認具有MEV價值的交易。
用戶與礦工合謀:用戶和礦工合謀對一些有特定意義的交易進行審查或打包。例如作惡的用戶與礦工合謀對閃電網絡的懲罰交易進行審查,避免其打包從而非法的獲取通道內資產。其他新的合約式協議,包括BitVM2的懲罰交易等,也將面臨類似的問題。
礦工對L2的挖礦:包括最早的各類合並挖礦方案,礦工在給比特幣提供算力的同時將計算的結果也用於其他側鏈或L2網絡。礦工可能會利用在主鏈上的算力影響L2的出塊、排序等,從而獲取超額的L2挖礦收益甚至於影響L2的網絡安全。
可以看到,如果是偏向公开市場手段的競價方式(RBF等),對於整個經濟體系仍然起到了比較好的正向激勵作用;但無論是用戶直接發送交易到礦池,或者是礦池通過篩選交易來牟利,無疑會對比特幣社區最爲珍視的去中心化和抗審查性提出了挑战,因此也被稱爲“MEVil”。
比特幣MEV的典型案例
根據上述的分類,我們可以看到不少相關案例。
非標准交易:non-standard transactions
Bitcoin Core軟件僅允許節點處理不超過100kvB的標准交易。然而,礦池們仍然將提供高額交易費的非標准交易包含在區塊中,這通常以排除其他低費用交易爲代價。
其中一些比較典型例子包括:
區塊776,884由Terra礦池挖出,包含一個大小爲3.38MB的1分鐘mp4視頻,顯示一只青蛙拿着一杯飲料,爲礦工賺取了0.5BTC的費用。這一個交易就佔了849.93 kvB。
區塊777,945包含一張4000 x 5999像素的WEBP圖像,佔975.44 kvB,爲礦工賺取了0.75BTC。
另一個區塊786,501,收到了約0.5BTC的費用來刻錄一張992.44 kvB, 朱利安·阿桑奇的比特幣雜志封面的JPEG圖像。
默認的Bitcoin Core節點僅被允許轉發標准交易。因此,非標准交易必須通過私有交易池直接接觸礦池。私有交易池允許礦池接受非標准交易並提供交易包含的保證。雖然這可以加快交易處理,但隨着更多交易轉移到私有交易池,這可能導致礦池中心化和增加審查的風險。顯然,一些礦池已經在利用運營私有交易池的盈利機會。
例如Marathon Digital引入了“Slipstream”,這促進了私密交易池。這使得Marathon能夠向客戶提供將復雜和非標准交易提交到網絡的能力。
側鏈或L2上的MEV事件
Stacks側鏈此前採用了一個比較特殊的共識方式:Proof of Transfer(PoX)允許比特幣礦工挖Stacks區塊,並在比特幣鏈上結算其交易。
Stacks參與者在比特幣鏈上轉账中進行區塊承諾,以此來獲得機會得到Stacks 上的出塊權和對應的獎勵。通過加權隨機函數,勝利的礦工能在Stacks網絡上挖掘區塊。這導致大礦工審查其他Stacks參與者的交易,而只打包自己的 block commit,以此獨自獲得大量的STX獎勵。
隨着越來越多的礦工採用這種策略,其他Stacks的參與者基本不太可能可獲得獎勵。
這種行爲對生態帶來怎么樣的影響呢?
1)通過排除其他誠實礦工的承諾,這減少了最終傳遞給stackers的獎勵
2)如果大礦工持續濫用其算力並排除誠實礦工的承諾,還可能導致中心化問題,使少數礦工完全獨佔利益。
然而,這個問題現在通過Stacks Nakamoto升級得到了緩解,該升級使這種策略再次出現變得無利可圖。此次升級將從簡單的礦工選舉轉變爲使用排序算法,Assumed Total Commitment with Carryforward(ATC-C)技巧,降低了 MEV挖礦的盈利能力。由於使用ATC-C,礦工贏得排序的概率現在等於礦工的 BTC花費除以最近10個區塊中的中位數總BTC承諾。
另外,未在過去10個區塊中的至少5個區塊中進行挖礦的礦工,將被取消獲得任何Stacks獎勵的資格。這減少了礦工通過排除其他礦工的區塊承諾來獲得不成比例利益的動機。
另類資產交易的競價
對於Ordinals和Runes這些另類資產的MEV,也可以歸結到前述的兩類:
礦池通過打包區塊和交易獲取了Ordinals的額外價值或稀有聰等資產
交易者對這些另類資產交易的競價
對於礦池來說,Runes一开始的出色表現,爲礦池提供了額外的利潤來源。例如減半時,備受期待的Runes上线推動了網絡交易數量和費用達到了歷史新高,因爲許多用戶爭相將他們的交易納入歷史性的比特幣減半區塊中。Post-halving 的交易費用已經突破了1,500sats/vByte(在減半前不到 100 sats/vByte)。
ViaBTC成功利用了這一熱潮,挖掘了與Runes上线同時發生的減半區塊,在 block 840,000獲得了40.75BTC的利潤,其中37.6BTC來自與Runes相關的交易費用。
Source: Mempool.space
而對交易者而言,比特幣上的Runes和Ordinals交易採用特殊操作碼來允許籤名的輸入和輸出被組合,而交易池的透明性也允許許多买家發現潛在的有利可圖的交易。
所以對於出現的交易機會,交易者也會頻繁使用RBF(費用替換)和CPFP(子爲父償)來競價,從而使礦工也能夠利用這種需求來捕獲MEV。例如當賣家列出他們的資產出售時,买家可出價並在有競爭者時使用RBF來提高自己的交易費用,希望自己的交易被確認。
下圖中是這種交易者之間的競爭案例:
2ffed299689951801a68b5791f261225b24c8249586ba65a738ec403ba811f0d
這筆交易十分典型。可以看到當賣家掛單之後,成交交易被多次利用RBF的方式以238、280、298、355 sat/vB的費率來替換。
Source: Mempool.space
另一個例子是在Magic Eden平台上OrdiBots鑄造過程。幾位用戶成爲了交易池搶先攻擊的受害者。OrdiBots的鑄造銘文在Magic Eden上使用了PSBT(部分籤名比特幣交易)。
PSBT和10分鐘的區塊間隔允許任何潛在买家通過引入不同的地址、籤名並支付更高的費用來競爭同一交易。這導致幾位白名單用戶由於被搶先攻擊的機器人幹擾而無法鑄造(事後團隊已經道歉並承諾用定制的 OrdiBots補償受影響的用戶)。
但也並不是所有 MEV 相關技術或事件都是會對用戶不利的。MEV 的技術也會在有一些事件中保護用戶資產免遭損失。沒有啓用RBF,錯誤掛單無法被搶救,被卡住的交易也會長時間保持卡住狀態。因此Peter Todd 等也建議全節點啓用 full RBF的選項來轉發沒有標記RBF的交易。
比特幣上MEV的重要技術組件或手段
那么這些 MEV 都是由哪些比特幣上已經提供的技術手段來支撐的?目前涉及到的常見的技術領域包括交易池、RBF、CPFP、礦池加速服務、礦池協議等。
交易池(mempool)
和以太坊以及其他典型的區塊鏈網絡類似,比特幣也有交易池的結構,用於保存 P2P節點收到但還未在區塊中確認的交易。和以太坊類似,交易池在比特幣的 MEV也可以起到非常重要的作用,可用於查看和估算哪些交易會被打包。
但和以太坊gas機制不一樣的是,比特幣的手續費(fee)僅和交易體積有關,因此比特幣的交易池可以看作是更直接的區塊空間拍賣市場,可以看到哪些用戶、按照什么樣的價格在競標下一個區塊。
因爲不同節點收到的P2P傳播的交易不一樣,比特幣網絡中並沒有唯一的交易池。而且每一個節點也可以主動自定義自己的轉發策略(mempool policy),定義自己想接收並轉發的交易;
礦池也可以按照自己的喜好來選擇打包哪些交易(盡管經濟理性上是優先確認費用高的交易)。例如Bitcoin Knots的節點就不接受和轉發ordinals的交易,而 Marathon礦池也在瀏覽器裏構建出來一個像素風格的logo。
(區塊836361在瀏覽器中的顯示(像素顏色表示該交易的費率),Source: mempool.space)
所以用戶可能會考慮將交易直接發送給礦工或礦池,以期待更快的打包,但這樣會損害比特幣社區非常重視的兩個特性:隱私性和抗審查性。
交易通過P2P節點傳播而不是直接發送(例如通過一個RPC端點)給礦工或礦池,有助於混淆交易背後的實體信息,使得礦工和礦池無法通過這些被識別出來的身份信息而審查交易。
但有時候我們確實想讓交易更快的得到確認,或者因爲之前設置的手續費太低而很難被打包進區塊的時候,我們仍然有一些工具可以使用,即RBF和CPFP。
RBF、CPFP
手續費替換(RBF)和子爲父償(CPFP)是用戶通常可以使用的提高交易優先級的方法。
RBF (Replace-By-Fee) 允許將交易池中未確認的交易,替換爲另一筆與之衝突(也引用到至少一個相同的輸入)且付更高手續費率和更高整體手續費的交易。
和前文討論的交易池策略一樣,RBF其實也可以有各種實現規則,但最常用的實現是按照BIP125設計的可選RBF(opt-in RBF),即對專門標記的交易可以替換;另一種是完全RBF(full RBF),無論是否標記,交易均可替換。
而CPFP(Child Pays For Parent) 追加手續費採用了另一種思路。盡管用戶先發送了一筆未確認的低費率交易,但此時可以在後續(用前筆交易輸出作爲輸入)交易中付更高的手續費率,以此激勵礦工將這兩筆交易都打包。
因此有時也可以在瀏覽器中看到,盡管某個時刻的費率很高,但依然有極低費率的交易打包進了區塊,這些交易很可能就是使用了CPFP(因爲是由後續交易付費)。
(該筆交易利用CPFP讓低費率(7.01 sat/VB)父交易得以打包確認Source: mempool.space)
CPFP和RBF的主要區別在於,RBF是由支付方增加手續費率,而CPFP則允許接收方增加手續費率以加快交易確認,同時對於閃電網絡中需要退出的預籤交易很有用處(例如錨點輸出)。但RBF也有成本上的優勢,因爲不需要額外的區塊空間。
額外付費及礦池加速服務
而超低費率交易被打包的另一種可能性是使用了額外付費的方式。
除了RBF、CPFP這些直接交易追加鏈上手續費的方式外,用戶也可以選擇採用額外付費(out of band fee payment)的方式來給自己的交易加速。
例如很多礦池都會提供免費和收費的交易加速服務,爲用戶提交txid的交易進行加速打包。如果是收費的服務,用戶需要給礦池支付一筆費用,以彌補礦池在手續費上的差額。因爲這類服務在比特幣網絡之外的體系(例如通過網站充值、信用卡付費等)來支付手續費用,所以被稱爲是額外付費。
盡管帶外付費給無法使用RBF或CPFP的交易提供了一種補救手段,但如果長期大量使用則會影響比特幣的抗審查性。
礦池協議
我們上述的討論基本上把礦池和礦工視爲了一個群體來討論,但實際上他們之間也需要分工和協作。礦池集中了礦工的算力來進行挖礦,並根據算力貢獻的大小來分配獎勵。而這個協作的過程就需要一些協議來進行配合。
目前常見的礦池協議中,例如Stratum v1,礦池只需要給礦工分發一個區塊模板(包含區塊頭、coinbase交易信息),礦工根據這個模板進行哈希運算。目前也有一些工具,如stratum.work能可視化的看到各個礦池的Stratum信息。可以看到,在這個過程中,礦工無法選擇要打包哪些交易,而是由礦池來選擇交易並構建出模板來給礦工下發任務。
所以在Stratum v1協議中,我們也可以粗略地對標到以太坊生態中:礦池
礦工:承擔一部分proposer的職責(計算哈希)
礦池:既是builder,也會利用礦工計算出的哈希,最終propose區塊
未來如何
一些有前途的解決方案已經被开發出來或正在進行中,以減低 MEV 對比特幣的負面影響。
新的協議和實現
在一些新的礦池協議中,例如Stratum v2、BraidPool等,礦工也可以自主選擇要打包的交易。目前Stratum v2已有一些礦池(如 DEMAND)和礦機(如 Braiins)採用,允許個體礦工構建自己的區塊模板,改善了數據傳輸的安全性、去中心化和效率,同時緩解了交易審查帶來的比特幣MEV風險。
因此按照這種趨勢,未來礦池和礦工的角色分工也未必會按照以太坊PBS分工的方式演進。
另外,Bitcoin Core在交易池相關的新設計可能也會帶來新的變化,主要會包括當前討論最多的v3交易中繼策略和族群交易池(cluster mempool)等。不過這些新設計的影響,例如對當前閃電網絡通道的退出實現,仍然在討論當中。
挖礦獎勵減少的影響
挖礦獎勵的減少已不可忽視。隨着未來區塊獎勵的進一步降低,可能會對網絡產生各種影響。
一些問題已被比特幣开發者較早注意並討論,例如手續費狙擊(fee sniping)問題,礦池可能會故意重挖此前的區塊以獲取到交易手續費。Bitcoin Core已有一些防手續費狙擊的實現,但目前的方法尚不完美。
除了原生手續費外,另類資產可能也是未來補貼挖礦獎勵的一種渠道。因此也有一些項目在嘗試構建一些基礎設施,例如Rebar構建一種替代的公开mempool 來更好地識別出帶有價值的另類資產交易。
然而如“帶外付費”一節所討論的,這些非比特幣原生的經濟激勵,會對比特幣自洽的激勵相容體系產生何等影響還有待未來的進一步觀察。
無論如何,比特幣上的MEV可能既會從以太坊借鑑,但也會因爲架構和設計哲學等因素而有很大差別。比特幣日益增長的實用性、不斷減少的區塊補貼獎勵以及不斷發展的BTCFi生態系統,都會在未來把注意力集中在MEV上的因素。
特別鳴謝
感謝阿劍對本文的審閱和建議!
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播信息之目的,不構成任何投資建議,如有侵權行為,請第一時間聯絡我們修改或刪除,多謝。