CN113810497A - 基于区块链的医疗数据共享方法和装置 - Google Patents
基于区块链的医疗数据共享方法和装置 Download PDFInfo
- Publication number
- CN113810497A CN113810497A CN202111094667.9A CN202111094667A CN113810497A CN 113810497 A CN113810497 A CN 113810497A CN 202111094667 A CN202111094667 A CN 202111094667A CN 113810497 A CN113810497 A CN 113810497A
- Authority
- CN
- China
- Prior art keywords
- node
- election
- listener
- participating
- round
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/12—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/604—Tools and structures for managing or administering access control systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6245—Protecting personal data, e.g. for financial or medical purposes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6245—Protecting personal data, e.g. for financial or medical purposes
- G06F21/6254—Protecting personal data, e.g. for financial or medical purposes by anonymising data, e.g. decorrelating personal data from the owner's identification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3066—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3218—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using proof of knowledge, e.g. Fiat-Shamir, GQ, Schnorr, ornon-interactive zero-knowledge proofs
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3297—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving time stamps, e.g. generation of time stamps
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2141—Access rights, e.g. capability lists, access control lists, access tables, access matrices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2151—Time stamp
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Medical Informatics (AREA)
- Databases & Information Systems (AREA)
- Automation & Control Theory (AREA)
- Algebra (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Mathematical Physics (AREA)
- Pure & Applied Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Medical Treatment And Welfare Office Work (AREA)
Abstract
本发明实施例涉及计算机技术领域,特别涉及一种基于区块链的医疗数据共享方法和装置,该方法应用于区块链网络中,包括:在区块链网络中,确定每一轮选举过程产生的一个Leader节点和Listener节点,若当前轮次的Listener节点在第一预设时长内未接收到当前轮次的Leader节点发出的心跳信号或在第二预设时长内未进行选举,则当前轮次的Listener节点开始并负责新一轮选举;在选举开始时,利用上一轮次的Listener节点对当前轮次参与选举节点的身份进行验证;在验证通过后,基于随机值和参与选举节点的稳定度值,确定当前轮次的Leader节点和Listener节点,以利用当前轮次的Leader节点将待共享的医疗数据同步至其它节点。本方案能够保证Leader节点的随机性,进而保证区块链网络的安全性。
Description
技术领域
本发明实施例涉及计算机技术领域,特别涉及一种基于区块链的医疗数据共享方法和装置。
背景技术
目前,医疗数据可以通过区块链技术进行链上成员之间的共享。区块链技术作为基于点对点网络传播的分布式共享数据库,具有去中心化的特征,在进行信息传输以及数据储存时,需要通过共识算法保证区块链中所有的记账节点的一致性以及正确性。
其中,Raft共识算法作为区块链共识算法的一种。传统的Raft共识算法通过定时(Timeout)自动进行Leader选举,这种模式一般在安全环境中工作。然而,攻击者可以利用缩短某一个节点的定时和心跳(Heartbeat)实现长久保持Leader身份,从而对整个区块链网络造成破坏。
因此,亟待需要一种基于区块链的医疗数据共享方法和装置来解决上述技术问题。
发明内容
为了解决上述提及的技术问题,本发明实施例提供了一种基于区块链的医疗数据共享方法和装置。
第一方面,本发明实施例提供了一种基于区块链的医疗数据共享方法,应用于区块链网络中,所述方法包括:
在所述区块链网络中,确定每一轮选举过程产生的一个Leader节点和Listener节点,若当前轮次的Listener节点在第一预设时长内未接收到当前轮次的Leader节点发出的心跳信号或在第二预设时长内未进行选举,则当前轮次的Listener节点开始并负责新一轮选举;其中,所述第二预设时长是单次心跳时间的整数倍;
在选举开始时,利用上一轮次的Listener节点对当前轮次参与选举节点的身份进行验证;
在验证通过后,基于随机值和参与选举节点的稳定度值,确定当前轮次的Leader节点和Listener节点,以利用当前轮次的Leader节点将所述待共享的医疗数据同步至其它节点;其中,所述随机值是由每个参与选举节点生成,每个参与选举节点的稳定度值与该节点作为功能节点的次数、存活时间和执行恶意行为的数量存在相关性,所述功能节点包括Leader节点和Listener节点,所述存活时间表示在当前轮次下的活跃时间,恶意行为包括篡改所述随机值的行为和篡改逻辑时间戳的行为,所述逻辑时间戳为节点保存的最后一项已达成共识的日志项目的时间戳。
在一种可能的设计中,所述区块链网络中各节点基于椭圆曲线生成各节点自身对应的一对椭圆曲线密钥;其中,所述椭圆曲线密钥包括椭圆曲线公钥和椭圆曲线私钥;
所述利用上一轮次的Listener节点对当前轮次参与选举节点的身份进行验证,包括:
利用上一轮次的Listener节点生成选举提案,并将所述选举提案发送给其它节点;其中,所述选举提案中携带有随机数;
响应于接收到所述选举提案,利用所述其它节点将所述随机数和节点自身的椭圆曲线私钥输入到身份抽取算法中,输出随机值和零知识证明;
针对所述其它节点中的每一个节点,根据该节点对输出的随机值的签名、该节点的椭圆曲线公钥、随机数、随机值、零知识证明和逻辑时间戳,生成提案响应,并将所述提案响应发送给上一轮次的Listener节点;
响应于接收到所述提案响应,利用上一轮次的Listener节点验证每一个提案响应中携带的签名和逻辑时间戳,并将每一个提案响应中携带的椭圆曲线公钥、随机数和零知识证明输入到身份验证算法中,输出待验证数值;若签名和逻辑时间戳验证通过,且所述待验证数值与该提案响应中携带的零知识证明匹配,则确定发送该提案响应的节点验证通过。
在一种可能的设计中,所述基于随机值和参与选举节点的稳定度值,确定当前轮次的Leader节点和Listener节点,包括:
基于如下公式确定参与选举节点的稳定度值:
CSk=a·CSPk+b·CSNk
式中,CSk为节点K对应的稳定度值,CSPk为节点K对应的正向稳定度值,CSNk为节点K对应的负向稳定度值,a和b均为预设的稳定度权重,num为节点K在最近的历史预设时间间隔中成为功能节点的次数,[]为向下取整,live_timei为节点K在第i轮次下的活跃时间,kill_time为所述第二预设时长,m为节点k执行恶意行为的数量,ωi为预设的惩罚权重,所述惩罚权重与恶意行为的类型有关,tm-tmi为节点K对当前轮次开始时间点和第i个恶意行为发生时的时间点的差值;
针对每一个参与选举节点,将与该参与选举节点对应的稳定度值和随机值的差值作为该参与选举节点的分数;
将分数最高的节点作为当前轮次的Leader节点,将分数次高的节点作为当前轮次的Listener节点。
在一种可能的设计中,在所述确定当前轮次的Leader节点和Listener节点之后,还包括:
利用上一轮次的Listener节点向各参与选举节点发送结果消息;其中,所述结果消息包括选举结果、各参与选举节点的随机值、选举出的Leader节点的随机值和签名、选举出的Listener节点的随机值和签名;
响应于接收到结果消息,根据所述结果消息中包括的参与选举节点的随机值确定上一轮次的Listener节点是否收到自身发送的提案响应,并根据所述结果消息中包括的选举出的Leader节点的随机值和签名、选举出的Listener节点的随机值和签名,确定身份选举的合法性。
在一种可能的设计中,所述待共享的医疗数据是通过如下方式获取的:
利用医疗设备节点获取待上传的医疗数据,并生成对所述待上传的医疗数据的第一签名;
利用患者设备节点验证所述第一签名,在所述患者设备节点验证通过后,利用所述患者设备节点对所述待上传的医疗数据进行数据脱敏,以生成待共享的医疗数据和对所述待共享的医疗数据的第二签名;
验证所述第二签名,在验证通过后,接收并存储所述待共享的医疗数据。
第二方面,本发明实施例还提供了一种基于区块链的医疗数据共享装置,应用于区块链网络中,所述装置包括:
第一选举模块,用于在所述区块链网络中,确定每一轮选举过程产生的一个Leader节点和Listener节点,若当前轮次的Listener节点在第一预设时长内未接收到当前轮次的Leader节点发出的心跳信号或在第二预设时长内未进行选举,则当前轮次的Listener节点开始并负责新一轮选举;其中,所述第二预设时长是单次心跳时间的整数倍;
第一验证模块,用于在选举开始时,利用上一轮次的Listener节点对当前轮次参与选举节点的身份进行验证;
第二选举模块,用于在验证通过后,基于随机值和参与选举节点的稳定度值,确定当前轮次的Leader节点和Listener节点,以利用当前轮次的Leader节点将所述待共享的医疗数据同步至其它节点;其中,所述随机值是由每个参与选举节点生成,每个参与选举节点的稳定度值与该节点作为功能节点的次数、存活时间和执行恶意行为的数量存在相关性,所述功能节点包括Leader节点和Listener节点,所述存活时间表示在当前轮次下的活跃时间,恶意行为包括篡改所述随机值的行为和篡改逻辑时间戳的行为,所述逻辑时间戳为节点保存的最后一项已达成共识的日志项目的时间戳。
在一种可能的设计中,所述区块链网络中各节点基于椭圆曲线生成各节点自身对应的一对椭圆曲线密钥;其中,所述椭圆曲线密钥包括椭圆曲线公钥和椭圆曲线私钥;
所述第一验证模块,用于执行如下操作:
利用上一轮次的Listener节点生成选举提案,并将所述选举提案发送给其它节点;其中,所述选举提案中携带有随机数;
响应于接收到所述选举提案,利用所述其它节点将所述随机数和节点自身的椭圆曲线私钥输入到身份抽取算法中,输出随机值和零知识证明;
针对所述其它节点中的每一个节点,根据该节点对输出的随机值的签名、该节点的椭圆曲线公钥、随机数、随机值、零知识证明和逻辑时间戳,生成提案响应,并将所述提案响应发送给上一轮次的Listener节点;
响应于接收到所述提案响应,利用上一轮次的Listener节点验证每一个提案响应中携带的签名和逻辑时间戳,并将每一个提案响应中携带的椭圆曲线公钥、随机数和零知识证明输入到身份验证算法中,输出待验证数值;若签名和逻辑时间戳验证通过,且所述待验证数值与该提案响应中携带的零知识证明匹配,则确定发送该提案响应的节点验证通过。
在一种可能的设计中,所述第二选举模块,用于执行如下操作:
基于如下公式确定参与选举节点的稳定度值:
CSk=a·CSPk+b·CSNk
式中,CSk为节点K对应的稳定度值,CSPk为节点K对应的正向稳定度值,CSNk为节点K对应的负向稳定度值,a和b均为预设的稳定度权重,num为节点K在最近的历史预设时间间隔中成为功能节点的次数,[]为向下取整,live_timei为节点K在第i轮次下的活跃时间,kill_time为所述第二预设时长,m为节点k执行恶意行为的数量,ωi为预设的惩罚权重,所述惩罚权重与恶意行为的类型有关,tm-tmi为节点K对当前轮次开始时间点和第i个恶意行为发生时的时间点的差值;
针对每一个参与选举节点,将与该参与选举节点对应的稳定度值和随机值的差值作为该参与选举节点的分数;
将分数最高的节点作为当前轮次的Leader节点,将分数次高的节点作为当前轮次的Listener节点。
在一种可能的设计中,还包括:
发送模块,用于利用上一轮次的Listener节点向各参与选举节点发送结果消息;其中,所述结果消息包括选举结果、各参与选举节点的随机值、选举出的Leader节点的随机值和签名、选举出的Listener节点的随机值和签名;
第二验证模块,用于响应于接收到结果消息,根据所述结果消息中包括的参与选举节点的随机值确定上一轮次的Listener节点是否收到自身发送的提案响应,并根据所述结果消息中包括的选举出的Leader节点的随机值和签名、选举出的Listener节点的随机值和签名,确定身份选举的合法性。
在一种可能的设计中,所述待共享的医疗数据是通过如下方式获取的:
利用医疗设备节点获取待上传的医疗数据,并生成对所述待上传的医疗数据的第一签名;
利用患者设备节点验证所述第一签名,在所述患者设备节点验证通过后,利用所述患者设备节点对所述待上传的医疗数据进行数据脱敏,以生成待共享的医疗数据和对所述待共享的医疗数据的第二签名;
验证所述第二签名,在验证通过后,接收并存储所述待共享的医疗数据。
第三方面,本发明实施例还提供了一种计算设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器执行所述计算机程序时,实现如上述任一项所述的方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行上述任一项所述的方法。
本发明实施例提供了一种基于区块链的医疗数据共享方法和装置,若当前轮次的Listener节点在第一预设时长内未接收到当前轮次的Leader节点发出的心跳信号或在第二预设时长内未进行选举,则当前轮次的Listener节点开始并负责新一轮选举,如此可以保证Leader节点的随机性,进而保证区块链网络的安全性。此外,基于随机值和参与选举节点的稳定度值,确定当前轮次的Leader节点和Listener节点,以利用当前轮次的Leader节点将待共享的医疗数据同步至其它节点,如此可以保证在基本不影响Raft共识性能的基础上,保证Raft共识能在拜占庭环境中安全、稳定的进行领导人选举。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一实施例提供的一种基于区块链的医疗数据共享方法流程图;
图2是本发明一实施例提供的一种计算设备的硬件架构图;
图3是本发明一实施例提供的一种基于区块链的医疗数据共享装置的结构图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参考图1,本发明实施例提供了一种基于区块链的医疗数据共享方法,包括:
步骤100:在区块链网络中,确定每一轮选举过程产生的一个Leader节点和Listener节点,若当前轮次的Listener节点在第一预设时长内未接收到当前轮次的Leader节点发出的心跳信号或在第二预设时长内未进行选举,则当前轮次的Listener节点开始并负责新一轮选举;其中,第二预设时长是单次心跳时间的整数倍;
步骤102:在选举开始时,利用上一轮次的Listener节点对当前轮次参与选举节点的身份进行验证;
步骤104、在验证通过后,基于随机值和参与选举节点的稳定度值,确定当前轮次的Leader节点和Listener节点,以利用当前轮次的Leader节点将待共享的医疗数据同步至其它节点;其中,随机值是由每个参与选举节点生成,每个参与选举节点的稳定度值与该节点作为功能节点的次数、存活时间和执行恶意行为的数量存在相关性,功能节点包括Leader节点和Listener节点,存活时间表示在当前轮次下的活跃时间,恶意行为包括篡改随机值的行为和篡改逻辑时间戳的行为,所述逻辑时间戳为节点保存的最后一项已达成共识的日志项目的时间戳。
本发明实施例中,若当前轮次的Listener节点在第一预设时长内未接收到当前轮次的Leader节点发出的心跳信号或在第二预设时长内未进行选举,则当前轮次的Listener节点开始并负责新一轮选举,如此可以保证Leader节点的随机性,进而保证区块链网络的安全性。此外,基于随机值和参与选举节点的稳定度值,确定当前轮次的Leader节点和Listener节点,以利用当前轮次的Leader节点将待共享的医疗数据同步至其它节点,如此可以保证在基本不影响Raft共识性能的基础上,保证Raft共识能在拜占庭环境中安全、稳定的进行领导人选举。
下面对图1中的每一个步骤分别进行说明。
针对步骤100,相关技术中,攻击者利用缩短某一个节点的定时和心跳(Heartbeat)实现长久保持Leader身份,从而对整个区块链网络造成破坏。为了解决该技术问题,步骤100中通过设置“若当前轮次的Listener节点在第一预设时长内未接收到当前轮次的Leader节点发出的心跳信号或在第二预设时长内未进行选举,则当前轮次的Listener节点开始并负责新一轮选举”的技术方案,如此可以保证Leader节点的随机性,进而保证区块链网络的安全性。
针对步骤102,在一些实施方式中,区块链网络中各节点基于椭圆曲线生成各节点自身对应的一对椭圆曲线密钥;其中,椭圆曲线密钥包括椭圆曲线公钥和椭圆曲线私钥;步骤102具体可以包括如下步骤:
利用上一轮次的Listener节点生成选举提案,并将选举提案发送给其它节点;其中,选举提案中携带有随机数;
响应于接收到选举提案,利用其它节点将随机数和节点自身的椭圆曲线私钥输入到身份抽取算法中,输出随机值和零知识证明;
针对其它节点中的每一个节点,根据该节点对输出的随机值的签名、该节点的椭圆曲线公钥、随机数、随机值、零知识证明和逻辑时间戳,生成提案响应,并将提案响应发送给上一轮次的Listener节点;
响应于接收到提案响应,利用上一轮次的Listener节点验证每一个提案响应中携带的签名和逻辑时间戳,并将每一个提案响应中携带的椭圆曲线公钥、随机数和零知识证明输入到身份验证算法中,输出待验证数值;若签名和逻辑时间戳验证通过,且待验证数值与该提案响应中携带的零知识证明匹配,则确定发送该提案响应的节点验证通过。
举例来说,生成椭圆曲线密钥的步骤具体包括:
步骤B11、选取椭圆曲线的一个基点P,阶数为n;
步骤B12、选择随机数sk∈[1,n-1];
步骤B13、生成一对椭圆曲线密钥,其中私钥为sk,公钥为PK=sk*P。已知私钥sk和基点P可以简单的求得公钥PK,相反,已知PK和P,求解sk的过程是极其困难的。
步骤104,具体可以包括如下步骤:
步骤B2、新选举开始时,Listener节点生成选举提案proposal<r>并将其发送给除自身外所有参与选举节点;其中个,r为Listener节点选取的随机数;
步骤B3、各参与选举节点收到proposal后,根据r及本节点的私钥sk通过身份抽取算法生成随机值value和零知识证明proof,随后生成提案响应信息response<sig,PK,r,<value,proof>>;其中,sig由该节点对value值签名生成,PK为该节点的公钥,身份抽取算法如下:
1)通过散列函数h1将r映射至椭圆曲线上一点H,H=h1(r);
2)通过散列函数h2将输入编码成一个整数s,且s=h2(r*H,r*P);
3)计算t=(r-s*sk)mod n,V=sk*H;
4)通过散列函数h3将椭圆曲线上的点编码为一个整数,获得随机值value=h3(V),并生成零知识证明proof=<V,t,s>;
步骤B4、在消息接收时间内,Listener节点持续收集response<sig,PK,r′,<value,proof′>>,对每个response要验证sig,同时根据<r′,PK,proof′>通过身份验证算法进行节点身份验证。之后,根据value值以及各节点的稳重度值,基于步骤106确认身份,最终向各节点发送结果消息;其中,身份验证算法如下:
1)通过散列函数h1将r′映射至椭圆曲线上一点H′,H′=h1(r′);
2)计算M1=t′*H′+s′*V′,M2=t′*P+s′*PK;
3)通过散列函数h2将M1、M2编码成一个整数res,即res=h2(M1,M2);
4)若res=s′,则表明随机值value有效,验证有效,否则视为无效。
针对步骤104,在一些实施方式中,步骤106具体可以包括如下步骤:
基于如下公式确定参与选举节点的稳定度值:
式中,CSk为节点K对应的稳定度值,CSPk为节点K对应的正向稳定度值,CSNk为节点K对应的负向稳定度值,a和b均为预设的稳定度权重,num为节点K在最近的历史预设时间间隔中成为功能节点的次数,[]为向下取整,live_timei为节点K在第i轮次下的活跃时间,kill_time为第二预设时长,m为节点k执行恶意行为的数量,ωi为预设的惩罚权重,所述惩罚权重与恶意行为的类型有关,tm-tmi为节点K对当前轮次开始时间点和第i个恶意行为发生时的时间点的差值;
针对每一个参与选举节点,将与该参与选举节点对应的稳定度值和随机值的差值作为该参与选举节点的分数;
将分数最高的节点作为当前轮次的Leader节点,将分数次高的节点作为当前轮次的Listener节点。
在本实施例中,每个节点都对应一个稳定度值,稳定度值会根据节点的行为动态变化;正常和无错误的行为会增加稳定度值,恶意行为和故障问题将减少稳定度值,稳定度值越大,节点成为Leader的可能性就越大。若节点处于活跃状态并稳定的工作,稳定度值就会增加,相反,若该节点作为功能节点在任期内崩溃,稳定度值就会减少。因此,活跃而稳定的节点具有更大的稳定度值。如果节点进行恶意行为,稳定度值将减少,注意,恶意行为对稳定度值的影响会随着时间的推移而降低,但不会消失。当节点成为功能节点或恶意行为发生时,网络中的每个节点都可以检测到或收到通知,因此,每个节点都维护着网络中所有节点的稳定度值列表,以此进行领导者选举。
此外,在进行身份选举时,要突出稳定度值的重要作用,同时引入随机值value,以避免出现功能节点垄断现象。
本发明通过设计基于稳定机制的拜占庭容错领导人选举方案,改进Raft共识方法,在基本不影响Raft性能的同时,改进的共识机制能够在拜占庭环境中运行,大大提升了Raft共识机制的安全性。Leader选举的实验结果表明,与Raft相比,改进的Raft共识有大约10毫秒的延迟,这主要体现在非对称加密方面。因此,我们又进行了一次实验,在对称加密仍然保证改进的Raft共识安全的基础上,用对称加密实现拜占庭容错领导选举方案,实现了与Raft共识相仿的性能。
在一些实施方式中,在步骤104之后,上述方法还包括:
利用上一轮次的Listener节点向各参与选举节点发送结果消息;其中,结果消息包括选举结果、各参与选举节点的随机值、选举出的Leader节点的随机值和签名、选举出的Listener节点的随机值和签名;
响应于接收到结果消息,根据结果消息中包括的参与选举节点的随机值确定上一轮次的Listener节点是否收到自身发送的提案响应,并根据结果消息中包括的选举出的Leader节点的随机值和签名、选举出的Listener节点的随机值和签名,确定身份选举的合法性。
在该实施例中,通过利用各个参与选举节点接收结果消息,以验证身份选举的合法性,从而可以防止Listener节点恶意篡改选举结果。
在一些实施方式中,待共享的医疗数据是通过如下方式获取的:
利用医疗设备节点获取待上传的医疗数据,并生成对待上传的医疗数据的第一签名;
利用患者设备节点验证第一签名,在患者设备节点验证通过后,利用患者设备节点对待上传的医疗数据进行数据脱敏,以生成待共享的医疗数据和对待共享的医疗数据的第二签名;
验证第二签名,在验证通过后,接收并存储待共享的医疗数据。
在本实施例中,通过密码学技术使医疗设备节点、患者设备节点和医院节点(即基于区块链的医疗数据共享方法的执行主体,也即基于区块链的医疗数据共享装置)之间的数据传输更加受到隐私保护。具体地,在数据传输过程中,患者设备节点可以验证医疗设备节点发来的第一签名,医院节点可以验证患者设备节点发来的第二签名,从而使得医院节点可以接收到未经恶意篡改的合法医疗数据。此外,患者设备节点可以自定义数据脱敏,以生成可共享的待共享的医疗数据,如此可以最大程度保证患者对自身数据的控制能力,使得患者的隐私数据受到严格保护。
在一些实施方式中,可以包括如下步骤:
步骤A1、生成Client节点的密钥。在隐私数据保护的框架中,所有Client节点分为医疗设备(D)、患者设备(S)、医院(G)三种角色,所有Client节点要生成公钥、私钥。其中,步骤A1包括:
步骤A11、证书颁发机构选取一个大素数p,在Zp范围内选取素数p的一个原根g(若i≠j,p为素数,则gi(mod p)≠gj(mod p)),定义一个哈希函数H:{0,1}*→Zp;
步骤A12、Client节点选取一个随机数sk∈Zp*作为私钥,计算w=gsk(mod p),公钥为pk={p,g,w}。
步骤A2、D对医疗数据EMR签名。D对EMR签名作为其他节点验证消息准确性的依据。其中,步骤A2包括:
步骤A21、D将EMR分为八个部分(姓名、身份证、年龄、性别、疾病、处方、电话号码、地址),表示为EMR=m1,m2,...,m8,并设置一个内容提取访问结构CEAS={0,1,1,1,1,0,0},该结构定义了可用于共享的数据条目,CEASi=0表示可隐藏mi条目;
步骤A22、选取一个随机数t∈Zp-1*,计算r=gt(mod p),对于任意mi∈M,计算Vi=H(mi,CEASi,r),计算σi=(Vi-sk*r)*t-1(mod p-1),最后生成签名σdev=<CEAS,r,Conci∈[1,n]=σi>,Conci∈[1,n]=σi表示从1到n顺序将所有σi连接起来;
步骤A23、最后执行加密操作,D使用对称密钥KD对<σdev,Conci∈[1,n]=Vi,EMR>进行对称加密,再利用S的公钥PKs对KD加密,最终D向S发送两个加密信息:Info={EkD(σdev,Conci∈[1,n]=Vi,EMR),EPKs(KD)}。
步骤A3、S提取签名。S首先要解密收到的信息,再对D的签名进行验证,保证签名的正确性,最终生成第二签名,实现数据脱敏。具体过程如下:
步骤A31、S使用自己的私钥解密EPKs(KD)得到KD,利用KD解密EkD(σdev,Conci∈[1,n]=Vi)得到<σdev,Conci∈[1,n]=Vi>;
步骤A32、通过判断wr*rσi=gVi(mod p)是否成立,判断σdev的每一个σi是否正确,从而判断σdev的正确性,其中,{p,g,w}是D的公钥,且wr*rσi=gsk*r*gt*σi=gsk*r+t*σi=gVi。
在一些实施方式中,患者设备节点可以从以下三种数据存储策略中选择一项,确定访问控制权限:
策略一:使用患者设备节点的公钥对医疗数据加密,此时只有患者可以访问数据;
策略二:使用患者设备节点和医院之间约定的对称密钥对医疗数据加密,此时只有患者和约定的医院可以访问数据;
策略三:可提取消息集ANS进行数据脱敏,然后生成有效的第二签名。该类数据将被用于数据共享,患者的隐私得到充分保护。
若选择策略三,生成第二签名σExt=<ANS,σdev>,令mes=<σExt,EMR′>。患者设备节点使用对称密钥KS对进行对称加密,再利用医院节点的公钥PKG加密KS,确保只有相应的医院节点能解密该信息,最终患者设备节点向医院节点发送两个加密信息:Info={EKs(mes),EPKG(KS)}。
步骤A4、医院节点验证第二签名。医院节点在得到患者设备节点的加密信息后,要对其进行解密并验证第二签名,若第二签名无误则认为接收到正确的数据,具体过程如下:
步骤A41、首先验证ANS的正确性,若CEASi=0,ANSi=1,则ANS不合法,拒绝接收该消息,其次,对于任意mj∈EMR′,计算Vj=H(mj,CEASj,r),并判断wr*rσj=gVj(mod p)是否成立;
步骤A42、若第二签名验证无误,医院节点则认为接收到未经篡改的合法信息EMR′,EMR′是患者设备节点在医疗设备节点允许的范围内对原信息EMR进行有选择隐藏隐私数据之后的结果。
需要说明的是,在相关技术中,如果在区块链上检索某个患者的所有医疗数据,需要遍历整条区块链,这种检索的效率低下。
为了解决该技术问题,可以采用如下方式:
利用患者设备节点向医院节点发送针对待访问患者的访问请求;其中,访问请求携带有待访问患者在区块链网络中的唯一标识;
医院节点根据访问请求携带的唯一标识,获取待访问患者的电子病历的存储地址;
医院节点根据存储地址,获得待访问患者存储在区块链网络中的所有区块上的医疗数据。上述数据检索方法均通过区块链智能合约实现。
如图2和图3所示,本发明实施例提供了一种基于区块链的医疗数据共享装置。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。从硬件层面而言,如图2所示,为本发明实施例提供的一种基于区块链的医疗数据共享装置所在计算设备的一种硬件架构图,除了图2所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的计算设备通常还可以包括其他硬件,如负责处理报文的转发芯片等等。以软件实现为例,如图3所示,作为一个逻辑意义上的装置,是通过其所在计算设备的CPU将非易失性存储器中对应的计算机程序读取到内存中运行形成的。
如图3所示,本实施例提供的一种基于区块链的医疗数据共享装置,应用于区块链网络中,所述装置包括:
第一选举模块300,用于在所述区块链网络中,确定每一轮选举过程产生的一个Leader节点和Listener节点,若当前轮次的Listener节点在第一预设时长内未接收到当前轮次的Leader节点发出的心跳信号或在第二预设时长内未进行选举,则当前轮次的Listener节点开始并负责新一轮选举;其中,所述第二预设时长是单次心跳时间的整数倍;
第一验证模块302,用于在选举开始时,利用上一轮次的Listener节点对当前轮次参与选举节点的身份进行验证;
第二选举模块304,用于在验证通过后,基于随机值和参与选举节点的稳定度值,确定当前轮次的Leader节点和Listener节点,以利用当前轮次的Leader节点将所述待共享的医疗数据同步至其它节点;其中,所述随机值是由每个参与选举节点生成,每个参与选举节点的稳定度值与该节点作为功能节点的次数、存活时间和执行恶意行为的数量存在相关性,所述功能节点包括Leader节点和Listener节点,所述存活时间表示在当前轮次下的活跃时间,恶意行为包括篡改所述随机值的行为和篡改逻辑时间戳的行为,所述逻辑时间戳为节点保存的最后一项已达成共识的日志项目的时间戳。
在本发明实施例中,第一选举模块300可用于执行上述方法实施例中的步骤100,第一验证模块302可用于执行上述方法实施例中的步骤102,第二选举模块304可用于执行上述方法实施例中的步骤104。
在本发明的一个实施例中,所述区块链网络中各节点基于椭圆曲线生成各节点自身对应的一对椭圆曲线密钥;其中,所述椭圆曲线密钥包括椭圆曲线公钥和椭圆曲线私钥;
所述第一验证模块302,用于执行如下操作:
利用上一轮次的Listener节点生成选举提案,并将所述选举提案发送给其它节点;其中,所述选举提案中携带有随机数;
响应于接收到所述选举提案,利用所述其它节点将所述随机数和节点自身的椭圆曲线私钥输入到身份抽取算法中,输出随机值和零知识证明;
针对所述其它节点中的每一个节点,根据该节点对输出的随机值的签名、该节点的椭圆曲线公钥、随机数、随机值、零知识证明和逻辑时间戳,生成提案响应,并将所述提案响应发送给上一轮次的Listener节点;
响应于接收到所述提案响应,利用上一轮次的Listener节点验证每一个提案响应中携带的签名和逻辑时间戳,并将每一个提案响应中携带的椭圆曲线公钥、随机数和零知识证明输入到身份验证算法中,输出待验证数值;若签名和逻辑时间戳验证通过,且所述待验证数值与该提案响应中携带的零知识证明匹配,则确定发送该提案响应的节点验证通过。
在本发明的一个实施例中,所述第二选举模块304,用于执行如下操作:
基于如下公式确定参与选举节点的稳定度值:
CSk=a·CSPk+b·CSNk
式中,CSk为节点K对应的稳定度值,CSPk为节点K对应的正向稳定度值,CSNk为节点K对应的负向稳定度值,a和b均为预设的稳定度权重,num为节点K在最近的历史预设时间间隔中成为功能节点的次数,[]为向下取整,live_timei为节点K在第i轮次下的活跃时间,kill_time为所述第二预设时长,m为节点k执行恶意行为的数量,ωi为预设的惩罚权重,所述惩罚权重与恶意行为的类型有关,tm-tmi为节点K对当前轮次开始时间点和第i个恶意行为发生时的时间点的差值;
针对每一个参与选举节点,将与该参与选举节点对应的稳定度值和随机值的差值作为该参与选举节点的分数;
将分数最高的节点作为当前轮次的Leader节点,将分数次高的节点作为当前轮次的Listener节点。
在本发明的一个实施例中,还包括:
发送模块,用于利用上一轮次的Listener节点向各参与选举节点发送结果消息;其中,所述结果消息包括选举结果、各参与选举节点的随机值、选举出的Leader节点的随机值和签名、选举出的Listener节点的随机值和签名;
第二验证模块,用于响应于接收到结果消息,根据所述结果消息中包括的参与选举节点的随机值确定上一轮次的Listener节点是否收到自身发送的提案响应,并根据所述结果消息中包括的选举出的Leader节点的随机值和签名、选举出的Listener节点的随机值和签名,确定身份选举的合法性。
在本发明的一个实施例中,所述待共享的医疗数据是通过如下方式获取的:
利用医疗设备节点获取待上传的医疗数据,并生成对所述待上传的医疗数据的第一签名;
利用患者设备节点验证所述第一签名,在所述患者设备节点验证通过后,利用所述患者设备节点对所述待上传的医疗数据进行数据脱敏,以生成待共享的医疗数据和对所述待共享的医疗数据的第二签名;
验证所述第二签名,在验证通过后,接收并存储所述待共享的医疗数据。
可以理解的是,本发明实施例示意的结构并不构成对一种基于区块链的医疗数据共享装置的具体限定。在本发明的另一些实施例中,一种基于区块链的医疗数据共享装置可以包括比图示更多或者更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件、软件或者软件和硬件的组合来实现。
上述装置内的各模块之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
本发明实施例还提供了一种计算设备,包括存储器和处理器,存储器中存储有计算机程序,处理器执行计算机程序时,实现本发明任一实施例中的一种基于区块链的医疗数据共享方法。
本发明实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序在被处理器执行时,使处理器执行本发明任一实施例中的一种基于区块链的医疗数据共享方法。
具体地,可以提供配有存储介质的系统或者装置,在该存储介质上存储着实现上述实施例中任一实施例的功能的软件程序代码,且使该系统或者装置的计算机(或CPU或MPU)读出并执行存储在存储介质中的程序代码。
在这种情况下,从存储介质读取的程序代码本身可实现上述实施例中任何一项实施例的功能,因此程序代码和存储程序代码的存储介质构成了本发明的一部分。
用于提供程序代码的存储介质实施例包括软盘、硬盘、磁光盘、光盘(如CD-ROM、CD-R、CD-RW、DVD-ROM、DVD-RAM、DVD-RW、DVD+RW)、磁带、非易失性存储卡和ROM。可选择地,可以由通信网络从服务器计算机上下载程序代码。
此外,应该清楚的是,不仅可以通过执行计算机所读出的程序代码,而且可以通过基于程序代码的指令使计算机上操作的操作系统等来完成部分或者全部的实际操作,从而实现上述实施例中任意一项实施例的功能。
此外,可以理解的是,将由存储介质读出的程序代码写到插入计算机内的扩展板中所设置的存储器中或者写到与计算机相连接的扩展模块中设置的存储器中,随后基于程序代码的指令使安装在扩展板或者扩展模块上的CPU等来执行部分和全部实际操作,从而实现上述实施例中任一实施例的功能。
需要说明的是,在本文中,诸如第一和第二之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个…”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同因素。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储在计算机可读取的存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质中。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种基于区块链的医疗数据共享方法,其特征在于,应用于区块链网络中,所述方法包括:
在所述区块链网络中,确定每一轮选举过程产生的一个Leader节点和Listener节点,若当前轮次的Listener节点在第一预设时长内未接收到当前轮次的Leader节点发出的心跳信号或在第二预设时长内未进行选举,则当前轮次的Listener节点开始并负责新一轮选举;其中,所述第二预设时长是单次心跳时间的整数倍;
在选举开始时,利用上一轮次的Listener节点对当前轮次参与选举节点的身份进行验证;
在验证通过后,基于随机值和参与选举节点的稳定度值,确定当前轮次的Leader节点和Listener节点,以利用当前轮次的Leader节点将待共享的医疗数据同步至其它节点;其中,所述随机值是由每个参与选举节点生成,每个参与选举节点的稳定度值与该节点作为功能节点的次数、存活时间和执行恶意行为的数量存在相关性,所述功能节点包括Leader节点和Listener节点,所述存活时间表示在当前轮次下的活跃时间,恶意行为包括篡改所述随机值的行为和篡改逻辑时间戳的行为,所述逻辑时间戳为节点保存的最后一项已达成共识的日志项目的时间戳。
2.根据权利要求1所述的方法,其特征在于,所述区块链网络中各节点基于椭圆曲线生成各节点自身对应的一对椭圆曲线密钥;其中,所述椭圆曲线密钥包括椭圆曲线公钥和椭圆曲线私钥;
所述利用上一轮次的Listener节点对当前轮次参与选举节点的身份进行验证,包括:
利用上一轮次的Listener节点生成选举提案,并将所述选举提案发送给其它节点;其中,所述选举提案中携带有随机数;
响应于接收到所述选举提案,利用所述其它节点将所述随机数和节点自身的椭圆曲线私钥输入到身份抽取算法中,输出随机值和零知识证明;
针对所述其它节点中的每一个节点,根据该节点对输出的随机值的签名、该节点的椭圆曲线公钥、随机数、随机值、零知识证明和逻辑时间戳,生成提案响应,并将所述提案响应发送给上一轮次的Listener节点;
响应于接收到所述提案响应,利用上一轮次的Listener节点验证每一个提案响应中携带的签名和逻辑时间戳,并将每一个提案响应中携带的椭圆曲线公钥、随机数和零知识证明输入到身份验证算法中,输出待验证数值;若签名和逻辑时间戳验证通过,且所述待验证数值与该提案响应中携带的零知识证明匹配,则确定发送该提案响应的节点验证通过。
3.根据权利要求1所述的方法,其特征在于,所述基于随机值和参与选举节点的稳定度值,确定当前轮次的Leader节点和Listener节点,包括:
基于如下公式确定参与选举节点的稳定度值:
CSk=a·CSPk+b·CSNk
式中,CSk为节点K对应的稳定度值,CSPk为节点K对应的正向稳定度值,CSNk为节点K对应的负向稳定度值,a和b均为预设的稳定度权重,num为节点K在最近的历史预设时间间隔中成为功能节点的次数,[]为向下取整,live_timei为节点K在第i轮次下的活跃时间,kill_time为所述第二预设时长,m为节点k执行恶意行为的数量,ωi为预设的惩罚权重,所述惩罚权重与恶意行为的类型有关,tm-tmi为节点K对当前轮次开始时间点和第i个恶意行为发生时的时间点的差值;
针对每一个参与选举节点,将与该参与选举节点对应的稳定度值和随机值的差值作为该参与选举节点的分数;
将分数最高的节点作为当前轮次的Leader节点,将分数次高的节点作为当前轮次的Listener节点。
4.根据权利要求2所述的方法,其特征在于,在所述确定当前轮次的Leader节点和Listener节点之后,还包括:
利用上一轮次的Listener节点向各参与选举节点发送结果消息;其中,所述结果消息包括选举结果、各参与选举节点的随机值、选举出的Leader节点的随机值和签名、选举出的Listener节点的随机值和签名;
响应于接收到结果消息,根据所述结果消息中包括的参与选举节点的随机值确定上一轮次的Listener节点是否收到自身发送的提案响应,并根据所述结果消息中包括的选举出的Leader节点的随机值和签名、选举出的Listener节点的随机值和签名,确定身份选举的合法性。
5.根据权利要求1-4中任一项所述的方法,其特征在于,所述待共享的医疗数据是通过如下方式获取的:
利用医疗设备节点获取待上传的医疗数据,并生成对所述待上传的医疗数据的第一签名;
利用患者设备节点验证所述第一签名,在所述患者设备节点验证通过后,利用所述患者设备节点对所述待上传的医疗数据进行数据脱敏,以生成待共享的医疗数据和对所述待共享的医疗数据的第二签名;
验证所述第二签名,在验证通过后,接收并存储所述待共享的医疗数据。
6.一种基于区块链的医疗数据共享装置,其特征在于,应用于区块链网络中,所述装置包括:
第一选举模块,用于在所述区块链网络中,确定每一轮选举过程产生的一个Leader节点和Listener节点,若当前轮次的Listener节点在第一预设时长内未接收到当前轮次的Leader节点发出的心跳信号或在第二预设时长内未进行选举,则当前轮次的Listener节点开始并负责新一轮选举;其中,所述第二预设时长是单次心跳时间的整数倍;
第一验证模块,用于在选举开始时,利用上一轮次的Listener节点对当前轮次参与选举节点的身份进行验证;
第二选举模块,用于在验证通过后,基于随机值和参与选举节点的稳定度值,确定当前轮次的Leader节点和Listener节点,以利用当前轮次的Leader节点将所述待共享的医疗数据同步至其它节点;其中,所述随机值是由每个参与选举节点生成,每个参与选举节点的稳定度值与该节点作为功能节点的次数、存活时间和执行恶意行为的数量存在相关性,所述功能节点包括Leader节点和Listener节点,所述存活时间表示在当前轮次下的活跃时间,恶意行为包括篡改所述随机值的行为和篡改逻辑时间戳的行为,所述逻辑时间戳为节点保存的最后一项已达成共识的日志项目的时间戳。
7.根据权利要求6所述的装置,其特征在于,所述区块链网络中各节点基于椭圆曲线生成各节点自身对应的一对椭圆曲线密钥;其中,所述椭圆曲线密钥包括椭圆曲线公钥和椭圆曲线私钥;
所述第一验证模块,用于执行如下操作:
利用上一轮次的Listener节点生成选举提案,并将所述选举提案发送给其它节点;其中,所述选举提案中携带有随机数;
响应于接收到所述选举提案,利用所述其它节点将所述随机数和节点自身的椭圆曲线私钥输入到身份抽取算法中,输出随机值和零知识证明;
针对所述其它节点中的每一个节点,根据该节点对输出的随机值的签名、该节点的椭圆曲线公钥、随机数、随机值、零知识证明和逻辑时间戳,生成提案响应,并将所述提案响应发送给上一轮次的Listener节点;
响应于接收到所述提案响应,利用上一轮次的Listener节点验证每一个提案响应中携带的签名和逻辑时间戳,并将每一个提案响应中携带的椭圆曲线公钥、随机数和零知识证明输入到身份验证算法中,输出待验证数值;若签名和逻辑时间戳验证通过,且所述待验证数值与该提案响应中携带的零知识证明匹配,则确定发送该提案响应的节点验证通过。
8.根据权利要求6所述的装置,其特征在于,所述第二选举模块,用于执行如下操作:
基于如下公式确定参与选举节点的稳定度值:
CSk=a.CSPk+b·CSNk
式中,CSk为节点K对应的稳定度值,CSPk为节点K对应的正向稳定度值,CSNk为节点K对应的负向稳定度值,a和b均为预设的稳定度权重,num为节点K在最近的历史预设时间间隔中成为功能节点的次数,[]为向下取整,live_timei为节点K在第i轮次下的活跃时间,kill_time为所述第二预设时长,m为节点k执行恶意行为的数量,ωi为预设的惩罚权重,所述惩罚权重与恶意行为的类型有关,tm-tmi为节点K对当前轮次开始时间点和第i个恶意行为发生时的时间点的差值;
针对每一个参与选举节点,将与该参与选举节点对应的稳定度值和随机值的差值作为该参与选举节点的分数;
将分数最高的节点作为当前轮次的Leader节点,将分数次高的节点作为当前轮次的Listener节点。
9.根据权利要求7所述的装置,其特征在于,还包括:
发送模块,用于利用上一轮次的Listener节点向各参与选举节点发送结果消息;其中,所述结果消息包括选举结果、各参与选举节点的随机值、选举出的Leader节点的随机值和签名、选举出的Listener节点的随机值和签名;
第二验证模块,用于响应于接收到结果消息,根据所述结果消息中包括的参与选举节点的随机值确定上一轮次的Listener节点是否收到自身发送的提案响应,并根据所述结果消息中包括的选举出的Leader节点的随机值和签名、选举出的Listener节点的随机值和签名,确定身份选举的合法性。
10.根据权利要求6-9中任一项所述的装置,其特征在于,所述待共享的医疗数据是通过如下方式获取的:
利用医疗设备节点获取待上传的医疗数据,并生成对所述待上传的医疗数据的第一签名;
利用患者设备节点验证所述第一签名,在所述患者设备节点验证通过后,利用所述患者设备节点对所述待上传的医疗数据进行数据脱敏,以生成待共享的医疗数据和对所述待共享的医疗数据的第二签名;
验证所述第二签名,在验证通过后,接收并存储所述待共享的医疗数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111094667.9A CN113810497B (zh) | 2021-09-17 | 2021-09-17 | 基于区块链的医疗数据共享方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111094667.9A CN113810497B (zh) | 2021-09-17 | 2021-09-17 | 基于区块链的医疗数据共享方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113810497A true CN113810497A (zh) | 2021-12-17 |
CN113810497B CN113810497B (zh) | 2022-07-26 |
Family
ID=78895814
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111094667.9A Active CN113810497B (zh) | 2021-09-17 | 2021-09-17 | 基于区块链的医疗数据共享方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113810497B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116074328A (zh) * | 2023-03-01 | 2023-05-05 | 中国信息通信研究院 | 区块链网络中的区块传输方法、装置、设备和介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110430064A (zh) * | 2017-03-30 | 2019-11-08 | 腾讯科技(深圳)有限公司 | 区块链系统、消息处理方法及存储介质 |
US20190354518A1 (en) * | 2018-05-01 | 2019-11-21 | Michael Zochowski | Chain mesh network for decentralized transaction systems |
CN112801778A (zh) * | 2021-03-01 | 2021-05-14 | 华融融通(北京)科技有限公司 | 联盟式不良资产区块链 |
CN112948853A (zh) * | 2021-02-26 | 2021-06-11 | 安徽航天信息科技有限公司 | 基于区块链的医疗数据共享方法、装置、设备及存储介质 |
-
2021
- 2021-09-17 CN CN202111094667.9A patent/CN113810497B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110430064A (zh) * | 2017-03-30 | 2019-11-08 | 腾讯科技(深圳)有限公司 | 区块链系统、消息处理方法及存储介质 |
US20190354518A1 (en) * | 2018-05-01 | 2019-11-21 | Michael Zochowski | Chain mesh network for decentralized transaction systems |
CN112948853A (zh) * | 2021-02-26 | 2021-06-11 | 安徽航天信息科技有限公司 | 基于区块链的医疗数据共享方法、装置、设备及存储介质 |
CN112801778A (zh) * | 2021-03-01 | 2021-05-14 | 华融融通(北京)科技有限公司 | 联盟式不良资产区块链 |
Non-Patent Citations (2)
Title |
---|
BASEM ASSIRI: "《2019 2nd International Conference on new Trends in Computing Sciences (ICTCS)》", 11 October 2019 * |
王辉 等: "基于区块链的医疗信息安全存储模型", 《计算机科学》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116074328A (zh) * | 2023-03-01 | 2023-05-05 | 中国信息通信研究院 | 区块链网络中的区块传输方法、装置、设备和介质 |
CN116074328B (zh) * | 2023-03-01 | 2023-06-27 | 中国信息通信研究院 | 区块链网络中的区块传输方法、装置、设备和介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113810497B (zh) | 2022-07-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7372434B2 (ja) | スクリプトに基づくブロックチェーン相互作用 | |
US11658804B2 (en) | Systems and methods for blockchains with serial proof of work | |
CN107580767B (zh) | 使用生物特征来管理网络活动的方法和系统 | |
US11233637B2 (en) | System and method for validating an entity | |
Li et al. | OPoR: Enabling proof of retrievability in cloud computing with resource-constrained devices | |
US8392709B1 (en) | System and method for a single request—single response protocol with mutual replay attack protection | |
CN111130770B (zh) | 基于区块链的信息存证方法、系统、用户终端、电子设备及存储介质 | |
CN111047324A (zh) | 用于更新区块链节点处的公钥集合的方法及装置 | |
KR102284396B1 (ko) | 생체 정보 기반의 pki 키 생성 방법 및 이를 이용한 키 생성 장치 | |
Miao et al. | VKSE-MO: Verifiable keyword search over encrypted data in multi-owner settings | |
US11416821B1 (en) | Apparatuses and methods for determining and processing dormant user data in a job resume immutable sequential listing | |
JP2022532764A (ja) | プルーフオブワークブロックチェーンネットワークにおける非並列化マイニングのためのシステムおよび方法 | |
Yu et al. | Efficient dynamic multi-replica auditing for the cloud with geographic location | |
US20200099521A1 (en) | Trusted ring | |
CN113810497B (zh) | 基于区块链的医疗数据共享方法和装置 | |
Ganesh et al. | An efficient integrity verification and authentication scheme over the remote data in the public clouds for mobile users | |
Neela et al. | A Hybrid Cryptography Technique with Blockchain for Data Integrity and Confidentiality in Cloud Computing | |
Ma et al. | A Hierarchical Provable Massive Data Migration Method under Multicloud Storage | |
Haifeng et al. | A Hierarchical Provable Massive Data Migration Method under Multicloud Storage | |
Haifeng et al. | Research Article A Hierarchical Provable Massive Data Migration Method under Multicloud Storage | |
Komo | An efficient method to provide auditable messages exchanged in instant messaging applications. | |
Moharram | Security and Accessibility of Electronic Health Records Using Blockchain Technology | |
CN118071495A (zh) | 一种交易方法、设备及介质 | |
Agyekum et al. | Towards an Efficient Access Control and Computation Environment for IoT using Blockchain | |
CN114826614A (zh) | 一种可认证密码库文件分布式存储方法、装置和电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |