原文:《爭議:GMX 的Keeper 機制是否會引發內部作惡?

總結:吳說區塊鏈

引言

9 月18 日,GMX 遭遇了價格操縱攻擊,攻擊者利用GMX 的最小價差和0 滑點的特性對AVAX/USD 進行價格操縱,賺取了56.5 萬美元的AVAX。關於其中細節可以參考《如何利用GMX 的交易機制進行價格操縱?外部攻擊與內部作惡的方法分析》,此次攻擊是“合理但惡意”地利用了GMX 的交易機制,屬於外部攻擊。文章提到,除了外部攻擊外,GMX 還存在潛在的內部攻擊風險。

鏈茶館文章:

https://mp.weixin.qq.com/s/kIcQ56uQM38KQ2_vW22d2A

關於Keeper 機制所帶來的作惡隱患,詳細分析如下:

https://im0xalpha.notion.site/GMX-A-Can-Be-Evil-AMM-bf22717230864f458e94fc5482e304ff

  • GMX 依賴於一個集中的餵價機制,即“Keeper”,它完全由團隊控制。
  • Keeper 決定了所有的交易價格,因此可以隨心所欲地使任何一方(交易者和LP)受損或受益。
  • 有了Keeper 的絕對權力,GMX 很容易作惡,甚至比任何中心化的交易所更容易。

# 細節中的魔鬼:GMX 的Keeper

最近GMX 遭遇的價格操縱攻擊使我們注意到了GMX 的Keeper 機制。事實上,外部操縱的攻擊並不是最大的問題,因為外部操縱是一個可預防的問題。但Keeper 所帶來的的內部操縱隱患是沒有辦法避免的(甚至沒有辦法發現它)。

在GMX 上交易存在兩個步驟:

1. 下單。在這一步中,除了常規的交易費用外,你還需要支付額外的ETH/AVAX(稱為執行費),以便Keeper 執行你的交易。

2. Keeper 以所謂的預言機價格執行你的訂單,該價格完全由Keeper 決定。

這個細節中存在魔鬼:此Keeper 不屬於任何鏈上或透明機制。相反,它是一個由GMX 擁有的地址簽署的程序,並在GMX 自己的集中式服務器上運行。而Keeper 的核心作用不僅僅是執行訂單,也是決定交易價格。在非常弱的約束條件下,Keeper 可以直接用它選擇的任何價格執行你的交易。而正是這個弱約束也只會讓交易員的價格變得更糟(https://www.notion.so/47fc5ed832e243afb9e97e8a4a036353,與ChainLink 價格的偏差大於2.5% 將觸發買賣價差)。

# 如何作惡?

非常簡單!

由於每筆交易的交易價格完全由Keeper 決定,運行Keeper 的人可以做任何他們想做的事情。例如,按其意願提供有利於或不利於交易者的價格,通過為交易提供不好的價格(長線交易的價格較高,短線交易的價格較低),從每筆交易中獲利是非常方便的。

而這可以以一種非常秘密的方式進行:Keeper 只需要使價格比公平價值稍差(例如高出或低於0.1%),這樣就很難注意到。那麼大量的利潤(0.1% 的交易量)就會從交易中被偷走。

你可能認為這種偷竊對LP 有利。在這種特殊情況下,確實如此。但有了這樣的絕對權力,從LP 那裡偷竊也同樣容易。 Keeper 只需要用優於公平的價格(多頭交易的價格較低,或空頭交易的價格較高)餵養其附屬賬戶,就可以將利潤轉移到這個賬戶。這一點非常容易理解:如果攻擊中的外部操縱者(https://www.binance.com/en/news/top/7204043)可以通過操縱價格來源使他們的賬戶受益,那麼Keeper 通過直接操縱價格使特定賬戶受益只會更直接。唯一的區別是,前者是以中心化交易所(即Binance)的價格為成本的,而後者則是零成本。而且,這也可以通過保持足夠小的偏差來避開外界關注,同時又能非常隱蔽地獲利。

這種交易機制是如此不透明,以至於比任何基於訂單簿的中心化交易所更容易作惡。對於後者,你通過查看訂單簿上的報價,提前對你的交易價格有一個合理清晰的預期。如果報價不公平,你可以選擇不交易。相比之下,在GMX 上,交易完全掌握在Keeper 手中。

# 他們是否已經作惡?

從技術上講,答案是我們不知道,因為這沒有辦法從外部驗證。

然而,當你問出這個問題,你可能已經忽略了重點。從“不作惡”轉換為“不能作惡”是加密世界的基本價值之一,也是重大的進步。一個依靠權力所有者的善意而運作的系統不應該屬於這個世界。

無論一個“能作惡”的項目如何聲稱他們不會作惡,都不應該給予信任。這不是Web3 的工作方式!

# 作惡成本有多大

分析師@NintendoDoomed 對GMX 的作惡成本進行了分析。

通過操縱價格發動攻擊的可能性是存在的,在其他協議上也發生過,但是攻擊成本比大多數人想的要高。 GMX 有千分之一的交易費用,一筆交易開平倉就有千分之二的費用,因此在操縱預言機價格時,對價格的影響必須要大於千分之二才有意義。

對於BTC 而言就是$30+ 的價差,並不是一個小的數字。 GMX 的預言機聚合了數個頭部中心化交易所的價格,基本需要操縱整個市場的定價才能攻擊GMX。對於Avax 之類流動性較差的小幣種可能是划算的,但是對於BTC/ETH 則未必。此前有消息稱有人操縱AVAX 價格,這主要是因為AVAX 流動性相對較差,操縱成本較低。因此,通過操作價格對GMX 發動攻擊目前只適用於流動性較差的Token,但對於主流幣暫時不會構成威脅。

此外,GMX 對於倉位規模有上限設置,開平倉都存在時間差,這進一步提升了攻擊成本。這個上限是會低於LP 存入對應Token 的規模, 比如LP 存入ETH 有$80M,那麼ETH Long Position 可能就會設置成$50M,因此可以全額兌付。

https://twitter.com/NintendoDoomed/status/1597223938563919872

https://foresightnews.pro/article/detail/16360