基于区块链技术的医疗数据交易与共享方法技术

技术编号:21892676 阅读:41 留言:0更新日期:2019-08-17 14:48
基于区块链技术的医疗数据交易与共享方法,具体包括:步骤1:设备节点产生原始数据,依据和医生节点、个人节点签订的合约,向这些节点请求背书、共识之后存入到源数据链中,保证原始数真实、有效;步骤2:个人节点或医院确权节点发起确权请求,依据和联盟链中的其他医院确权节点签订的合约,向其请求背书、共识之后存入到确权链中,解决交易数据所有权的归属问题,从而解决交易利益的归属问题;步骤3:某医院的交易节点向数据提供医院的交易节点发起交易请求,按照和提供方签订的合约,向其请求背书、共识之后存入到交易链中,确保了每笔交易真实有效、有据可查。数据保护区将数据使用者和数据隔离,保证数据的安全。

Medical Data Transaction and Sharing Method Based on Block Chain Technology

【技术实现步骤摘要】
基于区块链技术的医疗数据交易与共享方法
本专利技术是通过区块链技术构建一个去中心化的数据交易(共享)平台,并通过源数据链解决数据的真实有效性;通过确权链解决数据的所有权问题;通过交易链的可追溯性解决交易过程的真实合法性;通过数据保护区解决了数据安全以及隐私保护等问题。
技术介绍
数据成为数字经济时代下的资产。人工智能、机器学习和深度学习技术对于提高健康医疗服务的效率和自动化程度有很大的促进作用,人工智能等技术的发展需要大量的数据来支撑。但单个部门或机构自身的数据有时难以支撑深度学习所需数据,比如医院的影像数据。各医院间进行数据共享可以解决这些难题,但实现数据共享并不是一个简单的问题。有些企业通过第三方大数据平台实现医疗数据的共享,存在各种安全风险,如私下买卖、恶意使用,可能会造成隐私数据的泄漏。区块链技术去中心化、开放性、自治性、不可篡改性、可追溯性、匿名性等特性,适用于医疗数据共享。区块链是一种按照时间顺序将数据区块以链条的方式组合形成的特定数据结构,并以密码学的方式保证其不可篡改和不可伪造的去中心化、去信任的分布式共享总账系统。区块链并不是一项单一的技术创新,而是P2P网络、共识机制、非对称加密、链上脚本等多种技术的深度集成创新。区块链技术具有去中心化的特点。由众多节点共同组成一个端到端的网络,网络的维护依赖网络中所有具有维护功能的节点的共同完成,各个节点地位平等,一个节点的损坏并不会影响整个系统的正常运行,网络具有很强的健壮性。又由于没有第三方机构的参与,从而大大减少数据分享的成本。区块链技术具有不可篡改机制。由于相连的区块间后序区块对前序区块存在验证关系,若要篡改某个区块的数据,就要改变区块及其所有的后续区块数据,并且还需在共识机制的特定时间内改完。因此,参与节点越多,区块链的安全性就越有保障。对于区块链上记录的交易不能篡改,所以链上记录的信息是真实可靠的,日后如果有法律纠纷可以提供依据。区块链技术具有可追溯机制。区块链采用带有时间戳的链式区块结构存储数据,为数据增加了时间维度,区块上每笔交易都通过密码学方法与相邻连个区块相连,因此任何一笔交易都是可追溯的。所以,对于数据使用者,可以清楚的知道数据提供者。同理,对于数据提供方,也可以清晰的知道数据的去处。区块链技术具有匿名性。区块链中的用户只与公钥的地址相对应,而不是与用户的真实的身份相关联,用户无需通过暴露自己的真实身份就可以参与区块链的使用。区块链的应用模式可分三种类型:公有链、私有链、联盟连。公有链中任何节点可以随意的进出网络不受系统的限制,网络中数据的读写权限不受限制;私有链中网络中的所有节点被一个组织控制,系统的运行规则及其共识机制由组织自行决定,读写权限受到限制;联盟链中部分节点可以随意接入,另一部分则需要授权才可以进入,因此联盟链易于实现权限控制,加入的成员大部分都是可信的,从而提高了整个联盟组织的可信度,对数据安全有一定的保障。本专利技术是基于超级帐本(Hyperledger)的Fabric网络,超级账本属于联盟链,可提高整个网络上节点的可信度。超级账本为Linux基金会的开源合作项目,旨在推进跨行业区块链技术。其中包含了多个项目,而Fabric是最重要的项目之一。Fabric是由多个模块组成的程序组,其中Orderer和Peer这两个模块是Fabric的核心模块。Orderer模块(也称打包模块)负责对不同客户端发送的交易进行排序和打包。然而,在一个组织中Peer模块需要扮演不同的角色。分别为背书节点(EndorsePeer)、锚节点(AnchorPeer)、主节点(LeaderPeer)和提交节点(CommitterPeer)。背书节点:背书节点主要负责对交易进行校验。当背书节点接收到客户端发来的交易请求之后会对交易的合法性进行检验,检验成功之后会将结果反馈给客户端。锚节点:锚节点主要负责代表组织和其他组织进行信息交换。每个组织都有一个锚节点,锚节点对于组织非常重要,如果锚节点出现问题,那么组织和其他组织会失去联系。主节点:主节点主要负责代表组织从Orderer节点中获取区块消息。Leader节点在组织中只有一个。提交节点:提交节点主要负责维护区块链的账本结构,该节点会定期的从Orderer节点获取包含交易的区块,在对这些区块链进行合法校验之后,会把这些区块加入到区块链中。外界要与超级帐本Fabric网络交互,是通过编写Chaincode(智能合约)来实现的,这也是外界与区块链交互的唯一渠道。Chaincode通过调用Fabric预留的接口,来实现业务逻辑和背书策略。
技术实现思路
本专利技术要克服现有技术的上述缺点,提供一种基于区块链技术的医疗数据交易与共享方法。医疗数据交易(共享)平台涉众包括医院、医生、个人(病人)、设备。医疗数据是某家医院中的某位医生、某些设备以及针对某位病人在诊断、治疗时产生的数据。为了能从源头上保证这些数据的真实有效性,本专利技术将这些产生的数据经过设备、医生和病人节点共识之后,把这些数据的哈希值存到区块链上,这条链我们称为源数据链。为了使数据能够交易或共享,就必须对数据进行确权。确权是为了确定数据的归属权,本专利技术认为医疗数据是医院和个人共同拥有的,所以都有权享有数据交易(共享)所带来的利益以及对数据发起确权请求的权力。交易或共享中涉及的利益分配通过区块链、智能合约来完成。不论医院还是病人发起的数据确权请求,都将该数据发给相应的医院进行背书、共识之后存到区块链中,这条链我们称之为确权链。任何第三方想要使用这些确权过的数据,都要向数据拥有者提出“交易”或“共享”请求,拥有者授权之后方能获得。为了记录这一过程,能够为日后对该交易进行回溯提供支持,所以要将该交易存储到区块链中,这条链我们称之为交易链。本专利技术针对医院数据,认为第三方仅获得数据的使用权而不能私自占有。所以,医疗数据交易(共享)平台设立了数据保护区。数据保护区提供了沙箱(沙箱是一个虚拟系统程序,运行所产生的变化可以随后删除,在其内部运行的程序并不能对硬盘产生永久性的影响)运行环境,使用者的程序运行在容器中,避免了对数据的直接接触,真正做到了将数据使用者和数据隔离开,从而避免数据被复制窃取、篡改和隐私泄漏的危险。通过堡垒机技术,所有进入数据保护区用户的权限都经过严格的控制。而且,通过审查机制,所有返回的结果都经过严格的审查方能带出。又因为,本专利技术认为数据的控制权应该由数据拥有者控制,所以,数据保护区又给数据拥有者提供特殊的权限,数据拥有者可以查看数据的使用日志,也可以控制数据保护区无条件的删除数据。这样既可以保护数据的安全,又可以真正的做到数据使用权和所有权的分离。为了使数据交易(共享)更方便,医疗数据交易(共享)平台提供了数据交易网站。数据交易网站是提供数据交易的地方,医院可以把确权过的数据放到该网站上,网站后端读取该数据的基本信息(主要是该数据所在确权链上的元数据)展示到前端,该信息可以作为消费者是否“购买”该数据的一个参考。买家可以通过该网站对想要的数据发起交易,然后,网站把该交易请求发给数据拥有者,数据拥有者同意后方有效。等买家付款之后,卖家把相应的数据发送到买家的数据保护区中。然后,把这一交易过程存到交易链中,到此,该交易结束。本专利技术是一种本文档来自技高网
...

