智能合约bug,2.2亿被系统锁定!急需测试救场啊
4月23日,一个名字叫 AkuDreams 的 3D 动画 NFT 项目在荷兰的一个拍卖会上,遭遇了 智能合约系统的Bug 惨案。原因是该智能合约系统有代码 bug。投标者的 11539.5 枚加密货币——以太币被永久锁定,且无法退款。而且该加密货币价值 3400 万美元,约 2.2 亿元人民币。
加密货币开发商 foobar 发推表示,锁定的以太币无论是个人还是开发商,都将无法取出。
同时,该开发商还贴出了故障代码:
从上述的代码来看,该智能合约代码存在两个 bug。
第一个是用户完成投标后,状态会设为 1;
第二是竞标失败后退款条件状态为0.因此用户无法申请退款,开发团队也无法取款,因为 refundProgress ≥ totalBids,totalBids 是卖出量,而代码应该针对是的报价人数——对应 bidIndex。(该说法是开发商说的)。
Akutars 表示将努力为那些打算以低于最终价格 0.5 个以太币的价格投标的通证持有者发放资金。并且还表示,投放漏洞的人并非恶意,在他们进行深入调查并取得所有权后,对方便很快解除了对漏洞的封锁。
最后Akutars还在@_MouseDev、@NftDoyler 和@AnonymiceNFT的帮助下,写了一份新的造币合同,并请求大家积极参与测试。
虽然加密货币还没有被世界大多数国家支持,甚至有些国家还禁止使用加密货币,但是这些加密货币所使用的的技术,例如区块链技术,它的安全性和稳定性已经受到了质疑。这些系统性的功能测试、业务逻辑测试、压力测试等等无疑都是是非常重要且需要认真对待的。比如:
运行环境测试:考虑各种应用场景和运行环境的变化下,对加密货币的影响。
节点管理和测试:加密货币运转的时候,所有的事情几乎都要节点参与,网络通信、逻辑运算、交易、数据验证等,而加密货币系统一般是由多个节点组成协同工作,因此节点属性及对节点的管理至关重要。
连接测试:因为加密货币应用的大多数都是区块链技术,并且号称去中心化,因此在系统的各个节点的连通上需要重点测试。
共识算法的测试:正所谓“无共识,不区块”,是加密货币运行的基础——区块链的核心属性,共识机制不仅决定记账节点如何打包出块,还需要提供系统能正常工作的容错机制,并且保证各共识节点对交易执行结果达成一致。
智能合约测试:合约的本质是由语言写出来的一些代码,通过区块链平台提供的执行环境,运行其中的代码逻辑,达到预期目标。某些安全场景下,能否冻结或者销毁合约,使之不能再被调用执行,在需要使用时,又能解冻。平台支持的合约语言越丰富,用户实现功能选择的余地就越多,对项目尽早落地能有更好的保障。
同步性测试:在环境正常时,区块链各节点数据都应一致,同步特性至关重要。
存储方面的测试:可以从账户状态和存储介质对区块链的存储进行功能和稳定性测试。
更多关于软件测试培训的问题,欢迎咨询千锋教育在线名师,如果想要了解我们的师资、课程、项目实操的话可以点击咨询课程顾问,获取试听资格来试听我们的课程,在线零距离接触千锋教育大咖名师,让你轻松从入门到精通。