# 在NFT一哥BAYC头上套利80万美金的技术真相

By [fancyAlex](https://paragraph.com/@fancyalex) · 2022-03-18

---

NFT一哥无聊猿BAYC([Bored Ape Yacht Club](https://opensea.io/collection/boredapeyachtclub))给持有者空投APECOIN，整个业界好不热闹。持有BAYC的地址可以claim 10094APE，一时间口水与泪水齐飞。

空投刚开始不久就有了一位顶级科学家完成了一次传奇套利：大家都还没看清套利手法，他已经赚到了278ETH约80万美金。

Alex也非常好奇，这位科学家是怎么做到的？套利的技术原理和流程到底是什么？其他产品是否还有类似的漏洞(机会)存在？

区块链的公开账本，让我们有机会去分析套利的技术真相。

### 综述

1.  套利交易：
    
    [0xeb8c3bebed11e2e4fcd30cbfc2fb3c55c4ca166003c7f7d319e78eaab9747098](https://etherscan.io/tx/0xeb8c3bebed11e2e4fcd30cbfc2fb3c55c4ca166003c7f7d319e78eaab9747098)
    
2.  套利者地址是：0x6703741e913a30d6604481472b6d81f3da45e6e8 (大概率是 [https://yieldfarming.com/](https://yieldfarming.com/) 团队成员的杰作，后文有线索说明)
    
3.  套利成本：106ETH
    
4.  套利收益：**278ETH，约80万美金**
    
5.  套利手法：不是从Sushi做了闪电贷。不过手法和闪电贷类似，在一个transaction中反复使用nftx的mint/redeem，来获得多个的BAYC NFT的所有权，从而claim APECOIN
    
    更正：感谢 [@twodam.eth](https://twitter.com/twodam_eth) 的进一步深入核实：是在[NFTX](https://nftx.io)中使用了闪电贷，来获得多个的BAYC NFT的所有权，从而claim APECOIN
    

> 分析ethersan.io数据时的Tips：
> 
> *   一个Transaction内部的各个transfer的展示顺序，并不代表真实的逻辑顺序。因为合约的代码执行是有逻辑顺序的，但上链的数据是并发的状态
>     
> *   Tokens Transferred内容也是运算的结果，并不是运算过程。
>     

也欢迎小伙伴来一起讨论，求真第一：

[https://twitter.com/fancycedar](https://twitter.com/fancycedar)

### 具体的技术原理和流程如下

1.  套利者从FTX提现了159.99ETH(后文我们就按160ETH计算)到 0x6703741e913a30d6604481472b6d81f3da45e6e8
    
2.  已106ETH从Opensea.io买入BAYC的#1060，Item Activity里可以发现是 yieldfarmingdotcom ([https://opensea.io/assets/0xbc4ca0eda7647a8ab7c2061c2e118a18a936f13d/1060](https://opensea.io/assets/0xbc4ca0eda7647a8ab7c2061c2e118a18a936f13d/1060))
    
3.  创建包含套利操作流程的合约：0x7797A99a2e91646aBdc9DC30e838A149CCB3013B
    
4.  合约内执行逻辑：
    
    *   从0x6703地址转出BAYC#1060到合约0x7797
        
    *   0x7797和NFTX合约交互，给出Mint 6次、Redeem 5次的操作结果。综合计算如下：
        
        *   Mint: 6次，NFTX规则是每次消耗10%手续费，获得 6\*_0.9 = 5.4 vToken BAYC_
            
        *   Redeem: 5次，采用Random方式，每次消耗4%手续费，需要消耗 5\*\*1.04= 5.2 vToken BAYC
            
        *   **NFTX合约判定vToken足够**，则执行操作
            
        *   **0x7797得到**：剩余的0.2 vToken，以及瞬时的6个BAYC NFT的owner权，立即Claim APECOIN 6份，共计60,564APECOIN
            
        *   **0x7797失去**：BAYC#1060这个NFT(购买**成本**为106ETH)
            
        *   0x7797再创建合约0x3ebd3d86f810b141f9b2e9b15961fc66364b54f3，自动卖出剩余的0.2 vToken，得到14.15ETH并转账给0x6703
            

![套利合约的运算结果上链](https://storage.googleapis.com/papyrus_images/95b9d78dde04040fc96249a06b9512375198ad75303fb2c9a56a36d6e685b8f6.png)

套利合约的运算结果上链

套利合约执行完成，0x6703手动卖出APECOIN、增减LP。最后转出了399ETH，持有19.2ETH+7,273APECOIN的LP(可以约等于38.4ETH)

![Mint时需要支出10%BAYC给现有的Staker(原谅我没有BAYC...)](https://storage.googleapis.com/papyrus_images/f1deebfd162afe8cc433cea9a02057b099aa650ae18bf0b24984dc1be5a4833d.png)

Mint时需要支出10%BAYC给现有的Staker(原谅我没有BAYC...)

![Random方式兑换手续费最低为1.04 BAYC](https://storage.googleapis.com/papyrus_images/bb75146825700a58e17ea5311ac3a77c1aa9e73c5b5de9e6d9c01d785165fa13.png)

Random方式兑换手续费最低为1.04 BAYC

### 深入堆栈：

感谢 [@twodam.eth](https://twitter.com/twodam_eth) 的进一步深入核实：

堆栈信息：

[0xeb8c3bebed11e2e4fcd30cbfc2fb3c55c4ca166003c7f7d319e78eaab9747098](https://dashboard.tenderly.co/tx/mainnet/0xeb8c3bebed11e2e4fcd30cbfc2fb3c55c4ca166003c7f7d319e78eaab9747098/debugger?trace=0.2.0.1.0)

这笔交易的操作路径应该是：

1.  闪电贷借出 5.2 $BAYC
    
2.  赎回 5 个 BAYC NFT
    
3.  领取 $APE
    
4.  存入 BAYC #1060 并归还借来的 5 个 BAYC，用来铸造 $BAYC ，归还本金加利息
    
5.  卖出剩余的 $BAYC 代币
    

$BAYC 数值：

1.  借出 5.2
    
2.  铸造 6 （1:1）
    
3.  利息 0.6
    

![](https://storage.googleapis.com/papyrus_images/5cb09fec4df65ac510483a156e1d55aa3d00ed5148a867139b4dcb8dbb10e4da.jpg)

![](https://storage.googleapis.com/papyrus_images/970e7ebad28bdb22e65be0989b25d17b20a25272f346d4ee31691aeb520275c2.jpg)

![](https://storage.googleapis.com/papyrus_images/35a7d67bb705ab170f2a36ec70fc73be5b79acb525224e0e259a5de7aa3e9f49.png)

**综合来看：**

*   **初始资金：160ETH，其中106ETH为真实支出成本**
    
*   **终局资金： 转出399+LP38.4+余额1.48≈438ETH**
    
*   **套利收益：438-160=278 ETH**
    

### 感慨

套利者对于合约的研究特别透彻，艺高人胆大，成就了一次传奇套利。

非常希望作者能站出来贡献思路和心得，并为后来的项目提供规避此类问题的建议。

毕竟说到底，这是白嫖了Staker的claim权益。

---

*Originally published on [fancyAlex](https://paragraph.com/@fancyalex/nft-bayc-80)*
