宇宙链 宇宙链
Ctrl+D收藏宇宙链

以太坊合并“后时代”「形式化验证技术」如何检测合约安全?

作者:

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

所谓的形式化验证,简单而言就是用数学工具进行验证的方法,把代码编成数学模型,从设计到实现整个流程,通过证明手段来证明代码是完备安全的。

形式化验证作为成都链安的核心技术之一,已经帮助上千份智能合约解决安全问题。可能很多人会问,为什么人工不能检测到的问题,形式化验证可以呢?

这是因为,对于形式化验证,可以无需理解合约具体实现的细节,无需构造特定的场景,无需数据枚举;通过逻辑关系凝练出可复用的安全属性,对合约每条路径都会进行严谨的数学公式推理,自动检测每个可能的系统状态及操作,计算出可满足的解,并根据求解结果对比是否违反安全属性最终检测出每条路径下可能存在的安全问题。

以太坊链上一笔148.01ETH交易被收取64.01ETH手续费:金色财经报道,据Whale Alert最新数据显示,刚刚以太坊区块链上发生了一笔148.01 ETH的交易,但该交易的费用达到64.01 ETH,约合 12 万美元。据悉,该交易哈希为:0x0938e0d7f754637ed588a769889ae30d70ac8190d6f4c6c707529885333d00e0,发送方为“0xfadedfac...62d8baf784”,接收方为“0x7a250d56...c659f2488d”。[2023/5/8 14:50:03]

以太坊合并“后时代”,智能合约安全同样不可忽视,今天,我们为大家准备了一个以太坊生态的案例,看看下面这份合约是如何在我们的智能合约形式化验证平台“链必验”检测出漏洞的。

休眠6年的以太坊地址将48992枚ETH进行质押:金色财经报道,链上信息显示,沉寂已6年的以太坊远古地址将48992枚以太坊(约价值8000万美元)参与质押。该地址曾参与以太坊1CO,并在创世纪中接收到约12万枚ETH。[2023/1/23 11:27:13]

链必验,是一款全球领先的“一键式”智能合约形式化验证平台。检测准确率高达97%以上,精确定位风险代码位置并给出修改建议,自动检测智能合约80余项的常规安全漏洞及功能逻辑缺陷。现已拥有生态用户10万+,是全球首套同时支持蚂蚁链、腾讯区块链、FISCO-BCOS、Fabric等的智能合约形式化验证平台。可以极大提高智能合约的人工审计效率,有效降低安全隐患遗漏风险。

01.

准备需要验证的示例Wizard_game.sol

Whale Alert:沉寂超6年以太坊地址被激活,包含1,947枚ETH:2月21日消息,据 Whale Alert 监控数据显示,北京时间凌晨 3 时 59 分,一个沉寂长达 6.5 年的以太坊地址被激活,该地址包含 1,947 枚 ETH(价值约合 516 万美元),交易哈希为:0xced477b5688360bf264218a25b568b40b0d46a1dbe8b390558b084c7b872721d。[2022/2/21 10:05:50]

说明:

原合约为以太坊上真实存在的一个巫师决斗合约。为了看起来简单明了并且能够使用形式化检测验证问题,本合约根据逻辑关系只保留巫师决斗超时的处理接口;

resolveTimedOutDuel是更新处理超时情况下的巫师决斗结果的接口;

行情 | 一以太坊地址转出价值1.22亿美元ETH:据Chaindigg数据显示,今天,地址0x6cc5f688a315f3dc28a7781717a9a798a59fda7b向五个地址共转出499999个ETH。该转出地址标记为交易所钱包。[2018/9/24]

其中每个巫师有自己的决斗场和决斗能量;

若巫师1满足胜利条件,则将巫师2的决斗能量转移给巫师1,再将巫师2的决斗能量清零。

2.合约上传

新增项目

在“链必验”工具中创建需要检测的项目。本次检测的项目为ETH类型项目,那么根据需求点击工具左上方“新增项目”按钮,输入项目名称,选择项目类型,点击确定。

新增合约文件夹

