从已知的信息来看,过去一周,已经发生了4起闪电贷攻击,包括Value DeFi(540万美元)、Cheese Bank(330万美元)、Akropolis(200万美元)以及今天的OUSD(700万美元)。

我们特意查看了一下记录,发现自今年年初以来基本每个月都要发生几起闪电贷攻击。说明闪电贷攻击已经不是一种偶然事件了。

此前的一次闪电贷攻击

最近的一次是OUSD。攻击方案的核心就是闪电贷+重入攻击。大概的流程是。

1.攻击者先用闪电贷借了一大笔ETH这样的主流资产,然后注入到各类DeFi协议中,进行类似铸币、流动性挖矿这样的操作。

2.然后由于攻击者手上有一大笔资金,它们可以操控价格并利用某些设计上的漏洞操控系统的判断。(很多合约都是基于价格或者资产价值比例来作为特定行为的判定依据)

3.最后的结果就是由于这样的操作会导致系统会付给攻击者远高于初始资产的收益,最后攻击者会重复这些操作,最后在合约中取回或者在DEX卖掉获得的超额资产。

4.然后攻击者再拿着一部分钱去还之前在闪电贷中借到的钱,就结束了整个攻击过程。

本质上这些攻击的核心逻辑就是借助巨额资金来进行非正常的套利操作。

闪电贷不是漏洞,但是扩大了漏洞的风险

在这其中我们发现,虽然近期的几次事件都把“闪电贷”这个概念作为关键词,但是闪电贷本身和攻击事件本身并没有直接的关联。

在攻击发生的前一天,Value DeFi项目方还在宣称自己是最安全的协议

但不可否认的是,闪电贷成为了其中极其重要的攻击工具。用一句话来形容它的作用:“它允许你在交易期间像巨鲸一样的行动”,最可怕的是,如果说那些资金雄厚的人更容易成为攻击的来源,闪电贷可以让一个一无所有,甚至没有基本信用的人在短时间内变成一个手握重金的巨鲸,最重要的是这些人不需要任何许可、不需要良好的信用凭证也不需要付出等额或者超额的抵押品作为代价,完全是空手套白狼。

闪电贷本身不是一种漏洞,但它无形之中扩大了那些漏洞被攻击的风险,因为第一攻击者不需要任何代价,第二攻击的来源大大增加,它可能会被任何一个洞悉漏洞的人作为攻击的工具。

危险的创新:闪电贷错在哪里?

事实上闪电贷在遭受非议之前被认为是DeFi最伟大的创新之一。闪电贷概念最早由Marble协议于2018年提出,当时开发者的想法是通过智能化合约完成的零风险贷款。智能合约平台一次性处理交易,如果借款人不能偿还贷款,整个交易就会回滚,就像贷款根本没发生一样。

重点是区块链交易回滚这个特性,用户和合约发起一笔交易,合约借给用户一笔钱,然后同样的用户在这个交易里还回借出的金额和相应的利息就可以了。如果没还那么这个交易就会被判定不生效,然后被回滚,也就不存在借款转移的事情了。这在传统观念来说是完全不可思议的事情,因为借贷既不需要信用也不需要抵押品。

其实一开始闪电贷的用途是给那些套利者提供便捷的套利资金工具,例如分散交易所之间的额套利、清算多个借贷平台的贷款或者进行再融资等这些操作,最简单的就是,闪电贷可以帮助交易者从Marble银行贷款,在一家去中心化交易所DEX中买币,然后在另一家DEX以较高价格卖出代币,然后获得差价收益。这样的目的是正常的,传统金融中也会出现这样的场景。唯一的区别就是闪电贷的零门槛零代价。

但是很不幸的是,我们能够封堵漏洞,但永远防不住人心。黑客或者潜在的攻击者会发现闪电贷完全可以为攻击提供充足的启动资金,这其中产生的另外一个后果就是,由于黑客的钱是借来的,所以钱和黑客本身并没有直接的关联,他们的身份也更加地难以追踪。

因此一句话总结:闪电贷减小了攻击者的风险,攻击会更加随意。

闪电贷+:另一种潜在攻击用途

作为工具,闪电贷的用途是我们永远不能想象和预测的。我们完全不能低估“科学家”的智慧,除了经济上的攻击,闪电贷又被发现可以应用到别的领域的攻击上,例如操纵去中心化社区的治理。

近期,Maker基金会智能合约开发团队检测到一起发生在MakerDAO治理提案中的投票违规行为,大体意思是,社区的一次提案需要持有治理代币的用户投票,然后有一个人就利用闪电贷借出总资产,然后用来作为抵押品在借贷平台拿到大量的治理代币,去参与投票,投完票然后再还回去。

听到这里可能很多人会惊出一身冷汗,因为如果这次通过的是一项有利于攻击者的战略性提案,那造成的后果远比一次套利攻击要严重的多,而且这样的攻击显然更加隐秘。

闪电贷本身在这次风波中并没有任何过错,它反而是一种让人眼前一亮的创新,我们通过闪电贷这样的产物看到了DeFi的想象空间是有多大。但基于当前DeFi正处在一个实验性阶段,因此大量的漏洞和攻击者会将闪电贷用到各种非法用途上,所以很多人认为闪电贷是一种极为危险的创新,换个角度来说也正式因为闪电贷的存在,使得各项目方更加重视安全,这也是一种价值。