基于区块链的医疗数据共享的研究

作者: 王娜,倪永婷,姚瑶,吴盈,谢佳

基于区块链的医疗数据共享的研究0

摘要:目前,我国医疗机构的信息系统存在医疗数据碎片化,数据保障机制不健全,社会认可度有待提高等不足,导致“看病难”“看病贵”等诸多长期困扰我国医疗领域发展的问题的出现。随着“互联网+”技术的飞速发展,医疗共享已成为大趋势,为了打破传统医疗体系,解决我国传统实体医疗数据匮乏的问题,提出基于拜占庭容错算法的区块链的医疗数据共享技术,实现医疗数据的精准共享。针对个人信息泄露的问题提出数据加密以及访问权限控制避免数据泄露提高系统安全性。

关键词:区块链;医疗共享;数据加密

中图分类号: TP39       文献标识码:A

文章编号:1009-3044(2022)32-0061-03

1 概述

2008年,世界卫生组织指出,提升卫生系统是实现健康千年发展目标的必经之路,现阶段医疗资源趋向于一体化,医疗数据趋于整合统一。随着人民生活水平的日益提高,党和国家高度重视医疗保健制度的发展,大力推动医疗数据档案的信息化、数据化,并鼓励各地探索医联体建设。在政策的引导下医疗共享成了人们关注的热点民生话题。但是数据共享一直以来都是医疗整合的第一难点,传统服务器难以处理医疗系统海量的数据信息, 信息维护的成本高出医疗数据带来的价值,致使医疗共享难以大规模实现与推广,随着“互联网+”和云计算时代的到来,区块链技术的诞生提供的一个去中心的可信平台,可以很好地解决该问题,提供了医疗数据共享的可能。根据以上背景,本研究提出一种基于区块链的医疗共享研究方案,实现区域内部跨机构和跨线条的信息化以及异构信息系统之间的信息共享与协同,打破了医疗大数据孤岛问题,并在区块链基础上结合拜占庭容错算法实现数据精准共享, 提高信息数据的一致性,同时提出数据加密和访问权限控制使得计算机网络环境的安全系数有效提升,为大众提供一个更加安全可靠的医疗共享环境,使医疗系统的运行更加安全可靠,大大降低数据泄露的风险。

2 国内外研究现状

2.1 区块链技术研究现状

区块链技术起源于比特币,是以比特币为代表的诸多数字货币方案的基础技术,而比特币则是一种以数据为基础的货币,它可以通过区块链技术的去中心和透明化来解决对第三方的过分依赖问题。 数字货币的概念在1983年被Chaum首次提出,此后随着虚拟社区的问世以及信息技术的大规模发展,数字货币的应用场景变得越来越广泛,社会对于他的需求也越来越急切,但是数字货币对交易匿名性的要求格外高,传统中心化数据库开放式、扁平化的系统现象显然不能满足数字货币的不可追踪性、匿名性,而区块链则利用传统技术如对等网络、分布式数据存储、共识机制、加密算法、智能合约等技术[1],使得区块链具备了去中心化、不可篡改、可追溯、多方维护、公开透明的特性。

2.2 医疗共享研究现状

医疗系统信息化是我国医疗系统改革中最重要的一部分,随着党和国家实施的健康中国战略不断深化推进以及对人民健康的不断重视,党和国家深刻认识到人民健康是社会稳定发展和全面建成小康社会的核心要素,所以不断完善医疗系统的整体框架,大力发展医疗系统协同共享优势。早在2013年,国家就明确提出鼓励各地探索医联体建设,随着医联体探索的不断深入,医疗共享慢慢出现在人们的视野中,逐渐成了医改趋势,也逐渐成了医疗系统的大趋势。我国医疗系统信息化发展主要分3个主要阶段:信息孤岛、烟囱系统和区域协同。信息孤岛是我国卫生信息化建设过程中留下的历史问题,造成这一历史问题的原因有很多:国家未出台相应的标准、医院在建设信息系统过程中缺乏标准指导、医疗系统中存在条块分割等,导致医疗数据存在非常大的壁垒成为信息孤岛,医疗信息分散无法满足广大患者对医疗资源的需求。第二阶段烟囱系统,虽然连接了各个个体小医疗系统,但对于全国乃至全世界的医疗系统来说,还是一座信息孤岛,不能与其他系统进行有效协调以及信息的分享。第三阶段为区域协同,该阶段将各个区域的医疗信息联系起来,成为一个大型医疗数据信息库,通过这些信息库,能够高效、准确地进行信息共享,从而满足大多数病人的需要。当下我国医疗卫生信息化产业的总体发展趋势呈现区域化和协同化,但随着社会不断地进步,经济不断地发展,区域化的医疗系统会造成医疗数据的“割裂化”,从而导致以区域为单位的医疗系统已无法满足广大居民对于医疗资源日益增长的需求,因此跨区域医疗共享模式也就成了区域医疗系统信息化发展到一定阶段的必然趋势。

