如何实现区块链技术安全?
随着人们对区块链技术的研究与应用,区块链系统除了其所属信息系统会面临病毒、木马等恶意程序威胁及大规模DDoS攻击外,还将由于其特性而面临独有的安全挑战。
区块链可能是安全的,但所有与之交互的软件都是如此?在许多情况下,没有。那么区块链究竟如何实现安全?
1. 算法实现安全
由于区块链大量应用了各种密码学技术,属于算法高度密集工程,在实现上比较容易出现问题。历史上有过此类先例,比如NSA对RSA算法实现埋入缺陷,使其能够轻松**别人的加密信息。一旦爆发这种级别的漏洞,可以说构成区块链整个大厦的地基将不再安全,后果极其可怕。之前就发生过由于比特币随机数产生器出现问题所导致的比特币被盗事件,理论上,在签名过程中两次使用同一个随机数,就能推导出私钥。
2. 共识机制安全
当前的区块链技术中已经出现了多种共识算法机制,最常见的有PoW、PoS、DPos。但这些共识机制是否能实现并保障真正的安全,需要更严格的证明和时间的考验。
3. 区块链使用安全
区块链技术一大特点就是不可逆、不可伪造,但前提是私钥是安全的。私钥是用户生成并保管的,理论上没有第三方参与。私钥一旦丢失,便无法对账户的资产做任何操作。一旦被黑客拿到,就能转移数字货币。
4. 系统设计安全
像Mt.Gox平台由于在业务设计上存在单点故障,所以其系统容易遭受DoS攻击。目前区块链是去中心化的,而交易所是中心化的。中心化的交易所,除了要防止技术盗窃外,还得管理好人,防止人为盗窃。
为了保证区块链系统安全,建议参照NIST的网络安全框架,从战略层面、一个企业或者组织的网络安全风险管理的整个生命周期的角度出发构建识别、保护、检测、响应和恢复5个核心组成部分,来感知、阻断区块链风险和威胁。
同时根据区块链技术自身特点重点关注算法、共识机制、使用及设计上的安全。
1、针对算法实现安全性:一方面选择采用新的、本身经得起考验的密码技术,如国密公钥算法SM2等。另一方面对核心算法代码进行严格、完整测试的同时进行源码混淆,增加黑客逆向攻击的难度和成本。
2、针对共识算法安全性:PoW中使用防ASIC杂凑函数,使用更有效的共识算法和策略。
3、针对使用安全性:对私钥的生成、存储进行保护,敏感数据加密存储。
4、针对设计安全性:一方面要保证设计的功能尽量完善,如采用私钥白盒签名技术,防止病毒、木马在系统运行过程中提取私钥;设计私钥泄露追踪功能,尽可能减少私钥泄露后的损失。另一方面,应对某些关键业务设计去中心化,防止单点故障攻击。
现阶段区块链技术还不够成熟,区块链系统仍然存在许多安全隐患和漏洞,加强区块链的监管和安全技术的研究与实践,推动区块链应用的稳步发展,充分发挥区块链技术的安全优势,有效提升网络安全防护水平。