区块链9月8日讯 “预言机”服务提供商Chainlink在去中心化金融领域扮演着非常重要的角色,它向去中心化交易所、钱包、去中心化金融协议聚合服务提供商提供喂价服务。然而就在八月底,九个 Chainlink节点运营商遭到所谓“垃圾邮件攻击”,攻击者从他们的“热钱包”中获取了大约700枚ETH(当时价值约合33.5 万美元)。
到目前为止,已知的九个受影响的Chainlink节点运营商分别是:T-Systems(德国电信的子公司)、01Node、Anyblock Analytics、B-Harvest、ChainLayer、Everstake、Figment Netwoks、LinkPool、以及 Chainlink 自己。
由于Chainlink节点运营商钱包余额在很大程度上取决于各自的内部政策,因此有的运营商钱包里资产超过 50 ETH,而有的运营商钱包里只有2-3 ETH,如果攻击者运气好的话极可能攫取更多收益。
据悉,本次攻击是通过简短的垃圾邮件来进行的,它利用了节点响应查询漏洞,而且还涉及一个与该网络交易成本相关的代币和该代币的使用方式,整个时间持续了约两小时。攻击者通过发送有效的价格请求,导致节点运营商不得不支付大量以太坊交易费用,也就是gas费。以太坊上的gas价格是以“gwei”计价,攻击者通过抬高这些预言机上的gas费用价格迫使他们用更高成本铸造Chi代币,这些代币通常用于支付价格较高的gas费用,但当gas费用被抬高之后,攻击者此时可以抛售Chi代币来换取 ETH 并以此获利。据消息人士透露,恶意攻击者最终使用了基于以太坊的交易混合器Tornado Cash来掩盖非法所得的以太坊代币转移路径。
通常情况下,Chainlink会通过节点运营商将DeFi代币价格发送到区块链智能合约上,因为按照设计规则,智能合约是无法与外部系统进行通信的,节点运营商会因为相关工作获得报酬,比如Chainlink使用其原生代币 LINK来支付费用。但恶意攻击者可以使用节点运营商的备用gas来挖掘 Chi gas 代币,该代币是由去中心化交易所聚合服务提供商1inch.Exchange创建的。Chi是一种代币化的gas费用形式,旨在对冲弹性波动的 gas 费用。 Chi被称作是目前市场上流动性最高的gas代币,该代币在1inch自动化做市商协议Mooniswap中拥有巨大流动性,而这或许也是恶意攻击者选择它的主要原因。
本次攻击不仅导致了上述 九个节点运营商耗尽了自己钱包内所有以太坊代币,同时在攻击期间他们也无法响应和满足数据请求。因为一旦节点运营商耗尽了自己的以太坊代币,他们就不能再为交易付费,也就无法响应请求或在链上提供数据,基本上处于瘫痪状态。然而不幸的是,大多数受影响的节点运营商当时并未察觉到这是一次攻击事件,他们只是简单地以为当天交易量过大造成gas费用高峰,因此都选择了继续向钱包内充值以补足gas“燃料”,可是所有新注入的资金也很快都被耗尽。Chi代币奇怪的铸造方式很快被Chainlink团队发现了,于是安全团队开始打补丁,之后通过白名单解决方案,通过只满足白名单上的请求而同步阻止其他所有未列入白名单的请求方最终解决了问题。不过,白名单只能算是一种临时解决方案,如果想要获得一个永久性解决方案,Chainlink需要在节点运营商更改系统之前找到“与实际数据使用者的共同点”。
尽管Chainlink确认了本次攻击,但其官方未披露损失了多少以太坊以及受影响的节点运营商数量,且对其描述为对网络进行垃圾邮件的“失败尝试”。Chainlink表示,尽管这种垃圾邮件攻击的确需要Chainlink节点花费更多以太坊,但当网络开始正确处理垃圾邮件之后,攻击影响便很快消除了。在垃圾邮件请求攻击初期,通常需要网络消耗较多资源,直到相关请求被识别为垃圾邮件。这次对Chainlink的垃圾邮件攻击其实是一次失败的尝试,对整个区块链和网络并没有产生实质性影响。这种试图想Chainlink网络发送垃圾邮件的失败尝试证明Chainlink网络已经变得越来越有弹性。
客观地来说,这次攻击的确对Chainlin 网络没有任何实质性影响,因为未受影响的节点运营商仍然可以继续提高喂价数据。比如,ETH/USD官方喂价需要大约25或28个数据提供者,因此当九个节点运营商出现问题时,其他节点运营商仍然足以更新喂价数据。但是如果这次攻击影响了大约一半的Chainlink 节点运营商,那么在没有足够备份之前,喂价数据就会受到影响。
Chainlink一方面坚持认为攻击行为基本上在预期之中,不会影响其网络,一方面也在与一些遭到攻击且热钱包内没有足够以太坊代币的官方钱包运营商合作,据悉损失资金范围在10-20枚ETH的节点运营商可以获得补充资金支持,因为他们使用了自动补充资金脚本引发的资金耗尽,不过并不确定是否所有节点运营商都可以得到补偿。
值得一提的是,就在本次攻击前,Chainlink节点运营商Certus One也曾在短短几天内遭遇过数千美元的损失。不过该节点运营商首席执行官Hendrik Hofstadt向用户保证他们是绝对不会受到影响的。整个系统也就是被称为聚合器的智能合约并没有发生变化,只是进行了更新,这些聚合器运营商会给节点运营商付款。包括 Chainlink 在内的绝大多数数据使用者其实都是向节点运营商支付费用的,然后他们的去中心化应用程序就可以免费在链上访问价格数据,当然实际上每个人都可以免费访问这项喂价数据。
与此同时,Hendrik Hofstadt还表示gas 价格上涨是这次攻击的主要诱因。他认为在正常情况下利用 Chainlink 漏洞的恶意攻击者其实不算“幸运”,因为gas代币通常不是百分比有效,直到有足够的请求需要被回应,恶意攻击者才算不亏损,但这种做法又会将gas价格推高到可以赚钱的地步,这与服务拒绝攻击非常类似。而且执行这种攻击成本会非常昂贵,并不会给攻击者带来任何可观的利润。
不过,加密社区依然认为这种类型的攻击会给节点运营商带来风险,因为一旦攻击被实施,就会牺牲诚实行为者赚取利润的时间,网络本身因此也会付出巨大代价。
本文部分内容来自The Block