设为首页 - 加入收藏 ASP站长网(Aspzz.Cn)- 科技、建站、经验、云计算、5G、大数据,站长网!
热搜: 创业者 数据 手机
当前位置: 首页 > 运营中心 > 网站设计 > 佳作 > 正文

智能合约问题致区块链安全事件频发(2)

发布时间:2018-09-25 15:12 所属栏目:49 来源:猎云财经
导读:曾经BEC批量转账漏洞事件就是利用了没有使用安全函数计算乘法,导致计算机结果超出范围造成溢出事件,使判断条件成立,然后就可以进行大量的转账了,最终BEC蒸发了60多亿的市值,不仅仅是给投资者,也给项目方造成

曾经BEC批量转账漏洞事件就是利用了没有使用安全函数计算乘法,导致计算机结果超出范围造成溢出事件,使判断条件成立,然后就可以进行大量的转账了,最终BEC蒸发了60多亿的市值,不仅仅是给投资者,也给项目方造成了极大的损失。

1000 (6)

1000 (7)

图中红框的地方是我们为了避免溢出漏洞而使用的安全数学函数。

在这种写法里,我们除了做正向计算外,还要做一次逆向计算,以保证运算结果可逆,这样的计算结果才是正确的。

也就是说做一个加法,我们计算a + b = c,安全函数在计算完之后一定要再计算一遍c >= a,这个结果成立,我们会认为这是一次有效的计算。虽然这样增加了计算量,但是由于智能合约部署以后不可变更并且不可升级的特性,我们牺牲一点点效率,换来的是安全正确的计算结果,也是值得的。

所以在投资的时候一定要找开源代码的来投,开源代码一定要检查是不是用了安全函数,但是要注意,有了安全函数,不代表用了安全函数。

前不久有这样一个案例合约,项目方定义了安全函数,但是只有个别地方使用了。Transfer的操作里面没有使用,这个时候我们给项目方提供了风险提示,项目方根据我们的指导,逐一将安全函数应用到位,最终才通过审核。

1000 (8)

1000 (9)

对于投资者来说,我们给出几点建议。

第一,合约没有开源的产品不要碰,风险太大;

第二,没有经过安全机构审计的产品不要碰,可能存在潜在问题;

第三,投资风险,要谨慎操作,不要贪心。

Armors Labs为了帮助项目方规避智能合约中的问题,提供了基于以太坊的开源标准库Armors Solidity和基于EOS的开源标准库Armors EOSCpp。这两个标准库可以帮助项目方在以太坊和EOS上快速开发自己的代币合约。使用标准库的代码,可以降低合约出问题的概率。在一定程度上,保障合约的安全。

我今天要分享的内容,就到这里,谢谢大家。

精彩问答:

Q1:刘老师,以太坊在2016年的时候,被The DAO攻击,黑客盗取350万个以太币,结果是硬分叉成ETH和ETC,再结合现在的以太坊瀑布行情,以太坊为代表的智能合约设计是不是存在漏洞?区块链的网络是开放的,理论上无法阻止更多的计算机资源成为节点,若控制大部分计算机资源,就能重改账本,实现51%双花攻击。

刘鹏:这个世界没有完美的系统,51%的双花攻击也早就成现过。现在大量的算力被各大矿场占据,个人想掌握够大的算力不实际。双花攻击本身是底链的安全问题,而智能合约的安全问题和它是两种情况,不能一起讨论。智能合约出问题,主要是项目方的开发团队失误造成的。这种情况,通过测试和安全审计可以很好地降低发生问题的可能。而51%是底链本身的机制造成的。随着行业的发展,会有新的算法出现,进一步的优化这个问题。

Q2:刘老师,区块链3.0是什么现在还不是十分确定,但终归会出来。等到3.0落地的时候,基于以太坊上的2.0会怎么演变?消亡吗?那伴随的以太坊价格会不会非常低?

刘鹏:我认为3.0时代是一个百花齐放的时代,不同的公链出现服务于不同的行业。以太坊上的2.0形态不会消亡,因为以太坊本身也在进化成长,开发团队会一直努力的让以太坊成长下去,适应3.0时代的到来。行业型的公链具有垂直性,以太坊更具有普遍性,所以以太坊未来依旧很有发展。至于价格方面,影响因素太多,我猜不出来。

相关阅读:

互联网法院司法区块链上线 全程溯源电子数据

垄断缠身的互联网:区块链是否能成为其治病良药?

区块链+大数据,未来交通道路能否畅通无阻? 

(编辑:ASP站长网)

网友评论
推荐文章
    热点阅读