近来,BEC、SMT的智能合约漏洞给很多区块链从业者带来了恐慌。我们先来看看案发现场:
上图,利用BEC漏洞创造出巨额token
上图,利用SMT漏洞创造出巨额token
YEE区块链团队第一时间查阅了BEC、SMT的代码,BEC的合约漏洞是BatchTransfer漏洞中的数据溢出,SMT的合约漏洞是代理转账逻辑中没有进行大数保护,造成大数溢出,这两个问题的根本原因是没有使用library SafeMath,使用了普通的加减乘除。
比如BEC漏洞中这个乘法没有使用library SafeMath,而是用了“*”,这就造成了数据溢出。
同样道理,SMT的智能合约的错误代码没有使用官方的library SafeMath,而使用了普通的“+”,这造成了在代理转账逻辑中没有进行大数保护,最终造成大数溢出。
正确的方式应该像我们的这段代码就是用library SafeMath函数来完成智能合约代码,这样可以保证智能合约代码的安全稳定。
现在发现的漏洞中有很多代码是因为直接使用普通的加减乘除,同时缺少溢出判断,这就造成数据溢出的隐患,而使用library SafeMath可以彻底解决数据溢出的问题。因此,解决方案也很简单,彻查智能合约代码,把“+”“-”“*”“/”换成library SafeMath,这可以彻底解决数据溢出的问题。
YEE也在这里希望所有区块链从业者在关注出席会议、媒体曝光的同时,应将更多注意力关注到技术层面,只有安全的技术才能保障区块链产品的正常运行,让更多人享受到区块链带来的各种服务。
YEE落地产品YeeCall这个产品本身就面临着巨大的技术挑战,我们在全球布网,从零建设起了一张拥有5个数据中心、400多个中继节点的覆盖全球的通讯网络,这张网络一度被AWS、澳洲电信称之为全球通讯网络的“最后一公里”。为了解决手机端通讯的复杂环境和超多终端支持问题,我们除了一行一行代码敲出了完全拥有自主知识产权的通讯协议,还创造性采用人工智能的方法来解决噪音消除问题,所有这一切,都是为了让广大的YeeCall用户体验更好,与家人和朋友的沟通更紧密。
我们热爱技术,拥抱区块链,也欢迎Java、服务器、Android、iOS、区块链技术方面的有识之士加入YEE团队,共同打造区块链的美好未来,邮箱:
dream@yeecall.com