深入體驗以太坊黑暗森林:DeFi 套利機器人是如何掠奪用戶的? – 鏈聞ChainNews


問題的根源在於以太坊的打包機制,要想徹底解決這類問題,必須從以太坊打包機制、交易隱私保護方面下手。

原文標題:《以太坊的黑暗森林》
撰文:談國鵬,Ownbit 創始人

之前看過幾篇關於以太坊黑暗森林的文章,對其中的黑暗、扭曲深感震撼。於是花了幾天時間寫了自己的機器人,深入體驗了其間的險惡。

概述

什麼是以太坊的黑暗森林?它是指以太坊上鮮為人知、卻廣泛存在的一種不公平的、暗黑的機制–Mempool 的打包機制的特權使用。一般而言,礦工按照交易給予的礦工費(GasPrice)高低來進行排序打包。這些交易的排序先後對於單個轉賬交易並無影響,然後涉及到DeFi 交易,情況就不一樣了。

在DeFi 中,交易被打包的順序深刻影響著其經濟利益。例如,在Uniswap 中,同樣兩個針對某交易對的買單,先被執行的交易將獲得更多代幣。如果你總是在一筆買單前買入同樣的代幣,然後又緊隨其後賣出,則將「毫無風險」地獲利。這也被稱為提前交易(Front-Running)。

細節

為什麼提前交易可以獲利?以Uniswap 為例,其價格模型是x * y = 常量。例如初始x = 100,y = 100,那麼常量= 10000。那麼當:

  1. 用戶A 用10 個x 買入y。此時x = 110,y = 90.9,用戶A 獲得9.1 y。 (x * y 依然等於常量10000)
  2. 用戶B 用10 個x 買入y。此時x = 120,y = 83.33,用戶B 獲得7.57 y。 (x * y 依然等於常量10000)
  3. 用戶A 賣出所有y。此時x = 108.18,y = 92.43,用戶A 獲得11.82 x。 (x * y 依然等於常量10000)

以上例子可以看出,用戶A 通過提前交易,發出兩個交易,一前一後包裹用戶B 交易,則可以「毫無風險」地獲利。這裡打上雙引號是因為需要假設沒有其他同樣策略的用戶A 出現。在真實的市場環境中,用戶B 是一個真實的用戶,而用戶A 則是一個機器人。

以Uniswap 為例,當前市場上充斥著大量的提前交易機器人。這些機器人時刻監控著出現在以太坊mempool 中的用戶交易。如果用戶是大額買入某幣,那麼它們立刻發出兩筆交易,一筆是搶在用戶之前(比用戶交易GasPrice 更高)買入該幣,另一筆在用戶之後(可以採用和用戶GasPrice稍低或相同)賣出該幣。

這種提前交易機器人,不同於兩個DEX 間進行搬磚套利的機器人,它們是傷害用戶利益的。在上面的列子中,用戶B 本可以獲得9.1 y,因為機器人A 的存在,卻只獲得了7.57 y,從而白白損失了1.53 y。

例子

這種機器人就如同站在公路上,光天化日進行打劫的強盜。下面我們來看一個例子:

用戶在區塊11331736 上買入100 ETH 的YFL (用戶GasPrice 700GWei):

深入體驗以太坊黑暗森林:DeFi 套利機器人是如何掠奪用戶的?https://cn.etherscan.com/tx/0x4b7e5c9e25d0e4b0a0f87b68bde10b7b988bc6d7f83f7dd1fa1dd1b044a931c8

在它前後出現了好幾對打劫該用戶的機器人,舉出其中具有代表性的兩對來講解。機器人A 以超高的礦工費(23,835 Gwei)搶在用戶(及其它機器人)之前買入95 ETH:

深入體驗以太坊黑暗森林:DeFi 套利機器人是如何掠奪用戶的?https://cn.etherscan.com/tx/0x97ab6f31785068a84c47a39e55b2ee391ee6cac2f4c82dbb0ab34f0c5b71c5b9

隨後,機器人A 以和用戶同樣的GasPrice (700Gwei)在用戶交易後賣出,獲得99.24 ETH,去除礦工費,該筆打劫,讓機器人A 獲利 2 ETH 以上:

深入體驗以太坊黑暗森林:DeFi 套利機器人是如何掠奪用戶的?https://cn.etherscan.com/tx/0x9e5d8a1a179867a4dbca23bd5c7fa6c8db6dd0817165ec3c3474493d69bf6a5c

