编者按:本文来自嘉里小黄鸭,作者:张天然,Odaily星球日报经授权转载。
Bzx事件的五个套利步骤,PC:Peckshield本次Bzx闪电贷事件的区块链技术分析已经有不少了,但是数据和商业逻辑分析除了一些基本事实数据以外,还有所欠缺,所以这里尝试一下想更清楚了解事件经过和看技术分析的建议看这几个链接Bzx官方回顾;Palkeo的分析;Peckshield的分析;背景与逻辑
这里先补一些背景,Bzx是一个杠杆交易平台,所以自然分为两部分,借贷和交易,借贷是Bzx自己的,交易接的是Kyber,Kyber旗下有很多流动性池子,其中一个是Uniswap,Kyber的价格体系是在旗下池子里面选最优价格。在本次事件中,最优价格一直用的是Uniswap,所以Kyber基本没有发挥作用。另外杠杆交易既可以在Bzx一样的平台里面完成,也可以自己去第三方平台借钱然后交易。就像本次事件的另一部分就是在Compound借钱去Uniswap交易。简单总结,本次事件的主要角色,有两个借贷平台,Bzx,Compound,一个交易平台Uniswap。而这里金融套利的本质,有一个传统金融案例的类比,google财报之前,同时一百倍开多开空,只要财报波动幅度超过1%,一头爆仓另一头就是送钱。比如涨了5%,那么做空的爆仓,一倍直接没了。做多的赚钱,赚五倍,两头抵消,交易者赚走四倍,平台损失四倍。这套逻辑在传统市场已经被玩坏,被禁止了。在本次defi事件,两头的借钱加杠杆的平台不同,一头Bzx借钱交易爆仓,另一头Compound的交易赚钱。但由于交易平台是没有对手方的Uniswap,所以逻辑并不完全一样。这里就默认大家明白Uniswap的基本产品逻辑和价格走势规律了。Flashloan闪电贷只提供了本金,和具体的金融套利逻辑无关。一开始从DydxFlashloan借10000eth是个需要简化的信息,因为3200eth没用,所以直接理解为借了6800个eth即可。借五万十万都是可以的,但并没有用上。说Oracle的,其实也没啥关系,锅也不归Kyber。要说背锅的话,Bzx背一部分,Uniswap背一部分吧盈亏分析和敏感性测试浅析
卡巴斯基:针对bZx的钓鱼攻击可能由Lazarus黑客组织实施,该组织与朝鲜有密切联系:11月12日消息,美国网络安全公司卡巴斯基针对保证金交易借贷平台bZx私钥泄露事件调查发现,该次针对bZx的网络钓鱼攻击很可能是由 Lazarus(Bluenoroff Advanced Persistent Group)组织执行,该组织长期以来一直攻击金融机构和加密货币交易所,与朝鲜有密切联系,被称为国家支持的黑客组织。卡巴斯基调查分析了Lazarus在2017年、2019年和2020年进行的一些攻击,发现该次私钥事件的网络钓鱼邮件与之前攻击所使用的工具具有相似性。
此前消息,11月5日,保证金交易借贷平台bZx在Polygon和BSC部署的私钥被泄露,造成超过5500万美元资金被盗,该次攻击是针对bZx开发者的网络钓鱼攻击。[2021/11/12 21:45:39]
从头开始说起,先是从Dydx用flashloan借了6800个eth,获得了操作本金,其中1300去了Bzx,5500去了Compound。然后Bzx这头5倍杠杆做多,Compound这头借了券来做空。效果是Bzx侧5637eth换成了51个btc,之后Compound侧112个btc换成了6871个eth。价格波动方面,原来正常btc/eth的价格大概是39,在Uniswap的曲线上,Bzx拉盘是拉到了均价108,也就意味着拉盘结束的时候价格可能是200,Compound这头沿着同一曲线砸回来,抵消完以后,超过的部分均价约20,所以最低价格可能在10。Compound正常1.25倍超抵押,拿出来一倍等值btc,硬生生通过Uniswap曲线拉盘砸盘来回走两趟,卖出了1.56倍的eth,超过了抵押额。最后盈亏数据结果是,Compound这头交易赚了0.56倍。Bzx那头交易本身亏了应该有0.83倍,但Bzx的collateral只有0.3倍,所以净亏损大约0.53倍,由Bzx的储户承担了,储户是亏损本金的。这里体现的问题,是Bzx这侧的大单Uniswap交易,明明会导致collateral不够用爆仓,却没有被中止。对黑客来说,两头加起来,Compound这头赚的0.56倍,需要扣掉Bzx这头的成本1300eth,剩下1171eth,盈利大约0.26倍如果算总账的话,Bzx这头亏损0.83倍,Compound盈利0.56倍,那剩下的0.27倍去哪里了呢?这个要怪Uniswap的滑点了。之前提到Uniswap来回走两遍以后,超过的部分均价约20,所以这里是亏损出货的,大概是61个btc在Uniswap上以对折的均价出售。占便宜的是Uniswap上的做市池子了。问题1:Uniswap这曲线来回走两遍,可以互相抵消吗,能不能只走抵消以后剩余的部分?答案是不行的。如果只讨论互相抵消的部分,我们可以看见,本来是Bzx侧有5637个eth,Compound侧有51个btc,第一步拉完以后,Bzx侧剩下51个btc。第二步砸完以后,Compound侧留下了5637个eth。可以说是一拉一砸,完成了财富从Bzx侧到Compound侧的转移,这是Uniswap特有的现象,在传统世界没有对标,这也是本次金融套利的最核心逻辑。所以,为了造出Compound这头盈利0.56倍,Uniswap曲线走两次是必要的,必须Bzx这头先拉到顶,然后Compound这头砸下来,再算上额外的未抵消的部分,才能卖出6871eth,盈利0.56倍。问题2:如果Bzx这边风控没问题没砸穿仓,就是只花完1300eth的collateral,储户没损失,那么黑客能赚钱吗?答案是不确定,如果赚的话,肯定比现在的少,也有可能亏损,因为Uniswap曲线没走到那么极端的位置,之后1倍的资金拉盘是拉不出1.56倍的效果的,如果1.3倍都没拉出来的话,那就覆盖不了Bzx这边1300eth的成本,就会亏钱,就算覆盖了,也比之前少赚。问题3:如果Bzx这头借了2800eth,然后只开2倍杠杆做多,黑客赚钱1.3倍,5700个eth,远高于之前1171个eth。Bzx储户亏损会比之前更多注:本文所有的btc都是指wbtc;本文后面几个问题,对于Uniswap的曲线都是拍脑袋估算数据,欢迎大家建模实际跑一下。盈亏数据也比较匆忙大都是口算的,欢迎验算指正。
bZx官方:借贷池已恢复 被盗资金不在团队钱包:9月16日早间,去中心化借贷协议bZx发布iToken重复事故报告。报告指出,丢失的资产已经全部找回,并已存放至团队的钱包中,将恢复借贷池。另外,团队向漏洞报告者MarcThelan支付了4.5万美元的赏金。随后,bZx更新进展称,借贷池已恢复,资金已不在团队钱包。此外,区块链安全公司PeckShield向bZx社区致信称,此前对该项目进行了多轮安全,并发现了16个不同严重级别的问题。此次iToken重复事件表明,要识别所有潜在问题是一个巨大的挑战。我们一直在审计报告中强调,一次审计可能还不够,建议进行多次审计以及提供bug赏金计划。bZx和PeckShield正在制定一项计划,以重新检查该协议并在一些关键的区块链数据指标上进行实时监控。此前9月13日,bZx因合约漏洞被盗4700枚ETH,随后官方采取措施促使黑客将资金归还。[2020/9/16]
bZx协议遭遇攻击现已修复 被盗资金已从保险资金中扣除:9月14日,bZx官方发推特称,在美东时间上午3:28(北京时间9月13日15:30),我们开始研究该协议TVL的下降。到美东时间上午6:18(北京时间9月13日18:30),我们确认几个iToken发生了重复事件。借贷暂时暂停。重复方法已从iToken合同代码中修补出来,并且协议已恢复正常运行。随后,1inch联合创始人Anton Bukov发推称攻击者在此次事件中盗取了约4700枚ETH,并附上被盗资金地址。对此,bZx回应称,资金目前没有风险。列出的那些资金已从我们的保险基金中扣除。[2020/9/14]
DeFi借贷协议bZx推出staking门户网站用以发放vBZRX回扣:9月10日,DeFi借贷协议bZx官方发推宣布,用户现在将通过staking门户网站申请vBZRX回扣。以前,回扣与每笔交易一起分发。现在是手动申请过程。这将为所有用户节省大量的Gas。[2020/9/10]
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。