注:針對近期頻繁發生的以太坊三明治套利交易(sandwich trading),開發者CodeForcer建立了一種名為“沙門氏菌”(Salmonella)的ERC20誘餌代幣,透過這種方式,其在24小時內實現盈利130 ETH,而這也告訴了我們關於以太坊網路Mempool黑暗森林的對抗性。
以下是CodeForcer撰寫的內容:
那些追蹤以太坊mempool行動的人已意識到了三明治交易的突然興起,對於不瞭解這一概念的讀者來說,三明治交易是一種非常有趣的策略,其原理就是在受害者交易前後進行交易,並透過產生的滑點實現套利。
比方說,當有人進行一筆資產交易,套利者便搶在他之前購買同一資產(人為地抬高幣價),然後等到對方成功買入後,套利者再賣出後即可獲利。
這種策略在過去是非常高風險的,因為以太坊無法保證交易一定成功,mempool是一個很有趣的地方,但它並不是一個安全之地。
然而,隨著FlashBots等MEV(礦工可提取價值)服務的興起,這使得交易者可以建立一些“三明治包”(sandwich bundles),其中3筆交易要麼全部被執行,要麼都不執行。與此同時,礦工交易團隊的活動也在增長,他們將“三明治包”直接納入到自己挖得的區塊。
這兩種創新的結合,就使得三明治交易者可以進行一些“無風險”的套利活動,這讓很多人陷入了興奮的情緒當中。
但實際上,“無風險”並不是真的沒有風險。
為了向大家說明在mempool中玩遊戲的風險,我演示了一種新的稱為“沙門氏菌”(Salmonella)的新交易策略,它涉及到利用通用的搶跑交易設定。三明治交易的目的是利用他人交易造成的滑點來獲利,而這種策略的目的是懲罰剝削者。
對區塊鏈進行的快速分析顯示,目前一個名為“Ethermine”的團隊執行了市場上大部分的三明治交易,在確定了最初的目標後,我開始分析他們的設定。
在撰寫本文時,Ethermine的設定相當基礎,其依靠的是Uniswap router 來執行交易,而交易歷史顯示Ethermine的大部分交易都屬於revert交易,其智慧合約本身也持有各種失敗交易的代幣,考慮到這些之後,我開始著手建立我的Salmonella合約。
Salmonella合約的前提非常簡單,它是一個常規的ERC20代幣,其行為與正常用例中的任何其他ERC20代幣完全相同。但是,它有一些特殊的邏輯來檢測除指定所有者以外的其他人何時在進行交易,在這些情況下,它只返回指定金額的10%。
下面就是“有毒”的transfer函式:
function _transfer(address sender, address recipient, uint256 amount) internal virtual {require(sender != address(0), "ERC20: transfer from the zero address");require(recipient != address(0), "ERC20: transfer to the zero address");uint256 senderBalance = _balances[sender];require(senderBalance >= amount, "ERC20: transfer amount exceeds balance");if (sender == ownerA || sender == ownerB) {_balances[sender] = senderBalance - amount;_balances[recipient] += amount;} else {_balances[sender] = senderBalance - amount;uint256 trapAmount = (amount * 10) / 100;_balances[recipient] += trapAmount;}emit Transfer(sender, recipient, amount);}
我部署了Salmonella合約,然後建立了一個包含Salmonella和以太坊的簡單Uniswap池子。然後,我用二分檢索法複製了三明治交易的檢測數學,建立了一系列誘餌交易,使得Ethermine和其他三明治交易者會認為這是一個有趣的機會。
最後,我編寫了一個執行架構,使我能夠快速取消交易、更改gas價格和重置陷阱Uniswap池的狀態。
在喝了幾杯濃咖啡之後,我開始工作,發出了一系列誘餌交易,謹慎地將價格定在略低於市場gas的水平,以保持交易在mempool中,但如果價格開始下降,我就取消掉交易。
不到幾個小時的時間,我就遇到了第一個目標,並從其機器人那裡掠奪了68 ETH,又過了幾個小時後,我又從他們的合約中撈走了35 ETH。
過了一夜時間之後,我瀏覽了一下我的Salmonella合約,結果發現自己的實驗清空了另外17個三明治交易合約,當然資金量都要比Ethermine要少得多。
我繼續執行了這個策略幾天,一路上又清空了一堆三明治交易合約,但隨著合約部署者調整他們的設定以更好地檢測我的有毒代幣之後,我的alpha策略很快就失效了。
總而言之,這是一個有趣的實驗,我現在把它作為一個警告呈現給社羣。成為一名DeFi墮落者是很有趣的,但在進行交易時你一定要小心,因為這個遊戲是高度對抗性的。
Mempool見!
本公眾號所載文章中觀點僅代表原作者個人立場,不代表巴位元資訊立場。投資者不應將文中觀點、結論為作出投資決策的惟一參考因素,亦不應認為文中觀點可以取代自己的判斷。在決定投資前,如有需要,投資者務必向專業人士諮詢並謹慎決策。
作者:灑脫喜,來源:巴位元資訊