对于区块链的应用方面,现在仍然会带给普通用户一种“虚假信息”的感觉,由于区块链的应用多半与货币之间挂钩,因此用户敏感度是非常高的,曾经有业内专家表示,对于区块链代码的审计问题开始被逐渐受到关注,尤其是面对当前激烈复杂的网络安全威胁,区块链在技术的具体应用方面需要去进行怎样的防护措施,从而才能够保证产业的快速发展? 代码审计把黑客拒之门外 对于区块链技术来说,伴随着BTC、ETH和EOS等项目的快速发展,已经带动了整个区块链市场进入到了一个智能合约的时代,这样一个时代的到来本身所带来最大的一个问题就是安全性和合规性等问题。对于具体的每一个项目来说,只要其使用区块链的理念和技术,都有可能走入歧途,就像每个人在电脑打字时都会打错字一样,程序员在输入代码时也会存在笔误和错漏。 在区块链当中,有一个重中之重的基础应用,那就是智能合约代码的开源性,这种开源代码能够提升整个区块链技术及应用的可靠性和安全性,根据专家表示,这种方式所带来的可靠性高达100%。我们用比特币来举例,利用智能合约代码存储在区块链当中的形式,与交易数据一样受到区块链的加密保护,要想修改智能合约代码需要掌握51%的计算力,因此,智能合约代码的防篡改性得到大大提升。 对于智能合约来说,它本身其实就受到区块链的保护,智能合约代码能够通过开源的方式让所有用户进行阅读,它解决了可以公开代码并且保证安全的问题,但是对于开源这种方式来说,其公开性就使得非常容易被黑客盯上,黑客通过掌握代码的这一缺陷,通过利用代码的一些缺陷去出发条件改变,从而改变整个智能合约的运算方式,从而导致整个区块链项目存在巨大的数据及经济安全隐患。 区块链代码隐患意味着什么 对于区块链代码来说,如果代码的质量不高的话有可能造成严重的后果,2018年4月25日凌晨,SmartMesh(SMT)项目方反馈发现其交易存在异常问题,经初步排查,SMT的以太坊智能合约存在漏洞。受此影响,火币Pro目前暂停所有币种的充提币业务。 区块链智能合约通过代码建立一套“法律合同”,软件工程师创造一个完全无误差的代码是不可能的,程序员总存在疏忽的地方。区块链当中的法律合同是一项接受接受和仲裁的约束,在整个区块链当中的人很难去创造一个非常缜密的合约,在任意一个大的合约里,可能出现的文稿错误以及一些条款需要解释和仲裁。 因此,智能合约代码在一定程度上都可能存在安全隐患。传统的智能合约代码审计主要利用人工,依靠code reviewer阅读智能合约代码。人工代码审计最终还是依赖人的经验,代码审计效果不明显,针对目前ETH大量代币的智能合约,人工审计工作量大,难以高效的完成工作。 当前在区块链领域当中的代码审计业务公司数量并不是太多,每个区块链代币在上市交易之前区块链智能合约代码都必须要对交易所进行审查和判定,通过人工智能等技术对当前代码进行审计,只有这样才能够最大程度的规避区块链所带来的数据、经济上面的损失。 |