月亮链 月亮链
Ctrl+D收藏月亮链

CHE:一个案例说明高层属性形式化验证-ODAILY_FUNDZ价格

作者:

时间:1900/1/1 0:00:00

验证软件功能介绍

01

Beosin-VaaS的业务逻辑验证软件,是一款用来检测智能合约上层业务逻辑漏洞的软件。

基于合约的白皮书,软件利用形式化方法,首先对单个函数进行属性的描述,在对单个函数进行属性的验证并通过后,基于这些已验证属性,抽取出高层的状态属性,进而对上层属性进行自动推理和验证,若属性不满足,则会返回一条反例路径。

案例介绍

02

我们可以以下面这个案例来举例说明。

“大空头”Michael Burry:我们将看到另一个通货膨胀高峰:金色财经报道,对冲基金经理、电影《大空头》原型Michael Burry发布推文表示,美国通货膨胀达到顶峰,但这不是这个周期的最后一个高峰。他在推文中警告道,我们很可能会看到CPI走低,2023年下半年可能为负值,而且无论从哪个定义来看,美国都将陷入衰退。美联储将降息,政府将刺激。我们将有另一个通货膨胀高峰,这并不难。

美联储将于2023年 1 月 4 日发布其联邦公开市场委员会 (FOMC) 会议纪要,为未来的政策提供指导。[2023/1/3 22:21:13]

杜均:CZ面对监管的态度是一个巨大挑战:金色财经报道,据火币联合创始人杜均在社交媒体披露,ABCDECapital8月正式对外投资,目前已经领投7个项目,覆盖安全、数据、社交、ZK、NFT等赛道,如@MetatrustLabs、@ScopeProtocol等。

今天Binance占据了75%的市场份额,无论愿意与否,CZ面对监管的态度代表了整个行业的态度,对于CZ这是一个巨大的挑战。FTX事件的影响力远超预期,最近几年传统机构入场最大功臣一个是Coinbase、一个是Circle、另外一个就是FTX。FTX的暴雷,让传统老钱和政府机构对于Crypto世界的混沌无序害怕甚至厌恶,未来很长一段时间里政府不会有更宽松的政策支持Crypto的发展与创新,主权基金也不会把钱放进来。[2022/12/13 21:41:32]

过去一个月加密货币在线课程需求激增:金色财经报道,在新冠病的影响下,注册在线比特币和加密货币学习课程的人数激增。在线学习平台Udemy表示,仅在过去一个月中,其比特币和加密货币课程的需求就增加了300%。[2020/4/8]

这里我们考虑进行一次众筹,目标是在部署后deadline时间内,收集fundingGoal个以太币。如果在该期间收集到相应数额个以太币,则表明众筹成功,在这种情况下,受益人可以提取资金。否则,将认为众筹失败,并允许用户要求退款。众筹合约本身继承了token合约,并直接收集众筹期间投入的所有资金。

具体合约和函数说明

03

我们可以进一步得知,该项目包含了一个Crowdsale合约,继承一个token合约。

声音 | 马克·扎克伯格 : 谈论去中心化的其中一个方法是独立加密和消息传递:据巴比特消息,Facebook董事长兼CEO马克·扎克伯格日前联合其他重要人士召开了一次电话会议,在会议上,来自加拿大皇家银行资本市场的Mark Mahaney向扎克伯格提问有关隐私和区块链的话题,而扎克伯格则回应称:“我非常坚信要把权力下放给个人的手中。我们谈论去中心化的其中一个方法是独立加密和消息传递,并且确实认为有一个非常广泛的意义。我们更大程度地认识到,将数据长期存储在公司中,不仅仅是一种可帮助提供更好服务的资产,而且还可能意味着一种责任,因为可能会出现违规行为,或者数据可以非预期的方式被使用。我认为人们开始越来越广泛地了解这一点,这就是为什么像加密这样的东西变得对人们如此地具有吸引力。”[2019/1/31]

在众筹合约中,构造函数会初始化设置众筹的截止时间deadline,并添加众筹目标额度fundingGoal,并在合约中硬编码受益人的地址beneficiary;

然后会提供回调函数,提供给用户来参与投资,在开放众筹期间,只要未达到目标额度,就允许所有用户进行投资;

提供一个checkGoalReached()函数,如果达到众筹目标,或者达到了截止时间,就可以修改状态标识,关闭众筹;

