注册并分享邀请链接,可获得视频播放与邀请奖励。

Richard Liu
@DrPayFi
Co-founder
加入 August 2009
519 正在关注    7.1K 粉丝
今天,我们一直在跟 @blockaid_ 密切合作,详细调查昨晚发生的针对 @humafinance v1 协议的漏洞攻击事件。Blockaid 的事件分析报告非常详尽(链接见第一条回复),在此不做赘述。 以下是事件 TL;DR 及我们从中学到的关于系统架构和运营的经验教训。 👇 TL;DR 攻击事件: 攻击者发现了智能合约中的一个漏洞,并从 Polygon 上的三个 v1 老池子中盗取了约 10.1 万美元的 protocol fee & pool owner fee。 用户资金: 用户资金没有受到任何影响。 风险隔离: 问题出在 Huma EVM v1 合约。与 PST 及 Huma 在 Solana 上所有的智能合约完全无关。 Solana 合约: Solana 上的程序采用了全面重新设计的架构,不包含此次被攻破的逻辑。 当前状态: 所有 v1 资金池均已暂停。 关键的经验教训:表面上看,这是 2023 年初上线的 v1 版本中的一个智能合约漏洞,但它凸显了在协议设计和运营方面的几个问题: 1. 不要把重要的状态转换(state transitions)混在有复杂逻辑的函数里 _updateDueInfo() 和 _getDueInfo() 计算到期款项和各类费用,是 v1 合约中最复杂的部分。将借款人状态转换嵌入到这些复杂函数中不是一个明智的选择。我们后来对这个设计也不太满意,在 Huma v2 智能合约的设计上放弃了这个方案,采用了更简单的架构。 2. 坚决剔除不必要的功能。 引入 requestCredit() 是为了支持未来的扩展,但在实际运营中从未用到过。非关键函数天生会受到较少的测试和安全审查,从而产生了不必要的攻击面。在发布前我们曾讨论过要不要把它拿掉,但当时认为没有大碍就保留了。如果某个函数不是必须,就不应该放进合约里。 3. 积极关闭不再使用的池子。 保留不再需要的旧池子会产生不必要的风险。今天,开发者和攻击者攻防双方都积极使用 AI,一些旧合约没用经过 AI 审计,可能会有更多的薄弱环节。关停 v1 资金池的工作此前已经在进行中,但没有放在最高的优先级,我们在这一点上应该更坚决。 这是一个惨痛的教训。我们应该好好从中学习,以不辜负这高昂的学费。在此分享我们第一时间的反思和经验教训,希望能帮助生态别的建设者,尤其是有老合约的项目方,能更有效地提高对黑客的防范。DeFi United, DeFi Strong! 🛡️
显示更多
Earlier today a vulnerability in Huma’s legacy v1 contracts on Polygon was exploited for 101,400 USDC. No user funds at risk and PST is not impacted. Huma’s v2 system on Solana is a complete rewrite and this issue does not apply to v2 systems. The teams were already in the process of sunsetting all the legacy v1 pools, and have paused v1 completely now.
显示更多
0
21
64
8
转发到社区