作為一般用戶,可以通過設置較低的交易滑點和較高的Gas費來應對搶先交易。
本文旨在全面解析廣泛存在于以太坊區塊鏈上的攻擊行為:Front-Running,通過對其原理的研究,尋找最有效的解決方案,最終幫助DeGate用戶避免這一嚴重有損他們利益的攻擊行為。
Front-Running和Mempool
簡單來說,Front-Running是指在一筆正常交易等待打包的過程中,搶跑機器人通過設置更高Gas費用搶先完成攻擊交易,以此攫取用戶利益的攻擊行為。而Mempool是一組已經廣播到網絡中并等待被打包進區塊的以太坊交易,它是Front-Running可以實施的前提,搶跑機器人通過不斷掃描Mempool中的交易,來分析發現可攻擊的目標。下圖是一個Mempool瀏覽器,可以通過設置各種篩選項訂閱Mempool中的交易,并查看這些交易的全部詳細信息。
在所有Front-Running中,最典型最具危害性的就是針對AMM交易的SandwichAttacks,除此以外還有針對套利、清算交易、閃電貸等利用系統漏洞獲利的搶跑攻擊,攻擊者數量眾多,且由自動化腳本控制,永遠不知疲倦,因此任何有利可圖的交易都會遭受他們的飽和攻擊,幾乎沒有幸免的可能。
浪潮集團王偉兵:標識解析、標識密碼、區塊鏈是構建工業區塊鏈三個技術要素:金色財經現場報道,12月5日,2020世界區塊鏈大會于武漢舉辦,會上浪潮集團區塊鏈技術研究院首席架構師王偉兵演講表示,消費互聯網是實現人和人的連接的,工業互聯網從技術上看更偏重物,工業互聯網數量多,管理難度大,面向物的標識解析和密碼學適合應用。標識解析的本質是提供名稱映射的分布式數據庫,構建工業區塊鏈的三個技術要素是標識解析、標識密碼、區塊鏈。標識解析需要目錄服務、數據共享,標識密碼主要做設備身份認證、設備寫入鏈,區塊鏈則增強安全,完成可信交易。[2020/12/5 14:06:24]
接下來,我們重點對三明治攻擊進行分析。
SandwichAttacks
真實攻擊案例
首先我們來看一個真實的三明治攻擊案例。
上圖可見,三筆交易在同一個區塊被打包,兩筆攻擊交易中間夾著一筆正常交易。其具體流程如下:
用戶首先發起一筆正常交易,用237000.705USDC買入DG,設置GasPrice為40.5Gwei;
動態 | 基于共治鏈的共治根域名解析架構發布:據光明網消息,在日前由國家互聯網信息辦公室指導、中國互聯網絡信息中心(CNNIC)主辦的中國互聯網基礎資源大會上,中國互聯網絡信息中心主任曾宇發布了基于共治鏈的共治根域名解析架構。中國互聯網絡信息中心(CNNIC)作為我國國家頂級域名注冊管理機構,負責國家網絡基礎資源的運行管理和服務,從2016年開始,開展區塊鏈技術在域名領域應用的研究,驗證了運用區塊鏈技術進行域名數據管理的可行性。在此基礎上,聯合多家單位設計了基于共治鏈的共治根新型域名解析系統架構。[2019/7/3]
搶跑機器人檢測到這筆有利可圖的交易后,隨即展開攻擊,發起一筆買入交易,設定GasPrice為49.9Gwei,憑借Gas競爭機制成功搶跑用戶的正常交易;
與此同時,機器人發出另一筆賣出交易,設置GasPrice同樣為40.5Gwei,因為時間順序的原因,緊貼著用戶正常交易完成。
一次完美的搶跑攻擊完成,算上手續費,機器人共賺取16448.012-16310.3-15.2-10.61=$111.9,而這種兩筆攻擊交易夾著一筆正常交易的攻擊,就被形象的稱為三明治攻擊。
原理說明
為了更好的說明攻擊原理,我們補充一些相關背景知識。
動態 | EOS疑似將推出基于EOS的HandShake DNS解析服務:EOS疑似將推出基于EOS 的 HandShake DNS解析服務,一位開發者的Github顯示正在開發EOS-handshake服務。Cosmos社區總監Chjango Unchained4月30日發推表示發現EOS開發者正在復用 Handshake 的開源代碼。EOS或許會加入域名解析服務,生態會進一步擴大。(IMEOS)[2019/4/30]
我們知道,現如今的主流DEX如Uniswap等,采用的都是AMM機制,其價格遵循恒定乘積公式。例如,在Uniswap中建立一個A代幣與ETH的流動池,A數量為1000,ETH數量為100,則兩者數量乘積為100000,當前A價格為0.1ETH。當Alice試圖用10個ETH來池子里購買A時,他所得到的A的數量X,可以用下面的公式推導(注:為簡化計算,以下均未考慮手續費):
\*=100000,X=90.9
這筆交易中,A的價格為10/90.9=0.11,相比于原來A的價格,價格滑點為:
/0.1\*100%=10%
一筆交易就讓幣價產生了10%的滑點,可見越是流動性差的池子,遇到大額交易,越是容易產生滑點。而如果,能在用戶正常的大額交易前,搶先買入A,再在用戶正常交易后,將剛買入的A賣出,就可以獲得一筆不菲的收益。沿用剛才的例子,假設在Alice的交易前,Bob搶先花5個ETH購買A,然后在Alice的交易完成后,Bob再把之前買入的A賣出,我們看看會有什么樣的結果。
分析 | 杯柄形態ENJ最高漲幅83% 盤面解析:金色分析師:今日山寨幣ENJ最高漲幅83%,消息面上,ENJ確定成為三星Galaxy S10手機的合作伙伴。從盤面上看,小時圖幣價在未啟動前一直處于上升趨勢中,前期已經漲了一波,縮量調整回落,然后放量上攻,到達前期高處時候,又再次縮量調整,然后在放量上攻突破前期高點,然后幣價進入直線拉升趨勢,營造杯狀帶柄形態。[2019/3/8]
首先是Bob的搶跑交易:
(1000-X)\*(100+5)=100000,X=47.62
即,Bob用5ETH購得47.62個A
接下來是Alice的正常交易,注意此時流動池中A的數量變為952.38,ETH的數量變為105:
(952.38-X)\*(105+10)=100000,X=82.81
最后Bob賣出47.62個A的交易,此時流動性中A的數量為869.57,ETH的數量為115:
\*=100000,Y=5.97
通過這一次搶跑攻擊,Bob凈賺5.97-5=0.97個ETH,而Alice凈虧90.9-82.81=8.09個A,Bob通過使Alice蒙受更大的滑點損失來獲得自己的收益!
前美聯儲理事Kevin Warsh:從美國經濟政策角度解析比特幣價格波動: 前美聯儲理事、斯坦福大學胡佛研究所杰出訪問學者Kevin Warsh今日撰文,從政府經濟政策角度解讀了比特幣價格波動的原因。對于2017年BTC價格的狂飆,Warsh認為:1.特朗普上臺后推出的減稅等寬松政策持續刺激美國經濟增長,繼而帶來的通貨膨脹預期促使美國加息進度超預期,比特幣成為規避法幣貶值的避風港;2.特朗普政府貿易保護政策致使美元在2017年貶值12%,投資者尋求比特幣規避貶值;3.據去年10月、11月調查,美國民眾對政府的信任度下降14個百分點達到33%,而美元正是建立在公眾對政府信任的基礎上。而對于今年以來比特幣價格的大幅波動,是因為投資者正在調整對政府政策的預期,新任美聯儲主席也在重新考慮如何更好地實施貨幣政策,同時也在考慮推出自己的加密貨幣。[2018/3/8]
當然,實際的搶跑攻擊會更復雜,攻擊者需要進行更精密的計算,以求實現以下兩個目標:
讓用戶的交易結果無限逼近用戶自己設置的最大滑點,以求達到理論上的最大套利空間
在手續費競爭力和收益之間取得平衡,盡可能的在與其他機器人的競爭中獲勝
我們用圖表來更好的描述這一過程:
用戶在A點,打算投入in_amount(user)個USDT購買ETH,這筆交易正常會把當前狀態推向B,同時用戶設置了最大滑點為B(max_slippage);
搶跑機器人監測到這筆交易,先于用戶交易之前,進行了一筆in_amount(robot)個USDT的買入交易,將當前狀態推到A';
用戶的交易隨后執行,達到其設置的最大滑點B(max_slippage);
搶跑機器人把步驟2中買入的ETH賣出,狀態達到C點,得到out_amount(robot)個USDT
搶跑機器人獲得收益out_amount(robot)-in_amount(robot)-手續費
解決方案
既然我們已經看到了Front-Running的殺傷力,那我們有什么辦法阻止搶跑攻擊呢?
作為一般用戶,應對Front-Running可以有以下幾種手段:
設置較低的交易滑點,比如0.1%,這會讓搶跑機器人缺少可盈利的空間。?缺點:滑點過低導致大額交易十分容易失敗,且失敗的交易仍然需要支付高昂手續費。
提高gas費用,這會增加機器人的攻擊成本。缺點:這同樣也增加了自己的交易成本。
可以看出,以上解決方案都是無奈之舉,且有各種不足,幸運的是,有很多團隊認識到了Front-Running的危害性,并提出了不少有建設性的解決方案。首先通過對捕獵全過程的分析,我們可以得出結論,要實現Front-Running,需要幾個要素:
Transaction公開性:可以在Mempool中獲取交易的詳細信息
以太坊交易執行機制:可以通過gas競爭的方式搶先完成交易
AMM交易曲線機制:恒定乘積機制可以造成較大滑點
那么反制手段就是分別在這幾個要素上做文章。
Transaction公開性
既然機器人是通過分析Mempool中的交易來決定是否發起攻擊,那么我們將交易信息直接加密,讓機器人看不到或者看不懂不就好了?
社區中就有人提議使用零知識證明技術zk-SNARKs來達成上述目標,即運用zk-SNARKs將每筆交易的信息都加密隱藏起來,讓機器人無從下手。
不過,目前該方案還不夠成熟,存在需要消耗更高Gas費用和可能被利用來進行阻塞攻擊,導致系統化整體liveness的缺陷。
以太坊交易執行機制
當前的以太坊交易執行機制是通過Gas競爭來完成的,即誰出的Gas費高,礦工就優先打包誰的交易,那么我們如果繞過這種機制,把交易發給礦工讓其直接打包,就杜絕了搶跑機器人在中途攻擊的可能性
所以一種類似于Layer0的方案也得到了一些應用,如星火礦池的Taichi服務,用戶可以直接在MetaMask中設置Taichi的以太坊節點,這樣交易就直接在沒有出現在Mempool的情況下被打包了,但劣勢是被打包的時效有一定的不確定性。
另外,如ArcherSwap類似理念的解決方案,構建了交易者和礦工之間的橋梁,交易者可以通過打賞的形式讓礦工直接打包自己的交易,這就避免了被Front-Running的可能。雖然有那么點交保護費來避免被攻擊的感覺,但也實實在在的降低了交易者的成本,而且有著不收取交易失敗費用的優勢。
AMM算法優化
在AMM機制下,大額交易產生過大的價格滑點,是Front-Running的利潤空間,如果有一種AMM機制可以減少大額交易對后續交易價格的影響,就可以有效防止Front-Running攻擊。早在2018年,Vitalik在以太坊技術社區中提供了一個方案,當發生兌換交易時,交易池價格不會立刻調整成真實價格,而是在若干分鐘內,緩慢的趨向真實價格,這就好像交易池憑空多出了很多流動性一樣,因此我們將這種技術稱之為VitrualBalance技術。這種新機制,可大大壓縮套利者的利潤空間,有效防御Front-Running攻擊,同時還可以增加流動性做市商的收益,可謂一舉多得,1inch的mooniswap就是這個方案的一個實現版本。
增加流動性
此外,還有種思路,就是盡可能的加大交易池中特定價格區間的流動性,流動性越大,滑點越小,當流動性大到一定程度的時候,搶跑機器人就喪失了盈利空間,Uniswap的V3版本的聚焦流動性特性,就是在這方面做出的努力。
展望未來
我們有理由相信,在各個團隊堅持不懈的努力之下,隨著各種解決方案的持續演進,以及新一代AMM、以太坊二層等技術的相繼落地,很快我們就可以為用戶提供一個更公平更安全的鏈上交易環境。
撰文:DeGate
1.9個鏈上指標判斷BTC處于牛熊周期什么階段在本文中,我們將探索一些精選的鏈上指標,這些指標可洞悉屯幣者、投機者和礦工的情緒和宏觀支出模式.
1900/1/1 0:00:00加密貨幣的興起給中央銀行和金融當局造成了挑戰,因為以替代貨幣形式進行的交易不像通過銀行和其他傳統中介機構進行的交易那樣易于追蹤。比特幣或許正在吸引人們的注意力.
1900/1/1 0:00:00隨著五月一日的到來,眾多幣圈老友開始擔心非法集資條例將帶來下一波打擊潮。就大家關心的問題和辦案經驗,颯姐跟大家聊一聊,僅供老友們參考.
1900/1/1 0:00:00文章系金色財經專欄作者牛七的區塊鏈分析記供稿,發表言論僅代表其個人觀點,僅供學習交流!金色盤面不會主動提供任何交易指導,亦不會收取任何費用指導交易,請讀者仔細甄別,謹防上當.
1900/1/1 0:00:00針對近日再度掀起的加密貨幣投資浪潮,韓國金融委員會出面,再度強調加密貨幣交易所監管,又“嘲諷”加密貨幣投資不能稱為投資者,業界人士紛紛表示不滿.
1900/1/1 0:00:00據Cointelegraph4月22日報道,總部位于香港的數字資產托管機構FirstDigitalTrust獲得215萬融資,將加密貨幣資產支付服務和升級帶到亞太地區.
1900/1/1 0:00:00