请选择 进入手机版 | 继续访问电脑版
设为首页 收藏本站

每日金融
>
金融资讯
>
区块链

区块链技术及其安全风险研究

互联网
摘要:
区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式,是比特币的底层技术。

1.区块链概述

1.1定义

区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式,是比特币的底层技术。

狭义来讲,区块链是一种按照时间顺序将数据区块以顺序相连的方式组合成的一种链式数据结构,并以密码学方式保证其不可篡改和不可伪造的分布式账本。广义来讲,区块链技术是利用块链式数据结构来验证与存储数据、利用分布式节点共识算法来生成和更新数据、利用密码学的方式保证数据传输和访问的安全、利用由自动化脚本代码组成的智能合约来编程和操作数据的一种全新的分布式基础架构与计算方式。

1.2基本特征

区块链的系统相比于普适性的底层框架系统,基于区块链技术为核心的系统主要有以下特征:

1)      去中心化

在区块链系统中,采用分布式核算和存储,系统中不存在中心化管理,任意节点享有同等的权力和承受同等的义务。系统中的数据块由具有存储能力的节点共同存储。 

2)      开放性

在区块链系统中,除了节点的私钥是私有保密的,区块链数据和源代码对任何人公开。

3)      不可篡改性

在区块链系统中,一旦信息经验证并添加至区块链,就会永久的存储在系统中,除非能够同时控制系统中超过51%的节点,否则只对单一节点上的数据修改是无效的,因此极高的保证了系统中数据的稳定性和可靠性。

4)      自治性

区块链采用协商设定标准一致的规范和协议,使得整个系统中所有节点都能够自由、安全、无障碍的进行数据交互。

区块链技术将原本“人与人之间”的信任转换为“人对机器“的信任,任何人为的行为都难以撼动机器计算的结果。

5)      匿名性

在区块链系统中,其数据交互是自由的,无需信任即可执行,实现匿名操作。

6)      可追溯性

区块链中的数据存储采用“区块+链“的形式进行数据存储,后一个区块拥有前一个区块的HASH值,系统中的任意一条数据记录都可以通过链式结构追溯到数据本源,这也从另一方面提高了数据信息的安全性。

1.3分类

基于参与应用环境的形式不同,区块链目前主要分为公有区块链、行业区块链和私有区块链三大类。

1)      公有区块链(Public Block Chains)

世界上任何个体或者团体都可以发送交易,且交易能够获得该区块链的有效确认,任何人都可以参与其共识过程。公有区块链是最早的区块链,也是应用最广泛的区块链,各大bitcoins系列的虚拟数字货币均基于公有区块链,世界上有且仅有一条该币种对应的区块链。

2)      行业区块链(Consortium Block Chains)

行业区块链又称联合区块链或联盟区块链,是由某个群体内部指定多个预选的节点为记账人,每个块的生成由所有的预选节点共同决定(预选节点参与共识过程),其他接入节点可以参与交易,但不过问记账过程(本质上还是托管记账,只是变成分布式记账,预选节点的多少,如何决定每个块的记账者成为该区块链的主要风险点),其他任何人可以通过该区块链开放的API进行限定查询。

3)      私有区块链(Private Block Chains)

仅仅使用区块链的总账技术进行记账,参与的节点只能是用户自己,独享该区块链的写入权限,与其他分布式存储方案没有太大区别。

1.4区块链应用

1.4.1电子货币

在我们的生活和经济活动中,货币交易无处不在,与此同时货币交易的形式也在不断地演化。随着计算机和互联网技术的深入发展,电子货币应运而生。电子货币的出现,是为了更加便捷地完成资金的转移,银行卡本身并不存储价值,而是提供了用于识别用户账户身份的标志。

区块链本质上是一个分布式的账本,集成了不可篡改、内置合约等多项基础技术构建了最低成本建立信任的机制。因此,区块链技术得到广大金融行业的青睐。区块链技术的应用从根本上颠覆了传统金融的固有逻辑、运行模式和业务范围,突破了传统约定的条条款款的限制。可以预见,区块链技术与金融领域结合的深度和广度还远未饱和,应用前景广阔。

1.4.2智能合约

1994年,尼克·萨博提出了“智能合约”的概念。当时的智能合约理念还只能停留在理论研究阶段,无法应用到现实实践。随着区块链技术的日渐突破,智能合约重获新生。

智能合约是通过区块链协议建立的一款基于数字化形式执行合约条款的计算机协议的应用,所有的合约条款通过计算机或计算机网络完成执行。现如今,一些技术已经可以被认为是智能合约实践的尝试,比如数字现金协议,能够帮助实现网上支付,同时又保留了纸币现金不可伪造性、私密性和可分性的特点。将智能合约设计的范围扩大,它在金融和合成型资产具有很大的潜力。如银行交易、证券交易、、法律公证、版权认证等。当然,智能合约不仅仅是简单的交易保证,在日常生活中被连接到物联网通过智能合约的形式被使用,比如共享经济等智能合约的应用。例如,根据智能合约约定按租客是否及时支付房租来对租客的智能房屋钥匙(如智能手环或令牌)进行授权。

