去中心化金融(英語:Decentralized finance,俗稱 DeFi)是一種創建于區塊鏈上的金融,它不依賴券商、交易所或銀行等金融機構提供金融工具,而是利用區塊鏈上的智能合約進行金融活動。在 DeFi 中存在了大量的套利機會,包括但不限于清算、差價套利。本文將分析部分去中心化交易所(DEX)以及聚合器(Aggregator)在合約代碼上可能存在的套利機會。
Uniswap 是一個采用了自動做市商(AMM)模型的去中心化的加密貨幣交易平臺,目前有兩個流行的版本,分別是 Uniswap V2 和 Uniswap V3,我們將分別分析其中可能存在的套利機會。
Uniswap V2 Router
在 Uniswap V2 中,用戶一般是通過 Router 合約與 Pair 合約以及 Factory 合約進行交互。通常來說 Router 只是會在交易中中轉代幣,而不會存儲代幣,但由于種種原因,如空投、轉賬失誤導致 Router 合約中存儲了某些代幣。那么如何將這些代幣提取出來呢?
通過分析 Uniswap V2 Router 02 合約的代碼,發現存在 removeLiquidityETHSupportingFeeOnTransferTokens 函數:
Ginga Finance通過代幣公開預售融資37萬美元:12月14日消息,去中心化加密貨幣項目Ginga Finance近日在Pinksale Launchpad進行代幣公開預售, 從1013 名投資者那里共籌集650 BNB(價值37萬美元)。Ginga Finance計劃發布NFT收藏品。(Cryptodaily)[2021/12/14 7:37:45]
該函數用于移除其中一個代幣為 WETH 的流動性,其內部調用 removeLiquidity 函數時傳入的 to 的地址為 address(this),也就是會將兩種代幣先轉移到 Router 合約中,然后 Router 合約再將兩種代幣轉移到指定的地址。這里雖然轉移的 WETH 的數量是 removeLiquidity 返回的,無法修改,但是轉移的另一種 Token 的數量是 balanceOf(address(this)),即 Router 合約中的該代幣的余額。
因此根據上述分析,我們能得到一個套利的流程:
監控到 Router 02 合約存在 ERC 20 代幣;
DeSo區塊鏈通過代幣銷售獲得2億美元融資,a16z等參投:9月21日消息,BitClout創始人(化名為Diamondhands)透露自己的身份是穩定幣初創公司Basis創始人Nader Al-Naji,Basis因監管限制于2018年關閉。Nader Al-Naji的新區塊鏈網絡Decentralized Social(DeSo)通過出售DESO代幣獲得2億美元融資,Andreessen Horowitz(a16z)、Sequoia、Social Capital、TQ Ventures、Coinbase Ventures、Winklevoss Capital、Polychain Capital、Pantera Capital、Arrington Capital、Blockchange Ventures、Distributed Global、Blockchain.com Ventures、Hack Ventures、Reddit聯合創始人Alexis Ohanian等參投。
DeSo區塊鏈支持傳統社交媒體功能(如創建個人資料和帖子)以及區塊鏈原生功能(如社交代幣、小費和NFT),這些功能可以讓創作者賺錢。Al-Naji表示,所有想要使用DeSo區塊鏈或基于該區塊鏈構建的應用程序的人都必須持有DESO代幣。[2021/9/21 23:40:46]
調用 addLiquidityETH 添加該 ERC 20 代幣和 WETH 的流動性;
跨保證金交易平臺MangoMarket通過代幣銷售籌資7000萬美元:Solana生態去中心化跨保證金交易平臺MangoMarket在關于MNGO代幣的銷售中籌集了逾7000萬美元(70462383美元),且24小時的銷售過程中最高有5億美元左右的資金涌入。此次代幣銷售從平臺自身的資金池以及Serum中獲取流動性,同時未對美國用戶開放。代幣MNGO主要有三個用途:保險基金、治理代幣、激勵做市商的流動性挖礦獎勵,其中90%的代幣被鎖定在治理基金中,5%的代幣被鎖定在保險單中,其余的代幣被鎖定在貢獻者代幣中,而此次融資所得將全部投入DAO保險基金,如發生意外,則將為協議的貸方提供保障。MangoMarket是基于Solana生態的去中心化跨保證金交易平臺,在SerumDEX的鏈上訂單簿上具有高達5倍的杠桿率和集成的限價訂單,用戶可以賺取存款和保證金頭寸的利息,今年3月也在Solana與Serum舉辦的黑客松活動中獲獎。(coindesk)[2021/8/12 1:49:43]
調用 removeLiquidityETHSupportingFeeOnTransferTokens 移除流動性。
局限性:
如果該代幣之前沒有和 WETH 組流動性,當第一次添加流動性時會損失一小部分流動性(MINIMUM_LIQUIDITY);
動態 | Kik對抗SEC或將促使監管機構對通過代幣銷售發行的加密貨幣分類進行明確裁決:雖然很難對加密貨幣Kin的創造者Kik和SEC之間將發生的事情做出決定性預測,Kobre&Kim律師Benjamin J. Sauter表示,不管輸贏,Kik在公開對抗SEC方面邁出重要的一步:針對主管部門花很長時間才達成執法決定,以及SEC缺乏透明度而對美國加密行業造成損害,Kik表達了不滿。這可能會促使監管機構最終就如何對通過代幣銷售發行的加密貨幣進行分類做出一些明確裁決。如果該公司確實貫徹其倡議并起訴SEC,那么無論結果如何,美國法院很可能會做出這樣的裁決。(Cointelegraph)[2019/6/2]
暫時未發現提取 Router 02 合約中的 WETH 和 ETH 的方法。
Uniswap V2 Pair
Uniswap V2 Pair 合約,即所謂的流動性池,存儲著提供流動性的 2 種代幣,因為 Pair 合約中使用的是 reserve 來記錄余額而不是 balanceOf(address(this)),因此有人直接誤轉流動性代幣到合約中時會出現 balance 和 reserve 出現差值,而 Pair 合約中存在平衡函數 skim,我們可以調用該函數將這差值數量的代幣給提取出來:
聲音 | 郭達峰:DApp 開發者可以通過代碼設計高效使用RAM:EOS Asia 的郭達峰在《EOSLaoMao · 寧話區塊鏈》的節目中稱“ DApp 開發者可以通過代碼設計高效使用內存(RAM),即只在內存里存少量必要的數據。EOS Asia 在開發 DApp 時就特別為內存使用量進行優化。比如我們正在孵化的廣告行業區塊鏈解決方案TXT項目就需要儲存大量的數據,對于這些數據我們并不會儲存到內存(RAM),而是設計了一套第二層的儲存鏈。通過這種方式,TXT只需要把大部分數據都存到了儲存鏈,對主鏈的內存需求就大大減少了。”[2018/7/25]
可以看到該函數會將流動性池中兩種流動性代幣的 balance 和 reserve 差值數量的代幣轉移到 to 地址。
流動性池中除了這兩種代幣外,也會因為誤轉、空投等原因存在其他的 ERC 20 代幣,如何提取這一部分的代幣呢?
對 Pair 合約的代碼分析后發現無法提取這一部分代幣,只有一種情況例外:當流動性池中存在該池的 LP 代幣時。
出現這種情況我們可以調用 Pair 合約的 burn 函數,移除流動性,取出相應的兩種流動性代幣:
Uniswap V3 SwapRouter
Uniswap V3 的 SwapRouter 合約中也會存在和 Uniswap V2 Router 一樣的情況,存在 ERC 20 代幣和 ETH,但是幸運的是 SwapRouter 合約提供了幾個函數可以方便提取其中的代幣。
提取 ERC 20 代幣我們可以使用 sweepToken 函數:
提取 ETH 我們可以使用 refundETH 函數:
也能夠直接調用 unwrapWETH 9 函數將 WETH 還原成 ETH 并提取出來:
以上是對 Uniswap V3 SwapRouter 合約的套利分析。
在對 Uniswap V3 Pool 合約的代碼進行分析后,發現沒有辦法提取其合約中的其他代幣,也不存在如 Uniswap V2 Pair 合約中 balance 和 reserve 有差值的情況。
SushiSwap 最初是一個 Uniswap 的分叉項目,后來發展成為一個獨立的生態系統,提供了許多不同的金融服務和產品。
因為 SushiSwap 和 Uniswap V2 一樣,因此上述的針對 Uniswap V2 的套利手段對與 SushiSwap 也同樣適用。
SushiXSwap
SushiXSwap 是 SushiSwap 推出的基于 LayerZero 的全鏈交易協議,支持的網絡包括 Optimism、Arbitrum、Fantom、BNB Chain、Polygon 和 Avalanche。用戶可以在支持的網絡以及資產之間進行跨鏈交易。
如何提取 SushiXSwap 合約中的代幣呢?
SushiXSwap 中主要的功能都通過 cook 函數實現,該函數提供了一系列的操作,支持操作列表如下:
其中有一個操作 ACTION_DST_WITHDRAW_TOKEN,其代碼實現如下:
首先將傳入 cook 函數的 data 進行解碼,然后判斷 amount 是否等于 0 ,等于 0 則將 amount 的值設為該合約的 ERC 20 代幣的余額或者 ETH 的余額。最后調用 _transferTokens 將代幣轉移到指定的地址:
因此我們只需要構造傳入 cook 函數的 actions 和 datas,即將 actions 設置為 ACTION_DST_WITHDRAW_TOKEN ,在 data 中構造想要轉移的代幣、接收地址、數量,即可轉移出 SushiXSwap 合約中的代幣。
Sushi BentoBox
Sushi BentoBox 是 SushiSwap 生態系統中的一個組件。BentoBox 是一個高度靈活的去中心化金融(DeFi)利率優化產品。簡單來說,它是一個允許用戶存儲、借用和賺取利息的智能合約平臺。BentoBox 的主要目的是優化用戶在 DeFi 領域中的收益。
以太坊上的 BentoBox 合約中存儲了大量了代幣,那么該合約是否存在套利的空間呢?
在 BentoBox 合約中用戶可以通過 deposit 函數進行存款操作,函數的實現如下:
可以看到用戶傳入指定的代幣地址,扣款地址,接收地址,數量,股份數量,函數首先做了一系列校驗,然后將 amount 或者 share 進行轉換,關鍵點在 195 - 198 行,這里做了一個校驗 :amount Odaily星球日報
媒體專欄
閱讀更多
金色財經 善歐巴
Chainlink預言機
白話區塊鏈
金色早8點
歐科云鏈
深潮TechFlow
BTCStudy
MarsBit
Arcane Labs
作者:餅干,ChainCatcherIron Fish,一個以二戰加密傳輸語“潛艇”命名的隱私項目,在完成由 a16z 領投的 2770 萬美元 A 輪融資之后估值達到 1.9 億美元.
1900/1/1 0:00:00本周 #Megascope 涵蓋以下內容:1)穩定幣項目 HAI 解析2)Starknet 發布 2023 路線圖3)Data Check:PEPE 和 AIDOGE 數據表現 DeFi 穩定幣.
1900/1/1 0:00:00作者:wale.swoosh編譯:深潮 TechFlow本文將列舉三個 NFT 項目,分析 FUD 如何影響它們,并從中得出一些經驗教訓.
1900/1/1 0:00:00歐盟的Crypto市場(MiCA)監管可能成為全球標準。現在歐洲議會批準了MiCA,它將影響在歐盟開展業務的集中式Crypto交易所。它還可能影響其他地方的Crypto監管.
1900/1/1 0:00:00撰文:Smokey the Bera,Berachain 聯創編譯:Leo,BlockBeats昨日,Layer 1 公鏈 Berachain 宣布完成了 4200 萬美元融資.
1900/1/1 0:00:00俗話說,“打蛇打七寸”,而 Web3 的命脈無非是信息獲取渠道——去中心化應用程序( DApp),它的優劣程度則決定了 Web3 是否會像上次的互聯網革命一樣普惠大眾.
1900/1/1 0:00:00