验证软件功能介绍
01
Beosin-VaaS的业务逻辑验证软件,是一款用来检测智能合约上层业务逻辑漏洞的软件。
基于合约的白皮书,软件利用形式化方法,首先对单个函数进行属性的描述,在对单个函数进行属性的验证并通过后,基于这些已验证属性,抽取出高层的状态属性,进而对上层属性进行自动推理和验证,若属性不满足,则会返回一条反例路径。
案例介绍
02
我们可以以下面这个案例来举例说明。
一沉睡近5年地址近一个月向Binance转入超2000枚以太坊:6月12日消息,链上数据显示,一于2018年从Bw.com和Gate.io买入超2800枚以太坊的地址,于一个多月前开始陆续向Binance转入以太坊,目前已转入超2000枚,且转移仍在继续。[2023/6/12 21:31:52]
这里我们考虑进行一次众筹,目标是在部署后deadline时间内,收集fundingGoal个以太币。如果在该期间收集到相应数额个以太币,则表明众筹成功,在这种情况下,受益人可以提取资金。否则,将认为众筹失败,并允许用户要求退款。众筹合约本身继承了token合约,并直接收集众筹期间投入的所有资金。
动态 | 印度电信运营商将在一个月内推出区块链反垃圾电话营销系统:据Financial Express报道,印度电信协会主席Sharma周一表示,电信运营商已经进入运营基于区块链的反垃圾电话营销新系统的最后阶段,消费者将在一个月内开始体验新区块链框架的好处。Sharma称,监管机构将在7月第一周审查运营商在这方面取得的进展。去年,印度监管机构收紧了相关规定,以遏制讨厌的电话营销电话和信息,要求电信运营商利用区块链技术减少不必要的通信。[2019/7/2]
具体合约和函数说明
03
我们可以进一步得知,该项目包含了一个Crowdsale合约,继承一个token合约。
独家 | 极豆资本创始合伙人张议云:分布式存储是下一个风口:区块链行业发展中,不同的投资机构之间投资逻辑不同。对此,极豆资本创始合伙人张议云对金色财经表示“极豆资本主要投赛道,真正的大钱不是赚来的,而是捡来的。区块链1.0的风口是比特币以及相关的山寨币,2.0的风口是围绕着以太坊的生态起来的,3.0下一个风口我们推测是分布式存储。现阶段的区块链技术跟1995年的互联网非常像,那时的操作系统只是个DOS命令行,还没有可视化界面,与现在的公链操作系统非常像。所以需要花时间去挖掘更好的公链操作系统以及分布式存储可落地的解决方案。”[2018/8/3]
在众筹合约中,构造函数会初始化设置众筹的截止时间deadline,并添加众筹目标额度fundingGoal,并在合约中硬编码受益人的地址beneficiary;
Coindesk分析师:BTC缩量突破可能是一个牛市陷阱:Coindesk分析师表示:下行趋势线的上行突破,有望将BTC价格推高至8000美元,然而,低交易量表明可能出现了虚假突破(牛市陷阱);在4小时的图表中,上升楔子形态的下行突破,可能使得BTC跌至7040美元;只有放量突破7700美元时,才有可能持续上涨至8000美元。[2018/6/4]
然后会提供回调函数,提供给用户来参与投资,在开放众筹期间,只要未达到目标额度,就允许所有用户进行投资;
提供一个checkGoalReached()函数,如果达到众筹目标,或者达到了截止时间,就可以修改状态标识,关闭众筹;
然后会提供响应的transfer()和issue()函数接口,用于在众筹分配代币,以及能够进行代币的交易
提供一个safeWithdrawal()函数,如果众筹成功,受益人能够取出投资人的钱;
最后还提供一个safeClaimRefund()退款接口,如果众筹失败,用户可以通过该接口完成撤资。
结果分析和说明
04
我们这里已经完成了单个函数的属性验证,可以确认单个函数的功能是符合其属性规范的,在此基础上,编写上层属性进行验证。
以下,我们编写的上层属性有两条,一条是p1,含义是总是能够满足,一旦调用了safeWithdrawal()或者safeClaimRefund(),另一个函数就不能够被成功调用。
P1:
得到输出结果,可以看到属性2是满足的,而属性1并不满足。我们查看一下反例的可视化路径,可以看到,确实存在一条路径,safeWithdrawal()函数和safeClaimRefund()函数可以先后被执行成功。
回到合约中,根据所提供的反例路径,可以看到,发生该情况是调用回调函数一段时间后,当前时间超过了众筹的截止时间,众筹的资金总量没有达到目标fundingGoal,在checkGoalReached()关闭众筹之后,此时的合约状态,用户是可以调用safeClaimRefund选择退款的。
但是我们可以从结果中发现,此时依旧可以调用成功回调函数投资,那么就出现了后面的状态可能,在众筹失败之后,依旧有用户有意或者无意参与了投资,导致投资的总额超过了目标。
此时,能够再次调用checkGoalReached()函数结束众筹,改变状态标识,最终受益人能够在按原始需求,众筹失败的情况下,且有用户选择退款之后,依旧调用checkGoalReached()取出了所有的投资资金。
最终回到合约,我们发现,其实是由于用于投资的回调函数缺少了检查当前事件是否超过了截止日期,进而导致的合约漏洞。
可以看到,在该例子中,所有的函数其实是满足其自身的属性并实现了相应的功能的,但是由于在合约之间、函数之间的调用和关联关系,才导致出现了这样一个漏洞。而该属性验证工具的作用也在于此,它能够更加高效地发现逻辑属性漏洞。
标签:IONAIONUNDREAGenesis Visionaion币是什么币THUNDERBNB价格Idle Treasure Party
我在文章中一直提倡普通投资者定投比特币,并且给出的定投价格是8000美元内可以放心定投,如果能够承担风险在10000美元内也可以定投.
亲爱的朋友: 你好,如果你有任何关于星球日报的问题请在以下时间联系我们的工作人员,我们将尽快解决您的问题并且给于回复,感谢您的支持.
北美知名区块链基础设施OAN开放应用公网,日前宣布启动社区赏金计划,推动其在中国的社区发展和建设。该赏金计划名为“开放共创社区赏金计划”,活动期截至3月20日.
本文来自:哈希派,作者:哈希派分析师团队,星球日报经授权转发。往期回顾:BTC一度突破7600美元,大周期反弹有望※回顾昨日行情分析、获取更多精彩内容,请关注哈希派公众号获取.
这两个星期以来,在以比特币、以太坊以及平台币的带领下,数字货币整体都走出了一波很不错的行情。前两天有读者就在微信上问我,有不少币的涨幅比特币还要高,这些币也没有什么用?它们为什么涨这么多?这个问.
去年9月受中国央行禁令影响,场外交易(OTC·OverTheCountermarket)一度兴起,而随着全球大型交易所屡遭黑客入侵,以及即时通讯软件推出相关服务,这类地下交易方式正再度繁荣.