在該用戶交易身後,還出現了DEX 間搬磚套利的機器人B。它從Balancer 中買入YFL,並且在Uniswap 中賣出YFL,獲利1 ETH 左右:

深入體驗以太坊黑暗森林:DeFi 套利機器人是如何掠奪用戶的?https://cn.etherscan.com/tx/0x81528f2b5d0cbb217c73e1f60bbd8edda6536a8efc85cd0a9466496d4aa999c0

機器人B 雖然獲利,但並未對用戶造成利益損失。但是機器人A 則不然,機器人A 所花費的巨額礦工費,以及其盈利部分,共計4.2 ETH,都將由用戶買單。該例子中用戶,在什麼都沒有乾的情況下,已經損失4.2 ETH!

這個例子並非個例,而是幾乎每個以太坊區塊都能找的、普遍存在的例子。當前,以太坊的DeFi 用戶正在遭受嚴重的利益損害,而絕大部分人渾然不知!

深入

從技術上實現機器人A 或B 均不難。那麼以太坊豈不成為一個強盜肆意打劫之地?有沒有什麼可以製約機器人的手段?

答案是:有, 其它機器人。機器人之間也有不同的策略,也分不同的級別。如果你去認真分析現在的以太坊交易,不但普通用戶遭受機器人的打劫,較弱的機器人也會受到較強的機器人的打劫。

另外一個制約機器人的點是用戶交易失敗。所謂交易失敗,是指用戶的交易執行時,因為超過用戶設置的滑點(slippage),而導致交易無法完成的情況。在上面的例子中,如果用戶交易失敗,那麼機器人將無利可圖,不但如此,它們還要損失掉礦工費,和交易手續費。

而非常諷刺是,讓機器人最為害怕的用戶交易失敗,卻是由機器人自己造成的(過多的機器人搶在用戶前買入某幣,導致用戶買入時價格相差過大)。當你在瀏覽器中看到某個交易有這樣的報錯,它大多是因為機器人的打劫:

深入體驗以太坊黑暗森林:DeFi 套利機器人是如何掠奪用戶的?https://cn.etherscan.com/tx/0xbc236137de0d6a9f82c04039b1c534b9d76789a8a4bda0f3546c87f9e509f016

普通用戶害怕機器人,小機器人害怕大機器人。然而大機器人並不是終結。這裡食物鏈的頂端不是別人,正式大家熟悉的:礦工

礦工

交易的排序決定了利潤的分配,而對交易排序有決定權的則是礦工。礦工加入到這場收割的遊戲徹底改變機器人的格局。

在遵循GasPrice 高低排序的規則下,礦工可以對同樣GasPrice 的交易任意調配順序。礦工也可以在不廣播交易的情況下,直接將某個交易打包進區塊。在這個遊戲中,普通用戶是閉眼玩家,套利機器人是睜眼玩家,而礦工則是上帝視角。

擁有上帝視角的礦工一旦加入遊戲,其結果可想而知。礦工的機器人將驅逐非礦工機器人。而這些礦工將成為以太坊上最大的黑暗勢力,利用它們的權力,對用戶進行肆意地收割!

解決

以太坊的打包機制是問題的根源,只要有順序關係的應用都將都將遭受到這類攻擊。要想徹底解決這類問題,必須從以太坊打包機制、交易隱私保護方面下手,從目前的發展來看,短期而言,並非易事。

另外一種方案是將這類應用遷移至 Layer2。很多Layer2 的方案擁有更快的打包速度,可以有效地降低機器人劫持的可能性。

結語

公開的搶劫、利己的排序、作惡的礦工,正在讓以太坊淪為一場權力的遊戲。這跟區塊鏈,公平、開放、平等的理念已經背道而馳!

未來以太坊的發展,如果不能有效遏制礦工的權力,監督礦工的行為,那麼它是否也會成為腐朽的產物,被人們所拋棄?水亦載舟,水亦覆舟。如果以太坊的DeFi 不能成為一個公平的遊戲,它又能走多遠呢!

延展閱讀:

《Ethereum is a Dark Forest》
https://medium.com/@danrobinson/ethereum-is-a-dark-forest-ecc5f0505dff

《Escaping the Dark Forest》
https://samczsun.com/escaping-the-dark-forest/

.



Source link