BaaS区块链服务风险分析

一、区块链技术的理论安全性挑战

      据Besec统计,2018年总计超过20亿美金被盗,大型事件数量超过130多起(平均3天一起),区块链用户和项目方们纷纷沦为全球30万黑客的“提款机”。

      本质上, 无中心节点的区块链的安全性依赖于大量的数据冗余. 即使攻击者有能力控制某节点进而伪造、篡改、删除该节点的有效数据, 但是要同时对众多网络节点实施攻击是十分困难的. 然而, 在实际区块链网络中, 由于各节点具备的安全防护等级参差不齐, 攻击者可以利用网络拓扑结构, 仅凭少量资源即可成功实施小范围攻击, 破坏系统的安全性与稳定性。

      其次, 区块链结构复杂, 缺乏系统级安全评估手段. 区块链的发展仍处于初级探索阶段, 它所包含的共识算法、激励机制、智能合约等关键环节的安全性尚待评估, 也缺乏代码评估机制以检测系统漏洞 。区块链建立在对等网络 (Peer to peer, P2P) 中, 与客户端/服务器 (Client/Sever, C/S) 网络系统结构不同, 传统的防火墙、入侵检测等网络安全技术不能完全适用。

       另外, 计算技术的发展为区块链安全性带来威胁. 随着量子计算的发展, 区块链底层依赖的哈希函数、公钥加密算法、数字签名、零知识证明等技术的安全性也将受到影响。

      最后, 完全去中心的匿名区块链系统缺乏有效的监管手段, 当攻击者对系统安全性造成威胁、非法用户利用区块链实施违法行为时, 系统无法对攻击者和非法用户进行追责. 一旦攻击成功, 由于区块链的不可篡改性, 非法交易无法撤回, 将给用户造成不可逆转的经济损失. 匿名的区块链平台也将成为犯罪行为滋生、不良内容传播的温巢(如现在暗网中交易使用比特币交易,勒索病毒也使用比特币)。

二、区块链技术目前应用中三类场景

     1、比特币、以太坊和各类电子货币的全球公开发行,所有都运行在公有网络中,社区或者发币人组织、所有人都可以参与运行;

      2、大的机构在互联网网建立平台提供一种区块链即服务(BaaS, Blockchain as a Service),BaaS多利用云服务基础设施的部署和管理优势,为开发者提供创建、使用,甚至安全监控区块链平台的服务。目前业界领先主要有IBM Bluemix和微软Azure云上的服务,以及开源的Cello项目。

      3、联盟链或者企业自建的平台,在大型机构和相互信任机构间建立的区块链平台,提供标准的接口,受限范围内的机构使用,如现在银行机构多使用这类模式,在小范围内进行使用。

