区块链自从面世以来就自带主角光环:分布式特性、去中心化、不可篡改、可追溯性。这些光环不仅赋予了区块链独特的魅力,同时在一定程度上也保证了区块链的安全。可是,区块链真的安全吗?就像前一段时间的EOS上线一样。EOS被誉为区块链的3.0,技术超前、理念先进,可同样被360查出了安全问题。之前园长也向大家提过了区块链不像是互联网,不能先搞技术,在搞安全,安全问题刻不容缓。可是区块链技术安全在面对攻击时,该如何防御?
区块链安全问题
1.协议、数据方面的本身攻击
大家都知道,区块链是一个公开的链式账本。他是通过一个个区块,时间戳来进行链接。这些区块是通过哈希函数、同态加密、数字签名来进行保护数据的安全,数据在经过一笔交易后,通过时间戳,将一笔笔交易和区块给完美的融合进链中。一条链上,不会只有几条交易信息。随着交易信息和区块的增多,链上的节点增多,篡改信息仿佛变的不可能。但是,在一条刚刚启动的数据链上,那时候的节点总数还很少,当攻击者拿到大多数的节点时,他就可以任意搭建自己的区块,对链条进行篡改、攻击。这就是“51%攻击”。还有在公有链中,节点会被允许自由进出网络,且区块链的网络层没有登记用户身份。这样就有可能导致未登记身份的节点自由进出网络会给系统安全带来很多不可控性。
2.对加密货币持有者的用户攻击
对用户的攻击,这反而是黑客攻击者们最轻松的一种方式。持有加密货币的用户们,他们不像是安全的区块链本身。他们对于安全的防护只能依赖于加密的区块链钱包和私钥。这也就导致了用户抵御攻击,只能是依靠自己的防范意识、区块链钱包和私钥的防攻击水准。
如何防御
1.区块链的自身方面
不知道大家有没有听过“硬分叉”,在某一个新的区块被挖出之后,区块链系统会产生新的协议,而这个协议又与旧协议难以兼容。硬分叉就是要新协议将不再允许旧协议继续工作。以太坊就是靠着硬分叉,让旧协议不能使用,这样“51%攻击”也就不攻自破了。用户的数据安全和个人资产安全也得到了保护。在用户信息方面,我们应该视情况,登记公有链网络中节点的身份。对于联盟链和私有链,建议采用专线来接入区块链网络。我们还要采用VPN 专网、防火墙、物理隔离等技术对节点进行保护。还有在算法上,我们可以使用抗量子算法,盲签名、环签名、聚合签名、多重签名侧、门限签名策略,总之是要采用新的、本身经得起考验的密码技术。
2.用户方面
首先,在私钥和区块链钱包的问题上,为了保护用户的账户与资金安全,我们应该对私钥文件和区块链钱包进行加密存储。 而且还可以使用multisig技术,实现多重签名抵制,就好比需要多个钥匙才能打开家门一样,多重签名即表示需要多个密钥才能执行一个任务,能够让攻击者更难获得资金。其次就是用户们的防范上,建议加密货币的持有者们:要随时验证网络钱包地址,不要通过链接进入网络银行或网络钱包;发送之前再次确认收款人地址(至少检查首位和末位字符)、转账金额以及相关费用的准确数目;使用高水准的区块链钱包;用于进入加密钱包、进行加密货币交易等操作的设备一定要用高品质的反病毒防护软件进行保护。