黑客盗走五十万美元加密货币解析Defi危机

仅仅几天前,有关 Balancer遭到黑客攻击的报道还导致约合$500

000美元的损失。在这篇文章中,我们将简单地回顾一下这次攻击,并分析其背后的原理,介绍其中提到的技术,并展望我们目前可以预见的关于去中心化金融的潜在危机。分散化金融(DeFi)流动性提供商 Balancer Pool承认,黑客利用了一个系统漏洞,诱使该系统释放出价值500

000美元的加密货币。巴兰塞·普尔斯是一家与 Uniswap相似的多维自动做市商(AMM)。他们有多种资产,通过使用算法来平衡系统中每一种加密货币的数量,从而保证市场流动性。黑客组织使用智能合约在单个交易中自动实施了这次攻击。首先,攻击者从 dYdX公司得到一笔104 k WETH的闪电贷款(Flash Loan)。WETH是 ETH衍生工具,可直接与其他货币进行交易。这名黑客在 WETH和 STA token之间来回交易了24次资金,使 STA池中的余额耗尽,最后变成了1 weiSTA (0.0000000000000001 STA)。“STA货币”是斯特拉塔发行的代币。“STA”是一个通缩的 token,意思是每笔交易(burn)价值的1%将被摧毁。这次袭击是因为 Balancer Pool合约追踪了智能合约中的代币余额, STA代币具有通货紧缩模型,接收方收取1%的转让费,从而导致 transfer ()和 transferFrom ()的行为失当。所以,当攻击者交换 WETH给 STA时, Balancer池接收到的 STA比预期的少1%。攻击者随后多次向 WETH交换1 weiSTA。Balancer池并没有因为 STA转让费用机制而收到 STA,而是发放了 WETH。因为攻击者做了很多交易,所以 STA很快就变得毫无价值。于是黑客将这个几乎毫无价值的 STA换回 WETH。最终,攻击者用104 k WETH偿还了 dYdX的闪电贷款。而黑客们则通过加入 weiSTA,迅速提高了自己在 Balancer Pool的份额。接着,他通过UniswapV2把收集的 Balancer Pool代币换成136 k STA,然后又把136 k STA换成109 WETH。除了 WETH外,攻击者也使用 WBTC

LINK和 SNX来攻击 Statera。最后, Balancer Pool损失了将近50万美元,而黑客们则获得了将近42万美元的代币,包括:455 WETH ($100 k worth)、2.4 m STA ($100 k worth)和 converted it to 109 WETH ($25 k worth)、11.36 WBTC ($100 k worth)、60.9 k SNX ($100 k worth)和22.6 k LINK ($100 k worth),那么,这个 hacker是如何做到的,又是怎样的条件和机会让他成功的,我们从 DeFi Crisis那里得到了怎样的启发呢?FlashLoan是什么,在这次黑客事件中,我们看到的第一个黑客使用的工具是闪电贷。所以,闪电贷是什么?闪光贷款是一种无抵押贷款,但只用于一次交易。EVM (以太坊虚拟机, EVM)允许完成交易,即使有些条件不符合。快贷操作如下:一方创建一个智能合约,通过它提取贷款,在执行某些操作之后,立即偿还贷款,闪光贷款的存在,同时也释放了闪光攻击(Flash Attack),一种资本密集的攻击,通过闪光贷款获得资金。由于闪电贷的特殊设置,此类攻击无需冻结任何抵押资产,从理论上讲,黑客无需支付任何抵押资产就可以向闪电贷借款。即使是无资本的黑客,只要交些 gas fee,大概$15美元的钱,就能在闪电贷有足够的资金流动,这样就能以闪电贷为资本进行攻击。没有抵押的攻击者在 dXdY平台上立即借出数十万美元的 ETH,并通过一系列易受攻击的链上协议将其上传到链路上,取出数十万美元的被盗资产,然后偿还等值的 ETH贷款。这些都发生在以太坊的单一交易平台上,块链依赖于预言机(Oracle)从外部获得信息。对于 DeFi来说,最大的依赖就是价格。EtherWare的区块链本身不能决定 ETH的价格,它只取决于市场。所以用预测器输入价格数据。交易商可以控制预言机提供的价格信息,进行大量的交易。交易流动性越小,价格操纵越容易。这样交易者就可以再一次利用被操纵的价格进行杠杆交易,以确保自己获得最大的利润。有两个原因使闪电贷对攻击者特别有吸引力:一是,许多攻击需要大量的前期资金,如利用预言器操纵攻击,闪电贷可以将攻击的影响降到最低。假如我想用一千万美元的 ETH来操纵预言器,即使是我自己的 ETH,我也不会用自己的资金去冒险。假如我用个人资产发动了恶意攻击,我的 ETH就会出现问题,交易所可能会拒绝我的存款,而且很难洗白。但是,如果我从 FlashLoan那里借到了价值一千万美元的 ETH,那么,没人会在意这些资产。虽然 dYdX的抵押资产是我贷款的来源,但这对 dYdX也没有什么影响。因为在以太坊领域,包括 STA代币在内的许多加密货币都有一个独特的通缩机制,从而确保它们的货币在通货膨胀的影响下尽可能少地贬值,所以这个黑客用104 k ETH与 STA进行了24次交换,抽走了 STA的流动性池。每次交易,黑客手中的 STA都会损失1%的实际价值,而 STA智能合约的这一特点使得 STA代币几乎毫无价值可言。不过,正是通过这个毫无价值的 STA代币,该黑客从 Balancer银行获得了与先前 STA代币同等价值的 ETH,不仅偿还了104

