CN111625869B - 数据处理方法及数据处理装置 - Google Patents
数据处理方法及数据处理装置 Download PDFInfo
- Publication number
- CN111625869B CN111625869B CN202010324913.4A CN202010324913A CN111625869B CN 111625869 B CN111625869 B CN 111625869B CN 202010324913 A CN202010324913 A CN 202010324913A CN 111625869 B CN111625869 B CN 111625869B
- Authority
- CN
- China
- Prior art keywords
- data
- node
- attribute
- information
- block chain
- 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.)
- Active
Links
Images
Classifications
-
- 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
-
- 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/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/31—User authentication
- G06F21/33—User authentication using certificates
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Health & Medical Sciences (AREA)
- Storage Device Security (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本申请涉及区块链技术领域,具体涉及一种数据处理方法、数据处理装置、计算机可读介质以及电子设备。本申请实施例中的数据处理方法包括:确定对共享数据具有数据获取权限的至少一个目标区块链节点;获取所述目标区块链节点的目标节点属性信息,并根据所述目标节点属性信息确定与所述共享数据相对应的属性信息集合;利用所述属性信息集合对所述共享数据进行加密处理以得到属性加密数据;将所述属性加密数据发布至区块链网络,以使所述目标区块链节点对所述属性加密数据进行解密处理后得到所述共享数据。该方法可以避免对同一共享数据的重复加密,降低数据处理的成本消耗,并提高数据处理效率。
Description
技术领域
本申请涉及区块链技术领域。具体而言,本申请涉及一种数据处理方法、数据处理装置、计算机可读介质以及电子设备。
背景技术
在不同地域、不同行业的各种机构和平台之间一般可以通过计算机和互联网技术实现数据共享。例如,在爆发大范围的禽流感、新冠肺炎等传染性疾病疫情时,在不同地域的医院、政府等防疫部门之间进行快速高效地疫情数据共享是进行疫情防控的重要手段。
然而,考虑到数据的安全性和可信度等方面的因素,不同机构和平台之间进行的数据共享通常会涉及身份验证、数据加密等原因而导致一定的数据壁垒,因此普遍存在数据共享程序繁琐复杂且数据处理成本高、效率低等技术问题。
需要说明的是,在上述背景技术部分公开的信息仅用于加强对本申请的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
本申请的目的在于提供一种数据处理方法、数据处理装置、计算机可读介质以及电子设备,至少在一定程度上克服相关技术中存在的数据处理成本高、效率低等技术问题。
本申请的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本申请的实践而习得。
根据本申请实施例的一个方面,提供一种数据处理方法,该方法包括:
确定对共享数据具有数据获取权限的至少一个目标区块链节点;
获取所述目标区块链节点的目标节点属性信息,并根据所述目标节点属性信息确定与所述共享数据相对应的属性信息集合;
利用所述属性信息集合对所述共享数据进行加密处理以得到属性加密数据;
将所述属性加密数据发布至区块链网络,以使所述目标区块链节点对所述属性加密数据进行解密处理后得到所述共享数据。
根据本申请实施例的一个方面,提供一种数据处理装置,该装置包括:
节点确定模块,被配置为确定对共享数据具有数据获取权限的至少一个目标区块链节点;
信息获取模块,被配置为获取所述目标区块链节点的目标节点属性信息,并根据所述目标节点属性信息确定与所述共享数据相对应的属性信息集合;
数据加密模块,被配置为利用所述属性信息集合对所述共享数据进行加密处理以得到属性加密数据;
数据发布模块,被配置为将所述属性加密数据发布至区块链网络,以使所述目标区块链节点对所述属性加密数据进行解密处理后得到所述共享数据。
在本申请的一些实施例中,基于以上技术方案,所述数据加密模块包括:
公钥获取单元,被配置为获取所述区块链网络上公开的系统公钥;
属性加密单元,被配置为利用所述系统公钥以及所述属性信息集合对所述共享数据进行加密处理以得到与所述共享数据相对应的属性加密数据。
在本申请的一些实施例中,基于以上技术方案,所述数据发布模块包括:
私钥获取单元,被配置为获取当前区块链节点的当前节点私钥;
电子签名单元,被配置为利用所述当前节点私钥对所述属性加密数据进行电子签名处理,以得到携带所述属性加密数据和数字签名的数据发布交易信息;
信息发布单元,被配置为将所述数据发布交易信息发布至区块链网络。
在本申请的一些实施例中,基于以上技术方案,所述私钥获取单元包括:
属性获取子单元,被配置为获取当前区块链节点的当前节点属性信息,并根据所述当前节点属性信息确定私钥提取申请信息;
私钥生成子单元,被配置为将所述私钥提取申请信息发送至秘钥服务器,以使所述秘钥服务器根据系统公钥、系统私钥以及所述当前节点属性信息生成与所述当前节点属性信息相对应的当前节点私钥;
私钥接收子单元,被配置为接收由所述秘钥服务器返回的所述当前节点私钥。
在本申请的一些实施例中,基于以上技术方案,所述电子签名单元包括:
第一获取子单元,被配置为获取所述当前区块链节点的当前节点属性信息和当前节点证书摘要,并获取所述区块链网络上公开的系统公钥;
第二获取子单元,被配置为获取用于进行数据发布的智能合约的合约地址信息;
内容确定子单元,被配置为确定包括所述属性加密数据、所述当前节点属性信息、所述当前节点证书摘要、所述系统公钥以及所述合约地址信息的数据发布交易内容;
电子签名子单元,被配置为利用所述当前节点私钥对所述数据发布交易内容进行电子签名处理,以得到携带所述数据发布交易内容和数字签名的数据发布交易信息。
在本申请的一些实施例中,基于以上技术方案,所述数据处理装置还包括:
发布交易信息接收模块,被配置为通过所述区块链网络接收由数据发布节点发出的数据发布交易信息;
发布交易签名校验模块,被配置为对所述数据发布交易信息中携带的数字签名进行签名校验;
发布交易执行模块,被配置为若校验通过,则执行所述数据发布交易信息中携带的数据发布交易内容以将所述数据发布交易内容中的属性加密数据保存至区块链中。
在本申请的一些实施例中,基于以上技术方案,所述发布交易签名校验模块包括:
公钥获取单元,被配置为获取所述区块链网络上公开的系统公钥;
发布交易签名解密单元,被配置为利用所述系统公钥对所述数据发布交易信息中携带的数字签名进行解密处理,以得到待校验内容摘要;
发布交易摘要处理单元,被配置为对所述数据发布交易信息中携带的数据发布交易内容进行摘要处理以得到所述数据发布交易内容的发布交易内容摘要;
发布交易一致性校验单元,被配置为对所述待校验内容摘要和所述发布交易内容摘要进行一致性校验以得到所述数字签名的签名校验结果。
在本申请的一些实施例中,基于以上技术方案,所述发布交易执行模块包括:
发布交易合约调用单元,被配置为根据所述数据发布交易信息中携带的数据发布交易内容调用用于进行数据发布的智能合约;
加密数据摘要处理单元,被配置为基于所述智能合约对所述数据发布交易内容中的属性加密数据进行摘要处理以得到属性加密数据摘要;
数据状态确定单元,被配置为根据所述属性加密数据摘要确定所述属性加密数据的数据状态,所述数据状态为已发布状态或未发布状态;
发布节点证书获取单元,被配置为若所述数据状态为未发布状态,则根据所述数据发布交易内容中的发布节点证书摘要获取所述数据发布节点的发布节点证书;
发布交易公钥校验单元,被配置为获取所述发布节点证书中的节点公钥,并确定所述节点公钥与所述数据发布交易内容中的系统公钥是否一致;
属性加密数据写入单元,被配置为若所述节点公钥与所述系统公钥一致,则将与所述属性加密数据摘要进行关联后的所述属性加密数据写入所述智能合约,以得到所述数据发布交易内容的执行结果;
数据发布交易保存单元,被配置为将所述数据发布交易内容的执行结果保存至区块链。
在本申请的一些实施例中,基于以上技术方案,所述数据发布交易保存单元包括:
区块主体保存子单元,被配置为将所述数据发布交易内容的执行结果保存在待共识的当前区块的区块主体中;
父区块计算子单元,被配置为在满足区块生成条件时,获取所述区块链网络中上一区块的区块头数据,并根据所述区块头数据计算得到父区块特征值;
区块主体计算子单元,被配置为根据所述当前区块的区块主体中保存的数据计算所述当前区块的区块主体特征值;
区块头保存子单元,被配置为将所述父区块特征值、所述区块主体特征值以及当前时间的时间戳保存在所述当前区块的区块头中;
共识认证子单元,被配置为将所述当前区块发布至所述区块链网络以对所述当前区块进行共识认证,并在认证通过时将所述当前区块链接至区块链上。
在本申请的一些实施例中,基于以上技术方案,所述数据处理装置还包括:
属性加密数据获取模块,被配置为通过所述区块链网络获取区块链上保存的属性加密数据,并获取所述区块链网络上公开的系统公钥;
当前节点属性获取模块,被配置为获取当前区块链节点的当前节点属性信息和当前节点私钥;
属性加密数据解密模块,被配置为根据所述系统公钥和所述当前节点私钥对所述属性加密数据进行解密处理,以确定所述当前节点属性信息是否包括在与所述属性加密数据相对应的属性信息集合中;
共享数据输出模块,被配置为若所述当前节点属性信息包括在所述属性信息集合中,则通过所述当前区块链节点输出对所述属性加密数据进行解密处理得到的共享数据。
在本申请的一些实施例中,基于以上技术方案,所述数据处理装置还包括:
认证交易信息接收模块,被配置为通过所述区块链网络接收由身份认证节点发出的身份认证交易信息;
认证交易签名校验模块,被配置为对所述身份认证交易信息中携带的数字签名进行签名校验;
认证交易执行模块,被配置为若校验通过,则执行所述身份认证交易信息中携带的身份认证交易内容以将所述身份认证交易内容中的节点身份证书保存至区块链中。
在本申请的一些实施例中,基于以上技术方案,所述认证交易执行模块包括:
认证交易合约调用单元,被配置为根据所述身份认证交易信息中携带的身份认证交易内容调用用于进行身份认证的智能合约;
身份证书摘要处理单元,被配置为基于所述智能合约对所述身份认证交易内容中的节点身份证书进行摘要处理以得到节点身份证书摘要;
证书状态确定单元,被配置为根据所述节点身份证书摘要确定所述节点身份证书的证书状态,所述证书状态为已保存状态或未保存状态;
节点身份证书写入单元,被配置为若所述证书状态为未保存状态,则将与所述节点身份证书摘要进行关联后的所述节点身份证书写入所述智能合约,以得到所述身份认证交易内容的执行结果;
身份认证交易保存单元,被配置为将所述身份认证交易内容的执行结果保存至区块链。
在本申请的一些实施例中,基于以上技术方案,所述数据处理装置还包括:
部署交易信息接收模块,被配置为通过所述区块链网络接收由合约部署节点发出的合约部署交易信息;
部署交易签名校验模块,被配置为对所述合约部署交易信息中携带的数字签名进行签名校验;
部署交易执行模块,被配置为若校验通过,则执行所述合约部署交易信息中携带的合约部署交易内容以将所述合约部署交易内容中的智能合约保存至区块链中。
在本申请的一些实施例中,基于以上技术方案,所述部署交易执行模块包括:
智能合约摘要处理单元,被配置为执行所述合约部署交易信息中携带的合约部署交易内容,以对所述合约部署交易内容中的智能合约进行摘要处理以得到作为合约地址信息的智能合约摘要;
合约状态确定单元,被配置为根据所述合约地址信息确定所述智能合约的合约状态,所述合约状态为已部署状态或未部署状态;
部署节点证书获取单元,被配置为若所述合约状态为未部署状态,则根据所述合约部署交易内容中的部署节点证书摘要获取所述合约部署节点的部署节点证书;
部署交易公钥校验单元,被配置为获取所述部署节点证书中的节点公钥,并确定所述节点公钥与所述合约部署交易内容中的系统公钥是否一致;
部署交易保存单元,被配置为若所述节点公钥与所述系统公钥一致,则将与所述合约地址信息进行关联后的所述智能合约保存至区块链。
根据本申请实施例的一个方面,提供一种计算机可读介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如以上技术方案中的数据处理方法。
根据本申请实施例的一个方面,提供一种电子设备,该电子设备包括:处理器;以及存储器,用于存储所述处理器的可执行指令;其中,所述处理器被配置为经由执行所述可执行指令来执行如以上技术方案中的数据处理方法。
在本申请实施例提供的技术方案中,通过将目标区块链节点的目标节点属性信息组成属性信息集合,并利用属性信息集合对共享数据进行加密处理,可以在保证共享数据安全性的同时向目标区块链节点进行数据共享。该方法可以避免对同一共享数据的重复加密,降低数据处理的成本消耗,并提高数据处理效率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1示意性地示出了基于区块链网络的数据共享系统。
图2示意性地示出了区块链的组成结构。
图3示意性地示出了由区块链生成区块的过程。
图4示意性地示出了本申请实施例中基于区块链技术的数据处理过程时序图。
图5示意性地示出了本申请实施例提供的一种数据处理方法的步骤流程图
图6示意性地示出了本申请实施例中在区块链网络上进行数据发布的方法步骤流程图
图7示意性地示出了本申请实施例中对属性加密数据进行电子签名的方法步骤流程图。
图8示意性地示出了本申请实施例中数据发布交易信息被发布至区块链网络后的处理方法步骤流程图
图9示意性地示出了本申请实施例中对数字签名进行签名校验的方法步骤流程图。
图10示意性地示出了本申请实施例中执行数据发布交易内容的方法步骤流程图。
图11示意性地示出了本申请实施例中保存数据发布交易内容的方法步骤流程图。
图12示意性地示出了本申请实施例中进行数据获取的方法步骤流程图。
图13示意性地示出了本申请实施例中对新节点进行身份认证的方法步骤流程图。
图14示意性地示出了本申请实施例中执行身份认证交易内容的方法步骤流程图。
图15示意性地示出了本申请实施例中进行智能合约部署的方法步骤流程图。
图16示意性地示出了本申请实施例中执行合约部署交易内容的方法步骤流程图。
图17示意性地示出了本申请实施例提供的一种数据处理装置的组成结构框图。
图18示意性地示出了适于用来实现本申请实施例的电子设备的计算机系统的结构框图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本申请将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本申请的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本申请的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本申请的各方面。
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
在以下各示例实施方式中,主要以疫情防控数据的处理方法为例进行说明,但本申请实际可以应用于除疫情防控数据以外的其他任意数据,本申请并不以此为限。
在本申请的相关技术中,不同地域、不同行业的防疫部门之间可以进行数据共享。防疫部门的核心工作是快速找到病毒来源、精准定位病毒携带者、尽早切断所有可能的病毒传染渠道,合理调配医学专家和医护资源,以上工作的开展需要医院、政府等防疫部门之间进行数据互享、互通。目前防疫部门数据采集共享由于已有的体制问题导致过程繁琐复杂,成本高且效率低,各防疫部门的数据实际上存在数据壁垒和信息孤岛,公开的数据缺乏透明性,公众和防疫指挥部对数据认可度低,为后续防疫工作带来潜在的高风险。同时在授权方式上,一般是使用数据接收方的公钥加密后,将待共享的加密数据发送给数据接收方,然后由数据接收方使用自己的私钥对接收到的加密数据进行解密。如果存在多个用户需要访问数据时,数据发送方需要分别用对方的公钥加密,然后分别发送给对方用私钥解密,这种数据的加密传输方式存在数据膨胀以及占用资源等问题。
针对以上相关技术中存在的问题,本申请实施例提供一种基于区块链技术的数据处理方法,通过防疫部门数据信息采集平台将各防疫部门身份上链留痕,每个防疫部门设立一个独立的节点,采集当地不同类别的数据,通过基于属性加密的授权方式快速实现各节点间跨区域、跨行业的数据验证和查询,保证收集信息的完整、实时、开放和透明,为疫情防控工作赢得更多时间,有助于提升平台服务质量和降低相关安全风险。
在对本申请实施例提供的基于区块链技术的数据处理方法进行解释说明之前,先对区块链的相关技术予以说明。
图1示意性地示出了基于区块链网络的数据共享系统。如图1所示,数据共享系统100是指用于进行节点与节点之间数据共享的系统,该数据共享系统中可以包括多个节点110,多个节点110可以是指数据共享系统中的各个客户端。每个节点110在进行正常工作时可以接收到输入信息,并基于接收到的输入信息维护该数据共享系统内的共享数据。为了保证数据共享系统内的信息互通,数据共享系统中的每个节点之间可以存在信息连接,节点之间可以通过上述信息连接进行信息传输。例如,当数据共享系统中的任意节点接收到输入信息时,数据共享系统中的其他节点便根据共识算法获取该输入信息,将该输入信息作为共享数据中的数据进行存储,使得数据共享系统中全部节点上存储的数据均一致。
对于数据共享系统中的每个节点,均具有与其对应的节点标识,而且数据共享系统中的每个节点均可以存储有数据共享系统中其他节点的节点标识,以便后续根据其他节点的节点标识,将生成的区块广播至数据共享系统中的其他节点。每个节点中可维护一个如下表所示的节点标识列表,将节点名称和节点标识对应存储至该节点标识列表中。其中,节点标识可为IP(Internet Protocol,网络之间互联的协议)地址以及其他任一种能够用于标识该节点的信息,表1中仅以IP地址为例进行说明。
节点名称 | 节点标识 |
节点1 | 117.114.151.174 |
节点2 | 117.116.189.145 |
… | … |
节点N | 119.123.789.258 |
数据共享系统中的每个节点均存储一条相同的区块链。区块链由多个区块组成,图2示意性地示出了区块链的组成结构。如图2所示,区块链由多个区块组成,创始块中包括区块头和区块主体,区块头中存储有输入信息特征值、版本号、时间戳和难度值,区块主体中存储有输入信息;创始块的下一区块以创始块为父区块,下一区块中同样包括区块头和区块主体,区块头中存储有当前区块的输入信息特征值、父区块的区块头特征值、版本号、时间戳和难度值,并以此类推,使得区块链中每个区块中存储的区块数据均与父区块中存储的区块数据存在关联,保证了区块中输入信息的安全性。
图3示意性地示出了由区块链生成区块的过程。如图3所示,区块链所在的节点在接收到输入信息时,对输入信息进行校验,完成校验后,将输入信息存储至内存池中,并更新其用于记录输入信息的哈希树;之后,将更新时间戳更新为接收到输入信息的时间,并尝试不同的随机数,多次进行特征值计算,使得计算得到的特征值可以满足下述公式:
SHA256(SHA256(version+prev_hash+merkle_root+ntime+nbits+x))<TARGET
其中,SHA256为计算特征值所用的特征值算法;version(版本号)为区块链中相关区块协议的版本信息;prev_hash为当前区块的父区块的区块头特征值;merkle_root为输入信息的特征值;ntime为更新时间戳的更新时间;nbits为当前难度,在一段时间内为定值,并在超出固定时间段后再次进行确定;x为随机数;TARGET为特征值阈值,该特征值阈值可以根据nbits确定得到。
这样,当计算得到满足上述公式的随机数时,便可将信息对应存储,生成区块头和区块主体,得到当前区块。随后,区块链所在节点根据数据共享系统中其他节点的节点标识,将新生成的区块分别发送给其所在的数据共享系统中的其他节点,由其他节点对新生成的区块进行校验,并在完成校验后将新生成的区块添加至其存储的区块链中。
图4示意性地示出了本申请实施例中基于区块链技术的数据处理过程时序图。其中,数据发布节点410、数据接收节点420和秘钥服务器430均可以作为区块链节点加入至区块链网络中,区块链网络中的各个区块链节点共同维护一个或多个区块链440用以进行数据共享。
秘钥服务器430可以根据一个安全参数K和一组用于描述系统属性的属性集合U,输出得到系统公钥MPK和系统私钥MSK。在一些可选的实施方式中,秘钥服务器430提供的秘钥服务功能可以配置于作为客户端的数据信息采集平台中。在另一些可选的实施方式中,秘钥服务器430也可以作为独立的区块链节点加入至区块链网络中。
数据接收节点420(可以是区块链网络中的任意的区块链节点)通过登录数据信息采集平台,向秘钥服务器430输入一组用于描述当前区块链节点的节点身份的属性集合W'(例如可以是区块链节点的身份ID),并将其发送至秘钥服务器430。秘钥服务器430根据属性集合W'、系统公钥MPK和系统私钥MSK输出与属性集合W'相对应的节点私钥D,并将节点私钥D返回给数据接收节点420。
秘钥服务器430可以将自身生成的系统公钥MPK对外开放,例如可以通过将其写入智能合约的方式保存在区块链440上。
数据发送节点410通过区块链平台获取区块链440上公开的系统公钥MPK,通过系统公钥MPK将一个待加密的共享数据M以及用来加密数据的一个属性集合W作为输入,通过属性加密算法输出密文CT。数据发送节点410将加密后的密文CT通过数据信息采集平台保存在区块链440上。
数据接收节点420通过区块链平台获取系统公钥MPK以及密文CT。然后利用上述提取的节点私钥D以及系统公钥MPK,通过属性解密算法对密文CT进行解密运算。如果其自身的属性集合W'包含在属性集合W内,说明该数据接收节点420是对共享数据M具有数据获取权限的区块链节点,数据接收节点420可以对密文CT完成解密,输出共享数据M。
本申请实施例以区块链节点的形式将数据拥有者和用户加入至区块链网络中,将各个区块链节点的数据实时采集上链,同时通过属性加密的方式快速实现各节点间的数据共享,保证收集信息的完整性、真实性。另外,基于属性加密的方法,只需将多个用户的属性加入密文中,不存在数据膨胀问题。
下面对本申请实施例提供的数据处理方法做出详细说明。其中,图5~图11涉及数据发布的相关处理方法,图12涉及数据接收的相关处理方法,图13~图14涉及节点身份认证的相关处理方法,图15~图16涉及智能合约部署的相关处理方法。
图5示意性地示出了本申请实施例提供的一种数据处理方法的步骤流程图,该方法的执行主体可以是区块链网络中的各个区块链节点。例如在疫情防控数据处理的应用场景中,防疫指挥部、国家疾病预防控制中心(CDC)、地方防疫部门、医院以及医院各个科室等不同地域的各级防疫部门可以作为区块链节点加入至区块链网络中。以上各个防疫部门可以通过智能手机、平板电脑、笔记本电脑、台式电脑等各种电子设备安装数据信息采集平台的客户端,并基于客户端执行本申请实施例提供的数据处理方法,从而实现各个防疫部门之间的数据共享。
如图5所示,本申请实施例提供的数据处理方法主要可以包括以下步骤:
步骤S510.确定对共享数据具有数据获取权限的至少一个目标区块链节点;
步骤S520.获取目标区块链节点的目标节点属性信息,并根据目标节点属性信息确定与共享数据相对应的属性信息集合;
步骤S530.利用属性信息集合对共享数据进行加密处理以得到属性加密数据;
步骤S540.将属性加密数据发布至区块链网络,以使目标区块链节点对属性加密数据进行解密处理后得到共享数据。
下面结合具体示例对该方法中的各个步骤做出详细说明。
在步骤S510中,确定对共享数据具有数据获取权限的至少一个目标区块链节点。
共享数据是由当前区块链节点获取到的需要向区块链网络中的其他区块链节点进行共享的数据。例如,共享数据可以是用户通过输入设备在当前区块链节点上输入的数据,也可以是当前区块链节点通过互联网由其他区块链节点或者其他网络设备上获取到的数据。
为了保证数据共享的安全性,在区块链网络上分布的各个区块链节点可以具有不同的数据权限。对于不同的共享数据,可以在区块链网络上中确定对其具有数据获取权限的目标区块链节点。
举例而言,当前区块链节点为某一医院科室,共享数据是由该医院科室采集到的病毒携带者的相关数据,如病毒携带者的姓名、年龄、诊疗记录等数据。对该医院科室的共享数据具有数据获取权限的目标区块链节点可以是该医院科室所属的医院、该医院所在地区的地方防疫部门、国家疾病预防控制中心以及防疫指挥部等机构。一般而言,防疫指挥部拥有获取所有防疫数据的权限,国家疾病预防控制中心拥有获取全国范围内所有医院防疫数据的权限,地方防疫部门拥有获取所辖地区内医院防疫数据的权限,医院拥有获取内部各个科室防疫数据的权限。与此同时,各个医院之间、各个地方防疫部门之间可以通过相互授权的方式获取对方的防疫数据。
在步骤S520中,获取目标区块链节点的目标节点属性信息,并根据目标节点属性信息确定与共享数据相对应的属性信息集合。
目标节点属性信息是用于对各个目标区块链节点进行差异化区分和定位的标识信息,例如可以包括目标区块链节点的节点名称和节点标识。在由步骤S510确定目标区块链节点后,本步骤可以将这些具有数据获取权限的节点的目标节点属性信息组成属性信息集合。
在步骤S530中,利用属性信息集合对共享数据进行加密处理以得到属性加密数据。
本步骤可以首先通过当前区块链节点获取区块链网络上公开的系统公钥,然后利用系统公钥以及属性信息集合对共享数据进行加密处理以得到与属性信息集合相对应的属性加密数据。
系统公钥通过区块链网络进行公开,位于区块链网络上的所有区块链节点可以使用完全公开的相同的系统公钥进行数据加密运算。相比于各个区块链节点各自持有不同的公钥,本申请实施例可以避免对同一共享数据利用不同公钥进行多次加密的问题,克服了数据膨胀以及资源占用的缺陷。
在利用系统公钥和属性信息集合对共享数据进行加密得到属性加密数据后,属性加密数据中可以携带与属性信息集合相关的信息,这部分信息可以用于限定能够对该属性加密数据进行解密的区块链节点的节点范围。
在步骤S540中,将属性加密数据发布至区块链网络,以使目标区块链节点对属性加密数据进行解密处理后得到共享数据。
属性加密数据可以通过广播的形式发布至区块链网络,由区块链网络上的部分或者全部的区块链节点进行接收。若接收到属性加密数据的区块链节点是对共享数据具有数据获取权限的目标区块链节点,那么可以对属性加密数据进行解密处理得到相应的共享数据。若接收到属性加密数据的区块链节点对共享数据不具有数据获取权限,那么该区块链节点则无法对属性加密数据进行解密,由此便能保护共享数据的安全性,避免数据泄露。
在本申请实施例提供的数据处理方法中,通过将目标区块链节点的目标节点属性信息组成属性信息集合,并利用属性信息集合对共享数据进行加密处理,可以在保证共享数据安全性的同时向目标区块链节点进行数据共享。该方法可以避免对同一共享数据的重复加密,降低数据处理的成本消耗,并提高数据处理效率。
图6示意性地示出了本申请实施例中在区块链网络上进行数据发布的方法步骤流程图,该方法的执行主体可以是区块链网络上的各个区块链节点,例如可以是能够直接采集防疫数据的医院或者医院下属的各个医院科室。如图6所示,在以上实施例的基础上,步骤S440中的将属性加密数据发布至区块链网络,可以包括步骤S610~步骤S630。
步骤S610.获取当前区块链节点的当前节点私钥。
节点私钥是通过秘钥服务器向各个区块链节点下发的用于进行数据加密和数据解密的秘钥。秘钥服务器也可以作为一个区块链节点加入至区块链网络中,从而可以通过区块链网络处理秘钥申请并向区块链节点下发秘钥。
当前区块链节点在通过秘钥服务器申请节点私钥时,可以首先获取当前区块链节点的当前节点属性信息,并根据当前节点属性信息确定私钥提取申请信息。当前节点属性信息可以是当前区块链节点的节点名称或者节点标识。然后,当前区块链节点可以将私钥提取申请信息发送至秘钥服务器,以使秘钥服务器根据系统公钥、系统私钥以及当前节点属性信息生成与当前节点属性信息相对应的当前节点私钥。当前区块链节点接收由秘钥服务器返回的当前节点私钥,并可以将当前节点私钥保存在本地客户端,从而可以在后续的处理过程中直接从本地客户端获取当前节点私钥。
步骤S620.利用当前节点私钥对属性加密数据进行电子签名处理,以得到携带属性加密数据和数字签名的数据发布交易信息。
为了验证数据来源的可靠性,本步骤利用当前节点私钥对属性加密数据进行电子签名处理,用以实现基于数字签名的数据来源校验。图7示意性地示出了本申请实施例中对属性加密数据进行电子签名的方法步骤流程图。如图7所示,对属性加密数据进行电子签名的方法主要可以包括步骤S710~步骤S740。具体而言:
步骤S710.获取当前区块链节点的当前节点属性信息和当前节点证书摘要,并获取区块链网络上公开的系统公钥。
当前节点属性信息作为差异化的标识信息,用于区分当前区块链节点和区块链网络中的其他区块链节点。当前节点证书摘要是通过摘要算法(如MD5、SHA1、SHA512等哈希算法)对当前区块链节点的节点身份证书进行摘要处理后得到的摘要信息,通过节点证书摘要可以查询到相应的节点身份证书,从而可以对当前区块链节点的身份有效性进行校验。
步骤S720.获取用于进行数据发布的智能合约的合约地址信息。
智能合约是一套以数字形式定义、传播、验证或执行的约定,包括合约参与方可以在上面执行这些约定的协议。智能合约允许在没有第三方的情况下进行可信交易,这些交易可追踪且不可逆转。合约地址信息是与智能合约一一对应的标识信息,通过合约地址信息可以唯一确定一个与之对应的智能合约。例如,可以通过摘要算法对智能合约进行摘要处理得到智能合约摘要,并将该智能合约摘要作为智能合约的合约地址信息。
步骤S730.确定包括属性加密数据、当前节点属性信息、当前节点证书摘要、系统公钥以及合约地址信息的数据发布交易内容。
由以上步骤获取到的属性加密数据、当前节点属性信息、当前节点证书摘要、系统公钥以及合约地址信息等相关信息可以确定用于进行数据发布的数据发布交易内容。
步骤S740.利用当前节点私钥对数据发布交易内容进行电子签名处理,以得到携带数据发布交易内容和数字签名的数据发布交易信息。
数字签名是只有作为信息发送者的当前区块链节点才能产生的别人无法伪造的一段数字串,这段数字串同时也是对当前区块链节点发送信息真实性的一个有效证明。在一些可选的实施方式中,本步骤中进行的电子签名处理可以是先对数据发布交易内容执行摘要算法得到摘要信息,然后利用当前节点私钥对摘要信息进行加密处理以得到数字签名,从而得到携带数据发布交易内容和数字签名的数据发布交易信息。
经过步骤S710~步骤S740进行的电子签名处理后,其他区块链节点可以通过对数字签名进行校验,确定数据发布交易信息的来源可靠性,也可以防止数据发布交易信息在数据传输过程中被篡改,从而保证了信息的安全性和可靠性。
步骤S630.将数据发布交易信息发布至区块链网络。
由步骤S620得到的数据发布交易信息可以通过广播的形式发布至区块链网络中,由区块链网络中的全部的或者部分的区块链节点进行接收和处理,处理完成后的数据将被保存在区块链中。
图8示意性地示出了本申请实施例中数据发布交易信息被发布至区块链网络后的处理方法步骤流程图,该方法的执行主体可以是区块链网络上的各个区块链节点,例如可以是地方防疫部门、国家疾病预防控制中心、防疫指挥部等进行防疫数据采集和汇总的防疫部门。如图8所示,数据发布交易信息在区块链网络上的处理方法主要可以包括步骤S810~步骤S830。
步骤S810.通过区块链网络接收由数据发布节点发出的数据发布交易信息。
数据发布节点可以是区块链网络中的任意节点,当一个区块链节点需要通过区块链网络发布共享数据时,便可以执行以上实施例中如图6所示的方法步骤,并作为数据发布节点向区块链网络广播数据发布交易信息。此时,当前区块链节点可以通过区块链网络接收这一数据发布交易信息。
步骤S820.对数据发布交易信息中携带的数字签名进行签名校验。
如以上实施例所述,当数据发布节点进行数据发布时,会利用其自身的节点私钥进行电子签名处理得到携带数据发布交易内容和数字签名的数据发布交易信息。因此,在当前区块链节点接收到这一数据发布交易信息时,可以对其数字签名进行签名校验,以验证数据来源的可靠性。图9示意性地示出了本申请实施例中对数字签名进行签名校验的方法步骤流程图。如图9所示,在以上实施例的基础上,步骤S820.对数据发布交易信息中携带的数字签名进行签名校验,可以进一步包括步骤S910~步骤S940。
步骤S910.获取区块链网络上公开的系统公钥;
步骤S920.利用系统公钥对数据发布交易信息中携带的数字签名进行解密处理,以得到待校验内容摘要;
步骤S930.对数据发布交易信息中携带的数据发布交易内容进行摘要处理以得到数据发布交易内容的发布交易内容摘要;
步骤S940.对待校验内容摘要和发布交易内容摘要进行一致性校验以得到数字签名的签名校验结果。
通过执行步骤S910~步骤S940可以得到数字签名的签名校验结果,提高了相关数据的安全性和可靠性。其中,数据发布节点进行电子签名处理时使用的节点私钥与区块链网络上公开的系统公钥可以组成一对非对称秘钥对。与此同时,当前区块链节点使用与数据发布节点相同的摘要算法对数据发布交易内容进行摘要处理,可以得到数据发布交易内容的发布交易内容摘要。如果数据来源无误,而且数据传输过程中没有经过篡改,那么通过系统公钥解密后得到的待校验内容摘要应当与加密前的发布交易内容摘要是一致的。因此,如果待校验内容摘要和发布交易内容摘要校验一致,便可以确定签名校验通过;如果待校验内容摘要和发布交易内容摘要校验不一致,则可以确定签名校验失败。
步骤S830.若校验通过,则执行数据发布交易信息中携带的数据发布交易内容以将数据发布交易内容中的属性加密数据保存至区块链中。
数据发布交易内容利用区块链网络上的智能合约进行执行,图10示意性地示出了本申请实施例中执行数据发布交易内容的方法步骤流程图。如图10所示,在以上各实施例的基础上,步骤S830中的执行数据发布交易信息中携带的数据发布交易内容以将数据发布交易内容中的属性加密数据保存至区块链,可以进一步包括步骤S1010~步骤S1070:
步骤S1010.根据数据发布交易信息中携带的数据发布交易内容调用用于进行数据发布的智能合约。
基于智能合约可以对数据发布交易内容中的各项数据进行如以下步骤的校验处理过程。
步骤S1020.基于智能合约对数据发布交易内容中的属性加密数据进行摘要处理以得到属性加密数据摘要。
在一些可选的实施方式中,可以将属性加密数据摘要作为关键字并将属性加密数据作为值,以键值对的形式写入智能合约中。本步骤针对待存储的属性加密数据,可以利用摘要算法对其进行摘要处理得到相应的属性加密数据摘要。
步骤S1030.根据属性加密数据摘要确定属性加密数据的数据状态,数据状态为已发布状态或未发布状态。
通过属性加密数据摘要在区块链上查询属性加密数据,若查询到相关数据,则确定属性加密数据的数据状态为已发布状态,即相关数据已经保存在区块链中,无需再次发布,当前数据发布交易执行失败;若未查询到相关数据,则确定属性加密数据的数据状态为未发布状态,可以继续执行以下步骤进行数据发布。
步骤S1040.若数据状态为未发布状态,则根据数据发布交易内容中的发布节点证书摘要获取数据发布节点的发布节点证书。
区块链网络中的各个区块链节点可以通过证书授权机构(CertificateAuthority,简称CA)进行身份认证,得到由CA机构颁发的用于证实节点身份真实性和可靠性的节点身份证书。数据发布节点在发起数据发布交易时,可以在数据发布交易内容中添加对其发布节点证书进行摘要处理后得到的发布节点证书摘要,用以进行身份校验。本步骤根据发布节点证书摘要可以查询得到对应的发布节点证书。
步骤S1050.获取发布节点证书中的节点公钥,并确定节点公钥与数据发布交易内容中的系统公钥是否一致。
CA机构在进行身份认证时,可以对区块链节点用于进行数据加密、解密的节点公钥和节点私钥进行认证。本步骤可以从发布节点证书中获取数据发布节点的节点公钥,并对该节点公钥与数据发布交易内容中的系统公钥(即区块链网络上公开的系统公钥)进行一致性校验。在数据发布节点身份认证无误的情况下,该节点公钥与系统公钥应当是一致的。如果二者校验不一致,则数据发布交易执行失败。
步骤S1060.若节点公钥与系统公钥一致,则将与属性加密数据摘要进行关联后的属性加密数据写入智能合约,以得到数据发布交易内容的执行结果。
通过将属性加密数据与属性加密数据摘要进行关联,可以在需要从区块链网络上查询数据时以属性加密数据摘要作为关键字进行查询。
步骤S1070.将数据发布交易内容的执行结果保存至区块链。
将数据加密数据写入智能合约后可以得到数据发布交易执行成功的执行结果,如果前述步骤中任意一处校验失败,可以得到数据发布交易执行失败的执行结果,相关的执行结果可以被保存在区块链上。
图11示意性地示出了本申请实施例中保存数据发布交易内容的方法步骤流程图。如图11所示,在以上各实施例的基础上,步骤S1070.将数据发布交易内容的执行结果保存至区块链,可以进一步包括步骤S1110~步骤S1150。
步骤S1110.将数据发布交易内容的执行结果保存在待共识的当前区块的区块主体中。
组成区块链的每个区块都包括有区块头和区块主体两部分数据存储区域,其中区块主体用于存储当前区块中记录的全部数据。区块头用于存储当前区块与上一区块的链接信息,利用区块头中存储的数据可以将所有区块逐一链接形成完整的区块链。
步骤S1120.在满足区块生成条件时,获取区块链网络中上一区块的区块头数据,并根据区块头数据计算得到父区块特征值。
在满足一定的区块生成条件条件时,本步骤可以获取区块链网络中的上一区块(即最近生成的新的区块)的区块头数据,根据该区块头数据可以计算得到当前区块的父区块特征值。例如可以使用SHA256算法对上一区块的区块头数据进行哈希运算得到一哈希值,以作为当前区块的父区块特征值。本步骤中的区块生成条件可以是距离上一区块的生成时间达到一时间阈值,也可以是当前区块的区块主体中存储的数据达到一数据量阈值,另外还可以是其他的用于触发新区块生成的任意预设条件,本申请实施例对此不做特殊限定。
步骤S1130.根据当前区块的区块主体中保存的数据计算当前区块的区块主体特征值。
当前区块的区块主体中存储有基于一段时间内由不同节点对数据发布交易、数据查询交易等进行处理形成的数据。根据区块主体中保存的数据,本步骤可以得到一哈希值作为当前区块的区块主体特征值。以哈希编码为例,区块主体中的所有数据可以以默克尔树(Merkle Tree)的形式保存在区块主体中。具体可以将数据保存在默克尔树的叶子节点中,将每两个相邻的叶子节点中保存的数据进行组合后再次做哈希运算即可得到一个子节点中保存的哈希值。采用这种对子节点存储的哈希值两两组合逐层向上做哈希运算的方式,最终可以得到一个根节点哈希值,该根节点哈希值即可以作为当前区块的区块主体特征值。
步骤S1140.将父区块特征值、区块主体特征值以及当前时间的时间戳保存在当前区块的区块头中。
由步骤S1120和步骤S1130分别计算得到父区块特征值和区块主体特征值后,本步骤可以根据当前时间生成一时间戳,该时间戳用于记录当前区块的生成时间。然后可以将父区块特征值、区块主体特征值以及时间戳共同保存在当前区块的区块头中。
步骤S1150.将当前区块发布至区块链网络以对当前区块进行共识认证,并在认证通过时将当前区块链接至区块链上。
完成区块头数据的保存后,本步骤将把由区块头和区块主体构成的当前区块广播至区块链网络。在通过共识认证后,由区块链网络中的全部或者部分区块链节点对当前区块进行保存,即完成当前区块在区块链的入链过程。
下面对以上实施例中涉及的数据发布的方法在疫情防控应用场景中的应用做出说明。
在一个应用场景中,医院科室(如传染科、呼吸科等等)通过数据信息采集平台可以在区块链网络上发布病毒携带者数据,以向该医院科室所在的医院、所在地区的地区防疫部门等其他防疫部门进行数据共享。
医院科室将病毒携带者数据通过平台上链的具体流程如下:
1.医院科室通过数据信息采集平台获取区块链上公开的系统公钥MPK,然后医院科室对病毒携带数据通过属性加密算法进行属性加密,输入的参数有系统公钥MPK、待加密的病毒携者带者数据以及对该病毒携带者数据具有数据获取权限的区块链节点的属性集合。该属性集合例如可以包括该医院科室所在医院的医院ID、地方防疫部门ID、CDC ID、防疫指挥部ID等等。经过属性加密后可以输出密文CT。
2.以交易的形式将密文CT用该医院科室的节点私钥进行电子签名后发送到区块链网络上,交易内容主要包括密文CT、医院科室ID、疫情防控智能合约地址ID、医院科室的用户证书摘要以及公钥信息。
3.区块链网络收到交易后,通过系统公钥校验交易签名的合法性,校验通过后调用虚拟机执行交易。
4.交易执行过程中,通过疫情防控智能合约地址ID检查用来签约的智能合约是否部署。如果没有,则返回执行失败结果。
5.调用智能合约上传操作上传采集的病毒携带者相关数据:
a)基于上述密文CT生成CT数据摘要哈希,通过摘要哈希检查是否已经上传过该数据,若有,返回执行失败结果;
b)通过用户证书摘要哈希查询证书,若查询失败,返回执行失败结果;
c)比较证书里的公钥是否和交易里的公钥信息一致性,若不一致,返回执行失败结果;
d)将CT数据摘要哈希作为关键字,上述密文CT、医院科室ID、交易哈希作为值写入智能合约。
6.对交易执行结果进行区块链共识,共识达成后,将结果以及交易写入账本。
7.区块链平台返回采集数据信息在链上上传结果以及采集数据摘要哈希和交易哈希。
8.防疫部门数据信息采集平台存储采集数据加密信息以及链上返回的信息,并告知科室以及医院。
在另一个应用场景中,不同防疫部门之间可以通过区块链平台相互授权进行数据共享。防疫部门进行数据共享的具体流程如下:
1.地方防疫部门通过平台可以将自己获取的病毒携带者采集数据通过属性加密算法进行加密,输入的参数有系统公钥MPK、待加密的病毒携带者数据以及属性集合,即被授权防疫部门ID。经过加密后输出密文CT。
2.以交易的形式将密文CT用该地方防疫部门的节点私钥进行电子签名后发送到区块链上,交易内容主要包括属性加密后的密文CT、防疫部门ID,疫情防控智能合约地址ID、防疫部门用户证书摘要以及公钥信息。
3.区块链平台收到上述交易后,校验交易的签名合法性。若校验失败,则返回校验失败结果;
4.区块链共识节点通过将上述交易打包进区块进行执行和共识。
5.在交易执行过程中:
a)通过智能合约地址ID查询智能合约是否部署;如果没有部署,返回执行失败结果;
b)通过地方防疫部门用户证书摘要哈希查询证书;若查询失败,返回执行失败结果;若查询成功,比较证书里的公钥和交易里的公钥信息是否一致;若不一致,则返回执行失败结果。
c)当上述校验通过后,将被授权的加密数据写到智能合约中。
6.区块链平台对上述执行结果进行共识后写入账本。
7.区块链平台将交易以及交易执行结果返回防疫部门数据信息采集平台。
8.防疫部门数据信息采集平台告知地方防疫部门和被授权方。
9.被授权方收到通知后,可以解析链上返回的授权数据,得到原始数据。
通过以上实施例可以实现在区块链网络上进行的数据发布,区块链网络中的区块链节点可以获取区块链上保存的加密数据,在具有数据获取权限时,可以对相关加密数据进行解密以得到相应的原始数据。
图12示意性地示出了本申请实施例中进行数据获取的方法步骤流程图。该方法的执行主体可以是区块链网络上查询数据的作为数据接收节点的区块链节点。如图12所示,涉及数据接收的数据处理方法主要可以包括以下步骤:
步骤S1210.通过区块链网络获取区块链上保存的属性加密数据,并获取区块链网络上公开的系统公钥;
步骤S1220.获取当前区块链节点的当前节点属性信息和当前节点私钥;
步骤S1230.根据系统公钥和当前节点私钥对属性加密数据进行解密处理,以确定当前节点属性信息是否包括在与属性加密数据相对应的属性信息集合中;
步骤S1240.若当前节点属性信息包括在属性信息集合中,则通过当前区块链节点输出对属性加密数据进行解密处理得到的共享数据。
与数据发布过程中进行属性加密相对应的,具有数据获取权限的区块链节点在接收数据时,可以通过属性解密获取原始的共享数据。而对于不具有数据获取权限的其他区块链节点则无法完成解密,因而可以兼顾共享数据的便捷性和安全性。
下面对以上实施例中涉及的数据接收的方法在疫情防控应用场景中的应用做出说明。
在一个应用场景中,医院可以通过平台查询防疫病毒携带者数据,具体流程如下:
1.医院通过平台以交易的形式查询区块链上的对防疫数据加密形成的密文CT和系统公钥MPK,交易内容主要包括医院ID、疫情防控智能合约地址ID、采集病毒携带者数据摘要哈希(即属性加密数据摘要)、医院用户证书摘要哈希以及系统公钥MPK。
2.区块链平台收到上述交易后,校验交易的签名合法性,校验失败则返回校验失败结果。
3.区块链共识节点通过将上述交易打包进区块进行执行和共识。
4.交易执行过程中:
a)通过智能合约地址ID查询智能合约是否部署;如果没有部署,则返回执行失败结果;
b)通过医院用户证书摘要哈希查询证书;若查询失败,则返回执行失败结果;比较证书里的公钥和交易里的公钥信息是否一致;若不一致,则返回执行失败结果;
c)通过采集病毒携带者数据摘要哈希查询病毒携带者加密数据对应的密文CT;若查询失败,则返回执行失败结果。
5.区块链平台对上述执行结果进行共识后写入账本。
6.区块链平台将交易以及交易执行结果返回防疫部门数据采集平台。
7.防疫部门数据采集平台告知医院。
8.医院通过属性解密算法对获取的密文CT进行解密,输入参数为医院通过平台提取的节点私钥D、系统公钥MPK以及密文CT;如果医院ID在密文CT对应的属性信息集合内,说明该医院有权读取数据,经过解密后可以输出病毒携带者数据。
当有新的节点需要加入至区块链网络时,可以将其作为身份认证节点,在对其进行身份认证后形成能够进行数据发布和数据接收的新的区块链节点。图13示意性地示出了本申请实施例中对新节点进行身份认证的方法步骤流程图,该方法的执行主体是区块链网络中对新加入节点进行身份认证的各个区块链节点。如图13所示,该方法主要可以包括步骤S1310~步骤S1330。
步骤S1310.通过区块链网络接收由身份认证节点发出的身份认证交易信息。
身份认证节点可以是作为证书授权机构(即CA机构)的区块链节点,也可以是从CA机构获取节点身份证书后的请求加入区块链网络的任意节点。当身份认证节点向区块链网络广播身份认证交易信息时,包括当前区块链节点在内的各个区块链节点可以通过区块链网络接收这一身份认证交易信息,并对其进行认证处理。
步骤S1320.对身份认证交易信息中携带的数字签名进行签名校验。
身份认证节点在请求进行身份认证时,会利用其自身的节点私钥进行电子签名处理得到携带身份认证交易内容和数字签名的身份认证交易信息。因此,在当前区块链节点接收到这一身份认证交易信息时,可以对其数字签名进行签名校验,以验证数据来源的可靠性。本步骤中进行的签名校验的方法与图9所示的方法相似,此处不再赘述。
步骤S1330.若校验通过,则执行身份认证交易信息中携带的身份认证交易内容以将身份认证交易内容中的节点身份证书保存至区块链中。
身份认证交易内容利用区块链网络上的智能合约进行执行,图14示意性地示出了本申请实施例中执行身份认证交易内容的方法步骤流程图。如图14所示,在以上各实施例的基础上,步骤S1330中的执行身份认证交易信息中携带的身份认证交易内容以将身份认证交易内容中的节点身份证书保存至区块链中,可以进一步包括步骤S1410~步骤S1450。
步骤S1410.根据身份认证交易信息中携带的身份认证交易内容调用用于进行身份认证的智能合约。
基于智能合约可以对身份认证交易内容中的各项数据进行如以下步骤的校验处理过程。
步骤S1420.基于智能合约对身份认证交易内容中的节点身份证书进行摘要处理以得到节点身份证书摘要。
在一些可选的实施方式中,可以将节点身份证书摘要作为关键字并将节点身份证书作为值,以键值对的形式写入智能合约中。本步骤针对待保存的节点身份证书,可以利用摘要算法对其进行摘要处理得到相应的节点身份证书摘要。
步骤S1430.根据节点身份证书摘要确定节点身份证书的证书状态,证书状态为已保存状态或未保存状态。
通过节点身份证书摘要在区块链上查询节点身份证书,若查询到相关证书,则确定节点身份证书的证书状态为已保存状态,即相关证书已经保存在区块链中,无需再次保存,当前身份认证交易执行失败;若未查询到相关证书,则确定节点身份证书的证书状态为未保存状态,可以继续执行以下步骤进行节点身份认证。
步骤S1440.若证书状态为未保存状态,则将与节点身份证书摘要进行关联后的节点身份证书写入智能合约,以得到身份认证交易内容的执行结果。
通过将节点身份证书与节点身份证书摘要进行关联,可以在需要从区块链网络上验证节点身份时以节点身份证书摘要作为关键字进行查询。
步骤S1450.将身份认证交易内容的执行结果保存至区块链。
将节点身份证书写入智能合约后可以得到身份认证交易执行成功的执行结果,如果前述步骤中任意一处校验失败,可以得到身份认证交易执行失败的执行结果,相关的执行结果可以被保存在区块链上。
下面对以上实施例中涉及的节点身份认证的方法在疫情防控应用场景中的应用做出说明。
在一个应用场景中,医院科室、医院、地方防疫部门、国家疾病预防控制中心、防疫指挥部等各种防疫部门可以通过在区块链上保存节点身份证书以加入区块链网络。以医院科室为例,该过程的具体流程如下:
1.医院科室通过数据信息采集平台进行实名认证后,数据信息采集平台为医院科室生成包括系统公钥和节点私钥的非对称公私钥,将医院科室的身份信息通过节点私钥签名,然后将系统公钥和医院科室的身份信息以及签名向CA机构申请证书。
2.CA机构对收到的申请进行实名认证后,给医院科室颁发用户证书(即节点身份证书),并将用户证书打包成交易上链。
3.区块链收到交易后,校验交易的合法性,主要是CA机构对交易的数字签名,校验通过后调用虚拟机执行交易。
4.在执行过程中,调用智能合约开启证书存储;首先对用户证书进行摘要哈希计算,然后通过摘要哈希(即节点身份证书摘要)查询是否已经存在证书;若存在,返回执行失败结果;校验通过后将摘要哈希作为关键字Key并将证书作为值Value写入智能合约。
5.对智能合约写入结果进行区块链共识,达成共识后写入账本。
6.返回上链结果以及证书摘要哈希给CA机构。
7.CA机构返回用户证书以及证书摘要哈希给平台,平台存储用户证书以及证书摘要哈希,并告知医院科室;医院科室可以选择存储用户证书以及证书摘要哈希。
以上实施例中涉及的数据发布、数据接收、节点身份认证等方法均需要通过区块链网络上的智能合约来执行,因此区块链网络的搭建以及相关业务功能的实现都离不开智能合约的部署。图15示意性地示出了本申请实施例中进行智能合约部署的方法步骤流程图。该方法的执行主体是区块链网络中对新部署智能合约进行校验和共识的各个区块链节点。如图15所示,该方法主要可以包括步骤S1510~步骤S1530。
步骤S1510.通过区块链网络接收由合约部署节点发出的合约部署交易信息。
合约部署节点可以是区块链网络上进行智能合约部署的任意区块链节点,具体可以由作为客户端的数据信息采集平台来执行。当身份认证节点向区块链网络广播合约部署交易信息时,包括当前区块链节点在内的各个区块链节点可以通过区块链网络接收这一合约部署交易信息,并对其进行认证处理。
步骤S1520.对合约部署交易信息中携带的数字签名进行签名校验。
合约部署节点在请求进行合约部署时,会利用其自身的节点私钥进行电子签名处理得到携带合约部署交易内容和数字签名的合约部署交易信息。因此,在当前区块链节点接收到这一合约部署交易信息时,可以对其数字签名进行签名校验,以验证数据来源的可靠性。本步骤中进行的签名校验的方法与图9所示的方法相似,此处不再赘述。
步骤S1530.若校验通过,则执行合约部署交易信息中携带的合约部署交易内容以将合约部署交易内容中的智能合约保存至区块链中。
图16示意性地示出了本申请实施例中执行合约部署交易内容的方法步骤流程图。如图16所示,在以上各实施例的基础上,步骤S1530中的执行合约部署交易信息中携带的合约部署交易内容以将合约部署交易内容中的智能合约保存至区块链中,可以进一步包括步骤S1610~步骤S1650。
步骤S1610.执行合约部署交易信息中携带的合约部署交易内容,以对合约部署交易内容中的智能合约进行摘要处理以得到作为合约地址信息的智能合约摘要。
在一些可选的实施方式中,可以将合约地址信息(即智能合约摘要)作为关键字并将智能合约作为值,以键值对的形式保存在区块链中。本步骤针对待部署的智能合约,可以利用摘要算法对其进行摘要处理得到相应的智能合约摘要。
步骤S1620.根据合约地址信息确定智能合约的合约状态,合约状态为已部署状态或未部署状态。
通过合约地址信息在区块链上查询智能合约,若查询到相关智能合约,则确定智能合约的合约状态为已部署状态,即相关智能合约已经部署在区块链中,无需再次部署,当前合约部署交易执行失败;若未查询到相关智能合约,则确定智能合约的合约状态为未部署状态,可以继续执行以下步骤进行合约部署。
步骤S1630.若合约状态为未部署状态,则根据合约部署交易内容中的部署节点证书摘要获取合约部署节点的部署节点证书。
合约部署节点已通过证书授权机构(Certificate Authority,简称CA)进行身份认证,得到由CA机构颁发的用于证实节点身份真实性和可靠性的部署节点证书。合约部署节点在发起合约部署交易时,可以在合约部署交易内容中添加对其部署节点证书进行摘要处理后得到的部署节点证书摘要,用以进行身份校验。本步骤根据部署节点证书摘要可以查询得到对应的部署节点证书。
步骤S1640.获取部署节点证书中的节点公钥,并确定节点公钥与合约部署交易内容中的系统公钥是否一致。
CA机构在进行身份认证时,可以对合约部署节点用于进行数据加密、解密的节点公钥和节点私钥进行认证。本步骤可以从部署节点证书中获取合约部署节点的节点公钥,并对该节点公钥与合约部署交易内容中的系统公钥(即区块链网络上公开的系统公钥)进行一致性校验。在合约部署节点身份认证无误的情况下,该节点公钥与系统公钥应当是一致的。如果二者校验不一致,则合约部署交易执行失败。
步骤S1650.若节点公钥与系统公钥一致,则将与合约地址信息进行关联后的智能合约保存至区块链。
通过将智能合约与合约地址信息进行关联,可以在需要从区块链网络上调用智能合约时以合约地址信息作为关键字进行查询。
下面对以上实施例中涉及的智能合约部署的方法在疫情防控应用场景中的应用做出说明。
在一个应用场景中,防疫部门的数据信息采集平台可以根据需要疫情防控智能合约进行部署。具体流程如下:
1.防疫部门数据信息采集平台以交易的形式将疫情防控智能合约部署到区块链上,交易内容包括疫情防控智能合约、平台证书摘要哈希以及公钥;
2.区块链平台收到交易后,校验交易的签名合法性,校验失败后返回校验失败结果;
3.区块链共识节点通过将上述交易打包进区块进行执行和共识;
4.交易执行过程中:
a)通过疫情防控智能合约数据生成哈希摘要,并以哈希摘要为合约地址ID;
b)通过合约地址ID检查合约是否已经部署;如果已经部署,则返回执行失败结果;
c)通过平台证书摘要哈希查询证书;若查询失败,则返回执行失败结果;若查询成功,则比较证书里的公钥和交易里的公钥信息是否一致;若不一致,则返回执行失败结果;
d)当且仅当上述校验都成功后,将以合约地址ID为关键字,将疫情防控智能合约数据为值写入缓存;
5.区块链平台对上述交易执行结果进行共识后将交易以及智能合约写入账本;
6.区块链平台将交易以及交易执行结果,疫情防控智能合约地址ID返回平台;
7.平台存储交易、交易执行结果以及的智能合约地址ID。
根据以上各实施例和应用场景,本申请可以基于区块链技术提供防疫部门数据信息采集平台,通过平台将各防疫部门身份上链留痕。每个防疫部门设立一个独立的节点,采集当地不同类别的数据,并通过属性加密的授权方式快速实现各节点间跨区域、跨行业数据验证和查询,大大降低了加密计算开销以及存储开销,同时保证收集信息的完整、实时、开放和透明,为疫情防控工作赢得更多时间,有助于提升平台服务质量和降低相关安全风险。
应当注意,尽管在附图中以特定顺序描述了本申请中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等。
以下介绍本申请的装置实施例,可以用于执行本申请上述实施例中的数据处理方法。
图17示意性地示出了本申请实施例提供的一种数据处理装置的组成结构框图。如图17所示,数据处理装置1700主要可以包括:
节点确定模块1710,被配置为确定对共享数据具有数据获取权限的至少一个目标区块链节点;
信息获取模块1720,被配置为获取目标区块链节点的目标节点属性信息,并根据目标节点属性信息确定与共享数据相对应的属性信息集合;
数据加密模块1730,被配置为利用属性信息集合对共享数据进行加密处理以得到属性加密数据;
数据发布模块1740,被配置为将属性加密数据发布至区块链网络,以使目标区块链节点对属性加密数据进行解密处理后得到共享数据。
在本申请的一些实施例中,基于以上各实施例,数据加密模块1730可以包括:
公钥获取单元,被配置为获取区块链网络上公开的系统公钥;
属性加密单元,被配置为利用系统公钥以及属性信息集合对共享数据进行加密处理以得到与共享数据相对应的属性加密数据。
在本申请的一些实施例中,基于以上各实施例,数据发布模块1740可以包括:
私钥获取单元,被配置为获取当前区块链节点的当前节点私钥;
电子签名单元,被配置为利用当前节点私钥对属性加密数据进行电子签名处理,以得到携带属性加密数据和数字签名的数据发布交易信息;
信息发布单元,被配置为将数据发布交易信息发布至区块链网络。
在本申请的一些实施例中,基于以上各实施例,私钥获取单元包括:
属性获取子单元,被配置为获取当前区块链节点的当前节点属性信息,并根据当前节点属性信息确定私钥提取申请信息;
私钥生成子单元,被配置为将私钥提取申请信息发送至秘钥服务器,以使秘钥服务器根据系统公钥、系统私钥以及当前节点属性信息生成与当前节点属性信息相对应的当前节点私钥;
私钥接收子单元,被配置为接收由秘钥服务器返回的当前节点私钥。
在本申请的一些实施例中,基于以上各实施例,电子签名单元包括:
第一获取子单元,被配置为获取当前区块链节点的当前节点属性信息和当前节点证书摘要,并获取区块链网络上公开的系统公钥;
第二获取子单元,被配置为获取用于进行数据发布的智能合约的合约地址信息;
内容确定子单元,被配置为确定包括属性加密数据、当前节点属性信息、当前节点证书摘要、系统公钥以及合约地址信息的数据发布交易内容;
电子签名子单元,被配置为利用当前节点私钥对数据发布交易内容进行电子签名处理,以得到携带数据发布交易内容和数字签名的数据发布交易信息。
在本申请的一些实施例中,基于以上各实施例,数据处理装置还包括:
发布交易信息接收模块,被配置为通过区块链网络接收由数据发布节点发出的数据发布交易信息;
发布交易签名校验模块,被配置为对数据发布交易信息中携带的数字签名进行签名校验;
发布交易执行模块,被配置为若校验通过,则执行数据发布交易信息中携带的数据发布交易内容以将数据发布交易内容中的属性加密数据保存至区块链中。
在本申请的一些实施例中,基于以上各实施例,发布交易签名校验模块包括:
公钥获取单元,被配置为获取区块链网络上公开的系统公钥;
发布交易签名解密单元,被配置为利用系统公钥对数据发布交易信息中携带的数字签名进行解密处理,以得到待校验内容摘要;
发布交易摘要处理单元,被配置为对数据发布交易信息中携带的数据发布交易内容进行摘要处理以得到数据发布交易内容的发布交易内容摘要;
发布交易一致性校验单元,被配置为对待校验内容摘要和发布交易内容摘要进行一致性校验以得到数字签名的签名校验结果。
在本申请的一些实施例中,基于以上各实施例,发布交易执行模块包括:
发布交易合约调用单元,被配置为根据数据发布交易信息中携带的数据发布交易内容调用用于进行数据发布的智能合约;
加密数据摘要处理单元,被配置为基于智能合约对数据发布交易内容中的属性加密数据进行摘要处理以得到属性加密数据摘要;
数据状态确定单元,被配置为根据属性加密数据摘要确定属性加密数据的数据状态,数据状态为已发布状态或未发布状态;
发布节点证书获取单元,被配置为若数据状态为未发布状态,则根据数据发布交易内容中的发布节点证书摘要获取数据发布节点的发布节点证书;
发布交易公钥校验单元,被配置为获取发布节点证书中的节点公钥,并确定节点公钥与数据发布交易内容中的系统公钥是否一致;
属性加密数据写入单元,被配置为若节点公钥与系统公钥一致,则将与属性加密数据摘要进行关联后的属性加密数据写入智能合约,以得到数据发布交易内容的执行结果;
数据发布交易保存单元,被配置为将数据发布交易内容的执行结果保存至区块链。
在本申请的一些实施例中,基于以上各实施例,数据发布交易保存单元包括:
区块主体保存子单元,被配置为将数据发布交易内容的执行结果保存在待共识的当前区块的区块主体中;
父区块计算子单元,被配置为在满足区块生成条件时,获取区块链网络中上一区块的区块头数据,并根据区块头数据计算得到父区块特征值;
区块主体计算子单元,被配置为根据当前区块的区块主体中保存的数据计算当前区块的区块主体特征值;
区块头保存子单元,被配置为将父区块特征值、区块主体特征值以及当前时间的时间戳保存在当前区块的区块头中;
共识认证子单元,被配置为将当前区块发布至区块链网络以对当前区块进行共识认证,并在认证通过时将当前区块链接至区块链上。
在本申请的一些实施例中,基于以上各实施例,数据处理装置还包括:
属性加密数据获取模块,被配置为通过区块链网络获取区块链上保存的属性加密数据,并获取区块链网络上公开的系统公钥;
当前节点属性获取模块,被配置为获取当前区块链节点的当前节点属性信息和当前节点私钥;
属性加密数据解密模块,被配置为根据系统公钥和当前节点私钥对属性加密数据进行解密处理,以确定当前节点属性信息是否包括在与属性加密数据相对应的属性信息集合中;
共享数据输出模块,被配置为若当前节点属性信息包括在属性信息集合中,则通过当前区块链节点输出对属性加密数据进行解密处理得到的共享数据。
在本申请的一些实施例中,基于以上各实施例,数据处理装置还包括:
认证交易信息接收模块,被配置为通过区块链网络接收由身份认证节点发出的身份认证交易信息;
认证交易签名校验模块,被配置为对身份认证交易信息中携带的数字签名进行签名校验;
认证交易执行模块,被配置为若校验通过,则执行身份认证交易信息中携带的身份认证交易内容以将身份认证交易内容中的节点身份证书保存至区块链中。
在本申请的一些实施例中,基于以上各实施例,认证交易执行模块包括:
认证交易合约调用单元,被配置为根据身份认证交易信息中携带的身份认证交易内容调用用于进行身份认证的智能合约;
身份证书摘要处理单元,被配置为基于智能合约对身份认证交易内容中的节点身份证书进行摘要处理以得到节点身份证书摘要;
证书状态确定单元,被配置为根据节点身份证书摘要确定节点身份证书的证书状态,证书状态为已保存状态或未保存状态;
节点身份证书写入单元,被配置为若证书状态为未保存状态,则将与节点身份证书摘要进行关联后的节点身份证书写入智能合约,以得到身份认证交易内容的执行结果;
身份认证交易保存单元,被配置为将身份认证交易内容的执行结果保存至区块链。
在本申请的一些实施例中,基于以上各实施例,数据处理装置还包括:
部署交易信息接收模块,被配置为通过区块链网络接收由合约部署节点发出的合约部署交易信息;
部署交易签名校验模块,被配置为对合约部署交易信息中携带的数字签名进行签名校验;
部署交易执行模块,被配置为若校验通过,则执行合约部署交易信息中携带的合约部署交易内容以将合约部署交易内容中的智能合约保存至区块链中。
在本申请的一些实施例中,基于以上各实施例,部署交易执行模块包括:
智能合约摘要处理单元,被配置为执行合约部署交易信息中携带的合约部署交易内容,以对合约部署交易内容中的智能合约进行摘要处理以得到作为合约地址信息的智能合约摘要;
合约状态确定单元,被配置为根据合约地址信息确定智能合约的合约状态,合约状态为已部署状态或未部署状态;
部署节点证书获取单元,被配置为若合约状态为未部署状态,则根据合约部署交易内容中的部署节点证书摘要获取合约部署节点的部署节点证书;
部署交易公钥校验单元,被配置为获取部署节点证书中的节点公钥,并确定节点公钥与合约部署交易内容中的系统公钥是否一致;
部署交易保存单元,被配置为若节点公钥与系统公钥一致,则将与合约地址信息进行关联后的智能合约保存至区块链。
本申请各实施例中提供的数据处理装置的具体细节已经在对应的方法实施例中进行了详细的描述,此处不再赘述。
图18示出了适于用来实现本申请实施例的电子设备的计算机系统的结构示意图。
需要说明的是,图18示出的电子设备的计算机系统1800仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图18所示,计算机系统1800包括中央处理单元(Central Processing Unit,CPU)1801,其可以根据存储在只读存储器(Read-Only Memory,ROM)1802中的程序或者从存储部分1808加载到随机访问存储器(Random Access Memory,RAM)1803中的程序而执行各种适当的动作和处理。在RAM 1803中,还存储有系统操作所需的各种程序和数据。CPU1801、ROM 1802以及RAM 1803通过总线1804彼此相连。输入/输出(Input/Output,I/O)接口1805也连接至总线1804。
以下部件连接至I/O接口1805:包括键盘、鼠标等的输入部分1806;包括诸如阴极射线管(Cathode Ray Tube,CRT)、液晶显示器(Liquid Crystal Display,LCD)等以及扬声器等的输出部分1807;包括硬盘等的存储部分1808;以及包括诸如LAN(Local AreaNetwork,局域网)卡、调制解调器等的网络接口卡的通信部分1809。通信部分1809经由诸如因特网的网络执行通信处理。驱动器1810也根据需要连接至I/O接口1805。可拆卸介质1811,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1810上,以便于从其上读出的计算机程序根据需要被安装入存储部分1808。
特别地,根据本申请的实施例,各个方法流程图中所描述的过程可以被实现为计算机软件程序。例如,本申请的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分1809从网络上被下载和安装,和/或从可拆卸介质1811被安装。在该计算机程序被中央处理单元(CPU)1801执行时,执行本申请的系统中限定的各种功能。
需要说明的是,本申请实施例所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(Erasable Programmable Read Only Memory,EPROM)、闪存、光纤、便携式紧凑磁盘只读存储器(Compact Disc Read-Only Memory,CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本申请的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本申请实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、触控终端、或者网络设备等)执行根据本申请实施方式的方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。
Claims (14)
1.一种数据处理方法,其特征在于,包括:
确定对共享数据具有数据获取权限的多个目标区块链节点;
获取所述目标区块链节点的目标节点属性信息,并将所述多个目标区块链节点的目标节点属性信息组成属性信息集合;
获取区块链网络上公开的系统公钥;
利用所述系统公钥以及所述属性信息集合对所述共享数据进行加密处理以得到与所述共享数据相对应的属性加密数据;
获取当前区块链节点的当前节点私钥,所述当前节点私钥与所述区块链网络上公开的系统公钥组成非对称秘钥;
利用所述当前节点私钥对所述属性加密数据进行电子签名处理,以得到携带所述属性加密数据和数字签名的数据发布交易信息;
将所述数据发布交易信息发布至区块链网络,以使所述目标区块链节点对所述属性加密数据进行解密处理后得到所述共享数据;
通过所述区块链网络获取区块链上保存的属性加密数据,并获取所述区块链网络上公开的系统公钥;
获取当前区块链节点的当前节点属性信息和当前节点私钥;
根据所述系统公钥和所述当前节点私钥对所述属性加密数据进行解密处理,以确定所述当前节点属性信息是否包括在与所述属性加密数据相对应的属性信息集合中;
若所述当前节点属性信息包括在所述属性信息集合中,则通过所述当前区块链节点输出对所述属性加密数据进行解密处理得到的共享数据。
2.根据权利要求1所述的数据处理方法,其特征在于,所述获取当前区块链节点的当前节点私钥,包括:
获取当前区块链节点的当前节点属性信息,并根据所述当前节点属性信息确定私钥提取申请信息;
将所述私钥提取申请信息发送至秘钥服务器,以使所述秘钥服务器根据系统公钥、系统私钥以及所述当前节点属性信息生成与所述当前节点属性信息相对应的当前节点私钥;
接收由所述秘钥服务器返回的所述当前节点私钥。
3.根据权利要求1所述的数据处理方法,其特征在于,所述利用所述当前节点私钥对所述属性加密数据进行电子签名处理,以得到带有数字签名的数据发布交易信息,包括:
获取所述当前区块链节点的当前节点属性信息和当前节点证书摘要,并获取所述区块链网络上公开的系统公钥;
获取用于进行数据发布的智能合约的合约地址信息;
确定包括所述属性加密数据、所述当前节点属性信息、所述当前节点证书摘要、所述系统公钥以及所述合约地址信息的数据发布交易内容;
利用所述当前节点私钥对所述数据发布交易内容进行电子签名处理,以得到携带所述数据发布交易内容和数字签名的数据发布交易信息。
4.根据权利要求1所述的数据处理方法,其特征在于,所述方法还包括:
通过所述区块链网络接收由数据发布节点发出的数据发布交易信息;
对所述数据发布交易信息中携带的数字签名进行签名校验;
若校验通过,则执行所述数据发布交易信息中携带的数据发布交易内容以将所述数据发布交易内容中的属性加密数据保存至区块链中。
5.根据权利要求4所述的数据处理方法,其特征在于,所述对所述数据发布交易信息中携带的数字签名进行签名校验,包括:
获取所述区块链网络上公开的系统公钥;
利用所述系统公钥对所述数据发布交易信息中携带的数字签名进行解密处理,以得到待校验内容摘要;
对所述数据发布交易信息中携带的数据发布交易内容进行摘要处理以得到所述数据发布交易内容的发布交易内容摘要;
对所述待校验内容摘要和所述发布交易内容摘要进行一致性校验以得到所述数字签名的签名校验结果。
6.根据权利要求4所述的数据处理方法,其特征在于,所述执行所述数据发布交易信息中携带的数据发布交易内容以将所述数据发布交易内容中的属性加密数据保存至区块链,包括:
根据所述数据发布交易信息中携带的数据发布交易内容调用用于进行数据发布的智能合约;
基于所述智能合约对所述数据发布交易内容中的属性加密数据进行摘要处理以得到属性加密数据摘要;
根据所述属性加密数据摘要确定所述属性加密数据的数据状态,所述数据状态为已发布状态或未发布状态;
若所述数据状态为未发布状态,则根据所述数据发布交易内容中的发布节点证书摘要获取所述数据发布节点的发布节点证书;
获取所述发布节点证书中的节点公钥,并确定所述节点公钥与所述数据发布交易内容中的系统公钥是否一致;
若所述节点公钥与所述系统公钥一致,则将与所述属性加密数据摘要进行关联后的所述属性加密数据写入所述智能合约,以得到所述数据发布交易内容的执行结果;
将所述数据发布交易内容的执行结果保存至区块链。
7.根据权利要求6所述的数据处理方法,其特征在于,所述将所述数据发布交易内容的执行结果保存至区块链,包括:
将所述数据发布交易内容的执行结果保存在待共识的当前区块的区块主体中;
在满足区块生成条件时,获取所述区块链网络中上一区块的区块头数据,并根据所述区块头数据计算得到父区块特征值;
根据所述当前区块的区块主体中保存的数据计算所述当前区块的区块主体特征值;
将所述父区块特征值、所述区块主体特征值以及当前时间的时间戳保存在所述当前区块的区块头中;
将所述当前区块发布至所述区块链网络以对所述当前区块进行共识认证,并在认证通过时将所述当前区块链接至区块链上。
8.根据权利要求1所述的数据处理方法,其特征在于,所述方法还包括:
通过所述区块链网络接收由身份认证节点发出的身份认证交易信息;
对所述身份认证交易信息中携带的数字签名进行签名校验;
若校验通过,则执行所述身份认证交易信息中携带的身份认证交易内容以将所述身份认证交易内容中的节点身份证书保存至区块链中。
9.根据权利要求8所述的数据处理方法,其特征在于,所述执行所述身份认证交易信息中携带的身份认证交易内容以将所述身份认证交易内容中的节点身份证书保存至区块链中,包括:
根据所述身份认证交易信息中携带的身份认证交易内容调用用于进行身份认证的智能合约;
基于所述智能合约对所述身份认证交易内容中的节点身份证书进行摘要处理以得到节点身份证书摘要;
根据所述节点身份证书摘要确定所述节点身份证书的证书状态,所述证书状态为已保存状态或未保存状态;
若所述证书状态为未保存状态,则将与所述节点身份证书摘要进行关联后的所述节点身份证书写入所述智能合约,以得到所述身份认证交易内容的执行结果;
将所述身份认证交易内容的执行结果保存至区块链。
10.根据权利要求1所述的数据处理方法,其特征在于,所述方法还包括:
通过所述区块链网络接收由合约部署节点发出的合约部署交易信息;
对所述合约部署交易信息中携带的数字签名进行签名校验;
若校验通过,则执行所述合约部署交易信息中携带的合约部署交易内容以将所述合约部署交易内容中的智能合约保存至区块链中。
11.根据权利要求10所述的数据处理方法,其特征在于,所述执行所述合约部署交易信息中携带的合约部署交易内容以将所述合约部署交易内容中的智能合约保存至区块链中,包括:
执行所述合约部署交易信息中携带的合约部署交易内容,以对所述合约部署交易内容中的智能合约进行摘要处理以得到作为合约地址信息的智能合约摘要;
根据所述合约地址信息确定所述智能合约的合约状态,所述合约状态为已部署状态或未部署状态;
若所述合约状态为未部署状态,则根据所述合约部署交易内容中的部署节点证书摘要获取所述合约部署节点的部署节点证书;
获取所述部署节点证书中的节点公钥,并确定所述节点公钥与所述合约部署交易内容中的系统公钥是否一致;
若所述节点公钥与所述系统公钥一致,则将与所述合约地址信息进行关联后的所述智能合约保存至区块链。
12.一种数据处理装置,其特征在于,包括:
节点确定模块,被配置为确定对共享数据具有数据获取权限的多个目标区块链节点;
信息获取模块,被配置为获取所述目标区块链节点的目标节点属性信息,并将所述多个目标区块链节点的目标节点属性信息组成属性信息集合;
数据加密模块,被配置为获取区块链网络上公开的系统公钥,利用所述系统公钥以及所述属性信息集合对所述共享数据进行加密处理以得到与所述共享数据相对应的属性加密数据;
数据发布模块,被配置为获取当前区块链节点的当前节点私钥,所述当前节点私钥与所述区块链网络上公开的系统公钥组成非对称秘钥;利用所述当前节点私钥对所述属性加密数据进行电子签名处理,以得到携带所述属性加密数据和数字签名的数据发布交易信息;将所述数据发布交易信息发布至区块链网络,以使所述目标区块链节点对所述属性加密数据进行解密处理后得到所述共享数据;
属性加密数据获取模块,被配置为通过所述区块链网络获取区块链上保存的属性加密数据,并获取所述区块链网络上公开的系统公钥;
当前节点属性获取模块,被配置为获取当前区块链节点的当前节点属性信息和当前节点私钥;
属性加密数据解密模块,被配置为根据所述系统公钥和所述当前节点私钥对所述属性加密数据进行解密处理,以确定所述当前节点属性信息是否包括在与所述属性加密数据相对应的属性信息集合中;
共享数据输出模块,被配置为若所述当前节点属性信息包括在所述属性信息集合中,则通过所述当前区块链节点输出对所述属性加密数据进行解密处理得到的共享数据。
13.一种计算机可读介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1-11中任意一项所述的数据处理方法。
14.一种电子设备,包括:
处理器;
以及存储器,用于存储所述处理器的可执行指令;
其中,所述处理器被配置为经由执行所述可执行指令来执行如权利要求1-11中任意一项所述的数据处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010324913.4A CN111625869B (zh) | 2020-04-23 | 2020-04-23 | 数据处理方法及数据处理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010324913.4A CN111625869B (zh) | 2020-04-23 | 2020-04-23 | 数据处理方法及数据处理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111625869A CN111625869A (zh) | 2020-09-04 |
CN111625869B true CN111625869B (zh) | 2022-02-25 |
Family
ID=72270818
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010324913.4A Active CN111625869B (zh) | 2020-04-23 | 2020-04-23 | 数据处理方法及数据处理装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111625869B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112152778B (zh) * | 2020-09-22 | 2022-03-15 | 腾讯科技(深圳)有限公司 | 一种节点管理方法、装置、及电子设备 |
CN112131316B (zh) * | 2020-11-20 | 2021-02-12 | 腾讯科技(深圳)有限公司 | 应用于区块链系统的数据处理方法及装置 |
CN112783847B (zh) * | 2021-01-18 | 2022-08-12 | 中国农业科学院深圳农业基因组研究所 | 数据共享方法及装置 |
CN113221159A (zh) * | 2021-04-19 | 2021-08-06 | 湖北邮电规划设计有限公司 | 一种基于区块链的疫情上报系统 |
CN113221165B (zh) * | 2021-05-11 | 2022-04-22 | 支付宝(杭州)信息技术有限公司 | 一种基于区块链的用户要素认证方法及装置 |
CN114785517B (zh) * | 2022-04-06 | 2024-03-19 | 浙江数秦科技有限公司 | 基于区块链的关联业务数据共享方法 |
CN114756846B (zh) * | 2022-04-24 | 2024-02-02 | 新疆七色花信息科技有限公司 | 一种基于区块链技术的电子防疫系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106603544A (zh) * | 2016-12-22 | 2017-04-26 | 中国科学技术大学 | 一种带轻量级审计的数据存储与云端控制方法 |
CN110008746A (zh) * | 2019-04-01 | 2019-07-12 | 大连理工大学 | 基于区块链的医疗记录存储、共享和安全理赔模型及方法 |
CN110808958A (zh) * | 2019-10-07 | 2020-02-18 | 复旦大学 | 一种基于cp-abe和区块链的医药分离管理系统 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105991278B (zh) * | 2016-07-11 | 2019-06-28 | 河北省科学院应用数学研究所 | 一种基于cp-abe的密文访问控制方法 |
CN106503994B (zh) * | 2016-11-02 | 2020-07-28 | 西安电子科技大学 | 基于属性加密的区块链隐私数据访问控制方法 |
CN107682353B (zh) * | 2017-10-25 | 2018-09-04 | 西安邮电大学 | 一种电子医疗云中的健康档案访问控制方法 |
CN110290094B (zh) * | 2018-03-19 | 2022-03-11 | 华为技术有限公司 | 一种数据访问权限的控制方法和装置 |
CN108564353B (zh) * | 2018-04-27 | 2022-01-25 | 数字钱包(北京)科技有限公司 | 基于区块链的支付系统及方法 |
CN110263544B (zh) * | 2019-05-20 | 2021-04-27 | 创新先进技术有限公司 | 结合交易类型和判断条件的收据存储方法和节点 |
-
2020
- 2020-04-23 CN CN202010324913.4A patent/CN111625869B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106603544A (zh) * | 2016-12-22 | 2017-04-26 | 中国科学技术大学 | 一种带轻量级审计的数据存储与云端控制方法 |
CN110008746A (zh) * | 2019-04-01 | 2019-07-12 | 大连理工大学 | 基于区块链的医疗记录存储、共享和安全理赔模型及方法 |
CN110808958A (zh) * | 2019-10-07 | 2020-02-18 | 复旦大学 | 一种基于cp-abe和区块链的医药分离管理系统 |
Also Published As
Publication number | Publication date |
---|---|
CN111625869A (zh) | 2020-09-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111625869B (zh) | 数据处理方法及数据处理装置 | |
TWI725655B (zh) | 用於在可信執行環境中執行子邏輯代碼的程式執行和資料證明的方法、設備和系統 | |
EP3788523B1 (en) | System and method for blockchain-based cross-entity authentication | |
WO2022042301A1 (zh) | 一种数据处理方法、装置、智能设备及存储介质 | |
US20210083882A1 (en) | Distributed certificate authority | |
WO2021000420A1 (en) | System and method for blockchain-based cross-entity authentication | |
WO2020062668A1 (zh) | 一种身份认证方法、身份认证装置及计算机可读介质 | |
CN110417750B (zh) | 基于区块链技术的文件读取和存储的方法、终端设备和存储介质 | |
WO2018112946A1 (zh) | 注册及授权方法、装置及系统 | |
JP2021517412A (ja) | デジタル証明書の検証方法並びにその、装置、コンピュータ機器並びにコンピュータプログラム | |
CN108696358B (zh) | 数字证书的管理方法、装置、可读存储介质及服务终端 | |
CN112581126A (zh) | 基于区块链的平台数据管理方法、装置及存储介质 | |
US20230316273A1 (en) | Data processing method and apparatus, computer device, and storage medium | |
CN111133733B (zh) | 用于基于云平台的自动区块链部署的方法和系统 | |
CN110555029A (zh) | 基于区块链的票务管理方法、装置及存储介质 | |
CN111786812B (zh) | 节点管理方法、装置、计算机设备和存储介质 | |
CN110572258B (zh) | 一种云密码计算平台及计算服务方法 | |
KR20090041365A (ko) | 인증 시스템과 함께 생물학적 샘플링 장치를 사용하는 방법, 이러한 방법을 수행하기 위한 컴퓨터 실행가능 명령어를 구비하는 컴퓨터 판독가능 매체 및 인증 시스템에액세스하는 컴퓨터 시스템 | |
CN109981287B (zh) | 一种代码签名方法及其存储介质 | |
Abraham et al. | Revocable and offline-verifiable self-sovereign identities | |
CN110740038B (zh) | 区块链及其通信方法、网关、通信系统和存储介质 | |
CN110445840B (zh) | 一种基于区块链技术的文件存储和读取的方法 | |
CN112532656B (zh) | 基于区块链的数据加解密方法、装置及相关设备 | |
CN114205136A (zh) | 一种基于区块链技术的交通数据资源共享方法及系统 | |
JP2022549070A (ja) | ブロックチェーン上に認証済みデータを格納するコンピュータにより実施される方法及びシステム |
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 |