# 闪电贷详解,你也可以成为科学家:零成本套利无聊猿$Ape **Published by:** [kk](https://paragraph.com/@ethisweb3/) **Published on:** 2022-04-28 **URL:** https://paragraph.com/@ethisweb3/ape ## Content 本文展示的所有代码全部开源: https://github.com/KeFuCode/ApeFlashLoan攻击步骤攻击者主要执行三个步骤: **步骤1:**攻击者通过闪电贷从NFTX金库获取无聊猿碎片--ERC20代币,并将其转换为NFT。NFTX金库**步骤2:**攻击者使用获取的 NFT 获取空投代币$Ape。$Ape Claim**步骤3:**将 NFT 质押到NFTX金库,获取质押的 ERC20 代币,闪电贷还款,并将获利资金转移到钱包地址。获利分析交易流程https://etherscan.io/tx/0xeb8c3bebed11e2e4fcd30cbfc2fb3c55c4ca166003c7f7d319e78eaab9747098闪电贷借5.2个vToken通过借到的5.2个vToken赎回5个BAYC,这里费用为randomRedeemFee为0.04,所以5*0.04=0.2个vToken交给FeeDistributor进行分配。到这时,0x77有6个BAYC。用6个BAYC领取$Ape空投将6个BAYC铸造为vToken,这里因为有mintFee 0.1,所以0.6个vToken再次被分配。最终得到5.4个vToken。将5.2个vToken归还闪电贷,0.2个vToken在sushiswap上卖出得到14个eth。利益计算投入:1BAYC + 100ETH产出:14ETH + 60000$Ape(213ETH)利润:227ETH - 100ETH = 127ETH闪电贷核心合约1.闪电贷借出vTokenflashLoan是进行闪电贷的核心代码,注意到下图第三行调用了onFlashLoan,所有调用闪电贷进行的套利行为,都发生在onFlashLoan中。NFTXVaultUpgradeable.sol在你调用NFTX金库进行闪电贷的合约中,最关键的也就是将onFlashLoan重写。NFTXVaultUpgradeable.sol2.使用vToken兑换NFT这一步主要调用redeem,将闪电贷获得的bayc碎片从NFX金库中,全部换成bayc。NFTXVaultFactoryUpgradeable.sol可以看到redeem调用了redeemTo函数,兑换bayc的逻辑都在redeemTo里。NFTXVaultFactoryUpgradeable.sol3.使用NFT领取空投合约内获取bayc之后,调用$ApeCoin领域空投的智能合约。AirdropGraphsToken.sol4.将NFT铸造为vToken使用合约内的bayc领取空投之后,调用NFTX金库的mint函数,将合约内的bayc重新铸造为bayc碎片token,并还给NFTX金库,完成闪电贷流程。NFTXVaultUpgradeable.sol套利过程再现套利合约https://github.com/KeFuCode/ApeFlashLoan/blob/main/contracts/Hunter.sol运行合约脚本https://github.com/KeFuCode/ApeFlashLoan/blob/main/scripts/run.js ## Publication Information - [kk](https://paragraph.com/@ethisweb3/): Publication homepage - [All Posts](https://paragraph.com/@ethisweb3/): More posts from this publication - [RSS Feed](https://api.paragraph.com/blogs/rss/@ethisweb3): Subscribe to updates