APP下载

基于区块链的医疗数据安全共享模型与机制

2020-10-28朱诗生李朝清黄仁俊李维骏

计算机技术与发展 2020年10期
关键词:以太区块交易

朱诗生,李朝清,黄仁俊,李维骏

(汕头大学 计算机系,广东 汕头 515063)

0 引 言

当前,患者对医疗诊治服务要求越来越迫切,医疗机构对医疗数据的分享利用需求不断提升,其中医疗数据包括个人隐私信息、慢病测量数据、电子病历及电子健康档案等。由于历史的原因,造成目前各个医院机构HIS系统相互独立、协同程度低、信息孤立等,在E-Health病历中的许多问题包括数据完整性与隐私性以及高度可靠的审计跟踪等面临挑战[1]。患者对于个人医疗数据的掌控程度低,医院机构的协同诊治速度相对缓慢,无疑需要改进传统的医疗诊治以及数据分享模式。

区块链技术因比特币而进入人们的视线,是近年来研究的热点[2]。随着区块链技术的不断突破和普及,区块链技术在医疗领域将会具有极大的发展机遇,有望在互联网+医疗生态的构建上发挥重要作用[3]。截止到2018年,全球医疗机制在不断创新和改变。例如:澳大利亚的Brontech公司使用区块链技术搭建的Cyph MD服务平台[4],利用非对称加密技术与分级证书系统的结合,建立医疗人员的数码身份,以确保他们之间的信息沟通隐私受到保护,提高医疗保健系统的可信度和安全性;Saravanan Raju等人[5]研究区块链管理教育和健康,使可连续跟踪个人健康和教育。2017年,中国第一次将医疗与区块链结合使常州市医疗体系有了创新的应用。

医疗+区块链的方式为患者的医疗诊治服务提供了一种全新的保障,目前国内外学者提出的方案值得借鉴。例如:黄永刚[6]利用区块链技术讨论了医疗在隐私保护方面的应用,为电子健康档案建设提供新的研究思路。薛腾飞等人提出基于区块链的医疗数据共享模型[7],通过改进共识机制实现了医疗数据安全、快捷的共享。梅颖提出一个医疗记录安全存储方案[8],利用区块链和云存储技术有效实现了医疗数据的安全访问与存储。Yue Xiao等人提出的基于区块链的HGD体系结构[9],使患者安全控制共享医疗数据。Tian Haibo等人[10]针对医疗数据的隐私性,提出在诊断和治疗过程开始之前,建立一个可以由合法方重建的共享密钥。Han Huirui等人[11]提出将联盟链与私有链结合的混合性区块链,从而提高医疗数据存储安全性。Li Hongyu等人[12]利用以太坊平台构建医疗数据安全存储系统。Ji Yaxian等人[13]提出基于区块链的隐私保护位置共享方案,能够保证位置共享的安全性。Fan Kai等人[14]建立了基于区块链的信息管理系统Medblock,能对电子病历有效的安全管理共享。Ahmet EKN等人[15]评估了区块链技术在医疗保健应用上的选择和部署,为区块链提供新的技术研究。Md Zakirul Alam Bhuiya等人[16]提出一种私有区块链解决方案,该方案管理健康数据更安全以及跨机构共享数据。Hoang Giang Do等人提出一种利用区块链技术来提供具有关键字搜索服务的安全分布式数据存储的系统[17]。Gabor Magyar设计了一个集成的健康信息模型[18],该模型基于区块链操作环境建立一个分散的、可公开扩展的网络,使得访问数据更具保障。Liang Xueping等人提出一种创新的以用户为中心的健康数据共享解决方案[19],利用区块链机制保护隐私,加强身份管理,并结合移动应用程序采集数据。Min Gyu Kim[20]等提出了基于区块链的医疗问卷管理系统,可使患者自行管理数据,保障问卷结果数据的完整性。Tang Huanrong等人[21]根据医疗图像资源保护设计了基于区块链智能合约与信用评分的医疗图像安全共享方法,保证了智能共享医疗影像数据,其关注主要是图像资源的保存共享。为改善传统医疗模式,笔者团队研究开发了协同诊治分享平台[22],以便构建共享的医疗数据模式。通过患者的有效授权,合理分配、控制各个层级人员的数据分享访问,从而降低医疗成本、减少医疗数据资源浪费,提升诊治效率。可是开发的平台只有传统意义的权限管理,对医疗数据的分享安全控制以及共享的速度并未从根本上加以改变,对于患者身份隐私、医疗数据交易隐私[23]以及随时追溯等问题也未解决,需要对平台进行改造。针对以上问题,该文通过对以太坊、协同诊治平台以及加密算法的分析与研究,提出基于区块链的协同诊治平台医疗数据安全访问共享模型与机制。通过患者授权允许访问,授权信息需要在以太坊私链构建区块链服务中验证,共享交易记录永久保存。该区块链服务建立于协同诊治平台实现数据协同化,医疗数据去中心化不需第三方监管、数据不可篡改、匿名的协同化处理与安全传输,从而形成了一个完整的模型架构。方案使患者对于个人E-Health信息拥有高度的所有权与支配权,尝试解决长期存在的医疗数据安全访问程度低、分享缺乏有效保障的问题。

