别再怪“闪电贷”了,bZx连遭攻击的真凶是它_BZX:DEFI

一周内,DeFi贷款协议bZx遭遇两次攻击,攻击者空手套白狼,十几秒套利超百万美金。这一事件被高度关注,因为它并非一起简单的、针对单一漏洞的“黑客式”攻击,而是在充分了解DeFi的情况下,利用各产品特点组合出拳。这起攻击事件或许暴露出DeFi系统性金融风险的隐患,并对行业发展的路径选择,具有醍醐灌顶的警示意义。笔者先说结论:

1.bZx被攻击的本质是自身产品设计漏洞,喂价完全依赖第三方,没有考虑接入方的机制,也没有经过极限压力测试;2.对于其他DeFi产品,也要谨慎考虑所接入的其他协议可能会对本身协议造成的影响和?险,防止协议调用导致的系统性风险;3.对于生态发展,开发炫技式产品和构建无限杠杆似乎成为一种风气,这是不健康的,DeFi的初心本应是开放式普惠金融。

回顾:攻击者借刀杀bZx,空手套得百万美金

首次攻击发生在2月15日,攻击者通过“闪电贷”0成本借得1万个ETH作为初始资金,利用多个DeFi协议的相互调用,实现了一笔非常不合理的交易。

第一步:通过“闪电贷”0抵押物从dYdX借出1万个ETH;第二步:将其中5500ETH在Compound中抵押借贷112WBTC的贷款抵押;第三步:将1300ETH在bZx被发送到fulcrum,打开了一个ETH/BTC交易对的5倍杠杆空头头寸;第四步:通过KyberReserve到UniswapWBTCpool卖5637ETH,获得51.34BTC;第五步:把Compound借出来的112BTC,在UniswapWBTCpool卖112WBTC,获得6800ETH;第6步:将3200ETH+6800ETH=10000ETH还给dydx。

Gene gas费用攀升至以太坊Gas Guzzlers前二十:数据显示,由元界DNA开发的首个DeFi应用Gene Finance的治理代币Gene,上线后质押挖矿热度空前,质押挖矿总金额已突破3000万美金,质押代币包括MX、DLP、GENE、DNA和ETP。

大量用户锁定质押造成链上转账聚增,导致Gene的gas费用消耗上涨至以太坊Gas Guzzlers前二十位。[2020/10/22]

笔者也做了一个表格还原资产变化和最终结果:

据悉,攻击者获得总利润为1193ETH,目前价值29.8万美元。链上数据显示,攻击者已将所获资金转移到了Compound。理论上,Compound可以使用管理员密钥没收资金,但根据ChrisBlec发起的投票,支持没收资金的仅占12.3%,反对者占69.5%。Hydro创始人李天放表示「使用管理者权限非常损害信任,Compound没有因为攻击遭受损失,不太可能牺牲自己的信任帮竞争对手找钱。」「Compound也可以发起社区投票,征询这种用户是否受欢迎,如果Compound社区一致抵制,就可以冻结资金。」数字文艺复兴基金会董事总经理曹寅表示。

以太坊未确认交易为110,820笔:金色财经消息,据OKLink数据显示,以太坊未确认交易110,820笔,当前全网算力为251.27TH/s,全网难度为3.32P,当前持币地址为48,802,825个,同比增加134,069个,24h链上交易量为2,769,025.4ETH,当前平均出块时间为13s。[2020/10/21]

今日,bZx再次发现了使用“闪电贷”进行的可疑交易,目前没有证据表明是同一个攻击者。尽管首次攻击发生之后,bZx关闭了Fulcrum交易平台进行维护,但该攻击者再出新招,使用了Synthetix进行交易,目前bZx已暂时关闭被利用的合约。Ethhub创始人EricConner估算到,这一次攻击者获利2,388个ETH,约64.4万美金。

有趣的是,尽管bZx官方表示这次的损失跟“预言机”没有任何关系。但在首次攻击发生后,bZx宣布将新增集成预言机平台ChainLink作为价格来源之一。「目前看来,ChainLink能够在真实反映价格和预言机去中心化之间找到比较好的平衡,避免Uniswap等去中心化交易所喂价机制流动性不足导致的价格失真问题」曹寅表示。

澄清:bZx并非价格被操控,主要是产品漏洞

早期网友分析中有很多错误,最广泛流传的就是bZx的价格被操纵。但真实情况是「利用了bZx的合约漏洞,借了大笔钱,然后在bZx接入的Kyber和Uniswap上操纵价格,套利成功。」MakerDao中国社区负责人潘超表示。

