去中心化金融(英语: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 函数:
Web3游戏生态系统Fastex通过代币销售筹集2320万美元:金色财经报道,由SoftConstruct孵化的Web3游戏生态系统 Fastex 通过出售其代币 Fasttoken (FTN) 筹集了 2320 万美元。FTN 是一种建立在以太坊 ( ETH-USD ) 网络上的 ERC-20 加密货币,作为 Fastex 经济的实用代币,该代币解锁了 Fastex 生态系统中托管的所有 Web3 产品和服务。已有 100 多家游戏提供商采用 FTN 为其 GameFi 游戏提供支持。
筹集的资金将推动 Fastex 生态系统的发展,其中包括 Fastex Chain、ftNFT 市场、Fastex Pay 和 Fastex Verse metaverse。[2023/2/9 11:55:44]
该函数用于移除其中一个代币为 WETH 的流动性,其内部调用 removeLiquidity 函数时传入的 to 的地址为 address(this),也就是会将两种代币先转移到 Router 合约中,然后 Router 合约再将两种代币转移到指定的地址。这里虽然转移的 WETH 的数量是 removeLiquidity 返回的,无法修改,但是转移的另一种 Token 的数量是 balanceOf(address(this)),即 Router 合约中的该代币的余额。
区块链游戏GEOPOLY通过代币私募融资300万美元:12月6日消息,区块链游戏GEOPOLY通过代币私募在48小时内筹集300万美元。GEOPOLY已发布其网站和白皮书。该项目已开始社区建设,计划于12月12日进行NFT预售。Beta V2发布将在2021年Q4和2022年Q1之间的某个时间进行。GEOPOLY代币也将在该时间段内推出,用户可以在游戏中使用。GEO代币将使用户能够在网络和链上以NFT的形式购买、升级和销售业务。GEO代币将于2022年1月在中心化交易所上线。
公开TGE(代币生成活动)将于12月15日在SushiSwap上进行,对所有人开放。PvP(玩家对玩家)原型发布、拍卖和候选发布计划于2022年进行。(Bitcoinist)[2021/12/6 12:54:14]
因此根据上述分析,我们能得到一个套利的流程:
监控到 Router 02 合约存在 ERC 20 代币;
调用 addLiquidityETH 添加该 ERC 20 代币和 WETH 的流动性;
调用 removeLiquidityETHSupportingFeeOnTransferTokens 移除流动性。
二层NFT交易平台Immutable X通过代币销售筹集超1250万美元:金色财经报道,二层NFT交易平台Immutable X宣布在 CoinList 上的代币销售在不到一个小时内售罄,筹集了超过 1250 万美元。\tImmutable 周一宣布,在注册参与销售的 720,000 个账户中,只有约 25,000 个(3.6%)能够因需求而进行购买。该协议准备与许多 NFT 市场集成,包括OpenSea和Mintable。[2021/9/27 17:10:28]
局限性:
如果该代币之前没有和 WETH 组流动性,当第一次添加流动性时会损失一小部分流动性(MINIMUM_LIQUIDITY);
暂时未发现提取 Router 02 合约中的 WETH 和 ETH 的方法。
Uniswap V2 Pair
Uniswap V2 Pair 合约,即所谓的流动性池,存储着提供流动性的 2 种代币,因为 Pair 合约中使用的是 reserve 来记录余额而不是 balanceOf(address(this)),因此有人直接误转流动性代币到合约中时会出现 balance 和 reserve 出现差值,而 Pair 合约中存在平衡函数 skim,我们可以调用该函数将这差值数量的代币给提取出来:
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]
NFT交易卡游戏Splinterlands通过代币私募融资360万美元,Animoca Brands等参投:NFT交易卡游戏Splinterlands通过SPS代币私募融资360万美元,Animoca Brands、Blockchain Founders Fund、Enjin、Polygon、Yield Guild Games、Gate.io、3Commas Capital、Alpha Sigma Capital、AGE Crypto Asset Investment Fund、TechmeetsTrader。个人投资者包括Ran Neuner以及Taiwan Mobile、Simplex和Sandbox的创始人。(Cointelegraph)[2021/7/28 1:19:17]
可以看到该函数会将流动性池中两种流动性代币的 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
作者:西柚 来源:ChainCatcher原标题:以太坊上海升级,老牌 DeFi 应用如何切入 LSD 赛道分一杯羹? 以太坊质押或将催生千亿规模的 LST,正在重构和改变传统 DeFi 应用的收入结构.
1900/1/1 0:00:00DeFi数据 1、DeFi代币总市值:485.97亿美元 DeFi总市值及前十代币 数据来源:coingecko2、过去24小时去中心化交易所的交易量23.
1900/1/1 0:00:004月14日获悉,处置非法集资部际联席会议办公室(下称“处非联办”)有关负责人近日指出,当前,非法集资风险总体可控、趋于收敛,但非法集资存量风险持续暴露,增量风险诱发因素增多,风险反弹压力依然较大,因此,广大人民群众应树立理性投资理念.
1900/1/1 0:00:00他称这种 AI 为“寻求真理 ”的新型人工智能聊天机器人“TruthGPT”,这似乎是在对大热的 ChatGPT 发起挑战.
1900/1/1 0:00:00日前, Nautilus Chain 推出了测试网“ Triton”,并且生态中首个 DEX PoseiSwap也在测试网上被推出,PoseiSwap 作为 Nautilus Chain 生态发展早期的主要DEX.
1900/1/1 0:00:00社区争议不断的 Sui,还值得投资吗? 撰文:Leo 从去年开始炒的 Sui 终于发币了,二级市场比较关心 Sui token 估值.
1900/1/1 0:00:00