1 协同诊治平台的医疗数据安全访问共享模型框架

通过研究慢病患者等不同类型患者传统诊治案例,模拟与剖析医生就诊、患者就医的完整诊治流程,归纳出传统诊治体系的效率低等问题,从而提出安全访问共享模型。该模型以医院传统诊治流程为依托,利用区块链技术嵌入协同诊治平台,改进医疗数据的访问、存储以及共享流程。模型具有EHRP研究理念,渗透去中心化思想,基于B/S的SaaS应用模式。模型框架总体构建如图1所示。

图1 模型架构

(1)物理互联层:医疗信息系统因不同医院的不同设置,具有不同的医疗数据资源管理模式。该层的设计尝试通过数据互联协同策略将各医院、各卫生站、社区医疗站以及各医疗机构的医疗数据管理系统连接起来,通过互联连接规避异构医疗数据资源问题。而物理互联层的互联效率较高,实时地进行控制。利用互联网技术实现电子信息存储,实时同步互联。而在本研究平台下,该层设计针对大文件医疗数据的外部存储,且实时备份不同患者在该医院的诊治信息。

(2)区块链服务层:该层嵌入协同诊治平台的基础模型中,使用以太坊平台搭建的服务器;通过Web3J框架接口沟通以太坊,使用Geth客户端可创建或启动以太坊节点;以太坊节点之间形成分布式的沟通模式,互连互通构建以太坊私链。区块链服务层根据发布的新的医疗数据存储操作交易,将医疗信息存储于区块链,同时可通过交易哈希值查找回具体的所需信息,从区块链或协同存储平台取回信息。该层存储部分医疗信息或数据摘要,根据交易授权信息从物理层的医疗信息系统获取原始医疗数据。

(3)基础服务层:经授权的医院等医疗机构,具有存储共享数据的权利。该层通过物理互联层与区块链服务层的传输,处理授权方的操作实时要求,获取存储的原始医疗数据信息进行数据爬取等处理操作,达到协同诊治的优良服务要求,以供诊治研究需要。针对庞大的数据信息,该层也可根据需求进行相应的数据预处理清洗等处理。

(4)应用服务层:挖掘处理后的医疗数据,经该层的算法分析等处理,可应用于应用层。该层作为上传下达的中间层,为整个协同诊治平台提供一定的功能支持作用。经此应用服务层,可更好地提取重要的针对性医疗数据信息,做到分类聚类处理,并且维护了平台的安全功能支持。

(5)应用层:该层将处理后获取的医疗数据资源经下层服务调用,于网页端、APP端等客户端进行展示,其医疗资源可用于疾病诊治分析处理、共享诊治资源以及查询具体信息等。该层承接了医生及患者两大主体的实时操作要求,需要通过该层驱动协同诊治平台各层之间的服务处理调用。

