信
f、通信
INFORMATION & COMMUNICATIONS 2020
(Sum. No 216)
基于区块链技术的医疗数据存储研宄
杨晓菲,尹铁源
(沈阳工业大学信息科学与工程学院,辽宁沈阳110000)
摘要:医疗数据中心化存储面临着病人隐私泄露的风险、服务器安全性低以及运营终止的风险。针对这些问题,文章提 出将医疗数据存储在区块链上,利用区块链去中心化、可追溯以及不可篡改的特性,保证医疗数据的安全、可信任。该方
案采用了改进PBFT共识算法,将医疗数据存储在区块链上。实验表明,将医疗数据存储在区块链上有效的保护了数据 在存储与共享过程中的安全性,改进的PBFT共识算法降低了网络共识时间,为医疗联盟链提供了更优的稳定性和更高 吞吐量〇
关键词:区块链5医疗数据;PBFT算法}医疗联链中图分类号:TP311.13
文献标识码:A
文章编号:1673-1131(2020)12-0022-03
Research on medical data storage based on blockchain Technology
Yai^ Xiaofei,Yin Tieyuan
(Shenyang University of Technology School of InfonnationScience and Engineering,LiaoNing Shenyang 110000) Abstract: Centralized storage of medical data faces the risk of patient privacy leakage, low server security, and the risk of termination of operations. In response to these problems, this article proposes to store medical data on the blockchain, using the decentralizatioiL, traceability, and non-tampering characteristics of the blockchain to ensure the security and trustwartimiess of medical data. The program uses an improved PBFT consensus algorithm, the medical data stored in the coalition chain. Experiments show that storing medical data on the blockchain effectively protects the security of the data in the storage and sharing process. The improved PBFT consensus algorithm reduces the network consensus time and provides better stability and High^- TPS.
Keywords: Blockchain;medical data;PBFT algotithm;Medical Alliance chain
0引言
如今计算机技术在医疗领域广泛应用,由于医疗信息化 建设进程不断地完善,医院中的医疗数据每时每刻都在更新 增长。大数据技术的出现为海量医疗数据的存储提供了新的 思路,大数据技术是建立在云计算的基础上,通过云管理来实 现对数据的管理。但是,这些安全服务方案都是依赖于一个 完全可信任的第三方来保证数据交互的可靠性。一旦第三方 信任机制遭到攻击,则所有的服务都不再安全气区块链是一 个特殊的数据库,能够建立一个可以记录时间先后顺序,不可 篡改,可信任的数据信息。在保证数据隐私安全的同时,不再 需要第三方服务,可以直接进行交易。
本文利用Hyperledger Fabric联盟链设计一种使用区块链 技术存储医疗数据的方案,该方案利用区块链去中心化、防篡 改性、可追溯性、匿名性等特点保证医疗数据存储的安全性以 及数据共享的可信任性。通过在已搭建的联盟链上,改进PBFT 算法,改善传统的PBFT算法存在问题,提髙PBFT算法共识 的效率,提高联盟链的吞吐量。
可篡改的Merkel树ra。
在不同的区块链架构中,由于网络运行机制、共识机制等 规则的不同,区块头中所包含的具体信息字段也稍有不同。
在Fabric中,区块头包括版本号、时间戳、状态哈希、前一区块 哈希、共识元数据、Merkel根等。区块体中为具体的交易摘要 信息以及由这些信息按照Merkel可信树模型计算组成的 Merkel Tree.
将每一个区块按照生成时间的顺序逐个连接起来,便形 成了一个链式的数据存储结构,即区块链B]。在整个链中, 第一个区块叫做创世区块,其区块高度为0,之后的每个区 块的区块髙度依次加一,并且在区块头中写入前一个区块头 哈希值。区块链上的各个区块之间由各区块上前一区块头 哈希进行链接。这些交易信息一旦在各节点之间达成共识 之后,将会永久的存入到区块链中,整条区块链上的信息是 对所有节点开放的,各个节点可以通过验证哈希值来验证区 块链内的信息是否正确。具体链接方式如图1所示。
1相关技术
U
区块链
在区块链中,区块是用于存储交易摘要信息的载体,也是
区块链中数据存储的结构的单元。每一个区块包括区块头和 区块体两部分,区块头中的信息用于标识区块本身、前一个区 块的信息摘要以及区块在整个账本中的位置等;区块体主要 用于存储交易摘要信息以及用于验证交易信息并保证交易不
区
块
区
块
区块
图1区块链示意图
收稿日期:202(W)9-29
作者简介:杨晓菲(1993-),女,研宄生,主要研宄方向:大数据方向;尹铁源(19650,男,副教授,主要研宄方向:大数据方向。
22
信息通信
1.2共识机制
区块链的本质是一个分布式共享数据库。在分布式系 统中,普遍采用共识算法的计算机算法来实现系统中的节点 对交易达成一致性的过程。目前,区块链中共识算法主要有 工作量证明(Proof of work,PoW),股权证明(Proof of Stake, PoS),委任权益证明(Delegated Proof of Stake,DPoS),实用
拜占庭容错算法(Practical Byzantine Fault Tolerance, PBFT)t4].
本文提出的研究方案是基于联盟链的区块链,因此选用 PBFT算法进行改进,然后将改进的算法应用到联盟链中使各 节点达成共识,允许数据上链。PBFT算法是基于状态机复制 理念设计的一个实用并能解决拜占庭容错的算法,算法在保 证活性和安全性的前提下提供了 (n-l)/3的容错性。
PBFT算法在一个视图内的共识流程大致可以分为以下
几步:
(1 )request:请求端C发送请求到主节点。
(2) pre~prepare:节点0收到C的请求后进行广播,广播至1、 2、3节点。
(3) prq»re: 1、2、3节点收到请求后,再次进行广播,1->0、2、 3,2〇0、1、3。由于假设3节点为宕机状态,无法进行再次广 播。
(4) commit: 0、1、2、3分别处在peipare阶段,如果收到2个相同的请求,则进入commit阶段,然后广播commit请求。(5)
reply:0、l、2、3节点再commit阶段,如果其中的有一
个节点收到2R1个相同的请求,则对C进行reply。
(6) C收到来自f+1个不同节点返回相同的消息后,代表 共识已经正确完成。
根据以上算法描述的步骤,PBFT算法在一个视图内的共 识流程如图2:
图2 PBFT算法的处理流程
2基于区块链安全存储模型 2.1区块链数据存储架构
该方案利用Hyper ledge Fabric开源框架作为区块链的存 储架构。首先,Fabric系统中的每个部分的单位都是组织。通 常需要对各个组织进行联盟式的管理,也就是说,系统联盟初 始化以后,需要将各自的证书提供给其他的联盟成员。参与 联盟的所有组织都是对等的,可以参与整个联盟链的管理工
作气另外,Fabric联盟链在某种程度上还是属于自己联盟内 部成员之间的相互关系,只有通过MSP完成注册的成员才能 去参加共识机制[61。因此,选用Fabric联盟链达成共识的速度 会比较快。
23
杨晓菲等:基于区块链技术的医疗数据存储研究
医疗区块链存储整体架构主要由数据使用者、患者用户、 数据源机构还有云服务四部分组成。数据的使用者主要是医
生、医疗研究机构以及个人査询。医疗数据的产生是来自于 患者在医院内所做的各项检测数据。数据源机构是医疗机构、 医疗设备。图3展示了区块链医疗数据存储架构。
联盟链
3~
~
[b]~
~
ra
51——I
e
H~~I
f
I
吋入败据
数m来诹
^
图3医疗数据联盟存储架构
当用户患者去医院就诊以后,用户会很关心个人数据的 隐私,数据的完整度以及数据可以在不同就诊地方查询。用 户使用自己的私钥对自己的医疗数据进行签名,医生会生成 医疗数据的摘要和哈希并将其签名后发布到区块链中使用发 行者的私钥。同时,f
用对称密钥加密医疗数据,并用患者的公 共密钥加密医疗数据的加密密钥。他们两个一起被发送给患
者。医疗数据联盟链中的网络节点是有各级医院组成。从医 疗机构接收到数据后,患者会验证医疗机构的签名,然后使用 自己的私钥对医疗数据加密密钥,原始医疗数据和签名进行 解密,然后生成新的加密密钥来存储医疗数据及其在云存储 中的签名。由于区块链存储的容量有限,所以我们只把医疗 元数据存储在链上17)。完整的医疗数据存储在云服务中,对云 服务中的数据加以权限控制,并且不同的事务实体的权限是
不一样的,在医疗联盟链中的个人数据的使用权是完全由患 者控制。只有在患者同意的情况下,其他节点才有资格去访 问这些数据。
2.2改进的PBFT算法
PBFT共识算法的共识节点承担着医疗数据的发布和存
储工作,以保证医疗数据的隐私性、不可篡改性和麵完整性 原始的PBFT算法中所有的节点都需要参与共识,通信资源消 耗髙,恶意节点的破坏性强。改进的PBFT算法在保留原始的 三阶段协议的基础上增加了验证环节。在节点达成共识的同
时也对区块链中的交易进行了身份验证。
联盟链中动态选举出来的主节点将打包好的交易数据先
进行验证,并将其验证的结果发送到preprepare的消息中,然 后进行全网节点广播。这样preprepare消息中不仅包含了交 易信息并且还包含了区块链验证的结果。其他从节点在收到 主节点preprepare消息后会先检查这条消息的合法性,当检查 通过后全网广播prepare消息证明本节点同意了主节点的结 果。当从节点收到共识节点的preprepare消息后才会开始验 证区块,并将验证的结果与主节点验证的结果进行比对,比对 结果相同时,开始广播commit说明该节点时同意主节点的验 证结果,否则会直接发起试图变更。改进后的PBFT算法在一 个视图内的共识流程图4如下:
信息通信3实验分析
3.1实验环境
实验环境为:WindowslO, 12GB RAM,intel(R)Core(TM) i5-10210UCPU@1.60GHz2.11 GHz。本课题选择搭建开源的 Fabric环境,由于官方推荐fabric的开发环境是基于docker搭
建的,使用docker搭建需要一下前置条件为Docker version17.06.2 版本、Docker Composel.14、Go 1.10、Node.js 8.9.1 Python 主要是 python-pip。 为了保证数据存储交易顺利进行并
且可以更快的收集到数据,进而进行分析与比较。所以每次 将数据交易量设置为1。3.2实验数据与结果分析
本文采用kaggle平台上提供的公开医疗数据集进行实 验,将医疗数据存储到Fabric联盟链。基于本文提出的改进 的PBFT算法,在搭建的联盟节点中使用改进的PBFT共识 算法。吞吐量是单位时间内成功传输数据的数量,在区块链 系统中也就是在单位时间内医疗数据写入区块链中的总交易 数量【8】。
TPS =------Atranstaction
A—t
-----
(1)
Tps:每秒交易量数每秒内交易的增量时间的增量
本次实验分别测试了 4、5、6个节点的联盟链吞吐量。具 体数据如图5:
吞吐量性能比较
4303S20S_201S10 ««»
S
6
节点个败
-S3PVT
图5 TPS数据
在联盟链吞吐量方面,改进的PBFT共识机制,通过实验 获取的交易数量与交易共识时间,由图可知,通过计算出TPS 比原始的PBFT共识算法提高了 33%左右。通过在改进的共 识节点中加入验证机制,可以保证从节点对主节点的每一次 排序打包的结果进行校验,尽早地发现主节点的拜占庭行为, 提升了系统的稳定性。
杨晓菲等:基于区块链技术的医疗数据存储研究
3.3区块链存储模型性能分析
本文提出医疗数据存储的方案是基于区块链技术的数据 存储。基于属性的加密(ABE)和密钥聚合密码体制(KAC)是 云存储中数据共享的典型密码技术M。传统的数据存储方式与 本文提出的数据存储方式有所不同,如表1。
表1安全性能对比
传统的数据存储
区块链存
依软第三方中介V
去中心化
V
隐私保护VV
防篡改VV
医疗数振的访问权R
V
共识机制
4结语
随着联网医疗设备的增多,医疗设备的网络安全系统成 为影响医疗行业网络安全的重要因素,如果把医疗设备中现 有的安全系统更改为基于区块链的系统,就可以为设备提供 一层额外的保护。因为在区块链使用的是分布式网络共识算 法,整个网络中的所有的节点共同管理监督数据内容,同时凭 借内置的加密技术能够保证所有数字事件记录不可篡改。通 过区块链技术,医疗数据面对网络安全威胁的时候就有了更 高的防御能力。
长久以来,医疗数据更多的只是在医疗机构内部流转和 共享,不同的医疗机构间的信息不畅通,缺乏有效的数据共享 机制。基于区块链技术的安全基础设施能够实现各界医疗数 据的安全共享,从而推动医学研宄,促进精准医疗。患者在不 同医疗机构的检查检验数据可以得到可靠共享,不用担心被 伪造篡改,也避免了患者不必要的重复医疗。
参考文献:
[1] 王辉,刘玉祥,曹顺湘,周明明.融入区块链技术的医疗数据
存储机制研宄[J/OL].计算机科学:1-9[2020-09-09].
[2] 杨绿林.基于改进PBFT算法的区块链溯源系统设计与
实现[D].北京邮电大学,2019.[3] 李静,单既桢.区块链技术在卫生健康领域的应用研宄[信息技术与信息化,2019(12):210-212.[4] Yi, Ding Shuai, Xu Zheng, et al. Blockchain-Based Medical
Records Secure Storage and Medical Service Framework.. 2018,43(1):5.[5] 张先洪,劳宪银,谭仁杨,梁海.基于区块链的军事数据云存
储共享方案[J].网络安全技术与应用,2020(06):91-94.
[6] Chen Yi, Ding Shuai, Xu Zheng, et al. Blockchain-Based
Medical Records Secure Storage and Medical Service Framework.. 2018, 43(l):5.
[7] 张利华,蓝凡姜攀攀,蒋腾飞•基于双区块链的医疗记录安全
存储与共享方案[J].计算机工程与科学》2〇19,41_:1581-1587.[8] 马桂芬,陈平,张丽,姚永红,王映苏.基于区块链的管理会计
信息化研究[J].中国注册会计师,2020(09):114-118.[9] Wang, Z., Cao, C., Yang, N., and Chang, V., ABE with im
proved auxiliary input for big data securityJ.Comput.Syst. Sci.89:41-50,2017.
24
J].
因篇幅问题不能全部显示,请点此查看更多更全内容