以太坊网络疑似正因一个庞氏局而遭遇拥堵:5月13日消息,以太坊网络似乎正因为一个旁氏局而遭遇严重拥堵。以太坊网络上正有数以千计的交易涌向同一个地址,该地址现在拥有价值530万美元的Paxos Standard(PAX)。而该地址属于MMM Global运营商。MMM Global正推行多层营销计划,声称每日投资回报率为1%。而根据一位加密货币研究人员所言,4月下旬,该地址每天消耗以太坊8.5%的Gas。并且根据Etherscan上的数据,该地址现在是以太坊上Paxos稳定币的第七大持有者。

而这些看似毫无价值的交易正继续涌入MMM地址。且所有转账的交易都标记为“待处理”,而这些看起来没有价值的交易事务通常代表没有转移任何ETH。Hydro Labs的Mark A表示,看起来这只是一个随机的人创建了一个智能合约,其运作方式类似于庞氏局。截至发文,以太坊区块链浏览器显示网络现已积压了超过90,000笔未处理交易。

注:eth.btc.com数据显示,当前以太坊网络共有161848笔未处理交易。(CryptoPotato)[2020/5/13]

我们来具体解释下,这几个协议的关系。bZx是一个保证金交易协议,用户可以抵押一种币作为保证金,在某个杠杆下借出另一种币。但是这两个币的浮动汇率是多少呢?bZx需要调用预言机或者去中心化交易所来喂价。在第一起攻击中,bZx使用Kyber作为链上预言机来检查抵押品和借贷的比例。

声音 | 以太坊联合创始人:以太坊2.0将有助于减少硬件浪费:以太坊联合创始人Joseph Lubin近日在直播活动中表示,以太坊1.0没有足够隐私和保密性,也没有用户所需的可扩展性。而以太坊2.0为以太坊平台带来了更大的容量,大幅度提高系统可伸缩性和每秒处理交易数量。比特币和以太坊都使用工作证明(PoW),而以太坊2.0将在以太坊的区块链中实现股权证明(PoS),将有助于减少硬件浪费。(Ambcrypto)[2019/10/31]

而Kyber作为去中心化代币交易协议,它有很多储备库来提供流动性。储备库为兑换者们提供代币兑换,它可以是有丰富代币的个人,也可以是专业的做市商、项目团队、DEX等。而且为了获得竞争力,Kyber设计成为兑换者提供最好的兑换汇率,Uniswap就是Kyber的储备库之一。

在第一轮攻击中,攻击者在bZx上发起了保证金交易,抵押1300个ETH用5被杠杆兑换51.3个WBTC的行为,拉高了Uniswap上WBTC兑ETH的相对价格,此时攻击者再将从Compound借出来的112WBTC在此价位兑换成ETH,于是就获得了利润。

不可否认,储备池式DEX的确交易深度不够、流动性不足。试想一下,攻击者仅用1300个ETH就拉高了WBTC的价格,这在主流的中心化交易所大概率不会发生。

分析 | 以太坊“难度炸弹”并未爆炸 目前对出块时间影响甚微:针对媒体中提到的以太坊“难度炸弹” (Difficulty Bomb) 已经爆炸的消息,PeckShield研究人员表示,近期挖矿平均时间的延长(14秒—15.5秒)与难度炸弹无关,且该“难度炸弹”代码在2017年10月份的拜占庭硬分叉时已经存在,并非是此次君士坦丁堡新加。具体而言:以太坊的出块难度值等于上一块的出块难度和时间等要素值加上“难度炸弹”算法产生的难度值。目前“难度炸弹”产生的难度值只占总难度的不到万分之一,对出块时间影响很小,但是,其难度值每过10万块就会倍增,如果不做调整,大概还需近一年时间它就会是以太坊出块时间的决定因素 (届时出块时间将大幅延长), 而后造成出块时间指数性增长。即将在二月底发生的君士坦丁堡硬分叉会将其难度值降低2的20次方 (降到现值的约百万分之一),使“难度炸弹”发作时间向后再推迟一年。[2019/1/21]

究其根本原因,bZx被“”在uniswap上做了一笔非常不合理的交易,只能怪自己太依赖第三方。「此类型的攻击方案只针对于bZx这种完全依赖第三方AMM的DeFi产品,在dydx,DDEX,和compound等类型产品中并不存在」李天放表示。

因此,bZx被攻击的主要原因是「它自身存在设计上的失误,没有考虑到Kyber聚合型交易所的喂价机制,也没有经过极限的压力测试,于是被人利用了。」曹寅表示。从结果上来看,本次攻击也没有影响到其他协议,损失由bZx承担。

诘问:“闪电贷”和协议调用,谁才是魔鬼武器?

攻击事件让“闪电贷”进入了大众视线,这是攻击者无成本套利的关键。“闪电贷”是在一个区块内在不同DeFi借贷平台发起多笔交易的方式,也就是不同资产和债务之间的转贷。“闪电贷”也是一种无需抵押物的借贷方式,前提是贷款的发行和偿还必须在以太坊同一个区块内完成,按照目前以太坊的出块速度,就是13秒。如果不是空手借来的ETH,而是超额抵押借贷模式,还会出现这个情况吗?笔者采访的几位嘉宾有不同的看法。

