搭建BSC Fullnode
要运行BSC全节点,首先需要有服务器,币安官方推荐服务器配置VPS running recent versions of Mac OS X or Linux.IMPORTANT 2T GB of free disk space, solid-state drive(SSD), gp3, 8k IOPS, 250MB/S throughput, read latency <1ms. (if start with snap/fast sync, it will need NVMe SSD)16 cores of CPU and 64 gigabytes of memory (RAM).Suggest m5zn.3xlarge instance type on AWS, c2-standard-16 on Google cloud.A broadband Internet connection with upload/download speeds of 5 megabyte per second我是在aliyun买的VPS,配置是16核64G,系统盘40G,数据盘3000G ESSD...
以Synthetix为例,MEV策略剖析
本文翻译自Robert Miller的Anatomy of an MEV Strategy: Synthetix 几个月前臭名昭著的alpha泄露者KALEB在Flashbots公开的searchers频道发表了下列消息KALBE泄露了关于Synthetix变动的数千万美金的alpha消息。在这个机器人运营商的小房间里分享alpha就像丢给狮子一块红肉一样,在快速看了合约之后可以确认有笔另人晕眩的钱处在危机中。 在接下来的几周,我计划并且尝试去执行策略来捕获KALEB分享的MEV。我会开源我用的代码并一步一步展示整个过程和策略。你将不能运行我的代码去赚钱,但是这篇文章将会教你我是如何设计这个新的搜索者并会包含许多alpha。很自然的,这将会有点技术性,但我会尽量让本文对于非技术读者来说好理解。第一步,识别机会我不是一个Synthetix专家,因此第一步是去学习我将要涉及的操作。具体如下:我找出了相关合约我在Synthetix博客里读了它们的高级别功能并且搜索了相关文档我确保理解了将要实行的治理变动我查找了相关函数总结一下这阶段的工作,Synthetix已经试验了以ETH为抵押去铸...
Bitmap结构在ENSToken里的应用
在ENSToken的合约里看到了Bitmaps的应用,在地址认领空投时用了Merkle树证明来check用户地址和认领数量,进而会对应一个Merkle的index,为了防止重复认领空投,合约里用了OpenZeppelin的Bitmaps库来做位图存储,地址认领成功后,就将对应的index在位图里存true,下次如果再来认领就会判断这个位图,如果为true时就返回错误,以此来防止重复认领空投。BitMaps.BitMap private claimed; /** * @dev Claims airdropped tokens. * @param amount The amount of the claim being made. * @param delegate The address the tokenholder wants to delegate their votes to. * @param merkleProof A merkle proof proving the claim is valid. */ function claimTokens(uint256 amo...
<100 subscribers
搭建BSC Fullnode
要运行BSC全节点,首先需要有服务器,币安官方推荐服务器配置VPS running recent versions of Mac OS X or Linux.IMPORTANT 2T GB of free disk space, solid-state drive(SSD), gp3, 8k IOPS, 250MB/S throughput, read latency <1ms. (if start with snap/fast sync, it will need NVMe SSD)16 cores of CPU and 64 gigabytes of memory (RAM).Suggest m5zn.3xlarge instance type on AWS, c2-standard-16 on Google cloud.A broadband Internet connection with upload/download speeds of 5 megabyte per second我是在aliyun买的VPS,配置是16核64G,系统盘40G,数据盘3000G ESSD...
以Synthetix为例,MEV策略剖析
本文翻译自Robert Miller的Anatomy of an MEV Strategy: Synthetix 几个月前臭名昭著的alpha泄露者KALEB在Flashbots公开的searchers频道发表了下列消息KALBE泄露了关于Synthetix变动的数千万美金的alpha消息。在这个机器人运营商的小房间里分享alpha就像丢给狮子一块红肉一样,在快速看了合约之后可以确认有笔另人晕眩的钱处在危机中。 在接下来的几周,我计划并且尝试去执行策略来捕获KALEB分享的MEV。我会开源我用的代码并一步一步展示整个过程和策略。你将不能运行我的代码去赚钱,但是这篇文章将会教你我是如何设计这个新的搜索者并会包含许多alpha。很自然的,这将会有点技术性,但我会尽量让本文对于非技术读者来说好理解。第一步,识别机会我不是一个Synthetix专家,因此第一步是去学习我将要涉及的操作。具体如下:我找出了相关合约我在Synthetix博客里读了它们的高级别功能并且搜索了相关文档我确保理解了将要实行的治理变动我查找了相关函数总结一下这阶段的工作,Synthetix已经试验了以ETH为抵押去铸...
Bitmap结构在ENSToken里的应用
在ENSToken的合约里看到了Bitmaps的应用,在地址认领空投时用了Merkle树证明来check用户地址和认领数量,进而会对应一个Merkle的index,为了防止重复认领空投,合约里用了OpenZeppelin的Bitmaps库来做位图存储,地址认领成功后,就将对应的index在位图里存true,下次如果再来认领就会判断这个位图,如果为true时就返回错误,以此来防止重复认领空投。BitMaps.BitMap private claimed; /** * @dev Claims airdropped tokens. * @param amount The amount of the claim being made. * @param delegate The address the tokenholder wants to delegate their votes to. * @param merkleProof A merkle proof proving the claim is valid. */ function claimTokens(uint256 amo...
Share Dialog
Share Dialog
已经是两个多月前的事件了,这几天才对这个tx进行了分析和fork重现,记录下来加深一下理解。
apecoin的空投并没有限制调用方不能是合约地址,也不是用链下签名再到合约里验签的方式来领取空投,而是直接在合约里校验调用方的地址里有没有bayc/mayc,再加上apecoin当时的价格在8u左右,总体来说是有利可图的。
nftx是一个对NFT进行碎片化的平台,用户可以将nft碎片化成ERC20 token,并在sushiswap上添加token/eth交易对,有同类nft的用户可以在nftx上快速的卖掉nft成eth,一定程度上解决了nft的流动性问题,不过一般只能卖到地板价,甚至更低。也可以用nft去mint成ERC20代币,用代币可以再redeem成nft,bayc的池子mint需要收取10%手续费,redeem收4%手续费。平台同时支持闪电货,可以借出erc20 token,在同一tx内还回,免手续费。综合以上特点,就对apecoin空投提供了良好的支撑环境。
这位作者先是花106eth买了一只bayc#1060(其实作者是先对攻击合约进行了bayc nft授权后才买的#1060),从交易0x8a61927598ce26f296ba1be155301418e2c01fe8f5585f9b46369e1ec5c408b0可以看到,作者将bayc nft全授权给0x3EbD3D86f810B141F9b2e9B15961FC66364b54f3这个地址。之后再到opensea买了#1060。(买这只主要用来付nftx的手续费的)

然后就是0xeb8c3bebed11e2e4fcd30cbfc2fb3c55c4ca166003c7f7d319e78eaab9747098闪电贷交易,这笔交易部署了0x3EbD3D86f810B141F9b2e9B15961FC66364b54f3合约,而作者显然是有预备了,先用自己的地址和nonce=3算出了部署的合约地址,再提前approve,因为需要把#1060转到攻击合约里才能做claim,而攻击合约又还没有部署,之前转不过去,所以就先授权给攻击合约,再让攻击合约自己去transfer。在这个攻击合约里又部署了一个合约,实际上这个合约才是闪电贷合约0x7797A99a2e91646aBdc9DC30e838A149CCB3013B。作者应该是不想部署合约后,再重新发一笔交易去做闪电贷攻击,所以就用这种两个合约嵌套的方式来一步完成攻击,感觉更加“优雅”。
主要步骤如下:
攻击合约转bayc#1060到闪电贷合约
闪电贷合约向nftx借出5.2 bayc nft token
闪电贷回调,用5.2 bayc nft token redeem回5只bayc,扣了0.2做手续费(因为当时池子里也只有5只bayc,所有作者没有借更多的token)
闪电贷回调,redeem的5只加上转过来的#1060,一共6只bayc去认领空投,领了60564个apecoin
闪电货回调,再把6只bayc mint成bayc nft token,扣10%手续费,得到5.4个token
闪电贷回调,5.4-5.2=0.2,把0.2个token在sushi swap里换成eth,到此完成闪电贷回调
nftx里再将闪电贷合约上的5.2个token燃烧掉,查看flashLoan方法
闪电贷合约将60564个apecoin和剩余的eth转到作者地址
nftx实现的是标准的ERC3156闪电贷接口,对接起来还是挺方便的。
已经是两个多月前的事件了,这几天才对这个tx进行了分析和fork重现,记录下来加深一下理解。
apecoin的空投并没有限制调用方不能是合约地址,也不是用链下签名再到合约里验签的方式来领取空投,而是直接在合约里校验调用方的地址里有没有bayc/mayc,再加上apecoin当时的价格在8u左右,总体来说是有利可图的。
nftx是一个对NFT进行碎片化的平台,用户可以将nft碎片化成ERC20 token,并在sushiswap上添加token/eth交易对,有同类nft的用户可以在nftx上快速的卖掉nft成eth,一定程度上解决了nft的流动性问题,不过一般只能卖到地板价,甚至更低。也可以用nft去mint成ERC20代币,用代币可以再redeem成nft,bayc的池子mint需要收取10%手续费,redeem收4%手续费。平台同时支持闪电货,可以借出erc20 token,在同一tx内还回,免手续费。综合以上特点,就对apecoin空投提供了良好的支撑环境。
这位作者先是花106eth买了一只bayc#1060(其实作者是先对攻击合约进行了bayc nft授权后才买的#1060),从交易0x8a61927598ce26f296ba1be155301418e2c01fe8f5585f9b46369e1ec5c408b0可以看到,作者将bayc nft全授权给0x3EbD3D86f810B141F9b2e9B15961FC66364b54f3这个地址。之后再到opensea买了#1060。(买这只主要用来付nftx的手续费的)

然后就是0xeb8c3bebed11e2e4fcd30cbfc2fb3c55c4ca166003c7f7d319e78eaab9747098闪电贷交易,这笔交易部署了0x3EbD3D86f810B141F9b2e9B15961FC66364b54f3合约,而作者显然是有预备了,先用自己的地址和nonce=3算出了部署的合约地址,再提前approve,因为需要把#1060转到攻击合约里才能做claim,而攻击合约又还没有部署,之前转不过去,所以就先授权给攻击合约,再让攻击合约自己去transfer。在这个攻击合约里又部署了一个合约,实际上这个合约才是闪电贷合约0x7797A99a2e91646aBdc9DC30e838A149CCB3013B。作者应该是不想部署合约后,再重新发一笔交易去做闪电贷攻击,所以就用这种两个合约嵌套的方式来一步完成攻击,感觉更加“优雅”。
主要步骤如下:
攻击合约转bayc#1060到闪电贷合约
闪电贷合约向nftx借出5.2 bayc nft token
闪电贷回调,用5.2 bayc nft token redeem回5只bayc,扣了0.2做手续费(因为当时池子里也只有5只bayc,所有作者没有借更多的token)
闪电贷回调,redeem的5只加上转过来的#1060,一共6只bayc去认领空投,领了60564个apecoin
闪电货回调,再把6只bayc mint成bayc nft token,扣10%手续费,得到5.4个token
闪电贷回调,5.4-5.2=0.2,把0.2个token在sushi swap里换成eth,到此完成闪电贷回调
nftx里再将闪电贷合约上的5.2个token燃烧掉,查看flashLoan方法
闪电贷合约将60564个apecoin和剩余的eth转到作者地址
nftx实现的是标准的ERC3156闪电贷接口,对接起来还是挺方便的。
No comments yet