基于区块链技术的电子病历研究
摘 要:提出了一种基于区块链技术的新型分布式电子病历记录管理系统。系统为患者提供了一个全面的、不可变的日志,并且可以方便地访问其医疗信息。利用独特的区块链属性,系统在处理敏感信息时管理身份验证、机密性、可靠性和数据共享关键因素。模块化设计集成了提供者的现有、本地数据存储解决方案,促进了互操作性,使系统更加方便和更具有适应性,揭示系统的方法在医疗IT和研究中应用区块链的潜力。
关键词: 电子病历 区块链 智能合约 分布式数据库 电子处方签名 安全性
1引言
电子病历系统(EMR)一直以来存在一个问题:不能管理多个机构的医疗记录。患者将数据分散在不同的组织中,他们不能从一个机构的数据仓库中转移到另一个机构的数据仓库中。在这样做的过程中,失去了对过去数据获取的便利性,因为提供者(而不是患者)通常保留主要的管理。不同供应商和医院系统之间的互操作性挑战为有效数据共享设置了额外的障碍。缺乏协调的数据管理和交换意味着健康记录是支离破碎的。生物医学和公共卫生研究人员需要有能力分析不同来源的信息,以确定公共健康风险,开发新的治疗方法,并启用精准医疗。尽管一些数据从临床研究、调查和教学医院中得到了研究,但注意到患者、护理提供者和监管机构对分享更多数据的兴趣越来越大,从而使人们更好地照顾他人。在这一研究中,探索了一种适用于EMR的区块链结构。建立在这个分布式账本协议上,最初与比特币相关。区块链使用公钥加密技术来创建一个附加的、不变的、时间戳的内容链。区块链的副本分布在网络的每个参与节点上。用于确保内容不受篡改的工作算法的证明依赖于一个“无信任”模型,在该模型中,每个节点必须在下一个内容块被追加到链之前进行竞争,以解决计算密集型的“难题”(散列练习)。这些工人节点被称为“矿工”,而矿工需要追加区块的工作确保了在区块链上改写历史是很困难的。
2 相关技术
区块链概念于2008年中本聪在一次密码小组讨论中发表的论文《比特币:一种点对点的电子现金系统》 中首次提出,2015 年下半年梅兰妮.斯万[6]对区块链的应用前景及区块链的局限性进行了系统阐述。 同年,《The promise of the blockchain:The tru st machine》发表之后,区块链正式引起人们的关注,IT巨头、研究学者纷纷投入到区块链的研究中。近几年各国纷纷投入到区块链研发当中,成立区块链研发公司、开发区块链平台来研究其潜在应用场景。 区块链技术可以理解为是分布式的数据库,有别于当前主流的关系型数据库的不可转移信息与安全化。区块链技术方案主要是将数据区(Block)使用数学方法,通过安全可靠的加密算法相互关联。 区块链技术方案主要是将数据区块(Block)使用数学方法,通过安全可靠的加密算法相互关联。用区块记录一定时间内的交易信息,并通过密码学方法验证信息是否真实有效,并用指针链接到上一个区块形成一条主链(Chain)。
在区块链系统中,节点将一段时间的交易信息进行打包,通过各节点用特定哈希算法将交易分别压缩成一段64位代码(哈希值),两两哈希值继续压缩 生成唯一的哈希值称为 Merkle 树根。使用哈希加密的好处在于哈希函数具有抗碰撞性,且哈希计算时间相同输出长度固定。此外,无论文件有多大,哈希对应过程是无法通过计算反推的。每一个区块头中的哈希值指向前一个区块,形成链式结构。在本文中哈希指针起到验证信息是否发生改变的作用。
智能合约是区块链的核心要素,智能合约是使区块链可编程的一段脚本代码,由事件触发。本文将其应用在以太坊区块链上,一旦符合规定的条件即自动执行代码的内容。在以太坊中,智能合约能够帮助系统实现复杂的访问控制策略,有助于数据的维护、 存储。智能合约模型如图 1 所示。
图 1 区块链上的智能合约模型结构
比特币区块链中的每笔交易可写入的信息量是 40字节,随着交易量的增加,累积的数据量就会增大,交易确认需要花费的时间就会很长。为了加快交易速度、缩短交易时间,以太坊区块链应运而生。以太坊区块链可以解决区块链中因累积数据过多而处理效率下降这一问题。另外,可以灵活使用智能合约,并具有图灵完备性。可以通过 solidity 语言编写所需要的应用场景,依靠 EVM 自动执行,并以 P2P 网络为基础,真正实现无中心化的管理。使用简单,易储存合约数据。以太坊与区块链交互时需要区块链地址 Add=SHA3(pk-‘04’)和密码 password。
3系统实现
3.1 概述
区块内容表示私有的对等网络成员共享的数据所有权和视图权限。区块链技术支持“智能合约”的使用,允许自动化和跟踪某些状态的转换(比如用户权利的变化,或者系统中新记录的诞生)。通过在以太坊区块链上的智能合约,记录患者与提供者的关系,将医疗记录与查看权限和数据检索指令(本质上是数据指针)关联起来,以便在外部数据库上执行。在区块链中包含了一个记录的加密哈希,以确保不受篡改,从而保证数据的完整性。提供者可以添加与特定患者相关的新记录,患者可以授权在提供者之间共享记录。在这两种情况下,接收新信息的一方接收到自动通知,并在接受或拒绝数据之前验 证所提议的记录。这使参与者能够了解并参与记录的演变过程。
3.2 智能合约结构
利用以太坊的智能合约来创建现有医疗记录的智能表示,这些记录存储在网络的单个节点中。构建合约包含关于记录所有权、权限和数据完整性的元数据。系统中的区块链事务带有密码签名的指令来管理这些属性。为了检索大量潜在的记录数据,系统通过实现三种类型的合约用来在区块链上构建它们。图1说明了合约的结构和关系。
3.2.1 注册合约(Register Contract)
这个全局合约将参与者标识字符串映 射到以太坊地址标识(相当于一个公钥)。这里使用字符串,而不是直接使用加密的公钥身份,从而允许使用已经存在的ID形式。因此,身份登记只能限于认证机构。RC还将身份字符串映射到区块链上的一个地址,在这里可以找到一个称为 “总结合约” 的特殊合约。
3.2.2 医患关系合约(PPRC)
当一个节点存储并管理另一个节点的医疗记录时,系统将在系统的两个节点之间发出患者提供者关系合约。当使用护理提供者和病人的情况时,这个概 念扩展到任何成对的数据管理交互。 PPRC定义了各种数据指针和相关的访 问权限,它们可以识别由服务提供者 所持有的记录。每个指针都包含一个查询字符串,当在提供者的数据库上执行时,返回患者数据的一个子集。 查询字符串与此数据子集的散列相连接,以保证数据在源文件中没有被修改。附加信息表明在网络中可以访问提供者的数据库,即标准网络拓扑中的主机名和端口。数据查询及其相关信息由服务提供者制定,并在添加新记录时进行修改。为了使患者能够与他人共享记录,字典(哈希表)将查看者的地址映射到额外的查询字符串列表。每个字符串都可以指定患者数据的一部分,第三方查看器可以访问这些数据。
3.2.3 总结合约(SC)
这个合约让参与者在系统中找到病历记录。其包含了对患者提供者关系合约(PPRC)的 引用列表,表示所有参与者之前和当 前与系统中其他节点的约定。举例来说,病人会把他们的SC向所有已经接 触过的医疗服务提供者提及。另一方面,提供者可能会提到服务的病人和病人授权数据共享的第三方。SC坚持分布式网络,添加关键的备份和恢复功能。患者可以多次离开并重新加入系统,并通过从网络下载最新的区块。
图1 智能合约的结构和关系
4原型的评估
EMR给病人的病历记录是不可变的,这不仅是全面的,而且是可访问和可信的。区块链分类账记录了患者与医生之间的医疗互动史,这可能与未来的监管机构和支付人(如保险)有关。考虑这个项目的安全性、隐私和互操作性。 首先,关于健壮性和安全性:区块链实现具有一些分散的关键属性。 EMR拥有强大的故障转移模型,依赖于系统中的许多参与实体,以避免单点故障。医疗记录保存在本地的供应商和病人数据库中;授权数据的副本存储在网络的每个节点上。由于原始医疗数据和全球授权日志都是分布式的,所以系统并没有创建内容攻击的中心目标——这是在一个网络攻击和 数据泄漏的时代中至关重要的考虑因素。虽然一些区块链在 “块大小” 或存储容量的限制上遇到了健壮性的挑战,但是这些参数可以被修改,以便在一个私有区块链网络中对其他性能需求进行优化。值得注意的是, EMR并没有解决单个提供者数据库的安全性——这仍然必须由本地IT系统管理员来管理。EMR也没有解决数字版权管理的问题,即不需要的数据复制,因为假定提供者节点受外部 规则约束,用于控制在医疗用例中的数据复制。 关于隐私,使用区块链技术引入了几个限制。当前交易的笔名属性允许进行数据取证,或从频率分析推断出治疗模式。如果不披露名称,就可以推断某个实体通过分析网络流量与另一个网络实体进行了多次交互。 一个潜在的解决方案是使区块链成为一个“许可的”结构,只有预先批 的、经过了白名单的节点才能读到分类账。这将防止流氓角色从区块链记录中提取基于频率的洞见。此外,可以将加密引入到数据同步步骤中,以防止意外或恶意的内容访问。虽然在最初原型的范围之外(但对于未来的开发来说是至关重的),需要严格的匿名分析保护隐私的查询构建,以便将聚合的研究数据发布到医学研究 的“矿工”中。 关于互操作性:通过与提供者的现有数据存储基础结构集成,促进了现有系统的继续使用。一套开放的API来促进EMR的审查和交换。 EMR是一个可以添加到现有提供者后台的层。
5安全性分析
该部分对健康链从防篡改、隐私保护和安全存储3个方面进行了安全分析,并和方案( 以下简 称 ABE 方案) 的安全性进行了一个综合比较。
5.1 防篡改
健康链上的所有信息都是公开不可篡改的,按照一定的时序排列健康链的分布式共识机制使信任建立在密码算法的基础之上,无需依赖可信第3方.数据一且被写入到健康链中就无法被篡改,因为每个区块都保存了其前一个区块的哈希,如果要修改某个区块的数据至少需要全网51%以上的算力,这几乎是不可能的事. 健康链中保存了医疗记录的 原始数据的哈希,对原始数据的任何改变都会引起其哈希值的改变,所以这也直接保证了医疗记录的不可篡改性。
5.2 隐私保护
病人都是以匿名的方式在区块链上参加交易,用户每次交易都可以产生不同的公私钥对。公共账本上不包含用户的身份信息,只包含医疗记录的元数据,医疗记录都加密存放在链下的云存储中。而且对记录的控制权限和控制粒度都掌握在病人手里,病人可以将某个数据对象授权给某个实体,并且可以随时撤销其访问权限。 医疗机构作为医疗记录的提供方,其身份信息 必须是公开的,以保证其权威性和真实性.。其作为医疗记录的生产者可能保留了本机构生产记录的原始数据,这对于病人来说只是其医疗记录的部分信息,是零碎的,不完整的。而且还需要相关的法律和机制防止医疗机构泄露用户的医疗记录,以保护用户的隐私。健康链上只保存医疗记录的元数据,记录本身加密保存在链下的云存储结构中,健康链中只保存有密文的位置信息,没有病人的加密密钥是无法解密出医疗记录的明文信息,所以无法从健康链的公开信息中获取任何有关医疗记录的真实数据。
5.3 安全存储
数据的存储安全是健康链的重要特性,在本文的方案中,用户对自己的医疗记录具有所有权,并完全控制它的使用。 从数据的生产到数据的使用过程都是安全的。
1) 医疗记录的公共信息( 包括医疗记录元数 据、加密记录的存储位置、哈希值、存取权限等) 都存储在区块链上,公共可见无法篡改。
2) 医疗机构作为医疗记录生产方,生成记录后即对记录进行哈希,并对哈希值进行签名,然后用病人的记录和签名用病人的公钥进行加密,并存储在链下的云存储中,并把记录的哈希和位置写入区块链,确保了数据来源的机密性、真实性; 云存储的分布式存储特点保证数据存储的安全性;
3) 病人收到医疗记录后,用自己的私钥解密密文,获得原始记录的哈希和签名,验证记录的完整性和真实性,并将原始记录采用对称密钥进行加密,并将其归集到自己的医疗记录存储空间。只有授权用户才可以获得解密密钥,查看真实记录。 敌手即使从存储中获得记录,由于存储的是记录的密文,也无法获得医疗记录的任何真实信息,确保了医疗记录数据的安全。
6 区块链与电子处方签名的结合
基于区块链的电子处方签名技术区块链概念的诞生,正好解决了以上问题。其概念由“中本聪”的作者首次在论文
图3 区块链结构
这里还需要引入一个重要的概念,工作量证明Proof-ofwork,由它来保证之前所描述的生成和存储的可靠性。在区块链里面,需要付出一定的工作量和成本才能产生区块,并不是随意就可以生成的,因此也很少会有人去产生自己的区块来代替正确的区块,因为花费的成本可能已经超过了获得的收益。拥有最长工作量的链路代表了可信链路,也就是合法的链路。拿比特币地址中用到的SHA256散列算法来说,它的随机散列值是由一个或者多个0开头的一串字符,散列时需要引入一个随机数,它的作用就是让指定区块随机散列后能出现指定数量的0开头的字符串,这里就需要进行大工作量的计算才能得到这个随机数,且随着0的个数越多,工作量越大。 合法链路的区块通过P2P的对等网络(即客户端也是服务器)广播出去以后,只要大部分区块收到即认为是安全可信的,没收到的链路总会收到下一个区块,此时由于区块之间是有时间标记关联的,所以它会感知到自己丢失了某个区块,会主动去获取。 区块链是一个庞大而复杂的实现,通过时间标识、 P2P对等网络、工作量等技术相结合,确保区块链信息的可信任,所以之前提到的公钥存储就可以通过散列算法后再存储在区块链上,当有人怀疑签名的真实性的时候,只需要散列运算本地的公钥,再和区块链存储的内容进行比对。
7结语
本文提供了一个概念验证系统,演示了分权和区块链架构的原理如何有助于安全的、可互操作的EMR系统。认证日志使用以太坊智能合约在独立的存储和提供者站点之间编排一个内容访问系统,管理医疗记录访问,同时为患者提供全面的记录审查、护理审核和数据共享。
参考文献
[15] 田海博,何杰杰,付利青.基于公开区块链的隐私保护公平 合同签署协议[J].密码学报,2017,4(02):187-198.
[16]徐健,陈志德,龚平,王可可.基于区块链网络的医疗记录安全储存访问方案[J/OL].计算机应用:1-8[2019-05-07].http://kns.cnki.net/kcms/detail/51.1307.TP.20190121.1013.058.html.
[17]熊志强,周吴.基于区块链技术的电子病历研究[J].中国数字医学,2019,14(01):64-66.
[18]董黛莹,汪学明.基于区块链的电子医疗记录共享研究[J/OL].计算机技术与发展,2019(05):1-4[2019-05-07].http://kns.cnki.net/kcms/detail/61.1450.TP.20181221.1524.034.html.
[19]康嘉文. 面向移动计算的安全与隐私保护研究[D].广东工业大学,2018.
[20]梅颖.安全存储医疗记录的区块链方法研究[J].江西师范大学学报(自然科学版),2017,41(05):484-490.