图5 数字资源确权与交易方案实施框架
3.1数据层
主要是形成数字资源的区块数据,由于区块链的高冗余特性,使得链上无法存储过大的数据,根据前述存储方案,采取链上链下相结合的方式,链上存储数字资源的元数据,链下通过云存储方式存储数字资源的 完整内容。
3.2网络层
区块链本质上是一个 P2P 网络,每当一个节点创造出新的区块后,它需要以广播的形式通知其他节点, 其他节点收到信息后对该区块进行验证,然后在该区块的基础上去创建新的区块。 网络层使用的机制包括传播机制、数据验证机制等。
3.3共识层
共识层的功能是让高度分散的节点在P2P网络中,针对区块数据的有效性达成共识,决定了谁可以将新的区块添加到主链中。
3.4激励层
角色在区块链履行职责时均要质押一定量的 DOTs,以防止一些恶意行为,若行为被证实是合理有效的,各角色根据自己的贡献可得相应的奖励,这些方式体现了该方案的激励机制。
3.5合约层
数据确权阶段有身份验证规则和资源查重规则,按照这两项规则完成对原创人的身份验证以及计算数字资源相似度的任务,审核通过后,将数字资源的元数据上链。
3.6核心应用层主要功能
实现数字资源的确权与交易的界面操作及相应的功能。数字资源产权所有人在确权操作时,先进行身份验证,通过后,对数字资源进行原创性检查。若要确权的数字资源的元数据与已有资源的相似度小于一个已设定的阈值,则认为其原创性较高,将数字资源元数据存储到资源所有权登记库中,完成确权操作,否则回滚相关操作。若用户要购买相关数字资源,则先查询资源所有权登记库,然后进行支付购买,资源所有者按照约定分成的比例获得相应的收益,之后区块链完成所有权变更。上述的交易过程通过智能合约自动完成,即资源所有者在同意用户购买资源后,便触发了智能合约,自动执行交易流程。数据资源的确权与交易流程如图所示。