三、政务机构使用区块链服务的选择

     在国家部委进行行业管理或者省市级(如北京市市级单位横向数据共享)模式下,可以根据应用场景不同,选择上述中的第二或第三种模式。在建设的时候,需要考虑以下内容进行建设。

     1、性能保障

     包括区块链和应用的响应速度,监控实时性能等。

     1.1 建设的区块链技术选择。目前一般公认的区块链技术分为三代,以比特币为代表的第一代技术,相对更安全,但是性能和限制很多,处理性能小于10笔/s;以太坊为代表的第二代技术,支持更开放的接口,可以基于这个平台做各类开发,目前常用的BaaS都是二代,基于以太坊和超级账本Fabric,其处理性能小于20笔/s;以EOS为代表的第三代或者叫2.5代,支持二级中心设置,与传统去中心化的设计略有冲突,其公链处理性能是300笔/秒,但是可以更多的开发,理论处理性能可以到百万级。(其他各类币的处理性能具体详见参考资料2)

     1.2 区块容量设置:更大的区块容量可以带来更高的交易吞吐率,但会增加挖矿成本,带来中心化的风险,同时增大存储的代价。比如比特币的容量通过多方评估上限定为1MB,通过硬分叉扩展到2MB,而以太坊的每次都是通过硬分叉进行的变动,导致前后不兼容的问题。

     1.3 出块间隔时间:更短的出块间隔可以缩短交易确认时间,但也可能导致分叉增多,降低网络可用性。

     1.4 成本评估:区块链的功能实现依托于共识机制,比特币和以太坊目前都采用的是工作量的证明(PoW,Proof of Work,后期以太坊可能转变为PoS(Proof of Stake)权益证明)达成共识,需要评估计算性能、网络带宽限制下的成本。

      2、可扩展性

      支持大规模场景下部署和管理的能力,可以快速进行扩展;

      2.1 脚本支持程度:评估建设的平台需要支持的语言类型,以及是否新的节点都必须使用指定的模式进行建设和运行,更强大的脚本指令集可以带来更多的灵活性,但也会引入更多的安全风险。

      2.2 是否提供可插拔的框架设计:包括区块链平台、资源调度、监控、驱动代理等是否容易引入第三方实现。

      2.3 跨链融合:如果存在不同区块链平台分立于区块链生态体系中, 处于相互独立状态. 众多异构的区块链平台需要有效的跨链技术实现互联。(如现在传统环节下常讲的证书互认类似,但是实现难度更大)

      3、资源调度

      对于非均匀的资源请求类型可以智能的予以平缓化处理,合理分配系统资源;

      4、安全性

      注意平衡用户操作区块链的自由度与平台自身的安全可控;

      4.1 基于数据维度、体积的问题,为了确保在多方之间的流动得到实时的追踪和管理。对数据的共享授权应该进行精细化的管控、规范,应该结合具体场景和政务数据的规范和同意资源标识规范,建立开放式的数据索引命名,原始数据库、不同应用需求下的脱敏库、数据加工后的内容都应作为不同的表库在链上进行存储和传递,为后期数据合理游有效的共享建立基础。

      4.2 建设模式风险:政府投资建设还是购买服务,两者都有风险,需要综合评估后选择建设模式;不管哪种模式,都要重复考虑在政府部门不具备自主运维的前提下,如何避免被服务商绑架,或者服务商倒闭等引发的安全风险。

     4.3 运行模式风险:是否运行链下交易(如闪电网络的概念,把大量交易放到链外,只把关键环节放到主链上进行),评估其风险性;是否支持代理人模式以提高效率。

     4.4 安全责任边界设置:如北京政务环节下,关系方涉及云管理部门、云服务商、BaaS服务开发商或服务商以及各个单位(含各单位的开发商、运维商和安全开发商等),面向社会公开的数据也应该纳入范围,如果还要纳入全市监管,还要涉及综合监管服务商。以上都需要明确各方责任和安全边界。

    4.5 代码漏洞:目前多次出现的针对区块链技术的攻击都是基于代码的漏洞,常见漏洞类型包括交易依赖、时间戳攻击、调用栈深度攻击、可重入攻击、整数溢出、GAS限制、随机数攻击、种子漏洞、假币攻击等。2018年5月,比特币黄金(BTG)遭遇51%双花攻击,损失1860万美元。如门罗币、以太坊THE DAO事件等。

   4.6 系统级安全: 区块链系统级安全体系的构建将围绕数据安全、共识安全、隐私保护、智能合约安全和内容安全等安全目标, 关注区块链的物理存储、密钥管理、网络传输、功能应用、机密数据和可控监管等方面的技术规范和保护措施。同时,还要考虑在这类P2P网络中,建设更加安全的DNS。

     5、可感知性

      深度感知数据行为,如可以准确实时评估区块链的运行状况,给用户启发;

     5.1 监控和分析功能:实现对区块链网络和智能合约的运行状况分析;

     5.2 管理区块链的全生命周期,包括创建、配置、使用、健康检查、删除等。

     5.3 第三方监管困难。要加强制定不同领域区块链应用的合法操作规则和必要的政策约束。需要根据具体应用设置适用的政策制度, 如银行必要的 KYC 和 AML 政策。 政策规定的制定有利于明确违法行为范畴和技术层面的设计目标。 技术层面上将更关注去中心化区块链平台上监管技术的设计和实现, 研究智能化内容抽取、分析、处理技术和分布式网络预警技术。

     6、底层资源普适性

     底层应当支持多种混合计算架构,容易导入物理资源。

     6.1 节点建设云平台和操作系统支持:比如是否支持裸机、虚拟机、容器(docker),比如开源的Cello仅支持基于docker的镜像下载运行。

参考材料:

1、https://www.freebuf.com/articles/paper/179901.html

2、https://www.nahan.org/2019/01/25/block-pk/

3、https://www.jianshu.com/p/b97e6c655b16

4、http://tech.ifeng.com/a/20190103/45280751_0.shtml

5、《区块链原理、设计与应用》杨保华 陈昌  机械工业出版社

Tags :

About the Author

发表评论