“韩国以太坊”ICON爆代码漏洞,所有交易暂停

640?wx_fmt=jpeg


硅谷Live / 实地探访 / 热点探秘 / 深度探讨


韩国国家级区块链项目ICON(ICX)智能合约代码近日被爆代码存在安全漏洞,使transfer功能失效。虽然黑客无法利用这次漏洞盗币,但该漏洞会导致包括转账、交易等重要功能无法正常使用。据闻,项目方已积极投入大量资源修复漏洞并保证交易不受影响。


ICON到底出了什么安全漏洞?

在ICX的合约中,有一个功能可以开启/关闭合约的转账功能。最初,此功能的设计是只有ICX合约的所有者拥有调用它的权限;由于代码写错了逻辑运算符号,导致除了合约所有者之外的任何人都能随意开启和关闭该合约的转账功能。

 

让我们来看一下这段代码:


require(msg.sender != walletAddress); // 错误!

从代码逻辑上来看,“!=” 表示“不等于”, “==” 表示“等于”.

很明显的,这行代码应该写成:

require(msg.sender == walletAddress); // 正确!


事后来看,这几行代码所展现的错误很直接了当,可开发过程中要面对的是成百上千行代码,这样的繁杂就会带来对漏洞的忽略。而传统检测和安全审计服务不仅耗时耗力,还容易出现人为失误,导致不必要的损失。


怎么保证智能合约代码无漏洞?


为了探求如何能避免这类型的错误再次发生,小编请CertiK(Certik.org)--形式化验证平台帮忙做了一个深入检测,了解到CertiK如何通过将智能标签运用到源代码中,快速并且全自动化的检测安全漏洞。


640?wx_fmt=gif


上图就是CertiK检测ICX漏洞的实际过程,完整的演示了漏洞的验证过程及修复建议。据悉,ICX智能合约已经在上线做过多轮的安全“审计”,但可是这样的错误还是成了漏网之鱼。如果ICX当时能使用CertiK的形式化验证服务,这次事故很可能可以避免。


最后,小编还是要提醒智能合约要上线的各位,尽早让形式化验证平台为你的合约保驾护航。


附上ICX源代码:


640?wx_fmt=png



640?wx_fmt=jpeg


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值