[锦鲤论币]Raft 数学难题,Finance被盗360万美元,DeFi漏洞

ANC DeF DEFI efi fi 2023-11-20 60

DeFi 建设者面临数学问题——如果他们在智能合同中使用的接近方法不能防止漏洞,黑客可以从他们的协议中窃取资金。

上周,黑客从稳定货币协议中获得稳定货币协议 Raft Finance 中窃取了 360 万美元。黑客利用闪电贷发动攻击,其原理是利用。 Raft 智能合同中的精度损失漏洞。这个漏洞是由于数字接近时的放弃错误造成的,这促使黑客获得额外的股份代币。

虽然 Raft 经历过 Trail of Bits 和 Hats Finance 等待公司多次审计,但漏洞未得到修复。

Raft Finance 被黑事件只是一系列的 DeFi 在最新的盗窃案件中,攻击者针对的是精度损失漏洞。像 Balancer 和 Onyx 这样的 DeFi 该协议也受到了这样的攻击。事实上,像 Onyx 一样,DeFi 借贷协议 Compound 分叉版本也被发现在其代码中包含了放弃错误,这些错误被使用,就像使用一样, Hundred Finance 和 Midas Capital 情况是一样的。

接近法或放弃是使用接近但与原始数字真实值不完全相同的数字,可能导致放弃误差和精度丧失,特别是在大量数学计算的复杂性中 DeFi 协议中。

「我确实觉得 DeFi 面对整数舍入方面的数学挑战,」泰勒·韦伯告诉智能合同开发者兼安全研究员 DL News。

当接近法引起的误差数量较少时,这不是问题,但当偏差积累到足够大的水平时,黑客会像他们在无数次攻击中所做的那样使用这些误差值。

「一些 DeFi 高度动态和创新的行为可能会使攻击者将精度损失放大到非常大的水平,」匿名加密审计公司 Trust Security 负责人 Trust 告知 DL News。

「闪电贷款机制和高流通性 AMM 理论上,黑客的整合促使黑客大规模应用『价值丧失』问题,」Trust 补充道。

难以检验

在加密领域,放弃错误和精度丧失是很常见的,这背后有几个原因。

主要原因是支持加密的计算逻辑不适合性能。

「EVM 与其他计算架构几乎相似,即不支持以分数的形式计算,因此必然会失去精度,」Trust 说。

同时,代币的小数点位数也不尽相同。例如,USDC 有六位小数,而且 DAI 有 18 位置。在两种代币交换的交易池中,必须设计某种形式的精度缩放,以考虑不同的小数点位数。精度缩放涉及调整次要资产的小数点位数,以匹配主要资产的小数点位数。

此外,像其他算术问题一样,智能合同审计人员很难发现放弃错误。事实上,这些漏洞在审计过程中经常被忽视,导致即使经过大量审计协议,黑客仍然会利用这个漏洞成为受害者。

「一种文化变化」

Raft Finance 黑客事件引起了对认真对待放弃错误的讨论。

「我不认为问题不在于我们受到了我们的痛苦 EVM 整数限制取决于开发人员和审计人员如何处理放弃错误类别的漏洞,」Webb 说。

Webb 呼吁进行「文化改变」,希望 DeFi 建设者和审计员可以像对待递归调用漏洞一样对待放弃错误。

智能合同审计员 Joe Dakwa 告知 DL News,完善的单元测试和模糊测试应该成为一个很好的标准实践。模糊测试是一种可以在智能合同中进行的测试,将随机数据输入代码,以检查是否有问题。

安全专家表示,类似模糊测试的不变性测试也应该添加到测试组合中。

相关推荐