迅雷链张慧勇:区块链安全威胁及防护思路分析


    上周末,迅雷链技术沙龙成都站如期举行,迅雷链开放平台研发负责人张慧勇为大家带来了主题为“区块链安全架构设计应用”的精彩分享。在分享中,张慧勇系统性地介绍了目前区块链所面临的安全问题现状、区块链安全问题的特点,以及迅雷链是如何做安全的底层设计的。
    
    互联网安全架构的整体框架
    张慧勇首先介绍了互联网安全架构的整体框架,因为互联网软件系统的特性,在区块链中也是存在的,因此谈区块链安全,脱离不了整体的大框架。互联网安全方面的经验相对成熟,从用户层到系统层都需要关注,它们构成了互联网安全架构的整体框架。
    
    在用户层,安全主要体现在软件运行的环境和个人密码的保护两个方面。如同我们日常在各个银行使用客户端时,通常会要求下载安全插件,其目的是为了检测运行环境是否安全。同时,应用程序也要注意加密混淆、本地存储信息的安全性。
    在网络层包含HTTPS和DDOS防御及DNS安全的维护。在这一层,安全有两个方面的,一个是个人信息的安全,另一个就是服务的可用性,对于服务商来说,服务的可用性也是需要重视的安全问题,要能够防御DDOS。
    服务层的安全问题则会涉及到身份证校验,加密算法,还要注重梳理业务逻辑。
    由于个人信息最终存储在数据库上,决定了数据库安全的重要性,正因为如此,数据库是目前泄露信息安全最多的环节,整个系统有漏洞,会导致数据被全部拖走。
    最后是基础层面的系统层,包括防火墙、QOS流量控制,主要是服务方面的安全。账号管理、服务器权限管理等云服务也是安全需要关注的核心点。
    区块链安全问题的特点
    
    张慧勇指出,区块链安全问题具备自己的特点,不能完全等同于互联网安全问题。
    首先,区块链的信息是全公开的,这就对安全架构提出的要求不一样。区块链狭义地理解是分布式数据库,而分布式系统首先要关注的是共识算法如何保持一致性和安全性,这是所有区块链安全问题的核心。
    然后是虚拟机以及智能合约的漏洞。其中,由于智能合约技术出现的时间太短,还处于初级阶段,容易出现很多漏洞。如果没有成熟的技术团队,是很难解决应用实际落地出现的问题,正因为如此,导致目前很多实体经济企业对区块链技术的应用还处于观望阶段。
    此外,个人密钥管理也是区块链安全的特有问题。目前大部分区块链个人密钥对用户而言非常不友好,长达32字节的数据,人无法单凭记忆记住,它一定要以某种形式存储下来,在存储过程中就涉及到安全管理。
    区块链安全问题的影响
    区块链一旦出现安全问题,带来的影响会非常严重。首先区块链数据不可篡改,如果出现了漏洞,很难及时制止,也很难在事后消除漏洞带来的影响,最终代价会非常大。比如以太坊的漏洞就导致最终产生硬分叉。
    其次,智能合约要开源才能达成信任,但因为源代码、虚拟机以及编译器都是公开的,这些技术本身又不够完善,所以万一存在问题,容易被有心人利用。此前,行业里就出现过因为代币合约有问题,导致代币无限增发,从而导致整个项目的失败。
    迅雷链的安全架构
    
    张慧勇在现场分享了迅雷链解决安全问题的经验,他表示,迅雷链有三大技术特点:第一是百万级的TPS,第二是秒级确认,第三是150万+共享节点。有了这样的性能支持,才能针对性地设计出更高级别的安全架构。
    张慧勇介绍,迅雷链首先使用DPoA和PBFT的共识算法,来加强共识机制的安全性。其中PBFT是用以实现秒级确认能力,和不分叉、不回滚的强一致性,可以解决一部分的安全问题。
    但是PBFT算法自身有一定缺陷,比如它很难防止节点互相勾结,此时就用到DPoA机制,先是从150万+共享节点中,筛选出优秀节点,建立备用节点池,然后从这些节点中,随机挑选节点出来参与共识记账。这样共识的安全性就得到了彻底的保证,无惧非法节点作恶或者是节点不在线等问题。
    在共识机制之外,迅雷链还设计了达到接口级安全的管控机制。首先开发者要在链上发布合约,必须实名登记,企业开发者则需要经过企业认证,此举是为了保证一旦有恶意合约或者非法合约出现,能够找到其负责人。
    同时有对合约上链的审核机制,能前置发现一些合约安全问题。
    还有合约的紧急避险机制,可以暂时把合约关闭,留出修复时间尽量降低风险。同时,假如出现了非法合约或者非法应用,使用一定的必要手段强制关闭,而不影响整条链的生态。
    张慧勇最后说,目前迅雷链还在进一步探索区块链安全方面的新技术、新措施。比如关键信息是否只保留在哈希数值上?未来是否可以接入更多的虚拟机解决开发能力不够强的问题?以及对个人密钥的保护,该如何让用户既方便、又安全地使用区块链等,这些问题迅雷链都会继续进行探索。