区块链公链“三元悖论”专题系列之安全性(Security)

上两期咱们讲了区块链公链系统“三元悖论”中的【可扩展性】【去中心化】,本期咱们结合区块链公链系统中所存在的安全问题和挑战,以及一些实际案例,来说一下这个系列文章的压轴话题:安全性(Security)算法

在不少人看来,对于一个系统来讲,安全性是必要条件,而非充分条件;甚至有人说,“去中心化”和 “可扩展性” 是“二元悖论”的说法反而比“三元悖论”更为精准,仅仅二元便可说明一个区块链公链系统的性能情况。但实际状况真的是这样吗?数据库

首先,我想引用BTC系统在白皮书中对安全性的描述,来对区块链公链系统的安全性进行一个范围上的定义:以密码学为基础,基于工做量证实(POW)的共识机制,使得整个系统中只要恶意节点的总算力不超过50%,系统就能保证大几率上的安全,而且不会发生致命的“双花”( double spending双重花费问题)欺诈。编程

从这段文字中能够看出,区块链公链系统的安全范围有两个方面,一是系统自身的安全性(防崩溃机制)方面,二是系统参与者的数据、交易安全性(隐私保护)方面。缓存

区块链公链系统区别于中心化系统的很重要的一部分,就是“安全性”是做为系统中一种性能指标(经过密码学和共识机制等技术做为保障),可根据系统的总体须要,进行弹性选择,甚至在系统迭代过程当中能够进行更换。安全

另外,从本质上讲,区块链技术是一种在信息不对称的状况下,无需相互担保信任或第三方中介参与,采用技术手段,实现节点间“广泛经过即为承认”的信任机制。网络

因此,在我看来,安全性对于区块链系统来讲,既不能粗略的以充要条件的方式来定义,也不能脱离去中心化、可扩展性等场景需求而单独评价;这也是区块链安全技术中最有魅力的地方。架构

▲BTC系统全节点分布图(数据来源:京东智联云BDS区块链数据服务)▲框架

说到区块链安全技术,就不得不提一下针对区块链系统的各类攻击手段,目前来看,根据区块链的技术特性,具体的技术攻击手段主要分为如下三种:分布式

(一)以共识机制为目标的针对性攻击:共识机制是维持区块链系统有序运行的基础,相互间未创建信任关系的区块链节点经过共识机制,共同验证写入新区块中的信息的正确性。区块链中使用的共识机制有不少,包括PoW、PoS、BFT等(以前两篇文章中均有所说起)。目前,PoW、PoS和DPoS(DelegatedProof of Stake,委托权益证实)机制已通过大规模长时间的实践检验,发展较为成熟。但在区块链共识机制的长期发展应用中,也衍生出了算力攻击、分叉攻击、女巫攻击等大量针对性的攻击手段,形成链上记录被篡改等后果,以下图所示:函数

▲区块链典型攻击策略表▲

(二)对区块嵌入恶意代码,利用分布式存储机制进行快速传播:区块链经过构建开源的共享协议,实现数据在全部用户侧的同步记录和存储。与传统中心式数据库在一个或几个中心集中存储数据的方式不一样,在区块链系统中,全部用户侧均有可能存放完整的数据拷贝,所以,单个或多个节点被攻击均不会对全网数据形成毁灭性的影响,提升了存储的可容错性。可是这种分布式的存储机制也在必定程度上扩大了安全威胁面,最典型的是恶意节点可在新区块中嵌入病毒、木马等恶意代码,利用分布式机制自发向全网传播,乘机发起网络攻击,以下图所示:

▲利用区块链分布式存储机制进行恶意代码攻击示意图▲

_(三)针对密码学机制固有安全风险的各种攻击:_非对称算法、哈希函数等密码学机制在区块链中的应用解决了消息防篡改、隐私信息保护等问题,但这些密码学机制的固有安全风险仍将面临各种攻击,主要有两点,一是ECC、RSA等复杂加密算法自己以及在算法的工程实现过程当中均可能存在后门和安全漏洞,进而危及整个区块链系统和其上承载的各类应用的安全性。二是随着量子计算等技术的飞速发展,当计算机算力达到必定级别后,便可在秒级时间内破解非对称密码算法中的大数因子分解问题(例如经过量子计算机破解1024位密钥的RSA算法只需数秒),这也成为区块链公链系统将来很大的安全隐患。