选择刚创建好的项目,点击工具左上方的“新增合约文件夹”按钮,输入文件夹名称。

上传合约文件

选择刚创建好的文件夹,点击工具左上方的“上传”按钮,上传准备好检测的合约文件。

3.合约检测

新增项目

将待检测合约上传完成之后,选择此合约,按照合约内容输入检测参数,然后点击开始检测。

4.查看结果

待合约检测完成之后,查看检测结果,通过代码定位、错误描述、修复建议了解明确该漏洞的具体信息,然后查看代码逻辑寻找问题并进行修复。

5.结果分析

经分析,产生此漏洞的原因是在执行resolveTimedOutDuel接口更新巫师1和巫师2的决斗属性时,未考虑巫师1和巫师2相等的情况,在此场景下,巫师1的决斗能量会先翻倍,然后再清零,导致巫师1状态更新前后总的决斗能量发生了改变,所以导致了assert断言的失败。

6.问题解决

此时在resolveTimedOutDuel接口中添加一个限制条件“require(wizardId1!=wizardId2);”,确保在执行决斗属性更新时巫师1和巫师2不相等,查看是否还存在此问题。

7.漏洞检测难度人工难以察觉,随机测试难以出现这种情况

对于智能合约的验证,通常是伴随人工验证,靠自身经验不断尝试枚举各项可能不满足的输入条件,从而比对输出来判断是否存在漏洞;其存在的问题就是人工成本昂贵,测试时无法覆盖到所有的路径,测试具有一定的机械性、重复性、工作量往往较大。

而对于智能合约的另外一种验证方式-fuzzing模糊测试,虽然可以解决人工成本昂贵的问题,但是由于其没有实际执行规则机制原因,仅靠“蛮力”不断枚举各个输入,同样存在可能出现某种输入漏掉的问题,并且无法根据路径检测出一些逻辑性的漏洞。

在加密行业你想抓住下一波牛市机会你得有一个优质圈子,大家就能抱团取暖,保持洞察力。

如果只是你一个人,四顾茫然,发现一个人都没有,想在这个行业里面坚持下来其实是很难的。

想抱团取暖,或者有疑惑的,欢迎加入!

感谢阅读,喜欢的朋友可以点个赞关注哦,我们下期再见!

标签:以太坊ETHCOS以太坊币是什么币ETH钱包地址ETH挖矿app下载Etherael指什么寓意COS价格COS币

比特币价格今日行情热门资讯
随着主导地位下降,比特币略微看涨

资料来源:TradingView2022年8月25日的比特币价格分析对世界上最大的加密货币略有看跌,因为在加密货币领域创造更高高点的可能性仍然很低.

1900/1/1 0:00:00
以太坊价格预测:ETH 会爆发吗?

在以太坊价格突破矩形通道之前,预计颠簸的市场将继续存在。 为了准备潜在的巨大突破,以太坊的价格正在以矩形形式盘整。拥有1,000-10,000Eth的持有者仍然对正增长持怀疑态度.

1900/1/1 0:00:00
这就是为什么本周可能对加密货币市场造成破坏的原因

内容 联邦公开市场委员会、CPI、PPI等 不定价 过去几周加密货币市场相对平静,因为缺乏金融相关事件使一些资产进入短期的局部复苏反弹.

1900/1/1 0:00:00
5 月 XNUMX 日的加密货币价格预测:LINK、FIL、NEAR、XTZ

我们目前处于熊市cryptocurrencies.由于结构性变化,列出的大多数代币价格都处于看跌状态.

1900/1/1 0:00:00
DOGE 8% 的价格上涨使 Memecoin 成为加密货币市场的佼佼者

Memecoin令人惊讶的价格上涨使其在盈利能力方面处于市场领先地位 狗狗币最近8%的反弹是市场上最出乎意料的价格表现之一,考虑到memecoin向更高阻力位移动的问题.

1900/1/1 0:00:00
LUNC 的新 Re-Peg 提案,USTC Spike Double – Digit

Terra的新连锁TerraClassic(LUNC)开发人员正在努力通过他们每天的新更新来重新获得失去的信任.

1900/1/1 0:00:00