來源|?bertcmiller
請看由EmGithub提供的rawsAssetsOracle
請看由EmGithub提供的rawdYdXLiquidator.sol
我花了大量時間嘗試最小化我的gas消耗。很多我的設計選擇都是以此為依據。關于這份合約的策略,有幾點需要注意
我沒有發送很多單獨償還和兌換的交易,相反,我選擇把多筆償還打包在一個交易里,這使得我的固定gas開銷可以在多筆償還里分攤,由此提高我的交易捆的競爭力。
我需要以最佳方式把ETH兌換成USDC再兌換成sUSD,并需要決定是在有函數exactInput還是exactOutput的Uniswapv3上交易。無論我怎么做都會在某個地方產生滑點,因此我選擇有函數exactOutput的,以避免調用balanceOf。
在這些交易的精確性和gas效率之間存在折衷。只要我能償還我的閃電貸,缺乏精確性也沒什么問題,而且因為我要在gas效率上競爭,我選擇了對它優化。
還有一些“戰術上”的東西需要注意:
對所有東西的批準都前向負載到我的合約里的構建函數。這樣,我可以在部署的時候支付開銷,并減少執行時使用的gas。
香港恒生銀行:企業獲證監會原則上批準虛擬資產牌照后可開設簡單戶口:金色財經報道,香港恒生銀行商業銀行業務總監林燕勝指出,香港金管局促銀行正面對待虛擬資產發展,恒生金管局和證監會多次合辦圓桌會議,協調虛產企業開戶難問題,恒生銀行會跟隨大方向,企業獲證監會原則上批準(AIP)牌照后,已可開設簡單戶口,但目前并沒有收到很多查詢,因事實上獲批AIP也不容易。[2023/7/31 16:08:49]
我不從我的賬戶燒毀gastoken,而是從我的合約燒毀,同樣是為了提高gas效率。
函數名稱都是指定的,它們的函數選擇器的前導符為0x,使用函數選擇器也能稍微減少gas的使用。
與直接添加require語句相比,函數修改器需要消耗稍微多一點gas。
這份合約還有一些可以被優化的方法,例如使用gas費用而不用coinbase轉賬。
0xSisyphus非常慷慨提出給我借ETH,我就不用使用閃電貸了,這能大大節省gas。但隨著時間推移,大額的貸款都還錢了,因此總的機會就減少了。我決定不接受0xSisyphus借的錢,因為機會不再大到使這樣做是明智的。
總結:在這個階段,我創建了一份智能合約,以執行捕獲可得的MEV機會。要做到這點,需要認真思考正確的策略,以及如何最小化gas的使用。這份合約是經過多次迭代開發出來的,同時我進行數據上的工作,還把它放在了一個測試環境(Hardhat)里。
基于Lens Protocol的Web3社交平臺Buttrfly已上線App Store:6月16日消息,據官方消息,基于Lens Protocol的Web3社交平臺Buttrfly已上線App Store。用戶可通過該平臺體驗多媒體Web3社交,并通過Web3加密信息網絡XMTP進行互動。[2023/6/16 21:41:31]
償還MEV和優化gas價格的經濟學
有了一份精心設計的合約和對機會的深入了解,我需要改進我實現這個機會的策略。回顧一下,Flashbot的MEV-Geth客戶端能有效運行競拍,其中gas價格最高的交易捆勝出,會被打包到鏈上。這一重要事實意味著,我需要最大化我的交易捆的gas價格,而不是我支付的ETH總額。
記住了這點,并使用我之前收集到的數據,我制作了一個電子表格來優化我的gas價格。我的合約既有固定的gas開銷,也有可變的gas開銷。固定的gas開銷用于取出閃電貸和做兌換。可變的gas開銷來自我想要償還的貸款數。我很自然地認為在某一點上,償還一筆貸款的邊際收益將低于gas開銷。我運行了幾次測試,以得出實際數字。以下是我的結果:
請注意,這個結果有點令人驚訝——僅償還前4筆(共30筆)的sUSD貸款是最省gas的。此后的每筆貸款都會產生更多的整體利潤,但會降低我的交易捆的gas價格,并降低其競爭力。如果有其他人試圖一次性償還前10筆sUSD貸款,它們的gas消耗效率會降低接近30%!
Bitget將于今日上線SUI 1-50倍U本位永續合約:5月4日消息,Bitget將于今日上線SUI 1-50倍U本位永續合約,現貨杠桿新增SUI/USDT交易對,全倉5X以及逐倉3X均已開放。[2023/5/4 14:42:28]
考慮到未償的sETH貸款更少了,只做sUSD貸款而不把sUSD和sETH合并到一筆交易是最合理的。因此,潛在的回報更少了,支付給礦工的錢也更少了,這使得它們的gas效率相對較低。看到這些發現,我不禁笑了。如果其他人貪婪,一下償還了所有的貸款,或很懶惰,分開償還,那么我就會贏。
然而,其他的貸款還在那里,且償還起來也是有利可圖!我再次嘗試優化我的gas價格,發現如果我償還前4筆sUSD貸款,接下來最省gas的做法是一并償還后6筆最大的sUSD貸款,再分別償還最大的兩筆sETH貸款。此外,假設我贏了,我可以使用從之前的交易捆中獲利的ETH,而不再需要閃電貸了。
Flashbots競拍和我的交易捆排序策略
重復一下情況:我既要在gas效率上競爭,又希望通過償還每筆貸款來最大化我的收益。最佳策略是在每個交易捆中提交幾筆償還,分幾個交易捆進行。這些交易捆會在Flashbots競拍中被各自評估。然而,每筆交易都取決于來自pDAO的交易,是它使得貸款可以被任何人償還。
當前DeFi協議總鎖倉量跌至504.2億美元:金色財經報道,defillama鏈上數據顯示,當前DeFi項目總鎖倉量(TVL)為504.2億美元,24小時內跌幅為8.12%。鎖倉量資產排名前五:MakerDAO(74.5億美元),Lido(66.4億美元),Curve(49.4億美元),Aave(48.1億美元),UniswapV3(41.1億美元)。[2022/11/9 12:34:55]
如果pDAO交易不在交易捆里,那么該交易捆就會失敗。但如果我的每個交易捆里都有pDAO交易,那么只有一個交易捆會成功。也就說,在一個交易捆被成功打包后,其他所有的都是無效的,因為它們會試圖對pDAO交易重復打包。因此,我需要找到方法使得僅在我的第一個交易捆里發送pDAO交易,但同時確保我的其他交易捆不會因為它們沒有pDAO交易而失敗和被扔掉。
解決方案在于Flashbots競拍的一個細微之處。在搜索器開始對競拍使用“把戲”,降低交易捆合并后的礦工費用,Flashbots實行兩輪的模擬。首先,所有的交易捆都被單獨進行模擬,得出它們的gas價格并檢查是否會失敗。在第二輪,成功的交易捆會被按照gas價格排序,并再次進行模擬,以找出前后不一致的交易捆,確保沒有交易捆的gas價格是低于預期的。除非你想這樣做,否則你可能永遠不會有一個交易捆是gas價格在合并后是降低了的。
Polygon第二季度獨立地址數增長12%至534萬個:7月26日消息,以太坊側鏈Polygon公布第二季度網絡數據,Polygon第二季度獨立地址數增長12%至534萬個,交易筆數增長4%至2.84億筆,網絡收入為556萬美元。此外,網絡平均轉賬成本下降49%至0.018美元。
DeFi領域,Bungee交易量上漲972%,Meshswap新增9.1萬用戶處理了160萬筆交易,而QuickSwap仍以38.2萬的用戶數占據主導地位,共處理了452萬筆交易;游戲方面,Aavegotchi的Gotchiverse新增10.2萬名用戶,環比增長805%;
NFT方面,OpenSea上新增了120萬支持Polygon的NFT錢包,活躍獨立錢包數量增長47%至150萬,而鑄造新的NFT產生了6660萬筆交易,雖然法幣計價的NFT交易量下降了64%,但交易筆數增長47%至1.22億。開發者方面,第二季度內平均每天有1000名新開發者和2700個新合約上線。[2022/7/27 2:39:20]
我意識到我可以做上述搜索器相反的事:我的交易捆不是支付比預期更少的gas費,它們會在第二輪模擬中支付更多。為了做到這點,我將如預期般在第一個交易捆里打包pDAO交易,但要對剩余的交易捆做額外檢查。這些交易捆將推斷它們將會在第幾“輪”模擬,然后相應改變它們的執行。如果它們在“第一輪”,它們將不會償還任何貸款——因為它們嘗試償還的話會失敗——然后無論如何都給礦工支付費用,以獲得高的gas價格,通過第一輪的模擬。
通過了第一輪模擬后,這些交易捆將在第二輪模擬中跟在有pDAO交易的那個交易捆后面。到了這步,它們就能成功償還貸款了。此外,這些交易捆的gas價格會比競拍預期的更高,而不是更低,因此在這里改變執行不是問題。
我是如何確定我的交易捆是在哪一“輪”的呢?通過看我合約的余額。如果在區塊的早期(即在前一個交易捆)我已經成功償還貸款了,那么我的余額應該增加了,因為這樣做能從中獲得收益。因此,我增加了一個條件來檢查我是否獲得任何WETH收益,如果有,則繼續償還貸款。這在測試中是成功的。
總結:這個階段還是關于策略。我使用早期得到的數據、合約和測試環境來思考我要競爭獲得的MEV機會的經濟學邏輯,以及最優策略會是什么。通過使用真實數據,我發現了一個令人驚訝的占有策略,但它很難執行。執行它需要一種新方式來提交交易捆。
第五步:執行
現在手上有了數據、合約、以及我可以開始執行的計劃。基本上,我需要構建多個這樣的交易捆:一方面可以執行我上文的計劃,另一方面監聽交易池里與Synthetix相關的交易以進行尾追。此時,大部分都是實現上的問題。
首先,我使用了Blocknative來監聽pDAO賬戶,以了解相關交易的情況。我讓任何從pDAO賬戶發出的交易信息都會發送到我的機器人。
然后,我同時運行兩個監聽腳本(一個用于sETH和sUSD),以從鏈上獲取數據,得出最優的交易捆策略(例如先償還前3筆sETH貸款,閃電貸X個ETH,并對后2個做相同的事,等),并生成我的合約需要的數據。我需要在每個區塊如此運作,以防價格改變了或有人關閉了貸款,由此改變了最佳策略。這些結果保存在了本地。
最后,我有了一個執行腳本,它會接收發送到我的機器人的待打包交易信息,并從我的監聽腳本加載出最佳打包交易捆策略的結果,自動構建交易捆,并把它們發送到Flashbots。
剩下的事情就是等待。在這段時間,最高額的sETH貸款被借款人償還了,因此我關了機器人中的該部分。幾個最高額sUSD貸款也結束了,這大大減少了預期的回報率。
第六步:關鍵時刻到了
有趣的是,有人試圖通過向相關合約發送交易,想誘使機器人在早期失靈。我不確定這種情況是否也會出現在其他人的機器人上,但我的機器人沒有被誘導成功。
幾個小時后,pDAO發出了真實的交易。經過數周的研究和準備,我知道關鍵時刻到了。我這邊一切都進行很順利:我的監聽腳本運行的很好,交易被接收,交易捆也被構建和提交了。
.....然后意外發生了。連續多個區塊都沒有Flashbots區塊被挖出。我不僅因此失去了機會,也沒有Flashbots搜索器贏得了機會。在區塊頂部沒有了Flashbots交易捆起阻擋作用,一個雄心勃勃的交易池機器人介入了,并搶走了所有有利可圖的貸款。
盡管輸了,但我認為我的方法仍然是正確的。我的優勢在于策略和發現新機會,而不是參與PGA(最優GAS費競拍)。因此,使用Flashbot給了我勝出的最佳機會。鑒于Flashbots已被廣泛采用,遇上連續好幾個非Flashbots區塊也是相當不走運了。
MEV有時被認為是神秘莫測的超級程序員的領域,但它不一定是這樣的。它可以是有趣和刺激的。而游戲規則,如果你要搜尋它們的話,可以說是開放的。這篇文章是關于我學習我所參與的游戲的規則的過程,根據這些規則我想出了策略,并最終執行該策略。盡管我輸了,我學到了很多東西,并在此過程獲得了樂趣。我希望你們也可以,并希望你和我一起參與下一輪的游戲。
原文鏈接:https://bertcmiller.com/2021/09/05/mev-synthetix.html
Tags:GASETHASHBOT0XGAS價格ethnographyinbusiness答案Pepe Dash AIDeezBots
Gate.io將于2021年9月13日18:00上線Synthetify(SNY)交易。Synthetify協議支持去中心化預言系統價格下的價格創建,交易以及合成資產的銷毀.
1900/1/1 0:00:00為歡迎KuCoin合約新用戶,KuCoin合約現開啟為期一周的新手專屬獎勵活動。活動期間,所有合約新手用戶都有機會贏取贈金禮包,總獎池價值50,000USDT!填寫表單報名,領取你的合約第一桶金.
1900/1/1 0:00:00中秋佳節,花好月圓。此前Gate.io為答謝平臺VIP用戶先后推出的“Gate.io月圓中秋:感恩VIP免費贈禮活動”、“Gate.io跨所禮遇賀中秋,他所我所共享VIP免費贈禮活動”均已圓滿結.
1900/1/1 0:00:00DeFiLlama數據顯示,Polygon網絡目前的鎖倉價值約為47億美元。而6月15日,該數據為105億。這意味著,過去3個月,Polygon的鎖倉價值跌了整整55%.
1900/1/1 0:00:00Gate.io直播間作為行業內首個交易所內置直播功能,通過多樣性的直播形式為平臺用戶帶來具有深度、有趣、開放的信息內容.
1900/1/1 0:00:00親愛的ZT用戶: ZT創新板即將上線MPS,并開啟MPS/USDT交易對。具體上線時間如下:充值:已開啟;交易:2021年9月13日16:30?; MPS ZT創新板開放MDOGE/USDT交易.
1900/1/1 0:00:00