区块链安全专家说提升安全意识应该作为一种行业共识
扫描二维码
随时随地手机看文章
已经过去的2018年,区块链行业安全事件频发。交易所、钱包、合约、公链项目都受到了严峻的安全挑战。有人说,随着区块链熊市的到来,资金的短缺使得安全防护能力正在减弱。区块链安全也没有那么热门和受人关注了。
但是,从各种数据来看,不管是区块链安全事件、还是勒索软件、挖矿木马等与区块链相关的威胁仍然在持续。对此,Trias区块链安全专家说,提升安全意识应该作为一种行业共识,这样才能促进整个区块链行业的良性发展。针对去年一些典型的安全事件,下面Trias安全专家做了解读,并对一些行业问题发表了自己的看法。
Q1: 前段时间,ETC遭受51%攻击,我看网上有很多人说,这将成为所有PoW小生态梦魇。对此你怎么看?
PoW本质上就是在所有提供算力资源的集群中通过一种算法机制选择出一个幸运节点,并且因PoW算法不存在交易终结确认(即可被后期追赶的最长链推翻)状态,一旦总算力过小,则非常容易被攻击者通过租借算力等方式劫持整个区块链,严重影响区块链系统的安全性。
在我看来,以上问题出现的根本原因是PoW共识算法的机制问题,针对总体算力不高的区块链系统,应避免使用PoW共识,采用PoS,DPoS,PBFT算法等。
Q2: 从账户安全问题来讲,密钥存在严重的安全隐患,问题的根源在于部分密钥生成工具允许用户采用较弱的助记词组合。
去年EOS 账户遭受彩虹攻击, 就是一些EOS 钱包采用强度较弱的助记词组合。那么什么是“彩虹攻击”,关于用户私钥的生成、使用与保护,有什么好的建议?
所谓“彩虹攻击”,即通过事先遍历所有常见的助记词组合并预先生成对应的公私钥,然后在网络中寻找已经被彩虹表记录碰撞出来的账户,一旦被彩虹表碰撞,则意味着攻击者拥有了对应账户的控制私钥,验证威胁账号安全。
用户私钥的生成最好使用随机字符串进行生成,若允许用户自定义输入则必需输入足够复杂的助记词,私钥的使用必需恪守在本地使用的原则,不允许进行网络传输,对于私钥至少应该加密保存到本地,按照需求进行离线保存使用。
Q3: 我们刚刚谈到账户安全的问题,那么Trias是如何保护用户交易隐私的?
Trias采用隐私地址的方式来处理发送方和接收方的地址,使隐藏交易双方的地址信息;
通过零知识证明的方式对交易金额进行加密保护;
在一笔采用了隐私地址和零知识证明的Trias交易中,矿工只能验证并记录执行交易,无法获知其他任何有效信息。
Q4: 你在前面提到,智能合约的安全威胁目前比较严重。大家都知道,2018年,EOS 被爆出可能存在BEC 代币合约类似的整数溢出漏洞。能否谈一下什么是整数溢出漏洞以及它可能带来的后果?
在当前普遍存在的智能合约中,其中针对数值的计算和存储都是在无符号整数的范围中计算和存储,一旦提供的数字输入或计算结果超过定义的字节数(即其数值范围超过了正常能够表示的数值范围),则会发生数值溢出情况,导致归0或变成超大数。
此种情况一旦在合约中出现,极易影响其合约中的处理逻辑和数值状态,导致引发验证的安全问题。
数值上下溢出问题属于典型的智能合约安全漏洞之一,所以我建议,在开发数值计算相关的智能合约时尽量使用安全数值计算库,并做完整的生命周期式安全合规检查,这样可以简单而有效的避免此类问题的发生。
Q5: 如果把区块链安全划分为非常安全、安全、令人堪忧、极度危险四个等级的话。你觉得目前区块链行业属于哪个等级?
从我个人的角度来看,我认为目前的区块链安全处于令人堪忧的阶段。
现在整个区块链行业处于爆火阶段,各方的参与者重点关注的方向主要还是区块链系统的生产落地。就安全方面的考虑,除了部分业内的顶级公司,其余各方在安全方面所做的工作的确令人堪忧,尤其在智能合约安全性方面,因开发者安全意识的总体不足,目前在此方面的安全威胁是最严峻的。
但是,这仅仅是现状,我相信通过各方参与者的努力,可以有效提升整个行业的安全水平。比如,加强区块链和合约开发者的安全意识,充分发挥社区众测和专业区块链安全企业的作用等等。