2.区块链安全风险

2.1底层技术风险

2.1.1公钥加密算法破解

区块链中核心的加密算法是非对称性加密算法(也称为公钥加密算法),典型的是使用基于大素数分解的RSA算法或椭圆曲线加密算法,访问区块链需要公钥和私钥的正确组合,而密钥是由足够长度的加密字符串生成。这也同时说明了区块链技术的优势。没有正确的密钥,攻击者就无法访问系统中的数据,这说明系统得到了极高的安全保障。但另一方面,这也说明了区块链系统的缺陷。攻击者会花费大量的时间来破解区块链上用户的私钥,获得密钥的最佳机会是攻击整个区块链系统中最脆弱的点——PC终端、手机移动设备等。Windows、移动终端中的安全漏洞最容易成为区块链黑客的目标,因为区块链私钥在特定时刻需要在这些设备上进行签名和存储,而攻击者就可以窥探并捕获。

2.1.2Hash函数碰撞

Hash函数(也称为哈希函数、杂凑函数、摘要函数、散列函数)碰撞攻击原理是通过寻找算法的弱点,瓦解它的强抗碰撞性这一特性,使得hash函数原本要在相当长一段时间才能寻找到两串内容不同但hash值相同的字符串的特性被弱化,攻击者能在较短的时间能寻找到值不同但hash相同的两个值。

一般来说,hash值由大小写字母和阿拉伯数字构成,一共62个字符(10 + 26 + 26)。如果哈希值只有三个字符的长度(比如abc),取值空间就是 62 ^ 3 = 238,328,那么10000次计算导致的哈希碰撞概率是100%。假设哈希函数是可靠的,每个值的生成概率都相同,哈希碰撞的概率取决于两个因素,即哈希值的长度和哈希值计算的次数。要想降低碰撞概率最有效的方法就是扩大哈希值的取值空间。我国山东大学王小云教授就发现了提高MD5和SHA-1两种常用的hash函数弱碰撞可能性的方法。

2.1.3伪随机数发生器攻击

区块链中应用了大量的密码学算法。在密码算法中,随机数是秘钥生成不可或缺的参数,安全的随机数生成机制是密码算法安全的重要支撑。但由于通过物理方法生成真随机数的速率较低,一般在密码算法中都采用达到特定安全要求的伪随机数去替代真随机数。伪随机数一般采用伪随机数生成器算法生成,如果选取的伪随机数生成器算法安全性没有达到要求,那就存在着通过破解伪随机数发生器算法,获得秘钥的可能。。

2.2应用风险

2.2.1 51%算力攻击

在区块链技术中,若某一方能控制节点中绝大多数计算资源,就能重改公有账本,这被称为51%算力攻击。区块链网络是自由开放的,所以,理论上,区块链上无法阻止拥有足够多计算资源的节点做任何操作。在现实情况下,发起51%攻击是具有一定可行性的。曾经国内部分比特币挖矿池的算力逼近过该界限。

2.2.2私钥泄密

在区块链中,用户的数据安全完全依赖于私钥的安全,无论是私钥泄漏还是丢失,都将给用户带来损失。为了保护用户的账户与数据安全,应该对私钥文件进行安全保护。同时,应该使用“秘密共享协议”等方法安全地备份私钥文件。曾经国外发生过由于CA根私钥被黑客攻击获取导致该CA颁发的所有数字证书作废的事件。

2.2.3软件/平台漏洞

区块链系统的漏洞与传统的软件领域漏洞还是有本质上的区别。传统的软件领域漏洞会被攻击者利用入侵,对企业的隐私和加密数据造成一系列影响。区块链系统中任意一个节点的安全漏洞,很有可能引发链上的成千上万的节点遭到攻击。在传统软件漏洞领域一直被认为相对危害较小的拒绝服务器漏洞,放在区块链上可能引发巨大的风暴冲击甚至引发整个系统瘫痪。

3历史安全事件分析

目前区块链安全机制并不十分健全,攻击者主要选择保护相对薄弱的数据层、网络层、共识层、扩展层和业务层进行攻击。有关数据显示,目前近80%的攻击都是来自业务层,从历年区块链安全事件分析结果来看,攻击事件主要有共识机制攻击、智能合约攻击、交易平台攻击和自身攻击四大类。

3.1共识机制攻击

2016年8月,以太坊数字货币遭受“51%Crew“的51%算力攻击,攻击者利用双重支付盗取约21465KR的代币(约3000多美金)。2017年10月,比特币网络遭遇垃圾交易攻击,导致10%以上的比特币节点下线。

