孙 静,唐 欣
(1.岳阳职业技术学院,湖南 岳阳 414000;2.湖南大唐先一科技有限公司,湖南 长沙 410007)
电子健康记录(Electronic Health Records,EHR)包含了所有必要的医疗信息,在诊断病人时至关重要。传统的文档编制方法有局限性,例如被破坏、丢失或被盗,EHR不但消除了这些限制,而且适应性更强、效率更高、更不容易出错、更容易获得。如今的大多数医疗健康系统都以医疗健康提供者为中心,互操作性非常有限。数据可能会在整个操作过程中被泄露或修改,因此在参与者之间共享医疗信息是极其困难的。医疗机构要求共享这些信息,以为患者提供更好的护理[1-4]。
现有的系统不能满足人们对医疗数据安全性、隐私性、有效管理和共享医疗记录等方面的要求。因此,当前的医疗健康系统迫切需要创新,以使患者的敏感医疗信息能够在各方之间有效地交换,而不会有被泄露或操纵的风险。医疗健康系统的创新需要一种数据访问方法,既安全又能确保只有经过授权的个人才能访问患者的医疗信息。在现实世界中,患者并不局限于单一的医院或医生,他们可能从一家医院转到另一家医院,或向其他诊所或医生寻求治疗[5]。鉴于人们对电子病历系统隐私和安全的需求,需要构建一个基于区块链的高效、安全和智能的医疗健康系统,以确保数据存储安全、数据访问方便,让患者完全控制他们的医疗数据。
区块链网络由5层组成,分别是应用层、共识层、网络层、数据层和基础设施层。应用层包含实现某些所需功能的应用程序代码,它允许覆盖API、应用程序等;共识层描述了共识功能,任何人都可以用它来确定共识分类;网络层是使区块链工作的部分;数据层管理存储在区块链上和区块链外的信息;在基础设施层中,节点是该层的核心[6]。
Lai等[7]提出了一种基于可追溯环签名和区块链的安全医疗数据共享方案,并提出了一种基于分布式密钥生成的无证书可追溯环签名算法,在保证数据完整性的同时保护隐私,将访问控制和自控制对象(Sharable Content Object,SCO)相结合的智能合约可以实现解密外包和数据共享。此外,该方案采用星际文件系统(Inter Planetary File System,IPFS)存储海量医疗隐私数据,并对哈希索引进行加密存储,提高了数据共享的效率。该方案可以实现EHR的源跟踪,同时实现数据的安全共享和隐私保护。
温亚兰等[8]提出一种将联邦学习与区块链相结合的医疗数据共享与隐私保护方案,使用联邦学习对多源医疗数据进行建模,将训练的模型参数和医疗机构的声誉值存储于区块链上,并利用区块链对贡献高质量数据的医院进行奖励,并提出一种基于双重主观逻辑模型的声誉值计算方法来改进联邦学习的精确度,使用改进的声誉机制保证在数据共享中筛选数据源的效率,利用区块链和联邦学习技术,提高共享效率,实现隐私保护。
刘杨等[9]提出一个基于多层次区块链的医疗数据共享模型,对个人医疗数据进行加密后上传到区块链下的分布式存储中,并将数据索引信息上传到区块链上,利用多层次区块链协同技术和链上链下混合存储方式提高存储效率;引入差分隐私保护联邦学习中模型参数提升数据的隐私安全性。
张学旺等[10]提出了一种面向医疗区块链的新型轻节点数据查询方法,引入具有动态追加能力的Merkle山脉,设计基于推荐的可信节点选择和基于采样的可信节点验证的最新有效块获取算法,采取MMR和Merkle树的承诺机制,使得持有一个最新有效块的轻节点用户能够验证全节点发送的医疗数据。
本文提出了一种基于区块链的电子病历高效存储和共享系统,提高了数据的安全性和隐私性。病人和医疗健康提供者是此应用程序针对的两类用户。需要存储的医疗数据首先被发送到MetaMask来计算链上手续费后,使用MetaMask以太坊的形式进行转换。接收到数据量后,区块链网络挖掘数据,然后将其作为一个新块添加。通过这种方式,数据可以安全地存储,并可以在医院之间共享,便于获取,如图1所示。
图1 基于区块链医疗数据存储和共享流程
该模块中有两个登录端口:一个用于患者,另一个用于医生。任何想要登录的用户都必须先填写一张注册表,填写他们的姓名和其他基本信息。当患者登录时,会显示患者的医疗数据历史,而当医生登录时,必须输入患者的ID号才能查看患者的详细信息。
最初数据由患者输入,然后在获得详细信息后计算挖掘数据所需的金额。这项工作是由MetaMask完成的。金额以链上手续费的形式计算。这种链上手续费使用MetaMask转换为以太坊,然后区块链网络挖掘该块,一个包含患者详细信息的新块被创建并添加到区块链网络中。
MetaMask是一种加密货币钱包,使用户能够访问分散式应用程序(dapps)的Web 3生态系统。
(1)MetaMask是一种加密货币钱包,使用户能够存储以太币和其他ERC-20代币。钱包还可用于与去中心化应用程序或dapp进行交互。
(2)去中心化互联网Web 3建立在加密货币和去中心化应用程序的基础之上。但是为了使用它们,需要一个优雅、直观、易于使用的界面。
MetaMask作为一个浏览器插件,用作以太坊钱包,安装方式与任何其他浏览器插件一样。通过将MetaMask连接到基于以太坊的dapp,用户可以在游戏中使用代币,在应用程序中质押代币,并在去中心化交易所(DEX)上进行交易。它还为用户提供了进入去中心化金融或DeFi新兴世界的入口,提供了访问Compound和PoolTogether等DeFi应用程序的方式。一旦要存储的数据被交给MetaMask,就计算出挖掘数据所需的链上手续费。链上手续费是挖掘数据和完成事务所需工作量的度量。最大费用是交易所需的总费用。
最大费用=(基本费用+优先权费用)×用气单位
计算完成后,从MetaMask钱包中以以太坊货币的形式支付链上手续费。一旦支付了金额,就在区块链网络中启动挖掘。
挖掘被设置为自动,因此所有的事务都被自动挖掘。一旦挖掘数据,挖掘的数据将使用安全哈希算法256(SAR-256)转换为哈希值。一旦挖掘完成,就会创建一个具有唯一块号的新块。最后,该区块被添加到区块链网络中的区块链中。该模块从区块链网络获取数据。患者登录后,必须输入他们的ID号,才能从区块链网络获取详细信息。对于患者登录,区块链中存储的所有详细信息都是可见的。医生登录时,必须输入病人的身份证号,才可以看到每个病人的基本情况,而且只有在病人允许的情况下,医生才能查看所有的信息。
该模块的关键是安全地共享患者的医疗数据。未经病人允许,医生不得查看病人的私人资料。这是通过向患者的注册电子邮箱发送一次性口令来实现的。只有在病人允许之后,医生才能看到病人的全部信息,保障了患者的隐私。
区块链技术的去中心化和抗篡改特性使其非常适合保护和共享医疗数据。文章提出并实施了一种基于区块链的医疗数据交换策略,可以使医患双方方便地获取医疗记录,确保了数据的完整性、安全性,并使医疗数据可以得到及时更新,使患者不再需要随身携带文件,为医生提供了一个强有力的决策工具。在任何紧急情况下,这都是一种较好的方法,有可能彻底改变医院的医疗数据系统。