全球首个 Move 智能合约安全审计报告发布

MoveBit
2022-10-13 11:48:26
收藏
Move 语言的愿景是帮助开发人员安全、轻松、快速地构建区块链应用程序的框架,Move 是为区块链而生的智能合约编程语言。

作者:MoveBit

 

10月11日,专注 Move 生态的安全公司 MoveBit (莫比安全)团队发布了全球首个 Move 智能合约安全审计报告——《Starcoin Framework Audit Report》。

这份审计报告是全球 Move 生态上的首个智能合约安全审计报告,并最早总结了基于 Move 构建 DApp 应用的安全经验,标志着 Move 生态安全体系建设的开始。

 

Move 语言介绍

 

Move 语言最早是为 Meta 的 Diem 区块链项目而开发的,现在Move 语言由开源社区维护。Move 语言的愿景是帮助开发人员安全、轻松、快速地构建区块链应用程序的框架,Move 是为区块链而生的智能合约编程语言。

根据 MystenLabs 的 Move 语言的文档介绍,目前有 4 条公链已经使用 Move 语言,分别是 Aptos、Sui、Starcoin、0L Network。目前 Starcoin 和 0L Network 已经上线主网,而 Aptos、Sui 还处在测试网阶段。

Starcoin 是一个2021年6月主网上线的以 PoW 为核心共识机制的 Move 区块链,使用增强的工作证明共识和 Move 语言。它通过分层和灵活的互操作性来优化 DeFi、NFT、游戏等不同生态系统的构建。

Starcoin Framework是 Starcoin 链上的通用 Move库, 包括了账户、NFT、Token 等通用标准,是生态建设的重要基础设施。Starcoin Framework 的安全性是 Starcoin 上开发各种 Move项目应用安全的基础。

 

Move智能合约的重要概念

 

Move Prover: Move 中内置用于智能合约的形式化验证工具叫做 Move Prover,通过这个工具,你能够断言所写智能合约的特性和规范,为智能合约运行提供额外安全保障。它的基本思想是通过形式验证领域的自动定理证明求解器来验证程序是否符合某种规范(specification)。

Move Specification: Move 自己定义了一套规范语言,它通过前提条件、后置条件、不变式等来描述程序怎么样才算正确运行。Move Specification 可以直接在程序中插入,或者单独写成一个 Move Specification文件。Move Specification 常被缩写成Move Spec。

Move Framework:Move 语言的关键设计是能够将特定于区块链的框架逻辑与 Move 语言的通用功能分离。Move Framework 是链的创世状态中的内置的一组 Move 模块。 这些模块通常实现诸如账户、Token等关键组件,一般是用于实现特定区块链的通用框架逻辑,是DApp 开发的基础。

 

构建Move DApp应用的安全经验

 

在过去的几周中,专注于Move安全生态的安全公司 MoveBit 与 Starcoin 团队进行了深入交流合作,对Starcoin Framework 的每个细节进行了审计。

MoveBit 深入研究了 Starcoin Framework 的代码结构,作为最早上线的 Move Framework,其中 Account、Token、STC、Config、DAO、NFT、Oracle、Genesis 和 Block等代码功能全面,覆盖了大部分开发者的通用场景需求。基于此,MoveBit 最早总结了基于 Move 构建 DApp应用的安全经验,对以下14类风险进行了分析。

  • Transaction-ordering dependence
  • Timestamp dependence
  • Integer overflow/underflow
  • Number of rounding errors
  • Denial of service / logical oversights
  • Access control
  • Centralization of power
  • logic contradicting the specification
  • Code clones, functionality duplication
  • Gas usage
  • Arbitrary token minting
  • Unchecked CALL Return Values
  • The flow of capability
  • Witness Type

 

MoveBit 的发现

 

Starcoin Framework 作为 Starcoin 的 Move 标准库,包含 69 个 Move 源文件和 70 多个模块。在此审计工作之前,我们提前阅读了 Starcoin SIP 和其他开发资源。我们首先回顾了框架架构,然后主要进行了人工代码审查、测试和使用 Move Prover 的形式化验证。

我们一直与 Starcoin 团队保持密切联系,在v11版本中一共发现了21个 Issue (其中Major 1个,Medium 4个,Minor 16个),已汇总成审计报告并对外公开。在与 Starcoin 团队的会议期间,我们对所有问题进行了广泛讨论。一些问题已经在后续迭代中得到修复,其他问题讲很快得到解决。除了原生函数和一些包含无法推理的特殊元素的函数(例如,运行时类型信息、位运算符)外,我们为大多数函数和文件添加了形式化验证代码 Move Specification。所有的形式化验证代码都会作为 PR 提交到代码仓库,最终由 Starcoin 团队在以后的升级和修订中合并。

审计报告链接:https://www.movebit.xyz/file/Starcoin-Framework-Audit-Report.pdf

这份审计报告是 全球Move 生态的第一个智能合约安全审计报告,标志着 Move 生态安全体系建设的开始。MoveBit 将与 Move 社区同行,专注为 Move 生态的安全保驾护航。

 

关于Starcoin

 

Starcoin, 主网已在2021年5月上线,是 Move 生态第一个无许可公链,基于最成熟的去中心化共识增强版 PoW 以及智能合约语言 Move 提供来自原力的安全,通过分层的灵活互操作性,为参与 Web.3.0 生态搭建的人们提供价值赋能的数字资产服务的分布式金融网络。

 

关于MoveBit

 

MoveBit(莫比安全)团队是一家服务于 Move 生态的安全公司,其愿景是让 Move 生态成为最安全的 Web3 生态系统。MoveBit 团队由学术界安全大牛和企业界安全领军人物组成,具有10年的安全经验,在NDSS、CCS 等顶级国际安全学术会议上发表安全研究成果。团队是 Move 生态最早期的贡献者,与 Move 开发者共同制定安全 Move 应用的标准。MoveBit 已经陆续与全球多家知名交易所、公链项目合作,为合作伙伴提供安全审计服务。

链捕手ChainCatcher提醒,请广大读者理性看待区块链,切实提高风险意识,警惕各类虚拟代币发行与炒作, 站内所有内容仅系市场信息或相关方观点,不构成任何形式投资建议。如发现站内内容含敏感信息,可点击“举报”,我们会及时处理。
ChainCatcher 与创新者共建Web3世界