SharkTeam推出了“Move语言安全性分析及合同财务审计关键点”系列课程,将逐渐深入探讨Move智能合约领域的漏洞和安全性问题,包括基本内容管理权限漏洞、再入漏洞、逻辑性校检漏洞、函数公式故意复位、返回进攻、控制预言机、合同更新漏洞、三明治进攻、中间人攻击、提议进攻等。本章将重点介绍函数公式故意复位这一漏洞。
1. Solidity合同复位
在Solidity智能合约中,完成合同的复位主要有两种方式:对象方法和自定复位函数公式方法。对象方法会在合同布署后自动完成,并且与合同布署关联,仅能针对关联布署的合同进行复位,具有很大的优点;自定复位函数公式则需要额外的买卖来启用,并且需要特别限定才能保证其安全性。
2. PunkProtocol安全事件
2021年,区块链技术分红保险协议书PunkProtocol遭受黑客入侵,导致约890万美元的损失。进攻的主要原因是合同中存在严重的漏洞,缺乏复位函数的修饰符,可以被反复复位,威胁到数字货币的安全性。
3. Move合同复位
Move生态项目需要更加注重复位函数公式的安全性,相比Solidity更需要限制调用者和启用频次。Move合同没有对象,而是需要自定复位函数公式,完成全局性的状态设定和网络资源复位。
从安全性角度考虑,Move合同需要特别注意复位函数公式的唯一性和规范化应用,确保其安全性,并避免类似PunkProtocol的事件再次发生。
4. 汇总
Move的复位函数公式需要满足两个条件:只有指定有权限的账户才能启用,且复位函数公式容易被启用一次。Move语言具备资源唯一性和规范化的应用特性,更加安全可靠。
5. SharkTeam简介
SharkTeam致力于全方位维护Web3全球的安全性,由来自全国各地的资深安全性专业人员和科学研究人员组成,提供智能合约财务审计、链上剖析、应急处置等服务,并与区块链生态系统中的关键参与者合作,包括Polkadot、Moonbeam、polygon、OKC、HuobiGlobal、imToken和ChainIDE等。