000 ETH的快速贷款,还获得了一大笔余额。不只是 ETH,攻击者们还同时与其他不同货币交易,包括 WBTC、 LINK和 SNX,以换取 STA代币并从中获利。从这一点我们可以看出,由于 Balancer的智能合约存在漏洞,因此无法精确地判断被兑换货币是否具有真正的价值,而相应的金额已经被发放出去。因此,从类似这样的智能合约漏洞中,我们能看到怎样的去中心化金融危机?还有, DeFiProtocols,它在这方面扮演了什么样的角色?DeFi Protocols

DeFi是一种去中心化的对等金融模式,它使用基于区块链的智能合约来保证其完整性和安全性。DeFi协议主要用于诸如借贷、去中心化交易以及其他衍生产品的使用。和传统金融协议一样, DeFi协议也并非孤立存在。其开放性使得开发者可以通过组合已有的协议来创建新的协议。通过协议借款获得的资产,可以以任何形式在其他协议中作为担保物使用。这样就形成了一套复杂的、相互交织的资产和债务体系。此外,作为其它协议中的保留资产的协议,如果失败了,会对其他协议产生连锁影响,就像多米诺骨牌一样。举例来说,在 Maker中创建的资产可以同时在其他协议中作为担保,比如 Compound、 dYdX或 Uniswap上的一个流动池。实际上, DeFi的可组合性定义了开放金融的特性,即能够在加密资产上构建复杂的多组件金融系统。但如果基础抵押资产出现问题,所有的关联协议都会受到影响。这类协定的核心并不是由特定机构及其雇员管理,而是由编码或智能合同制定规则。当智能合约被部署到区块链中时, DeFidApps就可以在几乎没有人干预的情况下自动运行,就像任何计算机代码一样,由于意外的编程错误,智能合约很容易被恶意黑客攻击。智慧型合同漏洞是 DeFi的黑天鹅。假如黑客在 dApp的开放源码中发现并利用了错误,数百万美元就可能被立即窃取或耗尽。管理(Governance)是 DeFi协议的另一个重要方面,管理过程依赖于代币数量,参与者的投票权与他们在投票系统中锁定的代币数量成比例。有了管理性投票,参与者可以在系统中添加(即锁定)的代币来选择执行合同,从而定义了一套管理系统的规则。管理层的表决是连续的,参与者可以在任何时候改变他们的投票,而且只要得到多数,他们就可以重新选举新的合同。被选出来的合同是唯一可以操纵抵押资金的实体。若选择恶意合同,它可能会盗取全部作为抵押的资金。同时,还存在保护行政选举的防卫机制。举例来说,治理安全模块会在一段时间内成功选择封装合同。等待时间之后,成功的选举合约可以控制系统,从而降低攻击载体。应急关闭功能允许一组拥有足够代币的参与者暂停系统。然而,这个操作需要一个代币池,假定现在存在一个理性的对手(Adversary,密码学中用来泛指那些试图破坏系统的人),而这个对手只有在潜在的回报高于成本时才会攻击。进攻方面,这位对手为使自己的合约生效而必须付出的代价就是进攻的代价。如果合同一旦被选中,他的合同中偷窃并产生的金额就是他的报酬。在合同执行中选择对抗性,可以通过两种方式使对方获得经济利益。第一,该合同可以将所有 ETH抵押转移到对方的地址。第二,合约可以铸造新的 DAI代币,然后转移给对手。DAI代币可以进行交易,直到 DAI价格崩溃。通过投票实施的管理机制允许一定程度的非中心性,使得多个协议参与者能够影响协议未来的走向。这可能会降低一方根据代币分布而产生恶意的风险。但这也为攻击投票系统创造了可能。而控制管理机制的“仁慈独裁者”也能阻止攻击。但是,这需要相信中央实体不会丢失或者暴露其控制智能合约访问的私钥,而且该独裁者不能接受贿赂,然后实施恶意攻击行为,我们已经看到智能合同黑客以及 DeFi协议的可组合性和交换机制的消极影响。智能型合同会在几秒钟内损失很多钱,我们仍然需要更多的审计和保护来提高它的安全性。

提示:如果您觉得本文不错,请点击分享给您的好友!谢谢
相关推荐
新闻聚焦
猜你喜欢
热门推荐
 
Ctrl+D 将本页面保存为书签,全面了解最新资讯,方便快捷。