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)进行背书策略验证;
h.2)验证背书策略:
h.2.1)背书节点是否来自智能合约中的节点;
h.2.2)是否满足智能合约中要求的背书节点的数量;
h.2.3)所有背书节点的证书和签名是否有效;
h.2.4)如果不符合,则结束;否则,提交给MVCC进行版本验证;
h.3)MVCC通过模拟执行时的状态数据的版本和提交交易时状态数据的版本进行比较;
如果版本不同,则结束;否则,进行下一步骤;
h.4)把该区块存入到账本中并更新状态数据库;
步骤3:某医院的交易节点向出售数据的医院的交易节点发起交易请求,并按照其和这家医院节点签订的智能合约的规则,向其请求背书、共识之后存入到交易链中,由于区块链的可追溯性,从而确保了每笔交易真实有效、有据可查;产生交易链步骤包括:i)医院C通过数据交易网站向医院A发起数据交易请求;
ii)数据交易网站将医院C购买数据的哈希值装载到本次交易中,并通过“交易总额=交易数量*数据单价”公式计算出本次消费的金额,等待医院C付款;
iii)医院C付款后,等待医院A发货;
iv)医院A收到款项之后,通过交易中数据的哈希值到本地数据库中取出医院C购买的原始数据,并将原始数据进行加密后,发送到医院C中数据保护区中;
v)医院C收到医院A发送来的数据后,并对数据做出相应的检查;如果检查未通过,则结束;否则,将该交易发送给打包节点;
vi)打包节点把接收到的交易按时间排序,然后构造成区块;
vii)打包节点把构造好的区块发送给各个医院的交易节点的提交模块进行区块校验:vii.1)验证区块中交易数据:
vii.1.1)是否为合法交易:交易格式是否正确,是否有合法签名,交易内容是否被篡改;
vii.1.2)记账节点是否加入这个通道;
vii.1.3)如果检查结果不符合要求,则结束;否则,提交给校验系统链码(VSCC)进行背书策略验证;
vii.2)验证背书策略:
vii.2.1)背书节点是否来自智能合约中的节点;
vii.2.2)是否满足智能合约中要求的背书节点的数量;
vii.2.3)所有背书节点的证书和签名是否有效;
vii.2.4)如果不符合,则结束;否则,提交给MVCC进行版本验证;
vii.3)MVCC通过模拟执行时的状态数据的版本和提交交易时状态数据的版本进行比较;如果版本不同,则结束;否则,进行下一步骤;
vii.4)把该区块存入到账本中并更新状态数据库。
2.如权利要求1所述的基于区块链技术的医疗数据交易与共享方法,数据保护区是购买方使用数据的场所,其控制权为数据提供者所有,根据购买方具有的权利执行相应的操作,该数据保护区使数据使用者和数据隔离开,从而保证所购买数据的合理、安全使用;具体步骤是:A)用户通过数据交易网站购买用于深度学习的数据,数据提供者把相关数据发送到该用户的数据保护区的数据存储平台;
A.1)验证数据是不是购买的那些数据,即对发送过来的数据进行哈希,得到的哈希值与交易中的哈希值做对比;
A.2)验证发送数据的完整性,即对发送过来的数据进行从新构造默克尔树,得到新的默克尔树根与交易中的默克尔树根做对比;
B)用户向堡垒机申请计算请求,堡垒机对用户进行身份检查确认后,允许其进入;
C)用户把深度学习的应用程序放到数据保护区的计算区,通过沙箱来运行该程序;
D)深度学习程序运行结束后,产生的结果通过审计区审计后,方可下载使用。