然后会提供响应的transfer()和issue()函数接口,用于在众筹分配代币,以及能够进行代币的交易

提供一个safeWithdrawal()函数,如果众筹成功,受益人能够取出投资人的钱;

最后还提供一个safeClaimRefund()退款接口,如果众筹失败,用户可以通过该接口完成撤资。

结果分析和说明

04

我们这里已经完成了单个函数的属性验证,可以确认单个函数的功能是符合其属性规范的,在此基础上,编写上层属性进行验证。

以下,我们编写的上层属性有两条,一条是p1,含义是总是能够满足,一旦调用了safeWithdrawal()或者safeClaimRefund(),另一个函数就不能够被成功调用。

P1:

得到输出结果,可以看到属性2是满足的,而属性1并不满足。我们查看一下反例的可视化路径,可以看到,确实存在一条路径,safeWithdrawal()函数和safeClaimRefund()函数可以先后被执行成功。

回到合约中,根据所提供的反例路径,可以看到,发生该情况是调用回调函数一段时间后,当前时间超过了众筹的截止时间,众筹的资金总量没有达到目标fundingGoal,在checkGoalReached()关闭众筹之后,此时的合约状态,用户是可以调用safeClaimRefund选择退款的。

但是我们可以从结果中发现,此时依旧可以调用成功回调函数投资,那么就出现了后面的状态可能,在众筹失败之后,依旧有用户有意或者无意参与了投资,导致投资的总额超过了目标。

此时,能够再次调用checkGoalReached()函数结束众筹,改变状态标识,最终受益人能够在按原始需求,众筹失败的情况下,且有用户选择退款之后,依旧调用checkGoalReached()取出了所有的投资资金。

最终回到合约,我们发现,其实是由于用于投资的回调函数缺少了检查当前事件是否超过了截止日期,进而导致的合约漏洞。

可以看到,在该例子中,所有的函数其实是满足其自身的属性并实现了相应的功能的,但是由于在合约之间、函数之间的调用和关联关系,才导致出现了这样一个漏洞。而该属性验证工具的作用也在于此,它能够更加高效地发现逻辑属性漏洞。

标签:CHEGOALUNDFUNDCHERGOALSUNDG价格FUNDZ价格

POL币最新价格热门资讯
BTC:决定权最终回到BTC手上,9000美元后走势如何进行-ODAILY_blockkilojoule

自进入2020年以来,BTC马不停蹄的开涨,从1月3日至今,整体涨幅超过30%。上涨期间包含了地缘冲突、庄家配合拉盘以及其他币种带动等因素,如今又回到BTC本身.

1900/1/1 0:00:00
BTC:行情分析:加密资产牌照颁发,交易平台韩国招安-ODAILY_gmt币日本

摘要:大盘震荡上行,比特币站上9000美元,短时有望继续上探压力位。去年至今,新加坡、德国、韩国等国家地区开始或准备发放加密资产经营牌照,这些有助于加密资产被主流投资者所接受,对整个市场是长期利.

1900/1/1 0:00:00
BTC:行情分析:比特币突破阻力位,归因全球比特币避险-ODAILY_比特币

摘要:今日大盘继续快速上涨,比特币突破强阻力位,部分山寨币表现强势,有望开启上涨行情。这次中东局势升级事件,直接带来的是全世界对比特币的避险需求,和以往类似事件有些许不同.

1900/1/1 0:00:00
BTC:行情分析:比特币节点集中地德国,加密资产服务快马加鞭-ODAILY_AWBTC价格

摘要:今日大盘快速上行后有所回落,比特币在整个市场的相对表现有所变强,市场情绪表现仍为中性,以太坊并未突破前几日高点,场外资金流入有所放缓,预计短时震荡调整.

1900/1/1 0:00:00
比特币:Soteria创始人:为何比特币超越了我们的时代(5)-ODAILY_punk币什么最新信息

比特币和加密货币的真正信徒并不认为“遏制”策略首先起作用。这些策略确实获得了一些支持,但还不足以赢得并压垮比特币或真正去中心化的加密货币.

1900/1/1 0:00:00
DAO:DAO打破公司制,有通证就是股东-ODAILY_MYC价格

文/赵雪娇编辑/独秀疫情蔓延,在线办公一时间成为新风口。中心化组织的优势是集中力量办大事,但是弊端也很明显.

1900/1/1 0:00:00