因此,尽管区块链的防篡改、分布式存储、用户匿名等技术优点为其发展应用提供了大量的创新空间,但目前区块链技术在各领域的应用模式仍处于大量探索阶段,其深刻应用仍需漫长的整合和发展过程;在《信通院区块链安全白皮书》中,就对区块链技术在应用中的安全问题进行了描述,总结后以下所示:

▲区块链典型应用架构对应的安全风险▲

上图中,对于四个层级的安全风险概括以下:

存储层:主要风险来源于环境的安全威胁,如基础设施的安全风险、网络攻击威胁、数据丢失和泄露等,最终影响区块链数据文件的可靠性、完整性及存储数据的安全性,具体包括如下三点:基础设施安全风险、网络攻击威胁、数据丢失和泄露。

协议层:主要风险来源于核心机制(共识机制、P2P网络机制、密码学技术)的设计缺陷,前两章咱们对这些核心机制作过介绍,当这些核心机制的规则设计被恶意节点利用,则很容易使系统的自身安全和交易安全遭到破坏,具体包括如下三点:协议漏洞、流量攻击以及恶意节点的威胁。

扩展层:主要风险来源于代码实现中的安全漏洞,因为这一层较典型的实现是智能合约(或称可编程合约),但智能合约的应用起步相对较晚,不少开发人员尚缺少对智能合约的安全编码能力,从而形成代码中存在大量的安全漏洞,具体包括如下两点:合约开发漏洞、合约运行安全。

应用层:这一层因为直接面向用户,涉及不一样行业领域的应用场景和用户交互,所以也成为攻击者实施攻击、破坏系统的重点目标层,具体包括如下5点:私钥管理安全、帐户窃取、应用软件漏洞、DDoS攻击、环境漏洞。

而综上所述,目前应对以上风险的措施简单总结以下图所示:

▲区块链风险应对框架▲

这里咱们列出几个具体方法做为参考:

(一)提高参与同步与验证节点的数量:在区块链公链系统中,公链网络的正确性与安全性依赖于一些节点的背书。例如,在比特币或以太坊中,根据协议,每个矿工挖出区块时,要保证新区块和历史上的每个区块每笔交易都是正确的。也就是说,比特币矿工出块时,在为以前全部的区块进行正确性背书;在 EOS 中,超级节点经过签名对区块的正确性背书。咱们这里称为“参与共识的节点”。因此,若是每个被确认的交易,都获得过更多参与共识节点(攻击者除外)的同步与验证,这样就可以提升系统总体的安全性。

(二)提升节点参与系统的门槛:上一篇咱们讲到,下降用户参与门槛便可提高系统去中心化程度,因此,当提高系统参与门槛时,就能够相应的提高系统的安全性以及可扩展性;在一些共识机制中,普通用户不参与对交易的同步与验证,而是经过一些方式选出少数特殊的节点来进行共识;这时,咱们能够假设每个参选的节点都准备了足够的计算机资源,例如更好的 CPU, 更大的硬盘, 更大的网络带宽;这时,也就不必将“最低配置要求”设的很低了;相应的,系统总体安全性就会高一些。

(三)攻击应对监测:在区块链中建立某种“交易配置文件”,监控特定区块链上的交易,检测包括51%攻击,Sybil攻击等恶意攻击。

(四)项目安全管理:智能合约代码的安全审计和法律合规方案的制定。

总之,区块链系统安全设计的挑战,是保障该系统不能被坏人破坏;在一个开放并与经济利益挂钩的区块链系统中,不只会有好人加入这个系统,也会有更多的坏人企图但愿经过破坏该系统获利;那么,如何在系统内部存在坏人的状况下,保证系统的安全性,这已不只是传统意义上安全架构的技术挑战,也是安全机制设计的挑战。