【技术保护点】
1.基于区块链技术的医疗数据交易与共享方法,包括以下步骤:步骤1:设备节点产生原始数据,并按照其和医生节点、个人节点签订的智能合约的规则,向这些节点请求背书、共识之后存入到源数据链中,保证原始数真实、有效;产生源数据链的具体步骤是:1)医疗设备节点产生数据;1.1)检查数据无误后,用私钥进行签名;1.2)对数据进行哈希操作;1.3)根据智能合约把数据和相应的哈希值发送给相关的医生节点;2)医生节点收到设备节点发送的数据后,对该数据进行审计:2.1)检查产生该数据设备的ID和病人ID;2.2)对数据重新做哈希,得到的哈希值与设备节点发送过来的哈希值作比较,防止数据在传输过程中被修改;如果不同,则结束;如果相同,则继续下面步骤;2.3)对数据真实有效性检查,用其私钥对审计结果,“真”或“假”,进行签名并把审计结果返还给设备节点;3)设备节点收到医生的审计结果,如果为“假”,则结束;如果为“真”,再把数据发送给个人节点;4)个人节点对设备节点发送的数据进行审计;4.1)校验设备和医生的签名;4.2)对数据重新做哈希,得到的哈希值与设备节点发送过来的哈希值作比较;如果不同,则结束;如果相同,则继续下面步骤;4.3)对数据真实有效性检查,用其私钥对审计结果,“真”或“假”,进行签名并把审计结果返还给设备节点;5)设备节点收到个人节点的审计结果,如果为“假”,则结束;如果为“真”,则把收到的审计结果和数据的哈希值打包成一笔交易,然后把该交易发送到打包节点;6)打包节点把接收到的交易按时间排序,然后构造成区块;7)打包节点把构造好的区块发送给设备节点、医生节点和个人节点中的提交模块进行区块校验:7.1)验证区块中交易数据:7.1.1)是否为合法交易:交易格式是否正确,是否有合法签名,交易内容是否被篡改;7.1.2)记账节点是否加入这个通道;7.1.3)如果检查结果不符合要求,则结束;否则,提交给校验系统链码(VSCC,Validator System Chaincode‑‑用于交易背书的验证)进行背书策略验证;7.2)验证背书策略:7.2.1)背书节点是否来自智能合约中的节点;7.2.1)是否满足智能合约中要求的背书节点的数量;7.2.3)所有背书节点的证书和签名是否有效;7.2.4)如果不符合,则结束;否则,提交给多版本并发控制器(MVCC,Multi‑Version Concurrency Control‑‑用于读写集的验证)进行版本验证;7.3)MVCC通过模拟执行时的状态数据的版本和提交交易时状态数据的版本进行比较;如果版本不同,则结束;否则,进行下一步骤;7.4)把该区块存入到账本中并更新状态数据库;步骤2:个人节点或医院的确权节点发起确权请求,并按照其和其他联盟链中的医院的确权节点签订的智能合约的规则,向其请求背书、共识之后存入到确权链中,解决了交易数据所有权的归属问题,从而解决数据交易产生利益的归属问题;产生确权链的具体步骤包括:a)个人节点向该隶属的医院节点发送确权请求,医院节点对确权进行处理,返回“真”或“假”;b)如果请求结果是“假”,则结束;如果为“真”,则:b.1)构造相应的病历,从源数据链上提取相关数据的哈希值装载到病历中;b.2)用该病例上数据的哈希值构造默克尔树根(Merkle Tree Root),然后用自己的私钥对数据进行签名;b.3)最后将构造好的病历发送给其隶属的医院节点进行审计;c)医院确权节点接收到个人节点发来的病历,对其进行审计;c.1)医院确权节点找到该病人的源数据链,通过该病历上的数据哈希值找到产生该数据时的交易,审计该交易中的相关内容,检查是否符合要确权数据的相关要求;c.2)通过相同的方式,遍历病历上的所有哈希值,给出最终的审计结果,如果审计的数据都为“真”,则结果为“真”;反之,其中有任何一个为“假”,则结果为“假”;c.3)医院节点把审计结果写到确权交易上并为其签名,然后发给个人节点;d)个人节点收到审计结果,检查结果;如果结果为“假”,则结束确权过程;否则,根据智能合约的背书规则发给其他医院节点进行审计;e)其他医院的确权节点接收到该病例后,按步骤c)所述步骤进行审计,对审计结果进行签名并发给个人节点;f)个人节点收到审计结果,检查结果;如果结果为“假”,则结束确权过程;否则,发送给打包节点;g)打包节点把接收到的交易按时间排序,然后构造成区块;h)打包节点把构造好的区块发送给各个医院的确权节点和发起确权请求的个人节点中的提交模块进行区块校验:h.1)验证区块中交易数据:h.1.1)是否为合法交易:交易格式是否正确,是否有合法签名,交易内容是否被篡改;h.1.2)记账节点是否加入这个通道;h.1.3)如果检查结果不符合要求,则结束;否则,提交给校验系统链码(VSCC)进行背书策略验证...