从共识攻击的角度来看,共识机制的设计应该满足安全的需求:防拜占庭攻击、防双重花费式、防女巫攻击、防预测、防占用等,合理界定共识算法的安全范围,根据实际应用场景选择多种或可混合切换的共识算法。

3.2智能合约攻击

区块链存在一种“代码就是法律”的精神,智能合约具有强约束力,但创造一个完全无误差的代码是不可能的,代码书写的合约具有“法律”效力,并且在一个不可改变的公开的区块链中存储信息,这造就了巨大的风险和问题。2016年6月,以太坊最大众筹项目TheDAO被攻击,黑客获得超过350万个以太币,后来导致以太坊分叉为ETH和ETC。2017年11月7日Parity多重签名合约漏洞导致93万个以太币永久丢失。

应对措施主要有两方面:一是对智能合约进行安全审计,二是遵循智能合约安全开发原则,加强智能合约的管理措施。

3.3平台攻击

区块链平台攻击主要利用平台系统漏洞、逃逸漏洞、逻辑漏洞、堆栈溢出漏洞、资源滥用漏洞等窃取平台权限。2018年4月,印度比特币交易所Coinsecure公司钱包遭盗取,损失超300万美元;虚拟货币Verge(XVG)遭到攻击,损失价值100万美元等。

平台的安全性提高则主要由平台和安全企业或平台自建的网络安全部门。要保证区块链平台安全,在设计之初就需要设计安全架构并随着发展不断调整改进,利用网络安全隔离策略,仅开放需对外开放的端口。线上业务需经过严格的安全测试验证、安全审计,对平台的所有有形资产和无形资产进行实时监控,建立安全制度、安全预案、应急响应等机制,实现立体化监管。

3.4自身攻击

区块链由于自身设计缺陷,存在6个攻击面。主要包括了应用层、合约层、激励层、共识层、网络层、数据层。

事实上,在上面提到的每个层面都会存在一些风险点,而目前最容易出问题的有应用层、合约层和数据层。应用层可分为交易所、矿机、矿池、钱包等。交易所往往会面临比较传统的外部安全问题,以及业务方面安全问题。矿机主要是可遭受远程弱口令登陆问题,而矿池则存在可被伪造的问题,还有钱包的安全问题等等。合约层面临的问题也很多,比如相对熟知的智能合约。截至目前,针对智能合约所发生的攻击次数已多达21次,累计造成了10亿美金的损失。虽然智能合约的代码逻辑比较简单,但却可以造成巨大的经济损失。安全专家在对当前以太坊网络上现存合约做全面排查后,总共发现有160多个合约漏洞,其中有大量还未被公开的漏洞。数据层则往往面临恶意信息攻击、资源滥用攻击等威胁。

4.区块链的未来展望

4.1底层技术升级

4.1.1加密算法升级

针对当前区块链技术大多采用美国提出的公钥加密算法,导致其安全性一直无法得到有效保证。曾经有新闻报道美国RSA公司设计开发的公钥加密算法实现软件BSafe存在后门,便于美国国家安全局NSA监控其他国家的保密通信或伪造数字签名。因此,根据我国商用密码管理法律法规和最新标准,建议选用我国商用密码标准SM2基于椭圆曲线公钥加密算法和SM9基于身份的加密算法来替代现有区块链技术中普遍采用的公钥加密算法。

4.1.2Hash函数升级

针对当前区块链技术中采用hash算法来确保数据块之间的链接,因此如果使用的hash函数存在漏洞(即可以被提高强碰撞可能性),会导致区块链数据被篡改,严重的可能导致区块链分叉。因此,根据我国商用密码管理法律法规和最新标准,建议选用我国商用密码标准SM3算法来对保障区块链的安全性。

4.2应用场景完善

4.2.1 算力监控

针对于区块链系统的51%攻击的可能性,算力监控可以很大程度解决这一安全难题。算力监控原理是设置算力临界点进行实时监控,当系统中的节点算力值接近临界值时,系统进行预警提示,并减少系统中的算力值,从而保证系统的安全性。

4.2.2CRL清单更新

  从区块链系统的安全的角度上讲,CRL最好是进行实时更新,即一旦发生证书注销事件就立即更新,以杜绝安全事件的发生。但这种实时更新的代价非常高,要占用大量的网络资源和服务器资源,反过来又会影响到区块链中的运算。因此,区块链中的CRL可以定期更新,如CFCA的管理策略是对主服务器的CRL和所有远程镜像CRL每天更新一次。

4.2.3软件/平台漏洞定期升级

区块链平台和软件也需要定期进行漏洞扫描和渗透测试,发现已知和未知的安全威胁,也应该建立周期性的漏洞监测、升级机制,当发现中高危漏洞是应该强制所有节点的软件和平台升级,控制安全漏洞引起的安全风险。

4.3.量子计算技术带来的挑战


每日金融产品线
意见反馈
返回顶部