Vyper 开发人员推出 vyupgrade 工具,用于安全合约重写

如果您曾经尝试过在不破坏所有内容的情况下更新已有多年的代码库,您就会知道这种感觉。现在想象一下,代码库控制着数百万美元的 DeFi 流动性。 Vyper 开发人员刚刚发布了一个工具,旨在使该过程明显不那么可怕。
该工具名为 vyupgrade,其 v0.2 版本于 5 月 29 日发布。主要由 Vyper 贡献者 banteg 构建,它可以自动将旧版 Vyper 智能合约重写为与 v0.4.3 之前的编译器版本兼容的现代语法。它支持 0.1b* 系列等旧版本编写的合约,这意味着即使是最早的 Vyper 代码也可以带入现在。
安全检查的实际工作原理
Vyupgrade 通过重新编译原始合约和修改后的合约,然后运行一系列等效性检查来解决迁移风险。它比较两个版本之间的 ABI、方法标识符和存储布局。如果有任何内容不匹配,或者重写可能会改变行为,该工具会明确标记它。被认为可能不安全的重写会被指出,而不是悄悄地通过。
广告
界面很简单。开发人员可以使用 uvx vyupgradecontracts/ 之类的命令从命令行运行它,选项包括 –check for dry running 和 –target-version 来指定目标编译器版本。
在主要 DeFi 协议上经过实战测试
Vyupgrade v0.2 已在 Curve、Yearn 和 Yield Basis 的合约上运行。 Uniswap v1 等早期合约的兼容性也得到了证实,它可以追溯到链上交易的最早时期。
特别是对于 Curve,这是相关的上下文。 Curve 的智能合约是用 Vyper 而不是 Solidity 编写的,这一选择在 2023 年 7 月成为一把双刃剑,当时 Vyper 编译器漏洞导致多个 Curve 池被利用。帮助 Curve 和类似协议保持合约与最新、最安全的编译器版本保持一致的工具不仅是值得拥有的。它们是对历史痛苦的直接反应。
为什么 Vyper 的工具差距很重要
Vyper 的设计比 Solidity 更简单、更可审计,其 Pythonic 语法有意限制开发人员可以执行的操作,以减少攻击面。 Vyper 编译器本身一直在积极开发,v0.4.x 对该语言引入了有意义的更改。但每次编译器升级都会给现有合约带来迁移负担。一种自动化和验证迁移的工具消除了保持基于 Vyper 的协议最新的最大摩擦点之一。
这对投资者意味着什么
智能合约漏洞仍然是 DeFi 资金损失的最大单一来源,过时的编译器版本是已知的攻击媒介。一种可以更轻松地在当前修补的编译器版本上签订合同的工具,可以直接降低一夜之间破坏协议 TVL 的漏洞利用的可能性。
对于像 Curve 和 Yearn 这样已经在测试 vyupgrade 的协议,采用可以作为可信度信号。尽管社区反应非常积极,但该公告的媒体曝光度有限,主要通过 X 和该项目的 GitHub 存储库传播。