在整个架构模型中,患者医疗数据的使用须通过患者在应用层对医疗结构或者医生进行授权才能共享个人医疗数据。数据的访问、分享、删除都会由用户在区块链服务层发起交易,记录数据操作,为用户安全访问、共享做背书。在该平台下,平台应用层具有支持上层服务,调用下层服务的功能,提供对外部应用数据进行安全存储以及安全访问等服务。

2 医疗数据安全存储访问与共享

2.1 医疗数据安全存储

传统医疗数据存储采用中心化的存储平台,数据不可防伪,信息也无法溯源,存储安全系数低。该模型的存储模式以协同存储平台存储原始医疗数据,区块链服务层处理患者的医疗数据,以达到保护患者隐私的目的,提高数据存储的安全性。患者的医疗数据变更交易记录,操作交易记录等都将以时间戳的区块形式存储于区块链服务器层。不仅存储了患者的原始医疗病历、E-Health等信息,还对病历实时的处理进行记录,为患者随时提供完备的真实的存储数据。

整个医疗数据存储的具体流程如图2所示。患者在某医院经医生诊治后,医生书写的诊治病历、治病处方等重要诊治数据实时地存储于该医院的存储平台中,对外不公开,临时的医疗数据会被消除。医生、医疗机构等可通过患者授权经区块链服务层验证授权处理访问,因此部分医疗数据及存储记录需存储于区块链,以供交易处理。由于区块链中区块的存储大小限制,模型将经互联协同策略处理过的大型医疗数据生成数据摘要和小型医疗数据构成大小合格的数据文件。根据数据文件是否公开,非公开文件进行加密,公开文件进行脱敏后加入进区块的Data位置处。区块链服务器的区块链数据层存储数据文件,同时存储时间标识Time、随机数Number、Hash值以及患者的私钥加密后的签名S等,即(Data,Hash,Time,Number,S)。数据层生成的交易经矿工挖矿,解密签名,验证交易,在网络层以P2P的组网技术进行广播,经全网验证。其中过程依靠POW共识机制,验证通过将该块加入区块链。患者医疗数据通过此存储流程,使患者医疗存储可追溯,存储更加安全。

图2 医疗数据存储流程

2.2 医疗数据安全访问与共享

为改进共享诊治模式,根据疾病严重程度实现在社区与医院康复治疗间方便互换诊治的新格局。缓解看病难与贵,优化医疗资源配置,降低医疗成本,提高医疗效率,随时随地将医疗数据达到最大利用程度。模型针对医生和患者两类主要交易对象,其中医生可来自不同的医院,患者可为慢病患者等不同类型患者。以患者对个人医疗信息掌握所有权与支配权,患者授权医生进行访问与共享信息的方式,进行改善。具体的医疗数据访问共享流程如图3,步骤如下:

图3 医疗数据访问共享流程

(1)患者授权。患者在应用层系统授权给医生,授权信息逐层调用服务,服务器管理层将数据访问授权打包成交易上传到区块链进行存储,记录授权操作行为。授权交易单由授权信息Data、患者签名S等构成,矿工通过签名对授权交易验证,合格的交易完成,医生获得患者授权。同时,患者制定加密密钥以及数据调取方式,通过非对称加密的方式发送给医生。

(2)医生取得授权后具有访问医疗信息的权限,医生在权限允许范围之后提交对患者E-health信息、诊断病历等医疗数据的访问共享请求。此时,患者对共享访问交易单进行签名,交易单主要包括数据摘要Data、医生等接收方地址、患者公钥信息PK、患者私钥签名S等。交易单经挖矿验证成功后,上传到区块链。发布交易成功返回交易哈希值,交易哈希值与医疗数据摘要形成对照表,易于系统查询区块链上的信息。具体算法流程如下:

算法1:发送交易 Procedure SendRawTransaction

Input:接收方地址;发送方私钥,公钥;数据

Output:交易哈希

1 Begin

2 使用发送方公私玥生成椭圆加密算法对象

