时间:2023-08-04|浏览:199
Hello Nimbus 社区,
今天,我们有一个关于NBU交换涉及的最新事件的重要更新,请参见这里:
https://nimbusplatform.medium.com/provided-liquidity-and-token-value-update-6c6d3616f000
。我们一直以尽可能的透明度为目标。因此,在下面的内容中,我们将提供非常详细的说明,包括事件的经过以及Nimbus如何解决这种情况,并努力弥补流动资金提供者可能面临的损失。
2021年3月1日,NBU交换发生了什么?
正如之前所提到的,我们遭到了套利智能合约的攻击。
然而,我们一直在努力分析的是,为什么智能合约能够在短短几分钟内实现这样的结果并耗尽几乎所有的流动性?通常,要实现这个目标需要很多交易,而且需要更长的时间。但是对于我们来说,这一切都是瞬间发生的。为什么呢?
在过去几天里,我们一直在寻找答案。好消息是:我们找到了!
我们的分析表明,即使在Zokyo对Nimbus智能合约进行审核之后,仍然存在一个小错误。虽然看起来不起眼,但它却是导致这种情况恶化的关键。
1)在2021年3月1日凌晨3:15:17(世界标准时间),地址0x3a518964ff40ee733d30749a213d2e5c9ffb2b8c进行了初始交易,在Nimbus交换的ETH-NBU交易对中注入了1.994E-15个NBU。
2)然后,在NimbusSwap上从ETH-NBU交易对中撤回了516.9个ETH和597712.9个NBU的流动性。值得注意的是,这是在没有NimbusLP代币参与的情况下进行的。当NimbusLP代币用于提供流动性时,这些代币会发行给所有的Nimbus流动性提供者,撤回流动性时必须使用这些代币。但在这种情况下,流动性被撤回了,但没有使用这些代币,这是异常的开始。
3)随后,其他地址多次重复了这个过程。
4)结果,不仅NBU代币的价值和流动性受到套利活动的影响,而且在几个交易中,Nimbus内部交换中NBU交易对的90%流动性被撤回。
Nimbus智能合约中的小错误(即使经过审计人员的审核也没有注意到)如何影响情况?
在Nimbus智能合约的测试阶段,我们没有发现任何漏洞。此外,外部技术审核也没有发现任何错误,并确认了Nimbus平台的功能完整和安全。
但是,通过Nimbus团队的最新调查,我们发现了代码中的错误。以下是详细的技术说明:
为了计算Factory.sol合约的第405行和第406行的balance0Adjusted和balance1Adjusted,必须要使用具有10,000位的数值,并且完成正确的操作。但是,为了使智能合约能够检查新的流动性与基础智能合约算法相匹配,必须在第407行中使用相同的10,000位。但错误的地方是,这里使用了“1,000”位而不是“10,000”。
结果,这个小错误使恶意智能合约可以与进一步撤回流动性进行套利攻击。
我们完全理解并承认,这次事件的责任在于Nimbus团队。我们已经修复了这个问题,并计划全额向流动资金提供者进行赔偿。具体方法如下:
1)首先,Nimbus团队将全额向所有流动资金提供者进行赔偿。您可以放心,我们不会让任何恶意的第三方损害您的利益!
2)其次,我们已经修复了已经发现的漏洞。新版本的智能合约已经发布在我们的GitHub上,因此需要在 CET 时间3月4号上午7点至8点期间暂停Nimbus平台的维护。
目前维护工作已经结束,流动资金提供者的警告已经解除。您可以再次向平台添加流动性,并放心所有功能都能正常运作。
下面是方便您访问我们的GitHub的链接:https://github.com/nimbusplatformorg。
3)最后,正如我们之前宣布的,我们已经启动了流动资金提供者通知系统。从现在开始,在我们持续的分析中发现市场中有潜在攻击和其他风险情况时,这个系统将保护流动资金提供者的资产。
此外,我们还进行了开发和测试方法的改进,以避免将来发生类似情况:
1)从现在开始,我们将在内部测试完成后,让每个人都可以测试我们的代码。这将通过Bug奖励计划来实现-参与者可以测试代码性能,并在发现漏洞时获得奖励!
2)此外,我们与外部审计人员的互动方式发生了重大变化。从现在开始,我们将引入更多的测试和审计阶段,并以更多样化的方式进行。这将让我们的用户在此事件发生后感到安全,并确保所有情况的安全性。
最后,我们已经开始与流动资金提供者和兑换用户紧密合作,以确保NBU市场的可持续性。这将有助于平衡任何未来可能出现的不利市场情况。
正如我们之前的帖子所述,由于NBU市场增长迅速,所以这次事件在发生后迅速被发现。尽管这为市场参与者创造了一些机会,但也带来了不稳定性和风险。为什么呢?因为市场仍然