目前区块链技术处于发展的初期,已经涌现了一大批出色的区块链模型,各自有着各自的特色。现在这些模型里较为常见的共识机制有工作量证明(proof of work,POW)、权益证明机制(proof of stake,POS)、股份授权证明机制(Delegate proof of stake,DPOS)、实用拜占庭容错算法 (Practical byzantine fault tolerance, PBFT)等。在这些模型的基础上,研究人员将模型与行业相结合,解决行业上痛点。例如,美国纳斯达克就于2015年12月推出了区块链技术的证券交易平台Linq。德勤、安永等审计公司组建了区块链研发团队来提升审计服务。普华永道更是对整个区块链行业进行分析,发布了中国区块链对于非金融领域的市场调查报告。在《2018中国区块链(非金融)应用市场调查报告》这份报告中,医疗被认为是区块链技术最有应用前景的领域之一。这是因为人们对使用区块链来解决医疗上对过往病历、医疗信息、药品真伪等迫切的问题充满了期待。
电子病历保存在各个医疗系统内,流通性差。人们在更换医院进行治疗的时候,只能靠口述来说明过往的诊疗情况。主治医生得不到病情的详细情况,患者甚至出现描述上的偏差。医院方面需要进行重复的检查来避免病情误诊,造成了资源的浪费、以及患者经济上的损失。电子病历存放在医院内部的服务器,病历的安全性和隐私性容易受到威胁。医院内部人员就存在通过私自贩卖医疗数据进行获利,严重影响了医院以及患者的利益。使用区块链技术可以解决电子病历共享困难、数据丢失、容易被篡改等关键问题,使患者的数据安全和隐私得到了保障。同时为医疗方面数据的共享和使用提供了全新的思路。
许多学者将这些区块链模型与电子病历(EHR)相结合,提出了一些新颖的解决方案。在2017年,薛腾飞等人提出了基于区块链的医疗数据共享模型研究[1]。该方案采用改进的股权授权证明机制来达成节点间的共识,将节点分为联盟服务器群101个和审计联盟服务器群20个,共计121个节点。医疗数据机密后存储在分布式数据库系统中,再将医疗记录数据进行哈希运算后将这一数据块的Merkel根锚定到比特币区块链来实现不可篡改和不可抵赖。同样通过锚定比特币来增强自身可信力做法的还有tierion,是一家美国一家电子病历结合区块链的公司,使用chainpoint技术作为底层。
在薛腾飞等人的方案里使用链上链下相结合的方式减轻链上数据存储昂贵的问题,同时也解决了数据集中存储在各个医疗机构的问题。该方案具有独特的想法,采用自己搭建的区块链来实现电子病历,具有更强的针对性,能够定向解决目前电子病历存在的问题。在这个方案里也提到了,相较于自己搭建的区块链缺乏足够的可信力,采用将Merkel根提交到比特币区块链中增加公信力。同时需要至少121个组织参与这个方案才能启动,对于区块链发展初期这个方案的启动方式过于庞大,很难使用这样一个方案进行长时间的测试,测试成本十分昂贵。薛腾飞等人的这个方案自身设计十分独特,但是并不能保证运行没有问题,这个庞大的组织因为区块链运行出现问题,造成的经济损失是极其严重的,所以并不适合这个早期探索到后期大规模应用的过程。
徐文玉等人提出基于区块链和同态加密的电子病历健康记录隐私保护方案[2],使用同态加密和以太坊的智能合约技术相结合,使患者的隐私数据在被保护的前提下与不同应用进行交互。该方案同样是采用Quorum Chain[3]共识,是一种改进以太坊的基于投票共识机制。共采用3中类型的节点,分为患者、医院和保险公司。患者拥有病历的所有权限,通过智能合约授权给其余医院,未经授权的医院只能查看到加密后的数据,无法查看患者病历。该方案同样采用了链上链下结合的方式,医疗数据存储在医院内部,医院将对称加密密钥和患者部分信息存储在区块链上,患者可通过与区块链上的智能合约交互更改EHR的访问权限和获取加密密钥来解密EHR。这个方案解决了EHR转移时不会将患者病历的信息泄露,在保险进行理赔时,不会泄露患者的隐私信息。这个方案同时也存在着许多问题,医院需要为每一位患者创建一个智能合约,患者需要管理大量不同医院的智能合约,给患者造成了巨大的使用难度。在以太坊上存储数据,费用相对于存储数据的大小呈指数上升,无论这些费用是由医院承担还是用户承担,都会影响数据上链的积极性。而且数据依旧存储在医院内部,并没有解决电子病历容易被篡改、丢失、容易被盗取等问题。
2017年5月,PokitDok 宣布与英特尔开展合作,共同开发 Dokchain[4] 医疗区块链解决方案,包括英特尔开源锯齿湖超级账本作为底层分类账,并使用英特尔芯片处理区块链交易请求。在英特尔的开源区块链平台 Sawtooth 和Intel芯片和SGX 技术的支持下,PokitDok 可以提高 DokChain 的可扩展性、隐私和安全性。该方案对我们国内电子病历结合区块链具有一定的指导意义。Dokchain开启了医疗保健领域的第一个加密代币PTY,医疗服务机构可以租用健康信息存储空间,执行专用于健康领域的智能合约支付和交易。
国内还有张超等人提出了Medical Chain:联盟式医疗区块链系统[5]。该系统采用IBM的超级账本作为底层技术更为稳定,相较于比特币和以太坊为基础的模型,超级账本更适合选作医疗项目的模型。医疗与金融所需要处理的问题和重点都有所差别,金融更注重的信任的去中心化,而电子病历更注重的病历的共享和病历的所有权,并且电子病历需要依靠医疗机构、政府机构这样需要信任的中心,我们所需要做的是打通多个可信任中心之间的合作。在超级账本上不存在像以太坊上这么昂贵的存储费用,该方案选择将医疗上可结构化的数据上传到区块链,非结构化的数据,如医学影像等存储在链下,将哈希值存储在链上来确保链下没有篡改图像等数据。相较于薛腾飞等人提出的方案,该方案的实现更加实际。相比于徐文玉等人的方案,该方案不需要在每一个医院建立一个账号来维护自己过多的合约。Medical Chain只需要一个账户,使用CRL中心化方案来维护用户的信息。用户使用账户密码登陆,对于创建的非对称加密的公私钥是无感的。用户使用系统创建的公钥给自己病历加密,只能使用病人私钥才能将数据解密。用户怀疑自己信息发生泄露的时候,可以更换自己私钥,有效避免自己的隐私数据继续泄露。Medical Chain选择了更合适的区块链模型解决医疗问题,不需要大量的节点参与,成本更低;不需要挖矿,避免了资源的浪费。但是Medical Chain上缺乏通证模型的设计,患者缺乏激励,无法积极的共享自己病历。目前Medical Chain也只是提出了解决关于转诊时候问题病历的问题,对于病历的共享、病历的分析、保险的处理,还缺乏一定的解决方案。
参考国内外对医疗与区块链结合的思路,我们分析对比了以上方案的优缺点,使用联盟链更适合电子病历。联盟链也有着许多不同的解决方案,以太坊联盟链(Quorum Chain),超级账本(Hyperledger Fabric),基于POET共识算法的锯齿湖(sawtooth)。相对于项目的成熟度和活跃度,超级账本是最活跃最成熟的。我们需要的就是在稳定的框架基础上构建出复杂的系统,最底层的运行不会被扰乱。在架构基础上添加一些新的思路,就能通过区块链发展出更复杂的系统。复杂性就是这样依靠叠加而不是改变其基本结构而累积起来的。
我们对于账户体系的设计思路是,采用中心化管理的方式,用户通过账户密码登陆,公私钥对存放在CRL中。主流的非对称加密主要有RSA和ECC,我们使用ECC算法来生成我们的公私钥对。患者的公钥对病历进行加密,加密后数据存储在区块链上,链上数据只有用户的私钥可以解密。由于整个系统用户对于公私钥是无感的,所以我们将会建立智能合约来给用户提供便利,使用智能合约来管理对于病历的授权。除非用户授权,否则他人查看到只是加密后的数据。
在分析过的方案中大致都解决了关于病历在转诊方面和授权方面的问题,但是电子病历与区块链的结合不能只是体现在医疗诊断方面提供便利,而是还应该有着更大的社会效益。各大医疗机构和平台通过大量的医疗数据和病历可以分析出患病的潜在可能的原因,降低正常人患病的概率,减少更多人在治疗上的费用和痛苦。目前许多区块链模型弱化了激励层的作用,我们认为激励层还是十分重要的。各大医疗机构和平台想要获得更多病历信息,需要激励用户去分享自己病历,通过支付一定的代币给用户,用户将更加愿意去分享自己的病历。一个良好的通证模型的设计,能给整个生态带来更大的活力和便捷。如果将现金接入区块链,与银行的交互并不是一次就可以完成资金的转移,使用我们自己设计的通证,就可以极大的提高交易速度,并且不会出错,更重要的是在链上交易透明,极大方便了对账等操作。用户可以通过授权智能合约,其余机构只需支付token就可以获取该用户的病历。
考虑到超级账本上不存在token,我们使用智能合约创建token合约。用户的授权合约的所有关键操作将和这个合约有着密切的关联。医疗机构和平台通过授权合约获取用户病历同时支付一定的代币,用户的私钥将会解密病历的信息,所有的操作具有原子性,操作失败结果不会上链。使用这些多个合约的相互协作,共同完成这电子病历的复杂操作。
【参考文献】
【1】薛腾飞, 傅群超, 王枞, & 王新宴. (2017). 基于区块链的医疗数据共享模型研究. 自动化学报(09), 73-80.
【2】徐文玉, 吴磊, & 阎允雪. (2018). 基于区块链和同态加密的电子健康记录隐私保护方案. 计算机研究与发展, 55(10), 141-151.
【3】https://www.jpmorganchina.com.cn/country/CN/zh/Quorum
【4】Dhillon, V. , Metcalf, D. , & Hooper, M. . (2017). The Hyperledger Project. Blockchain Enabled Applications.
【5】张超,李强,陈子豪,黎祖睿,张震.Medical Chain:联盟式医疗区块链系统[J/OL].自动化学报:1-16 [2019-04-15]. https://doi.org/10.16383/j.aas.c180131.
【6】徐健,陈志德,龚平,王可可.基于区块链网络的医疗记录安全储存访问方案[J/OL].计算机应用: 1-8[2019-04-17]. http://kns.cnki.net/kcms/detail/51.1307.TP.20190121.1013.058.html.