去中心化金融(英语: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 函数:
基于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]
该函数用于移除其中一个代币为 WETH 的流动性,其内部调用 removeLiquidity 函数时传入的 to 的地址为 address(this),也就是会将两种代币先转移到 Router 合约中,然后 Router 合约再将两种代币转移到指定的地址。这里虽然转移的 WETH 的数量是 removeLiquidity 返回的,无法修改,但是转移的另一种 Token 的数量是 balanceOf(address(this)),即 Router 合约中的该代币的余额。
西班牙交易所Bit2Me通过代币销售融资2390万美元:9月26日消息,西班牙最大加密货币交易所Bit2Me最近推出基于以太坊的代币B2M,并通过三轮代币公募筹集2390万美元(2000万欧元)。(Bitcoinist)[2021/9/26 17:06:41]
因此根据上述分析,我们能得到一个套利的流程:
监控到 Router 02 合约存在 ERC 20 代币;
调用 addLiquidityETH 添加该 ERC 20 代币和 WETH 的流动性;
调用 removeLiquidityETHSupportingFeeOnTransferTokens 移除流动性。
局限性:
如果该代币之前没有和 WETH 组流动性,当第一次添加流动性时会损失一小部分流动性(MINIMUM_LIQUIDITY);
暂时未发现提取 Router 02 合约中的 WETH 和 ETH 的方法。
Uniswap V2 Pair
Uniswap V2 Pair 合约,即所谓的流动性池,存储着提供流动性的 2 种代币,因为 Pair 合约中使用的是 reserve 来记录余额而不是 balanceOf(address(this)),因此有人直接误转流动性代币到合约中时会出现 balance 和 reserve 出现差值,而 Pair 合约中存在平衡函数 skim,我们可以调用该函数将这差值数量的代币给提取出来:
优盾钱包CMO孟春东:流动性挖矿实质就是将项目后期收益通过代币先分发给用户和社区:据官方渠道消息,针对持续火热的DeFi话题,近日优盾钱包CMO孟春东对外表示,回顾DeFi这波行情大事件,可以看到DeFi热潮源于流动性挖矿和Compound分发的治理代币,其实流动性挖矿的实质就是将一些项目后期收益通过代币先分发给用户和社区,它的好处是能快速获取用户,这是一个正常的互联网营销行为,但随着有很多项目模仿就将市场推向了非理性程度。
作为数字资产管理系统,优盾钱包团队近期深入分析,DeFi未来发展不会只局限于自动化做市商、借贷稳定币等,它应该会散发出一些新东西,比如跨界跨境金融,所以我们也投了一些涉及到跨境跨界汇款、转帐的产品,除了稳定币的机会外,这也是一个大机会。[2020/10/5]
可以看到该函数会将流动性池中两种流动性代币的 balance 和 reserve 差值数量的代币转移到 to 地址。
流动性池中除了这两种代币外,也会因为误转、空投等原因存在其他的 ERC 20 代币,如何提取这一部分的代币呢?
王纯:对于MEV可能存在的问题可通过代码的方式来应对:F2Pool联合创始人、stakefish创始人王纯在DeFi Discussions线上峰会探讨MEV(矿工可提取价值)话题时指出,以代码即法律的观点来讲,就要看代码是否允许提前交易重拍交易等矿工获取MEV的行为。这有些像探讨51%攻击一样,它是比特币的特点而不是bug。在2016年的The DAO事件时有许多关于分叉的争议,当时F2Pool可能是唯一不支持任何人为因素致使分叉的主流矿池,因为我们相信“代码即法律”。我们可能并不应该去限制自己这样的能力,而是在如果获取MEV成为问题或者对网络造成威胁,我们可以考虑创建一个API让每个人都能做到提前交易或者重排交易,依次来应对这个问题。这类似于Push Tx或者交易加速这种功能,目前已经有参与者询问我们是否可以提供在以太坊上类似的服务,我们可以看看这类服务如何影响网络。[2020/5/4]
对 Pair 合约的代码分析后发现无法提取这一部分代币,只有一种情况例外:当流动性池中存在该池的 LP 代币时。
出现这种情况我们可以调用 Pair 合约的 burn 函数,移除流动性,取出相应的两种流动性代币:
动态 | Kik对抗SEC或将促使监管机构对通过代币销售发行的加密货币分类进行明确裁决:虽然很难对加密货币Kin的创造者Kik和SEC之间将发生的事情做出决定性预测,Kobre&Kim律师Benjamin J. Sauter表示,不管输赢,Kik在公开对抗SEC方面迈出重要的一步:针对主管部门花很长时间才达成执法决定,以及SEC缺乏透明度而对美国加密行业造成损害,Kik表达了不满。这可能会促使监管机构最终就如何对通过代币销售发行的加密货币进行分类做出一些明确裁决。如果该公司确实贯彻其倡议并起诉SEC,那么无论结果如何,美国法院很可能会做出这样的裁决。(Cointelegraph)[2019/6/2]
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
作者:Cynic;来源: LK Venture Research如今,以太坊占据着区块链行业基础设施的半壁江山,但是其主网的统治地位正在被许多后来者挑战.
作者:秦晓峰 上周,比特币突破 31000 美元,以太坊突破 2100 美元,纷纷创下过去 10 个月以来的新高,极大刺激了市场的交易情绪,「牛回」等各种口号响彻各大加密社区.
原文作者:Web3_buidl 原文编译:Yvonne DeFi 战场已出现过几场知名「战争」,如 Curve 之战和 DEX 流动性之战。以太坊上海升级已启动下一个战争叙事——质押大战.
作者:wale.swoosh编译:深潮 TechFlow本文将列举三个 NFT 项目,分析 FUD 如何影响它们,并从中得出一些经验教训.
我们最近发现了一种新型的网络钓鱼技术,可用于在连接的去中心化应用(DApp)身份方面误导受害者。我们将这种新型的网络钓鱼技术命名为Modal Phishing(模态钓鱼攻击).
关联加密资产市场的Web3重新进入市场上升期,而被普遍视作Web3主流基建的以太坊区块链也在近日经历了一场重要升级.