3 使用椭圆加密算法对象生成用户凭证

4 新建RawTransaction,参数(Nonce,GasPrice,GasLimit,接收方地址;数据)

5 使用用户凭证签名交易

6 发送交易

7 If发送成功

8 返回交易哈希值

9 else

10 返回失败原因

11 End

(3)响应数据调取。首先,协同平台确认授权信息,响应信息调取请求,获取访问共享交易信息单。根据交易的哈希值可以快速检索到交易,然后从交易当中获取上传的信息。其中由于以太坊没有自带筛选交易的API,所以在服务器实现了,发布交易之后,记录下交易哈希值的功能。算法描述如下:

算法2:获取交易中附带的数据Procedure GetTransactionData

Input:交易哈希值

Output:数据

1 Begin

2 使用Admin对象发送请求,根据交易哈希值返回交易对象

3 返回response的transaction对象

4 获取transaction对象中的Input数据

5 使用Numeric对象转为上传时的原始数据

6 End

从协同存储机构上取回的医疗数据信息,与在平台上保存为数字摘要,且由算法产生的数字签名对所取回的医疗数据进行正确性验证,然后,使用重加密密钥加密,保存于平台等待下载或者打包发送给医生或机构,使用非对称加密算法分发的对称加密密钥解密即可得到目标明文。最后还需把医生以及机构调取数据的操作记录生成交易,上传到区块链中保存。

(4)若数据调取医疗数据信息失效,则是因患者无授权信息或响应访问共享信息无效。无法进行相应的调取信息,返回错误调取原因。其中,针对无响应访问共享信息,则将调取索引删除,从而取消被授权者的授权操作。防止无效或非法的操作造成协同平台的负担,降低其安全性。

整个数据访问共享流程中,患者以匿名的方式参加交易,每一笔交易表现为区块,上传的每一笔交易表现为具有时间戳的活动记录,记录不可篡改。患者可通过平台应用层授权给医生使不同医院的医生都能共享患者医疗数据,患者也可以随时收回权限。平台区块链服务层以以太坊搭建私链经矿工挖矿将每个交易新区块加入,而运行以太坊代码是一个挖矿的过程。以太坊使用的Level DB数据库可实现数据层的快速存取,共识层使用PoW共识机制,系统吞吐率及共识效率较高,整个医疗数据的存储更安全、共享更高效。激励层、合约层和应用层维护系统运行,不需第三方的介入,激励更多的用户节点参与到越来越大的共识网络中,使患者医疗数据交易操作更可靠。共享的医疗数据不仅可用于患者个体的诊断和治疗,也可使所有授权的医疗机构以及医生工作站可以通过提交请求远程调阅患者的电子健康档案(包括用药情况、检验报告等)从而实现医疗资源共享。

3 医疗数据安全性分析

(1)加密机制:医疗数据在传送过程中,采用对称加密的方式。以特定的密码算法将处于明文状态下的医疗数据信息进行转换,成为密钥信息。此时,明文加密成密文发送,生成的密文的暴力破解难度不同,维护传送过程安全性。协同诊治平台也将根据医生加密密钥与患者的解密密钥进行重加密,医生等接收方接收到的密文使用密钥与密文加密算法进行解密,即可恢复成医疗数据等明文信息。医疗数据交易过程,每一笔交易采用非对称加密算法签名交易,需验证交易加入区块链。此过程,主要使用椭圆加密算法生成的公钥私钥生成患者凭证,患者私钥进行签名加密,矿工采用secp256k1椭圆曲线进行验证。使交易真实可靠,医疗数据交易流通安全。

(2)记录可追溯:传统的数据操作可能会有异类数据的入侵引起交易记录的变更,然后医疗数据记录缺失某一时刻的数据操作或者某一个数据操作,患者无法访问原始的记录。该方案会保证每个时刻的数据操作不可变更,按照时间戳记录,区块间链式连接,结合各种方法与算法,保证交易记录随时可查询,从而实现记录可追溯。

