验证软件功能介绍
Beosin-VaaS的业务逻辑验证软件,是一款用来检测智能合约上层业务逻辑漏洞的软件。
基于合约的白皮书,软件利用形式化方法,首先对单个函数进行属性的描述,在对单个函数进行属性的验证并通过后,基于这些已验证属性,抽取出高层的状态属性,进而对上层属性进行自动推理和验证,若属性不满足,则会返回一条反例路径。
案例介绍
一个虚假的BabyPepe代币部署者在5天内转移14.8万美元:金色财经报道,据CertiK监测,一个虚假的BabyPepe代币上有大量的流动性被移除。Bsc地址:0x80884C6cc5b8CbcA56Da2561C528A3B8F389D674 (Fake_Phishing1691)。部署者在5天内转移了14.8万美元。[2023/6/25 21:57:59]
我们可以以下面这个案例来举例说明。
动态 | 韩国综合企业CJ开发一个基于区块链的音乐版权管理系统:据韩国媒体报道,韩国最大的企业集团之一CJ正在开发一个基于区块链的音乐版权管理系统,使用AWS的亚马逊区块链管理服务。这项计划由CJ OliveNetworks牵头。该公司是CJ Corp母公司的子公司,经营着该集团的美容零售和科技业务。数字版权系统将保存版权歌曲的播放历史,并将信息存储在区块链上。其目标是允许材料的所有者和用户共享最终的分类账,并就使用受版权保护的知识产权达成公平的支付方案。(coindesk)[2019/9/20]
这里我们考虑进行一次众筹,目标是在部署后deadline时间内,收集fundingGoal个以太币。如果在该期间收集到相应数额个以太币,则表明众筹成功,在这种情况下,受益人可以提取资金。否则,将认为众筹失败,并允许用户要求退款。众筹合约本身继承了token合约,并直接收集众筹期间投入的所有资金。
声音 | 黄连金:区块链行业需在隐私与监管之间寻求一个平衡点:美国计算机学会区块链与人工智能委员黄连金表示:区块链行业在增加对隐私的保护时,还需要了解监管部门的需求,对于监管而言,不会支持完全的隐私保护,完全的隐私保护会让监管部门难以推动反的运行,会让很多国家对其进行打压,所以行业的隐私保护与监管之间需要找到一个平衡点。[2019/1/28]
具体合约和函数说明
我们可以进一步得知,该项目包含了一个Crowdsale合约,继承一个token合约。
在众筹合约中,构造函数会初始化设置众筹的截止时间deadline,并添加众筹目标额度fundingGoal,并在合约中硬编码受益人的地址beneficiary;
声音 | Craig Wright:IBM的Hyperledger项目是一个笑话:据ambcrypto报道,自称为中本聪的Craig Wright昨日表示,IBM的Hyperledger项目是一个笑话,并将其等同于“私人允许的互联网”。此外,他还提到IBM在90年代理解互联网和试图获得封闭系统方面的失败。根据Wright的说法,该公司在比特币时代犯了同样的错误。[2018/9/19]
然后会提供回调函数,提供给用户来参与投资,在开放众筹期间,只要未达到目标额度,就允许所有用户进行投资;
提供一个checkGoalReached()函数,如果达到众筹目标,或者达到了截止时间,就可以修改状态标识,关闭众筹;
然后会提供响应的transfer()和issue()函数接口,用于在众筹分配代币,以及能够进行代币的交易
提供一个safeWithdrawal()函数,如果众筹成功,受益人能够取出投资人的钱;
最后还提供一个safeClaimRefund()退款接口,如果众筹失败,用户可以通过该接口完成撤资。
结果分析和说明
我们这里已经完成了单个函数的属性验证,可以确认单个函数的功能是符合其属性规范的,在此基础上,编写上层属性进行验证。
以下,我们编写的上层属性有两条,一条是p1,含义是总是能够满足,一旦调用了safeWithdrawal()或者safeClaimRefund(),另一个函数就不能够被成功调用。
P1:
得到输出结果,可以看到属性2是满足的,而属性1并不满足。我们查看一下反例的可视化路径,可以看到,确实存在一条路径,safeWithdrawal()函数和safeClaimRefund()函数可以先后被执行成功。
回到合约中,根据所提供的反例路径,可以看到,发生该情况是调用回调函数一段时间后,当前时间超过了众筹的截止时间,众筹的资金总量没有达到目标fundingGoal,在checkGoalReached()关闭众筹之后,此时的合约状态,用户是可以调用safeClaimRefund选择退款的。
但是我们可以从结果中发现,此时依旧可以调用成功回调函数投资,那么就出现了后面的状态可能,在众筹失败之后,依旧有用户有意或者无意参与了投资,导致投资的总额超过了目标。
此时,能够再次调用checkGoalReached()函数结束众筹,改变状态标识,最终受益人能够在按原始需求,众筹失败的情况下,且有用户选择退款之后,依旧调用checkGoalReached()取出了所有的投资资金。
最终回到合约,我们发现,其实是由于用于投资的回调函数缺少了检查当前事件是否超过了截止日期,进而导致的合约漏洞。
可以看到,在该例子中,所有的函数其实是满足其自身的属性并实现了相应的功能的,但是由于在合约之间、函数之间的调用和关联关系,才导致出现了这样一个漏洞。而该属性验证工具的作用也在于此,它能够更加高效地发现逻辑属性漏洞。
标签:CHEUNDFUN区块链avalanche币的价格RUNDOGE币BabyApeFunClub以下哪项不是区块链目前的分类
近日,汽车制造业巨头保时捷宣布,将区块链引入到车辆配套的应用测试获得成功。此举意味着,保时捷成为第一家在车内测试区块链技术并获得成功的汽车制造商。以区块链为基础开发的应用能够提升汽车响应的速度,提高运行效率.
1900/1/1 0:00:002020年的2月14日,对所人来说都是一个特殊的情人节,COVID-19疫情当前,如你我这般的普通人,能做得实在太有限.
1900/1/1 0:00:00摘要:大盘于今日凌晨快速下行,短时放量明显,山寨币跌幅较大,市场恐惧情绪开始笼罩,短时不确定性较大.
1900/1/1 0:00:00去年9月受中国央行禁令影响,场外交易(OTC·OverTheCountermarket)一度兴起,而随着全球大型交易所屡遭黑客入侵,以及即时通讯软件推出相关服务,这类地下交易方式正再度繁荣.
1900/1/1 0:00:003月9日上午,中国人民银行行长周小川在十三届全国人大一次会议记者会上,对外界高度关注的数字货币、区块链、金融监管等问题做了解答.
1900/1/1 0:00:00头条 红杉资本以“违反投资排他协议”起诉币安赵长鹏,法庭文件透露了这三个核心点红杉资本起诉币安CEO赵长鹏违反投资独家协议。双方去年八月开始讨论对币安投资事宜,12月中旬谈判破裂.
1900/1/1 0:00:00