图6 数字资源确权与交易流程
基于区块链技术的数据资产交易的参与者:
①数据资产的供给方
数据资产的供给方是指数据的持有者或者数据的所属人员在数据资产化系统中,可以将自身持有的数据资产卖给数据的需要者,实现数据资产的变卖,如患者或患者家属。
②数据资产的需求方
数据资产的需求方是指数据的获取方,用资产去购买有价值并且可利用的数据,进而获取更多的利益,满足自身的需求,如医生,医疗研究机构等。
③数据资产交易机构
数据资产交易机构是指数据资产化交易平台的运行和管理者,连接并沟通供求双方,为供求双方提供一个渠道,为双方提供高效、稳定、安全、公正合理的交易媒介,即本项目落实结果。
4.基于区块链技术的数据资产交易管理体系
4.1参与者引入
数据资产交易双方均需通过唯一的身份代码注册平台账号,经平台初步审核身份信息通过后,取得数据交易权限。
4.2数据资产交易的公共区、个体区
数据交易的参与者进入交易管理平台后,供给方将所持有的原始数据加密并建立目录索引。加密的数掘存放在供给方个体区,原始数据的索引在生成后,共享在公共区,索引包括原始数据的提供机构、价格以及详细描述等信息,方便需求方选择购买,但不包含具体的数据,并且索引不得被篡改。
4.3数据资产所有权的确认
基于区块链技术的数据资产交易管理体系应当依法保护数据供给方的权益,通过区块链技术,对数据进行确权和溯湖源。当交易发生,被交易的数据资产需要被标记原始所有权声明,也就是说,通过对交易的数据资产加上唯一不可变的数字签名标签,以确定最初所有者,当数据被他方使用或二次交易,其增值仍然可为初始供给者所分享。如此,便解决了传统模式下数据资产初始所有者在数据沉淀后难以判定的问题困境。
4.4数据资产交易的查询、申请
只有对所有权确认的数挥,才能允许数据提供者向平台申请其所有数据资产的交易要求,并将数据摘要信息公示在平台公共区。数据的需求方可以通过数据筛选查词,选择自身所需数据,通过数据资产交易管理平台向供给方提出交易申请,查询数据地址。
4.5数据资产交易的确认
快求双方达成交易协议后,数据需求方需要首先访问通过数据资产查询获取的数据资产地址并进行身份确认,其次,数据供给方包含公开密钥、机密密钥以及主体ID值等的信息包需要对不同的数据发送。信息购买者需要提取相关数据信息。通过私钥、公钥签名,将数据加密和保存,数据需求方在获取数据信息后,应核实来源,然后,对数据包进行解码处理,提取数据。
4.6数据资产交易的监管。
救据资产供应方在区块链交易平台进行数据资产的发布,并创建智能合约,通过求购方触发智能合约购买支付完成交易。在数据资产交易过程中,数据资产信息上的链、数据资产交易用户上的链、数据资产交易信息上的链、分布式存储,实时同步到各个端点,实现了可监管性,减少了数据交易的欺诈可能性,保障各节点利益与维护数据资产质量。
5.数据资产交易管理运行保障暨加密机制
5.1数据造假防控机制。
一般而言,根据技术手段和途径的差异,造假数据的控制主要包括三种方式:资格确定机制、监督机制、投诉和惩罚机制。参与者进入平台首先需要面临的是资格认证,该机制主要解决参与者的资质认定一级生成公钥私钥问题,通过对新申请的参与者的合法性、真实性、实名认证信息的审核,并生成与之对应的公钥私钥,达到设置进入壁垒,提升参与者的总体质量,优化数据资产的质显,将造假数据拦截在进入前;监管机制旨在保障交易过程中供求双方的基本权益,主要通过不定期抽查参与方的数据真实性、质量,及时核实参与方的评价、反馈投诉意见、及时甄别造假数据;投诉机制则用于解决数据交易后双方的争议问题,主要包括提出投诉申请、确认投诉以及核查投诉真实性,在交易后筛选可能的造假数据并甄别;处罚机制的主要目标是对造假数据及其所有者进行强制退出,保障参与方的合理、台法权益。基于投诉与监督机制,通过收集造假数据资产的信息以及与之相对应的造假数据资产供给者,根据其后果的严重性与影响的恶性程度,对伪道者进行相应的信用拉分,最大限度降低参与数据资产交易的概率。对于信用低于一定水平的参加者,可以取消其交易资格。
5.2数据安保机制。
基于区块链技术的数据安保机制,相关方只有在获得——对应的密钥的情况下才能查看加密并储存在参与方个体区的数据资产,而且在完成核项数据资产交易后,需求方的权限也仅限于对部分数据进行浏览,无权查看全部数据。与此同时,数据安保机制还设置防范数据的泄露,除数据供给方外不允钟任何个体对对数据进行备份和复制等操作。实现系统安全和应用级安全的数据信息安全管理机构不仅要有效保障原始数据的安全,还必须切实保护原始数据资产所有者的合法权益。遵循数据资产的全生命周期原则,做到为数据资产内容安全有效护航。
5.3双向匿名机制。
基于区块链的数据资产公开的考虑是,交易系统采用的双向匿名机构是基于块链上的共同记录而设计的。通过双向匿名机制这一设计实现了视底的对交易对象与买家的隐私保护,第三方无法查间数据资产的所有者交易了何数据以及谁是数据资产的购买者。虽然交易记录的信息构成包含了主体标志信息、主体内容描述信息、交易数据哈希信息以及交易双发公钥信息,但通过有效的匿名化处理之后,可以进一步实现防止第三方通过交易记录逆向推出所交易购买数据的目的和用途。
5.4去中心化机制。
基于区块链的新式数据资产交易系统采用去中心化机制可以有效杜绝数据资产交易过程中数据沉淀与数据泄露等现象的发生。采用非对称加密技术,点对点的数据传输,使得保存的数摆索引仅包含了私钥签名、数据价格、公钥数据、哈希值与主体数据明细等信息,而交易数据本身并不直接被公共接触和获取。通过引入的椭圆曲线公钥密码算法只提供了数据资产交易通道,而公共区也仅保存经过加密后的数据索引,从而彻底保证了交易的数据资产信息安全性,促进交易点信息传输的实现,有效防止大量的数据沉淀,同时还能够提供交易渠道、查询和结算服务。
由于区块链防篡改的特点,保证了基于区块链的医疗系统中数据的安全性。其次,其分布式和去中心化的特点,所以使基于区块链的医疗系统具有良好的共享性。但是因其“透明性”的原因,导致区块链系统中的数据在所有节点间公开,隐私性不能得到保障。
针对以上问题,本文提出了一种基于属性加密的医疗区块链共享模型,结合该模型本章节提出了一种适用于区块链的高效、属性可撤销的方案,以解决区块链医疗数据隐私性的问题。此方案在大属性域下构造,同时支持属性的撤销、多属性授权机构和可验证的外包解密,这些特点使本方案在实际应用中更加灵活
①系统建立阶段:该阶段主要包含全局初始化算法、授权机构初始化算法。全局初始化算法(GloableSetup(λ)→GP):随机输入一个参数λ,输出GP作为系统全局变量。授权机构初始化算法(AASetup(GP,θ)→(PKθ,SKθ)):每个属性授权机构θ输入全局变量GP,以属性授权机构的公钥和私钥(PKθ,SKθ)作为输出。
②密钥生成阶段:该阶段主要包含用户密钥生成算法、转换密钥生成算法。用户密钥生成算法(UserKeyGen(GP,id)→(Upkid,Rkid)):用户id以全局变量为输入,输出当前用户的公钥Upkid以及恢复密钥Rkid。转换密钥生成算法(TkGen(GP,{SKθ},id,Upkid,S)→Tkid,s):授权机构输入GP、SKθ、id、Upkid、以及用户的属性S,输出针对用户id的转换密钥Tkid,s,并将Tkid,s发送给解密代理服务器。
③加密阶段:该阶段只有一个加密算法。加密转换算法(Encrypt(GP,{PKθ},M,(A,ρ))→(CT,TagCT)):输入全局变量GP,授权机构公钥{PKθ},明文消息M,以及访问策略(A,ρ);输出密文消息CT和对应的密文标签TagCT。加密函数由用户运行,并将密文消息和密文标签{CT,TagCT}上传到区块链系统。
④解密阶段:该阶段主要包含转换算法、用户解密算法以及属性撤销算法。
转换算法(Transform(Tkid,s,GP,Upkid,CT)→CTid):转换算法由解密代理服务器执行,以用户对应的转换密钥Tkid,s,全局变量GP,用户的公钥Upkid以及访问策略(A,ρ)对应的密文CT为输入。如果解密用户的属性S符合预先设置的访问策略(A,ρ)的属性要求,则代理服务器进行部分解密,然后将部分解密的密文CTid发送给用户id,由用户进行最终解密;如果解密的用户属性不满足访问策略则输出解密失败。
用户解密算法(Decrypt(CTid,TagCT,Rkid)→M):该算法由数据使用者执行,以部分解密密文CTid,密文标签TagCT和恢复密钥Rkid为输入;用户首先检查密文与解密标签是否一致,如果一致则继续解密得到明文消息M,如果不一致则输出错误。
属性撤销算法(AttributeRev(xid,vid,S')→Tkid,s):输入用户参数xid、当前密钥版本号vid和需要更新的用户属性集S';输出更新后的转换密钥和恢复密钥。

图7 加密算法流程图
6.预期实现效果
6.1医疗数据获取:
患者到医疗机构就诊后生成相应的医疗数据,患者获取到医疗数据后,首先,患者预先设置访问策略,然后根据访问策略对医疗数据进行属性加密并生成医疗数据的摘要信息,即医疗数据的哈希值、索引等,最后将加密后的医疗数据存储到医疗机构的本地数据库,并返回摘要数据信息。
6.2摘要数据发布到区块链:
患者收到摘要数据后,将摘要数据发布到区块链系统,区块链将收集的信息添加到新的块。区块链通过智能合约设置密文的访问权限实现发布流程。
6.3数据请求:
当用户需要查询相关数据时,数据使用者向区块链服务提供者发送数据查询请求,区块链服务提供者根据数据使用者提供的关键字在区块链中检索出相应数据,随后查看该数据请求者是否满足相关数据的访问策略要求,如果满足则将相关数据的摘要信息发送给数据使用者,如不满足,则返回错误。
6.4医疗数据的密文获取:
患者得到医疗数据的索引信息后,根据索引信息可以获取完整数据的实际存储地址,根据地址便可以得到加密后的完整数据,并且还能够根据医疗数据的哈希值验证医疗数据的密文是否完整或者被篡改。
6.5代理解密:
数据请求方获取到医疗数据的密文信息后,将密文信息发送给解密代理解密服务器,由解密代理服务器执行转换函数进行中间解密,解密完成后,代理服务器将中间解密后的转换密文发送给数据请求方,最后由数据请求方进行最终解密。
6.6用户解密:
数据请求方收到中间密文后,对中间密文进行最终解密,获取明文数据。

图8 预期模型