【技术特征摘要】
1.基于区块链技术的医疗数据交易与共享方法,包括以下步骤:步骤1:设备节点产生原始数据,并按照其和医生节点、个人节点签订的智能合约的规则,向这些节点请求背书、共识之后存入到源数据链中,保证原始数真实、有效;产生源数据链的具体步骤是:1)医疗设备节点产生数据;1.1)检查数据无误后,用私钥进行签名;1.2)对数据进行哈希操作;1.3)根据智能合约把数据和相应的哈希值发送给相关的医生节点;2)医生节点收到设备节点发送的数据后,对该数据进行审计:2.1)检查产生该数据设备的ID和病人ID;2.2)对数据重新做哈希,得到的哈希值与设备节点发送过来的哈希值作比较,防止数据在传输过程中被修改;如果不同,则结束;如果相同,则继续下面步骤;2.3)对数据真实有效性检查,用其私钥对审计结果,“真”或“假”,进行签名并把审计结果返还给设备节点;3)设备节点收到医生的审计结果,如果为“假”,则结束;如果为“真”,再把数据发送给个人节点;4)个人节点对设备节点发送的数据进行审计;4.1)校验设备和医生的签名;4.2)对数据重新做哈希,得到的哈希值与设备节点发送过来的哈希值作比较;如果不同,则结束;如果相同,则继续下面步骤;4.3)对数据真实有效性检查,用其私钥对审计结果,“真”或“假”,进行签名并把审计结果返还给设备节点;5)设备节点收到个人节点的审计结果,如果为“假”,则结束;如果为“真”,则把收到的审计结果和数据的哈希值打包成一笔交易,然后把该交易发送到打包节点;6)打包节点把接收到的交易按时间排序,然后构造成区块;7)打包节点把构造好的区块发送给设备节点、医生节点和个人节点中的提交模块进行区块校验:7.1)验证区块中交易数据:7.1.1)是否为合法交易:交易格式是否正确,是否有合法签名,交易内容是否被篡改;7.1.2)记账节点是否加入这个通道;7.1.3)如果检查结果不符合要求,则结束;否则,提交给校验系统链码(VSCC,ValidatorSystemChaincode--用于交易背书的验证)进行背书策略验证;7.2)验证背书策略:7.2.1)背书节点是否来自智能合约中的节点;7.2.1)是否满足智能合约中要求的背书节点的数量;7.2.3)所有背书节点的证书和签名是否有效;7.2.4)如果不符合,则结束;否则,提交给多版本并发控制器(MVCC,Multi-VersionConcurrencyControl--用于读写集的验证)进行版本验证;7.3)MVCC通过模拟执行时的状态数据的版本和提交交易时状态数据的版本进行比较;如果版本不同,则结束;否则,进行下一步骤;7.4)把该区块存入到账本中并更新状态数据库;步骤2:个人节点或医院的确权节点发起确权请求,并按照其和其他联盟链中的医院的确权节点签订的智能合约的规则,向其请求背书、共识之后存入到确权链中,解决了交易数据所有权的归属问题,从而解决数据交易产生利益的归属问题;产生确权链的具体步骤包括:a)个人节点向该隶属的医院节点发送确权请求,医院节点对确权进行处理,返回“真”或“假”;b)如果请求结果是“假”,则结束;如果为“真”,则:b.1)构造相应的病历,从源数据链上提取相关数据的哈希值装载到病历中;b.2)用该病例上数据的哈希值构造默克尔树根(MerkleTreeRoot),然后用自己的私钥对数据进行签名;b.3)最后将构造好的病历发送给其隶属的医院节点进行审计;c)医院确权节点接收到个人节点发来的病历,对其进行审计;c.1)医院确权节点找到该病人的源数据链,通过该病历上的数据哈希值找到产生该数据时的交易,审计该交易中的相关内容,检查是否符合要确权数据的相关要求;c.2)通过相同的方式,遍历病历上的所有哈希值,给出最终的审计结果,如果审计的数据都为“真”,则结果为“真”;反之,其中有任何一个为“假”,则结果为“假”;c.3)医院节点把审计结果写到确权交易上并为其签名,然后发给个人节点;d)个人节点收到审计结果,检查结果;如果结果为“假”,则结束确权过程;否则,根据智能合约的背书规则发给其他医院节点进行审计;e)其他医院的确权节点接收到该...

【专利技术属性】
技术研发人员:杨良怀王友鹏范玉雷
申请(专利权)人:浙江工业大学
类型:发明
国别省市:浙江,33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1