区块链技术在医疗数据管理方面的应用
2022-01-08初菁菁贾红宇
初菁菁 李 盈 贾红宇
浙江大学医学院附属第一医院 浙江杭州 310003
国务院于2016年印发了《“十三五”国家信息化规划》, 首次将区块链列入国家信息化发展规划,而医疗卫生作为国家区块链技术应用的重要领域,正在成为关注和研究的热点。患者的医疗记录是宝贵的数据资产,来源广泛、更新迅速的医疗数据正呈现指数级的增长。医疗数据主要面临两大风险:①医疗记录与生俱来的高隐私性、高价值性,需要极强的隐私保护;②现阶段采用的中心化存储方式风险过大,一旦发生故障,容易造成系统崩溃和数据丢失。长期以来医疗数据一直缺乏统一规范的信息管理平台,数据分散存储于不同的系统中,由各家医院自行保管,导致数据共享难、数据使用权限不明、信息孤岛化严重,无法保证数据从生成到使用的完整记录[1]。医疗信息的权限管理混乱,医疗隐私无法得到保障,医疗机构之间无法进行安全的数据共享。
区块链技术具有公开透明、去中心化、不易篡改等特性,使其在加强医疗数据的安全性和保障患者数据隐私方面可以发挥重要作用[2]。区块链本身并不是一项新技术,而是将多个领域的现有技术创造性地结合在一起,从而形成一种创新性的应用模式。区块链技术利用密码学和共识机制的原理,可以在不安全的网络环境中建立节点之间的信任,实现数据的安全存储、共享以及监管,有助于解决医疗数据需要固化存证、可溯源和安全共享等一系列问题[3],继而优化传统的医疗业务流程,提升医疗机构的服务质量和效率,为医疗科研提供可溯源的数据支持[4]。
1 区块链的原理
区块链本质上是一个共享的、去中心化的、分布式的数据库,整合了时间戳、默克尔树(merkle tree)、共识算法等计算机技术,再结合哈希函数、非对称加密、数字签名等密码学技术,从而构建了一种全新的分布式架构。参与到区块链中的节点,将待上链的数据打包成区块,通过共识机制,将区块竞争上链,下一个区块包含上一个区块的哈希值,从而将所有的区块串联起来,形成一条以时间为顺序的链式数据结构[5],见图1。
区块链通常有三种存在形式。一种是公有链。所有人都可以参与的开放式区块链,完全去中心化,参与者无需授权即拥有创造和生成区块的权利。第二种是私有链。仅供特定机构内部使用,所有参与的节点都需要进行权限管理,无法实现真正的去中心化。第三种是联盟链。介于公有链和私有链之间,实现部分去中心化。区块链在医疗领域的应用更适合通过联盟链实现,通过一定的准入机制将相关的医疗和监管部门作为节点纳入区块链管理。
2 区块链的关键技术
2.1 哈希算法
哈希算法又称安全散列算法(secure hash algorithm, SHA),是现代密码学的一个重要组成部分。通过哈希算法,可以将任意长度的信息转换成一个固定长度的二进制数据。哈希算法的特点是计算速度快,结果具有确定性、不可篡改性且不可逆推。相同数据通过哈希算法得到的结果是唯一确定的,原始数据任何微小的改动理论上都会得到不同的哈希值,哈希值发生碰撞的概率极小,通过哈希值无法逆推原始数据。基于以上特点,哈希算法可以用于数据的完整性校验和数字签名等。
常见的哈希算法有MD5、SHA-1、SHA-224、SHA-256、SHA-384、SHA-512。我国王小云等研究者已于2004年破解了MD5哈希函数,并于2005年发表了对SHA-1的攻击,即碰撞出了相同的哈希值[6]。目前较为安全且最常用的是二代哈希算法中的SHA-256,任何数据通过SHA-256算法都会生成一个长度为256个比特的字符串,即哈希值。哈希算法可以极大的节省存储空间,提高数据的查询效率,同时保证数据传输过程中的隐私性。
默克尔树是引入了树形结构的哈希列表,数据被划分成底层的数据块,计算对应的哈希值,往上一层将相邻的两个哈希值合并成一个字符串,再次计算其哈希值,以此类推,最后形成一个树形结构,最上面的为根节点(merkle root),见图1。默克尔树是由科学家Ralph Merkle于1980年提出并命名的,在区块链中主要用于区块的同步性校验。
图1 区块链的基础结构示意图
2.2 非对称加密算法
1985年,Koblitz和Miller各自独立提出了著名椭圆曲线加密算法(ECC),从此非对称加密算法有了实际应用价值。利用ECC函数和哈希算法生成相应的公钥和私钥对,公钥和私钥无法相互逆推,公钥用于加密数据,私钥用于解密数据,哈希算法用于验证数据是否被篡改。区块链中的任何节点都可以获取公钥,而私钥则必须由用户私密保存。利用非对称加密算法的公私密钥对,可以保障信息的安全性和验证信息发送者的身份[7]。
2.3 共识机制
共识机制是区块链系统中不同节点之间建立信任和获取权益的数学算法,决定了参与其中的节点采用何种方式对上链的数据达成一致,是区块链的核心和基础。共识机制的研究起源于“拜占庭将军问题”,当存在故障节点和恶意攻击的情况下,诚实节点如何对数据完成一致性确认[8]。共识机制的应用场景越来越广泛,不同的共识机制在资源消耗、算法效率、节点的扩展性、安全性等方面都有不同的适用性。目前主要的共识机制有实用拜占庭容错(practical byzantine fault tolerance,PBFT)、工作量证明(proof of work, POW)、权益证明(proof of stake, POS)、股份授权证明(DPOS)、Pool验证池等[9-10],各共识机制的原理和对比见表1。
表1 区块链中各共识机制的原理和比较
PBFT共识机制的原理是数据在系统内所有节点间进行相互通信,最终以少数服从多数的原则达成数据共识。各节点之间需要保持频繁的通信,节点的数量不能过多,更适合有准入许可的联盟链,比如医疗联盟链。优点在于系统可以脱离代币而运转,安全性和稳定性有保证,达成共识的时长可以满足实时处理的需求。缺点在于共识网络中参与的节点数量不能过多,当1/3以上的节点停止工作或恶意攻击时,系统将无法运行或产生分叉[11]。
POW共识机制的原理是所有节点通过数学运算解决哈希难题,竞争记账权,节点拥有的算力越多,成功解题的概率就越大,当51%以上的节点达成共识时即可上链[9]。优点在于节点间无需交换额外的信息即可达成共识,算法简单,容易实现,攻击系统需要耗费极大的成本。缺点在于造成大量的算力浪费,区块的确认时间难以缩短,容易产生分叉。
POS共识机制的原理是根据节点所持有的权益,等比例降低挖矿难度,节点拥有的权益越高,获得记账权的概率就越高,是对POW共识机制的一种改进。优点在于可以增加系统的吞吐量,节省算力,缩短达成共识的时间。缺点在于节点通过哈希运算竞争记账权,监管性弱,共识机制和容错性同POW共识机制。
DPOS共识机制的原理是节点拥有选票的数量依赖于代币的数量,通过投票选举产生若干可信任的节点作为代表,由代表进行验证和记账,轮流生成新的区块。通过及时而高效的方法达到51%的投票共识。优点在于减少了参与验证和记账的节点数量,可以极大地提高算法效率,提升达成共识和产生新区块的速度,同时减少区块链的分叉。缺点是去中心化的程度降低。
Pool验证池的底层技术是基于传统的分布式算法,同时加以数据验证机制而建立的。该共识算法可以对区块信息进行迅速验证,适合多中心的商业模式,且不依赖于代币,但分布式的程度不如POW共识机制。
2.4 智能合约
智能合约是一段写在区块链上可以自动执行的代码,当某个事件触发了合约中预设的条款,代码可以在没有第三方信任的情况下自动执行相应的合约。通过传统的计算机技术实现自动化执行的代码并非难事,但数字化合约存在被篡改和被攻击的风险,区块链技术提供的可信任环境使智能合约有了应用价值,两者的结合很好地解决了合约的信任问题[10]。利用区块链平台分布式存储的特点,患者无需第三方,即可通过智能合约算法访问和授权自己的医疗数据。区块链的不可篡改性,保障了合约内容的真实可靠,去中心化的分布式存储方案可以让全网备份数据,共同见证合约的执行。目前以太坊是支持智能合约且应用最广泛的区块链平台。
3 区块链在医疗领域的应用前景
3.1 数字签名在医患纠纷中的应用
数字签名作为添加到医疗文件中的电子安全标记,可以保证信息传输过程中的完整性和正确性,有效解决信息安全问题。一个数字签名通常定义了签名和验证两种互补的运算方式,是非对称加密算法的逆应用。发送者利用接受者的公钥对信息进行加密处理,同时将自己的私钥和信息作为输出,生成数字签名[12]。
数字签名具有确认信息来源和保证信息完整性两个功能,相较于手写签名具有明显优势。在传统的信息传输过程中,一方面无法保证接收方接收的信息是否真的来自发送方,另一方面无法确定信息在传输过程中是否被恶意篡改。而利用数字签名和验签技术,可以充分保证信息的真实性和完整性,同时具有身份识别的作用,具有抗抵赖性[13]。保证信息发送者在发送信息后不能抵赖。信息接收者收到信息后,可以根据数字签名,通过第三方确认签名者身份。在双方就信息的发送者和信息内容有争议的时候,数字签名可以用来解决信息发送者和信息接收者之间的争端[14]。比如医生书写好电子病历,将电子病历数据进行哈希运算,生成唯一的哈希值,同时用自己的私钥对该哈希值进行加密,实现数字签名,发送给接收者。接收者可以通过公钥验证数据源和哈希值,核实发送方的身份和信息是否被篡改[15]。因此在医疗领域引入数字签名技术,即可通过数字签名确保医疗服务原始记录的完整性和不可伪造性,实现医疗行为的固化存证,解决医患纠纷中对病历记录真实性和原始性的质疑问题。
3.2 基于医疗联盟链实现医疗大数据的安全存储和共享
目前各大医疗机构都拥有自己的中心服务器,集中保存各项医疗数据。医疗记录是高度敏感且重要的数据资产,通常包括患者的基本信息、症状体征、临床诊断、医嘱等文本信息,也包括超声图像、核磁图像等非文本信息。患者数据不断增长,当前的数据管理系统已无法满足医疗数据日益增长的需求,医疗隐私也面临着极大的挑战。医疗区块链系统可以按时间顺序追溯到医疗数据的所有操作记录,保证医疗机构和患者上传的医疗数据不被随意篡改[16],保障医疗数据的安全性,推进医疗机构之间的数据共享[17],方便学术讨论和交流。通过区块链技术实现医疗大数据的安全存储和共享,构建基于医联体的医疗联盟链[18],对降低患者的就医成本和医疗机构的误诊率等都有着深远的意义[4]。
国内学者近年来也做了多方面的研究和尝试,曹辉[19]通过改进共识机制的算法和底层DMB模型,采用私有链和行业联盟链相结合的方式,初步实现了对脑卒中电子病历数据的安全存储,为医疗区块链更广泛的应用提供了实践经验。李晓璐[20]创新性地提出一种无证书可截取签名方案(CL-CES),实现了对电子病历中敏感数据的截取功能,可以满足电子病历对于不可伪造性和保密性的安全需求。王旭[21]通过对医疗数据进行结构化和标准化的预处理,构建医疗数据的关键字索引结构,对医疗数据和索引均进行加密。通过区块链网络共享密文,实现对医疗数据的安全访问,从应用层和交易层分别进行了隐私保护机制的研究与实现。综合上述研究,区块链的共识机制和信息加密机制可以确保存储信息的匿名性和安全性,解决共享医疗数据时的隐私保护问题,克服当前互联网技术的瓶颈。
3.3 区块链技术在药品溯源方面的应用
目前药品的防伪溯源系统以中心化存储的数据库为主,数据在生成、上传、存储、查询等一系列操作中均有可能被篡改。近年来医药行业涉及药品安全的事件频发,可靠的药品溯源系统对提升我国医药行业的整体安全水平和促进医药行业的健康发展具有重要意义。
国内相关的研究已经进入应用阶段,封啸等[22]引入区块链领域的Hyperledger Fabric 框架构建了一种药品溯源系统。药品供应链上的相关方可以通过该系统完成药品信息的登记,对药品信息进行全程跟踪和审计。李逢天等[23]的研究已表明基于区块链技术和RFID技术的药品溯源系统能够令药品溯源信息更加完整可信,查询过程更加方便快捷。禹忠、刘鹏飞等[24-25]从药品的实际应用场景出发,设计了基于区块链的医药溯源系统,以药品为溯源对象,以人员和药品的信息管理为主要功能结构,以Fabric区块链平台为基础,对药品的生产加工、物流运输及零售使用等全过程进行数据记录和追踪,实现医药防伪溯源信息的透明化。将区块链技术应用于药品溯源监管体系,能够落实企业的主体责任、全面保障药品质量安全、缩减供应链的成本,加大药品供应链信息的共享程度,最终形成药品追溯的闭环[26-27],促进医药行业的可持续健康发展。
4 结论
区块链技术的引入对于医疗数据管理具有巨大的价值,可以保障医疗数据的完整性、安全保密性、不可篡改性和共享性,为互联网医疗的进一步发展提供了不可或缺的信息技术支撑。区块链技术在金融领域的应用较为成熟,在医疗方面的应用仍处于探索和尝试之中[28]。医疗区块链未来可以应用于个人医疗健康数据库的建立,开放性医疗信息共享互助中心的构建,推动医疗信息化体系变革,加快医疗机构提升服务质量和提高服务效率。区块链技术为解决各行各业的信任问题与交易安全问题提供了新的研究思路,随着区块链技术的不断成熟,共识机制的日渐普及,区块链将进入下一轮高速发展的时代,在医疗领域也将大有可为。