曹寅表示,“闪电贷”本身没问题,但应该要限制“闪电贷”的使用场合,不能让大家随意调用这个协议,尤其是在DeFi这样一个无监管、去中心化、代码即法律的场景里,肯定要谨慎使用。他用了一个很形象的比喻:

现在的DeFi从功能的完善度上,就是一只猴子。而“闪电贷”则相当于一把,你给了猴子一把抢,那会有什么好结果呢?猴子现在需要学习用火,学会种地,学会服务实体经济,而不是纯金融工具类型的DeFi协议。

但李天放认为,“闪电贷”只是降低了攻击的门槛。

就算没有“闪电贷”,一个本来就很有钱的以太坊账号也可以做出同样的攻击。当然“闪电贷”的存在让这类攻击变得更容易,合约设计者必须需要考虑到此现象的存在。

潘超也认为,闪电贷本身不是问题,而是协议之间的耦合问题。「本次攻击的漏洞对于独立的单个协议而言没有问题,但是几个协议联系起来就会被成功攻击,结果就是虽然账户里没有资产,但依然可以空手套白狼,或者说是借刀杀人,利用其他协议的漏洞借钱,损失让其他协议承担。」就像bZx团队“狡辩”的那样,「从协议的角度来看,只是有人简单地借了一笔钱,而从贷方的角度来看,这笔贷款与其他任何贷款一样,照常支付利息。」

「这也给了DeFi从业者一个警示,设计产品是要谨慎考虑所接入的其他协议可能会对本身协议造成的影响和?险」潘超表示。DeFi各产品的智能合约自由调用,增加了很多不确定性因素,那么应该予以限制吗?

针对这个问题,李天放表示,所谓的”adminkey“在各个合约之间中是非常不一样的,而且并不是个0或1的选择,在每类操作中你都可以选择留出fullcontrol,limitedcontrol,timedelayedcontrol等。

「每个合约的设计者需要在”去中心化“和“便于操作”中做出一系列选择。比如DDEX为了避免中心化,留的管理者权限非常少。当然这也有一些不便,比如我们不能随便升级合约的一些模块,加功能,移动资产,哪怕是“为了用户好”的操作。」他最后说到,时间会告诉我们正确的选择是什么。

反思:无限杠杆意义何在,DeFi开发者勿忘初心

对于此次攻击事件,笔者的直观感受是DeFi很多产品的主要用途就是“加杠杆”,这让我想到2008年经济危机起因,就是华尔街把房地产打包成各种证券产品,制造了太多杠杆,同时让人们以很低的成本贷款。这和如今DeFi行业做的事情多么相似。

这究竟有什么意义?

「你说的很对,每个DeFi项目都应该考虑这些问题。一个好的协议设计应该鼓励更多有价值的”winwin”行为。如果一类行为真的是空手套白狼,对整个系统是负价值的,也许协议上可以做一些调整来改善整个系统价值」李天放表示。

然而,DeFi社区不仅没有因为攻击事件变得审慎,反而在推波助澜。笔者注意到了两liang:

1.0x的研发人员RemcoBloemen提出直接在代币的合约中创建免费无限的闪电贷款;2.1inchExchange新推出的1x.ag,利用“闪电贷”提高杠杆仓位的效率,来做无限杠杆。

「DeFi中造价值的角色有个共同点:它们都需要承担风险。比如做市商需要承担风险,liquidator需要承担风险。但是“闪电贷”和“无风险套利”之都是在一个区块中做操作,空手套白狼」李天放表示。

「这暴露出这个行业的开发者存在误区,就是以“炫技式”的心态,去做一些DeFi协议的开发。」曹寅一刀见血的指出。

DeFi的初心究竟是什么?这值得建设者和拥护者反思,曹寅的这几段话非常有道理:

对于投机者来说,高杆杆、空手套白狼,肯定喜欢这样的工具。虽然套利行为对促进信息有效性,降低交易成本能够起到一定的作用。但无限杠杆可能带来连环性事故,酿成系统性风险。按照DeFi目前的发展方式,这种情况很有可能会发生。

我们做DeFi的初心是什么?是为了服务那些没有金融基础设施的的中小企业、创业者、普通生产者。我们降低中心化带来的摩擦成本,去掉完全没必要的中介成本,同时把数据所有权和金融所有权,从不靠谱的中心化机构手里抢回来,还给生产者,这才是我们做DeFi的初心。

DeFi的开发者,是想做一个服务全球人类,让金融成为一种普惠商品,让数据回到生产者和消费者手里的开放金融市场?还是要做一个没有监管,无限杠杆,非常投机性的?大家到底想做什么事,这很重要。

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

金智博客

[0:15ms0-7:247ms