3 基于区块链的医疗数据共享方案

3.1 方案模型

(1)医院节点:一个医院节点对多个医生节点进行身份信息的管理。通过将交易注册的医师的身份信息在整个医疗链条上公布,一旦医生的身份发生了变化,就会在联盟链中进行更新,而在医生离开的时候,由医院的节点来处理。

(2)医生节点:这条联盟链由所有的参与的医院构成,而医生节点全都受联盟管制。一个医生可以对很多用户节点进行诊断,医生也能使用相应设备的检查报告用以分析用户身体状况,从而为他们提供诊断。用云存储服务器存储加密后的诊断文件,通过发布诊断交易把返回的索引存储在医疗链中。一个医生可以对很多用户的数据进行诊断,而医生则可以通过智能的检查来帮助分析用户的健康情况。

(3)智能检测设备:这些不同的医疗设备会采集用户的各项身体指标,并且将采集到的数据传输到用户节点。

(4)用户节点:一个用户不仅限于使用一台医疗设备,可以使用多个检验设备。而后将检验结果,即相关数据经过格式化处理后存储在文件中。用户节点用云服务器存储将加密后的医疗数据文件存,同时将返回的哈希索引保存到用户链。被授予相关权限的医生才能读取被加密后的相关医疗信息信息。

(5)记账节点:在联盟链中,记账节点是由联盟来选择的,而记账节点则是负责将医师节点和医院节点所产生的交易存入区块链。

(6)医疗链:是一条联盟链,其中由不同的医院节点和医生节点构成。满足访问条件的医生节点能产生诊断以及诊断密钥交易,而记账节点则负责在区块链上记录交易。

(7)用户链:是一条公有链,包含所有用户节点。所有人都可以参与此公有链,用户链中存在两种交易,一种是医疗数据交易,另一种是会话密钥交易。在用户链中医生节点通过搜索用户医疗数据交易中的索引,从而可以访问完整的加密数据文件。

(8)身份链:其相似于医疗链,一条联盟链中存储数据,身份链中医生身份信息交易仅医院节点可以生成,使上链信息更权威。

3.2 方案构造

(1)分布式存储:利用区块链技术去中心化、公开透明以及不易篡改等特性,解决以往中心化服务器出现易被篡改和单点故障的问题, 故利用分布式存储模式。

(2)大量数据存储:因为区块链中区块容量不是无限的,因此把海量的数据直接存储在区块中不合适。所以在链上仅存储被加密的数据文件的哈希索引。再就是被加密的原始数据文件使用云服务器存储,从而实现大量数据存储和扩容的目标。

(3)数据安全性:因为用户信息与医师诊断信息具有高度的敏感性,所以必须对数据进行加密保护。

(4)访问权限制: 由于本项目的数据信息需要严格地执行保密机制,所以要严格控制用户的访问权限,防治数据信息的泄露。明确用户的权限范围。

(5) 医疗信息的容错: 防止部分错误的医疗数据被输入后,导致其他数据出现问题,设置容错机制来保护其他数据,让系统在此情况下也能正常运转。

3.3 共识层

3.3.1 Pow和PBFT

