木星链 木星链
Ctrl+D收藏木星链
首页 > 火必 > 正文

SWAP:通过代码识别DeFi中的套利机会

作者:

时间:1900/1/1 0:00:00

去中心化金融(英语: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 函数:

美众议院金融服务委员会通过代币托管法案:金色财经报道,美国众议院金融服务委员会表示《支付稳定币透明度法案》(Clarityfor Payment Stablecoins Actof 2023)和《保存代币法案》(Keep Your Coins Actof 2023)与其他五项金融相关法案一起获得通过。这些法案分别旨在对支付稳定币的发行提供监管,并确保允许加密货币用户在自我托管钱包中保管其资产。

金色财经此前报道,美国众议院金融服务委员会就《Clarityfor Payment Stablecoins Actof 2023》和《Keep Your Coins Actof 2023》进行审议投票。[2023/7/28 16:04:04]

该函数用于移除其中一个代币为 WETH 的流动性,其内部调用 removeLiquidity 函数时传入的 to 的地址为 address(this),也就是会将两种代币先转移到 Router 合约中,然后 Router 合约再将两种代币转移到指定的地址。这里虽然转移的 WETH 的数量是 removeLiquidity 返回的,无法修改,但是转移的另一种 Token 的数量是 balanceOf(address(this)),即 Router 合约中的该代币的余额。

建筑公司IBN将通过代币销售筹集资金建造马来西亚豪华度假村:4月27日消息,东南亚最大的建筑公司之一IBN Corp宣布将通过代币销售筹集资金建造豪华度假村酒店。

据悉,其最新价值十亿美元的项目IBN Highlands City将拥有豪华级别的酒店式公寓、商业区和五星级酒店。他们将通过出售代币来支付建造费用。

IBN Corp表示,资产代币化“有可能增加更广泛市场的投资者数量,与传统债券相比增加流动性,并减少执行大型项目所需的时间。”

Brazilian Luiz Góes是代币化项目的开发商,该项目将为马来西亚IBN Highlands City-Fortune大厦的建设提供资金。Góes是LGBank联合创始人和LYOPAY首席执行官。

将有325000枚Hasbrotel Token(HASHM)出售。该项目希望筹集3.25亿美元资金,完成日期为2025年。(Beincrypto)[2022/4/27 2:34:12]

因此根据上述分析,我们能得到一个套利的流程:

监控到 Router 02 合约存在 ERC 20 代币;

调用 addLiquidityETH 添加该 ERC 20 代币和 WETH 的流动性;

基于Cardano的NFT平台Cadalabs通过代币销售完成100万美元融资:10月22日消息,基于Cardano的NFT平台Cadalabs通过代币销售完成100万美元融资。CADALABS协议是在Cadalabs网络上构建NFT铸造Dapp的社区驱动的NFT平台,数字艺术品收藏家能够将他们的作品铸造为NFT,并将它们与卖家连接起来,进行无缝交易。CALAABS团队开发了名为CALA的实用代币,使社区能够参与治理问题。此外,通过持有CALA代币,用户可以管理创作者、对提案进行投票、质押他们的代币以赚取和策划特色艺术品。CALA代币已经在Cardano上铸造,总代币供应量为1亿个CALA代币。(Coinquora)[2021/10/22 20:48:07]

调用 removeLiquidityETHSupportingFeeOnTransferTokens 移除流动性。

局限性:

如果该代币之前没有和 WETH 组流动性,当第一次添加流动性时会损失一小部分流动性(MINIMUM_LIQUIDITY);

暂时未发现提取 Router 02 合约中的 WETH 和 ETH 的方法。

Web3数据生态系统Pocket Network通过代币公开销售筹资930万美元:4月29日,Web3数据生态系统Pocket Network发推宣布通过代币公开销售筹资930万美元,投资者包括BlockArk、OKEx、ZEEPrimeCapital、FreeCompany、DACM、LDCapital、Apollo、EdenBlock、Blockchain.com、Republic、FBGCapital、DIVERGENCE、RedBlock、atkc、CMS、MechanismCapital、BorderlessCapital、DFG、FacultyCapital、DecentralPark以及其他200余个节点运行商。[2021/4/29 21:11:28]

Uniswap V2 Pair

Uniswap V2 Pair 合约,即所谓的流动性池,存储着提供流动性的 2 种代币,因为 Pair 合约中使用的是 reserve 来记录余额而不是 balanceOf(address(this)),因此有人直接误转流动性代币到合约中时会出现 balance 和 reserve 出现差值,而 Pair 合约中存在平衡函数 skim,我们可以调用该函数将这差值数量的代币给提取出来:

DeFi协议Sovryn通过代币预售筹集250万美元:基于比特币的DeFi协议Sovryn周四宣布,该公司已通过代币预售融资250万美元。Sovryn联合创始人Edan Yago表示,预售为其社区保留,这允许参与者确保他们有购买协议原生代币SOV的权利,SOV将于下月启动。(TheBlock)[2021/1/28 14:15:35]

可以看到该函数会将流动性池中两种流动性代币的 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

标签:SWAPNBSBSPUniswapFastSwap (BSC)nbs币最新消息BSPAY币uniswapwallet教程

火必热门资讯
ARB:网络数据对比:Arbitrum发币 Optimism落败?

撰写:Emperor Osmo编译:深潮 TechFlow以太坊二层解决方案已经有了许多不同的选择,而 Arbitrum 和 Optimism 被认为是市场上最具竞争力的两个参与者.

1900/1/1 0:00:00
ETH:ETH Tokyo 完成时 有哪些项目正在Build?

4月13日-16日,ETHGlobal 黑客松在东京拉开帷幕,将会带来哪些新发现?4 月 13 日,ETH Global Tokyo 黑客松在东京开幕.

1900/1/1 0:00:00
WEB:从金融中心到Web3中心 香港准备好迎接“黄金时代”了吗?

近日,香港web3嘉年华开启,香港又一次吸引了全球行业的目光。如此声势浩大,再加上政府背书与鼎力支持,香港一时成为了风水宝地,势头已经压过新加坡.

1900/1/1 0:00:00
代币化:金色观察 | RWA及相关协议盘点

文/Iam ZeroIka,加密KOL;译/金色财经xiaozou现实世界资产将彻底改变传统金融,预计将带来数万亿美元资本的增长.

1900/1/1 0:00:00
区块链:对话加密者:如何保护自己的加密资产?

原文作者:Rekt Fencer,加密研究员原文编译:Leo,BlockBeats钱包是 Web 3 用户最基础的设施,但无论大家多么谨慎,还是会被一些网站掌握钱包的私密数据.

1900/1/1 0:00:00
NFT:Ordinals在Web3 Festival:比特币Ordinals社区的第一次聚会

原文作者:Cookie,律动 BlockBeats在 2 月初的一个深夜发现了 Ordinals 协议后,我就深深迷上了比特币主网上的 NFT.

1900/1/1 0:00:00