▲区块链在网络安全领域的典型应用▲

最后,如上图所示,咱们讲一下如何利用区块链技术的特性,来对传统网络安全领域的安全性进行加固。

因为区块链分布式、点对点的通讯具备易链接、大协做的特色,基于哈希加密的匿名性也可以很好保护用户隐私和证实惟一性,依托公私钥的权限控制方式更是赋予数字资产丰富的管理权限,所以,这些技术特性使得区块链能够成为解决网络和数据安全存储、传播和管理问题的有效手段,在攻击发现和防护、安全认证、安全域名、信任基础设施创建、安全通讯和数据安全存储等方面获得了积极的探索。

下面列举几个区块链网络安全的具体应用案例:

(一)Guardtime攻击发现和防护案例:为数据或系统的状态建立时间戳哈希,根时间戳哈希对状态持续监测,以发现文件、系统或程序是否受到未受权访问,目前已在英国核电站、防洪系统等国家关键基础设施应用。
(二)Startup Filament安全通讯认证案例:将物联网传感器数据直接编码到区块链中,为分散交互和交换提供安全的基础。
(三)Blockstack安全域名:将域名基础设施创建在区块链之上,创建域名哈希映射,在每一个网络节点处进行域名注册、转移等操做,存储域名全部人的公私钥对并记录解析后的域名,分散了本来集中的域名服务,因为不存在可被黑客攻击或修改的中心化记录,也防止了域名劫持、缓存投毒等传统攻击行为。

▲区块链系统安全性的核心:共识▲

做为这个系列文章的结尾,笔者认为,不管从可扩展性、去中心化、仍是安全性来讲,区块链技术最核心的属性都是“共识”这两个字;由于有了“共识”这个属性,一个系统才得以从“管理者”转变为“组织者”;参与系统搭建的各节点经过共同的努力,来维护一个区块链系统的正常运转,这样即能达到系统自治的目的,也可以很大程度上抵御各类外部攻击,最终保证了系统的总体安全性。

“不可能三角”并非一个严格通过论证而得出的结论,它只是业内对各公链的实际运行情况做出的一个总结;不可能三角的意义,是在告诉设计者,在进行区块链系统架构设计时,必须根据具体的应用场景作出取舍,而无需过多的花精力研究如何兼顾这三要素。

另外,须要特别强调的是,不可能三角并非一种限制,它反而在正确的道路上开拓了设计师的思路,让他们在多样化的取舍方案下设计出了各式各样的系统。

最后的最后,衷心的但愿这个系列文章可以帮您从更多的角度出发,去认识并理解区块链技术,以及区块链系统可以为咱们带来的实际价值。

在以后的文章中,咱们会对京东智臻链等区块链具体应用项目进行解读与分享,欢迎你们继续支持哦!

来~插播一条小广告

关于BDS

京东智联云区块链数据服务【BDS】(产品传送门):京东智联云将区块链的链式、非结构化数据经过技术手段进行结构化存储,实时同步到高性能数据库中,并据此推出了一款可视化的区块链数据查询服务(BDS),帮助用户完成简单的条件查询和复杂的SQL原生查询。

产品特色:

  • 涵盖了 BTC、ETH、EOS、LTC、XRP、BCH 等几十个知名区块链项目,自定义了涉及用户、交易、区块等 100+ 独家数据指标,联网便可查询链上实时数据,即开即用,方便快捷。
  • 支持标准 SQL查询语句,可轻松实现复杂的查询逻辑;依托京东云的软硬件及架构支持,同时具有查询速度快、查询效率高的特色。
  • 支持图形化、可视化界面,经过点击和拖拽的交互方式进行数据查询,可实时生成各种BI图表,定制专属与您的区块链数据仪表盘。

产品示例:

点击【阅读原文】,注册京东智联云帐号,便可获取区块链主流公链最新数据。

image.png阅读原文

相关文章
相关标签/搜索