Pow共识算法,即工作量证明机制。在目前区块链中比较成功的项目:比特币和以太坊中,现阶段均采用的是Pow共识机制,通过其来保证分布式节点的一致性。它是依赖机器进行数学运算,从而获取记账权,接着根据矿工的工作量对数字货币进行分配,矿机的性能越高,数量越多,工作量越大,那么得到的数字货币就会越多。Pow共识机制中的所有节点地位完全平等,竞争记账能力随节点计算能力提升而增强;在消耗资源方面,它相比于其他共识机制而言更高、可监管性更弱,但可以实现去中心化和区块链的一致性。同时其中的挖矿机制对计算资源要求很高,易造成大量资源和设备的浪费,每次达成共识需要全网共同参与运算,这导致了交易处理效率比较低,容错性较高。由于网络中每个节点完成工作量的证明由其拥有的计算资源决定,因此攻击节点不能通过创建多个虚假身份提高自身完成工作量证明的概率 [2]。

PBFT算法,即实用拜占庭容错算法——一种状态机副本复制算法。它采用的是类中心化节点的记账方式,PBFT算法通过不断地优化解决了原始拜占庭容错算法效率不高的问题,使其可以在异步环境中工作,其主要原理为:将运行复杂度由指数级降低到了多项式级,使拜占庭协议在分布式系统中得以应用。但该共识机制允许拜占庭容错,允许强监管节点参与,具备权限分级能力,性能更高,耗能更低等优点 [3]。并且它承担一种具有瞬时处理高吞吐量事务、交易验证、公平交易委员会的成员轮值公牛的高效共识机制,以及作为一种补偿基础设施去处理不同的基础设施。该算法每轮记账都会由全部节点共同选举当值节点,并且允许33%的节点作恶,即容错性为33% [4]。

3.3.2 算法设计

步骤1  向客户端发送被发送者签名后的交易,并附上发送者的签名;

步骤2 与此同时请求验证节点,执行激活当值节点的操作,同时向全网广播该操作,让所有共识节点都在独立监听该交易;

步骤3 客户端发送消息i给当值节点,当值节点接收到消息后,对接收到的所有消息进行编号,记为n,同时构造pre-prepare消息给节点;

步骤4 在节点收到pre-prepare消息后,向其他节点发送pre-prepare消息;

步骤5 当其他节点收到消息并对视图内的请求和次序依次进行验证后,说明已经达成共识,则开始执行客户端请求并给予响应,同时将完整的区块保存至本地;如果验证失败,则结束共识;

步骤6 向各节点发送确认信息,以验证各节点在收到消息时所验证的签名是否正确,当节点确认收到的消息大于或等于总节点数的2/3,则可以进行下一步操作;

步骤7 将确认完成的节点信息发送给客户端,并请求最后的执行结果。

3.4 安全分析

3.4.1 身份管理

区块链本质上其实是分布式账本式结构,但是由于联盟链和公有链有一定的区别,用户的隐私性可以得到相应的保证。方案使用联盟链进行管理,其为成员提供一个CA服务以及Channel通道,用于管理用户。认证中心CA为用户提供身份的注册以及证书的签发、更新、注销以及验证服务。而Channel通道会通过将各个成员的MSP包含在一起以此管理成员。MSP存在的目的是为网络提供身份管理、隐私、保密和可审计的服务,这也是因为MSP中包含有成员组织的CA证书以及Admin账户证书。通过这些证书提供身份认证,成员也可通过这些身份信息进行互相识别,但双方并不会知道彼此在做什么。这也为用户提供了一定的隐私性。

3.4.2 密钥管理

该项目采用的是非对称加密算法[5]对数据进行加密。由于存储的数据量较大,从而导致使用到的密钥的数量也会比较多,提高了管理难度。该方案采用的是PKI系统 [6-7]对密钥进行管理。首先在安装PKI系统时会自动生成CA密钥并对其进行加密操作,随后将其存储在存储服务器的数据库或硬件主机加密服务器中。用户的密钥则是由客户端进行生成,生成的签名密钥同样也会进行加密处理,并将其存储在客户端的本机文件或者操作系统的安全区中。所以本项目我们采取的密钥管理方法是将密钥保存在相应配置文件当中,然后在运行时由程序读取密钥将其加载至内存当中。除此之外我们还会将密钥进行加密处理,严格控制密钥所在文件的访问权限,保证密钥的安全性。

上一篇 点击页面呼出菜单 下一篇