(3)安全权限规划:在协同诊治平台中,需要通过权限管理机制,患者对给区域内不同的医疗信息提供者授予不同级别的数据可见度和使用权。因为,患者对于个人医疗数据具有高度的支配权,医疗记录有部分字段是患者的隐私信息,除了这些隐私信息的其他字段才能供公众进行研究和分析,还有某些字段如计费,只对相应有权限的部门机构开放。安全权限规划设计如图4所示。

图4 患者权限规划

4 验证与评估

4.1 模型架构实践与验证

该文使用Eclipse开发平台,利用以太坊运行环境、以太坊测试环境Ethereum wallet以及Restful数据接口,设计以下医疗数据存储以及访问实验进行结果分析与研究,对应用以太坊区块链技术在协同诊治平台的模型架构进行可行性验证。

(1)实验医疗数据参数存储。

设计医疗数据物理存储表,3组样例医疗数据存储交易记录上传到区块链保存,如表1。由于以太坊没有根据用户优化的查询API,所以为了快速查找到交易信息,需要对发布的交易做对照记录,以提高系统的执行效率,因此设计医疗数据与交易映射物理存储表,实验3组医疗数据映射表为表2。

表1 样本医疗数据存储交易表

表2 医疗数据与交易映射表

(2)医疗数据访问交易。

实验存储的医疗数据信息进行访问共享,生成访问交易单,验证成功的交易单保存到以太坊区块链上。交易信息将会永久保存到以太坊区块链之上,其中样例的信息是公开的,可以使用对称加密算法进行加密。使用以太坊response对象对交易进行查询,返回的交易对象包含交易的详细信息,实验查询效果可使用浏览器和Postman进行数据接口的演示。获取交易信息进行解密,从协同存储平台获取所需信息。查询到的信息为交易单样例数据信息,具体实验交易结果如图5所示。

图5 数据交易效果

4.2 模型架构评估

本部分将以列表的形式,从医疗问题解决,是否基于区块链,是否保障医疗数据安全性,共享访问速度是否提高等方面,与笔者团队传统协同诊治方案以及其他存储共享方案,采用对比分析的方法来评估提出的区块链技术在协同诊治平台的医疗数据安全访问共享模型与机制,以下称“医疗数据安全访问共享方案”(medical data safety access share scheme,MDSASS)。发现该方案的创新性与优点,分析出该方案的缺点以及待改善问题,如表3所示。

表3 方案对比

综合分析总结,所设计的方案具有一定的优势,并且在对于医疗市场实施方面具有一定的可行性,利用了区块链技术,解决了医院系统的协同问题,改善了过去医疗数据分享安全系数低的现象,提升了患者了掌控个人医疗数据的权利。

5 结束语

提出的区块链技术在协同诊治平台的医疗数据安全访问共享的模型与机制,为医疗数据的存储、访问以及共享提供了一种全新的模式,解决了医院系统间独立不协同化的难题,实现了医疗数据资源的互联互通,转变了传统医疗驱动模式,提高了访问共享效率。平台使用对称加密算法对医疗数据进行加密存储以及传输;使用非对称加密算法对对称加密密钥进行分发,对整个数据访问共享流程进行有效保护。相比传统模型,该模型的安全性得以提升,建立起了一个去中心化应用场景。

方案使患者拥有了对个人医疗数据的高度支配权,保证了数据的真实完整,并能完全记录数据变更过程,使记录可溯源以及不可篡改,保护患者隐私。然而,该方案还有一些未解决的问题。例如:将区块链技术与大数据、人工智能的结合;减少平台协同的开销等,需要随着区块链技术的不断发展进行完善。

猜你喜欢

以太区块交易
以太极为旗,开启新时代“黄河大合唱”
区块链:一个改变未来的幽灵
区块链:主要角色和衍生应用
车易链:做汽车业的“以太坊”
区块链+媒体业的N种可能
读懂区块链
交易流转应有新规
大宗交易
《吃饭的交易》
百通推出入门级快速工业以太网络交换器系列