CN114268437A - 数据处理方法、区块链节点、系统和计算机可读存储介质 - Google Patents
数据处理方法、区块链节点、系统和计算机可读存储介质 Download PDFInfo
- Publication number
- CN114268437A CN114268437A CN202010969216.4A CN202010969216A CN114268437A CN 114268437 A CN114268437 A CN 114268437A CN 202010969216 A CN202010969216 A CN 202010969216A CN 114268437 A CN114268437 A CN 114268437A
- Authority
- CN
- China
- Prior art keywords
- data
- user
- block chain
- calculation
- request
- 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.)
- Pending
Links
- 238000003860 storage Methods 0.000 title claims abstract description 28
- 238000003672 processing method Methods 0.000 title claims abstract description 22
- 238000004364 calculation method Methods 0.000 claims abstract description 185
- 238000000034 method Methods 0.000 claims abstract description 52
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 45
- 238000012795 verification Methods 0.000 claims description 70
- 230000007246 mechanism Effects 0.000 claims description 16
- 238000012545 processing Methods 0.000 claims description 13
- 238000013500 data storage Methods 0.000 claims description 12
- 238000004590 computer program Methods 0.000 claims description 9
- 238000010586 diagram Methods 0.000 description 17
- 230000008569 process Effects 0.000 description 13
- 230000006870 function Effects 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 6
- 238000011156 evaluation Methods 0.000 description 3
- 239000011159 matrix material Substances 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开涉及一种数据处理方法、区块链节点、系统和计算机可读存储介质,涉及计算机技术领域。本公开的方法包括:区块链节点接收用户的数据计算请求,其中,数据计算请求包括:待计算的数据在区块链中存储的位置,智能合约的地址以及智能合约中欲调用的计算方法的标识,待计算的数据为采用预设同态加密算法加密后的数据,用户在具有数据计算权限的情况下,发起数据计算请求;区块链节点根据数据计算请求,在区块链中获取待计算的数据;区块链节点调用智能合约中欲调用的计算方法对待计算的数据进行计算,得到计算结果;区块链节点将计算结果发送至用户,以便用户对计算结果进行解密。
Description
技术领域
本公开涉及计算机技术领域,特别涉及一种数据处理方法、区块链节点、系统和计算机可读存储介质。
背景技术
数据的开发和应用正改变着当今世界,数据资源变成了数据资产,数据的生产、流通和应用使数据的安全共享成为解决数据从资源到资产,最大化发挥数据价值的重要手段。
传统的数据共享模式是通过统一的数据仓库或大数据平台集中采集、处理、存储并应用数据。这一模式在中心化的机构内运转良好,为提升机构运营效率、推动机构数字化转型带来很大帮助。但如果是关系对等的机构之间需要共享数据,采用中心化的共享模式就会带来一系列问题。
基于区块链技术的数据共享模式通过分布式账本、数据确权等机制有效解决了对等机构间数据共享的诸多问题。
发明内容
发明人发现:在利用区块链技术实现数据共享时,无法保证数据的隐私性。数据在区块链上的存储是分布式、公开的,任何节点可以获知存储的数据。很多情况下,数据共享者将包含隐私信息的数据进行共享时,不希望使用者获知数据的原文。
本公开所要解决的一个技术问题是:如何在利用区块链实现数据的安全共享的情况下,提高对数据隐私性的保护。
根据本公开的一些实施例,提供的一种数据处理方法,包括:区块链节点接收用户的数据计算请求,其中,数据计算请求包括:待计算的数据在区块链中存储的位置,智能合约的地址以及智能合约中欲调用的计算方法的标识,待计算的数据为采用预设同态加密算法加密后的数据,用户在具有数据计算权限的情况下,发起数据计算请求;区块链节点根据数据计算请求,在区块链中获取待计算的数据;区块链节点调用智能合约中欲调用的计算方法对待计算的数据进行计算,得到计算结果;区块链节点将计算结果发送至用户,以便用户对计算结果进行解密。
在一些实施例中,数据计算请求还包括:智能合约中权限验证方法的标识以及用户的标识,区块链节点根据数据计算请求,在区块链中获取待计算的数据包括:区块链节点根据智能合约中权限验证方法的标识,调用权限验证方法,获取待计算的数据对应的访问权限名单,其中访问权限名单包括允许访问待计算的数据的用户的标识或者不允许访问待计算的数据的用户的标识;区块链节点根据访问权限名单,确定用户是否允许访问待计算的数据;区块链节点在用户允许访问待计算的数据的情况下,根据待计算的数据在区块链中存储的位置,在区块链中获取待计算的数据。
在一些实施例中,区块链节点接收用户的数据计算请求包括:区块链节点通过与业务系统之间的接口接收用户的数据计算请求,或者,接收其他区块链节点广播的数据计算请求。
在一些实施例中,区块链节点将计算结果发送至用户包括:区块链节点根据计算结果生成第一交易信息,并将第一交易信息存储至区块链,其中,第一交易信息包括计算结果;在区块链节点通过与业务系统之间的接口接收用户的数据计算请求的情况下,区块链节点通过与业务系统之间的接口将计算结果发送至用户;或者,在区块链节点接收其他区块链节点广播的数据计算请求的情况下,由其他区块链节点根据存储至区块链第一交易信息,获取计算结果并通过与业务系统之间的接口将计算结果发送至用户。
在一些实施例中,该方法还包括:区块链节点接收用户的数据存储请求,其中,数据存储请求包括待存储的数据,待存储的数据是采用预设同态加密算法加密后的数据;区块链节点根据待存储的数据生成第二交易信息,并将第二交易信息存储至区块链,其中,第二交易信息包括待存储的数据;区块链节点将第二交易信息的存储位置返回至用户。
在一些实施例中,将第二交易信息存储至区块链包括:区块链节点将第二交易信息广播至其他区块链节点;在由任意区块链节点生成包含第二交易信息的区块,并由执行共识机制的区块链节点对区块进行共识之后,包含第二交易信息的区块被添加至区块链。
在一些实施例中,该方法还包括:业务系统接收用户的密钥获取请求,其中,密钥生成请求包括用户的身份验证信息;业务系统对用户的身份验证信息进行验证,确定用户是否具有密钥获取权限;在用户具有密钥获取权限的情况下,业务系统根据预设的同态加密算法生成用户对应的公钥和私钥,并将用户对应的公钥和私钥返回给用户,以便用户利用对应的公钥对欲存储的数据进行同态加密。
在一些实施例中,该方法还包括:业务系统接收用户的数据计算权限验证请求,其中,数据计算权限验证请求包括用户的身份验证信息,以及待计算的数据的标识;业务系统根据待计算的数据的标识对应的验证条件和用户的身份验证信息进行验证,确定用户是否具有数据计算权限;在用户具有数据计算权限的情况下,业务系统将验证结果返回给用户。
根据本公开的另一些实施例,提供的一种区块链节点,包括:接收模块,用于接收用户的数据计算请求,其中,数据计算请求包括:待计算的数据在区块链中存储的位置,智能合约的地址以及智能合约中欲调用的计算方法的标识,待计算的数据为采用预设同态加密算法加密后的数据,用户在具有数据计算权限的情况下,发起数据计算请求;获取模块,用于根据数据计算请求,在区块链中获取待计算的数据;计算模块,用于调用智能合约中欲调用的计算方法对待计算的数据进行计算,得到计算结果;发送模块,用于将计算结果发送至用户,以便用户对计算结果进行解密。
在一些实施例中,接收模块还用于接收用户的数据存储请求,其中,数据存储请求包括待存储的数据,待存储的数据是采用预设同态加密算法加密后的数据;该区块链节点还包括:存储模块,用于根据待存储的数据生成第二交易信息,并将第二交易信息存储至区块链,其中,第二交易信息包括待存储的数据;发送模块还用于将第二交易信息的存储位置返回至用户。
根据本公开的又一些实施例,提供的一种数据处理系统,包括:多个前述任意实施例的区块链节点;以及业务系统,用于接收用户发送的数据计算请求,通过与区块链节点之间的接口将用户的数据计算请求发送至区块链节点。
在一些实施例中,业务系统还用于接收用户的密钥获取请求,其中,密钥生成请求包括用户的身份验证信息;对用户的身份验证信息进行验证,确定用户是否具有密钥获取权限;在用户具有密钥获取权限的情况下,根据预设的同态加密算法生成用户对应的公钥和私钥,并将用户对应的公钥和私钥返回给用户,以便用户利用对应的公钥对欲存储的数据进行同态加密。
在一些实施例中,业务系统还用于接收用户的数据计算权限验证请求,其中,数据计算权限验证请求包括用户的身份验证信息,以及待计算的数据的标识;根据待计算的数据的标识对应的验证条件和用户的身份验证信息进行验证,确定用户是否具有数据计算权限;将验证结果返回给用户。
根据本公开的再一些实施例,提供的一种电子设备,包括:处理器;以及耦接至处理器的存储器,用于存储指令,指令被处理器执行时,使处理器执行如前述任意实施例的数据处理方法。
根据本公开的又一些实施例,提供的一种非瞬时性计算机可读存储介质,其上存储有计算机程序,其中,该程序被处理器执行时实现前述任意实施例的数据处理方法。
本公开中待计算的数据为采用预设同态加密算法加密后的数据,存储在区块链中,用户在具有数据计算权限的情况下发起数据计算请求。区块链节点接收到数据请求后,根据数据计算请求,在区块链中获取待计算的数据,并调用智能合约中欲调用的计算方法对待计算的数据进行计算,得到计算结果。区块链节点将计算结果发送至用户后,用户再对计算结果进行解密,得到最终结果。由于待计算的数据和计算方法都存储在区块链中保证了数据的不可篡改性和安全性,以及计算结果的准确性。由于待计算的数据为采用预设同态加密算法加密后的数据,用户得到计算结果后才进行解密,整个计算过程中任意区块链节点都无法获知数据的明文,提高对数据隐私性的保护。
通过以下参照附图对本公开的示例性实施例的详细描述,本公开的其它特征及其优点将会变得清楚。
附图说明
为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出本公开的一些实施例的数据处理方法的流程示意图。
图2示出本公开的另一些实施例的数据处理方法的流程示意图。
图3示出本公开的一些实施例的区块链节点的结构示意图。
图4示出本公开的一些实施例的数据处理系统的结构示意图。
图5示出本公开的一些实施例的电子设备的结构示意图。
图6示出本公开的另一些实施例的电子设备的结构示意图。
具体实施方式
下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本公开及其应用或使用的任何限制。基于本公开中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
本公开提出一种数据处理方法,下面结合图1进行描述。
图1为本公开数据处理方法一些实施例的流程图。如图1所示,该实施例的方法包括:步骤S102~S108。
在步骤S102中,区块链节点接收用户的数据计算请求。
在一些实施例中,区块链节点通过与业务系统之间的接口接收用户的数据计算请求,或者,接收其他区块链节点广播的数据计算请求。如果区块链节点通过与业务系统之间的接口接收用户的数据计算请求,则该区块链节点需要将数据计算请求进行广播,其他区块链节点也会收到该数据计算请求。区块链节点广播数据计算请求时可以首先对数据计算请求进行签名,其他区块链节点接收到签名后的数据计算请求可以进行验签,该过程属于区块链发起交易过程中的常规操作,在此不再赘述。
在一些实施例中,数据计算请求包括:待计算的数据在区块链中存储的位置,智能合约的地址以及智能合约中欲调用的计算方法的标识。待计算的数据为采用预设同态加密算法加密后的数据。预设同态加密算法例如为全同态加密算法。同态加密模型例如表示为HE=(HE.Keygen,HE.Enc,HE.Dec,HE.Eval),其中HE.Keygen为预设同态加密算法中的密钥生成算法,利用HE.Keygen生成加密密钥pk和解密密钥sk。HE.Enc为预设同态加密算法中的加密算法,HE.Dec为预设同态加密算法中的解密算法,HE.Eval为估值算法(评估函数),即智能合约中欲调用的计算方法。
在一些实施例中,业务系统接收用户的密钥获取请求,其中,密钥生成请求包括用户的身份验证信息;业务系统对用户的身份验证信息进行验证,确定用户是否具有密钥获取权限;在用户具有密钥获取权限的情况下,业务系统根据预设的同态加密算法生成用户对应的公钥和私钥,并将用户对应的公钥和私钥返回给用户,以便用户利用对应的公钥对欲存储的数据进行同态加密。每个用户分配的公钥和私钥可以不同。
业务系统可以存储密钥获取的黑名单或白名单,根据黑名单或白名单和用户的标识(身份验证信息)可以对用户进行验证。或者,业务系统或认证系统可以根据用户的注册信息(例如,用户名、密码等)为用户分配令牌(Token)。密钥获取请求中用户的身份验证信息为用户分配的令牌。令牌对应有效时间。业务系统将用户分配的令牌与存储的一个或多个令牌和各个令牌的有效时间进行对比,对用户进行验证。还可以采用其他方式对用户进行验证,不限于所举示例。用户验证通过的情况下,业务系统调用HE.Keygen生成加密密钥pk和解密密钥sk返回给用户。业务系统和用户之间传输各种密钥信息可以进行加密传输,例如,业务系统采用公钥进行加密,用户采用私钥进行解密,不限于所举示例。
HE.Keygen分为三部分:Setup,SecretKeyGen以及PublicKeyGen。
首先λ是安全参数,表示密码方案中基于的困难的问题的复杂程度,所有的参数都应该(直接或间接)基于这个参数选择.参数L表示同态运算的层数,由于同态运算的层数由噪声的占比决定,因此想要做更多的同态运算次数,那么噪声就不应该太快掩盖q,q就应该相应地选择大一些.而LWE问题的错误分布X还有维数n可以根据q来进行权衡的,而参数l和N则是为了方便表示而引入的记号。具体可以参考GSW算法,在此不再赘述。
预设同态加密算法的加解密过程例如为HE.Enc(n,q,X,m,pk,u):加密消息u∈zq,采样均匀矩阵R∈{0,1}N×m并输出密文C,例如,C可以采用以下公式计算。
预设同态加密算法的加解密过程例如为HE.DEC(n,q,X,m,sk,C)。观察到v前l个系数为1,2,...,2l-1,在这些系数中,使Ci表示C的第i行,计算xi←<Ci,v>,输出ui=xi/vi(四舍五入取整)。具体可以参考GSW算法,在此不再赘述。预设同态加密算法可以为其他现有算法,不限于所举示例。
预设同态加密算法的加密和解密过程可以在用户的客户端进行配置,避免由其他用户得到加密之前和解密之后的信息。
在一些实施例中,用户在具有数据计算权限的情况下,发起数据计算请求。业务系统接收用户(通过客户端)的数据计算权限验证请求,其中,数据计算权限验证请求包括用户的身份验证信息,以及待计算的数据的标识;业务系统根据待计算的数据的标识对应的验证条件和用户的身份验证信息进行验证,确定用户是否具有数据计算权限;所述业务系统将验证结果返回给所述用户。例如,在用户具有数据计算权限的情况下,验证结果还包括待计算的数据对应的同态加密解密密钥。
待计算的数据的标识可以为待计算的数据的拥有者的标识或其他唯一标识等。待计算的数据的标识可以对应黑名单或白名单作为验证条件,黑名单存储不允许对待计算的数据进行计算的用户的标识,白名单存储允许对待计算的数据进行计算的用户的标识,根据黑名单或白名单和用户的标识(身份验证信息)可以对用户进行验证。或者,业务系统或认证系统可以根据用户的注册信息(例如,用户名、密码等)为用户分配令牌(Token)。数据计算权限验证请求中用户的身份验证信息为用户分配的令牌。待计算的数据的标识可以对应一个或多个令牌,令牌对应有效时间。业务系统将用户分配的令牌与待计算的数据的标识对应的一个或多个令牌和各个令牌的有效时间进行对比,对用户进行验证。还可以采用其他方式对用户进行验证,不限于所举示例。
用户在验证通过后可以通过客户端向业务系统发送数据计算请求。数据计算请求中可以包括数据计算接口的调用令牌,业务系统可以对令牌进行验证后,再通过与区块链节点之间的接口发送用户的数据计算请求。令牌生成和验证可以参考前述实施例或现有技术,在此不再赘述
在步骤S104中,区块链节点根据数据计算请求,在区块链中获取待计算的数据。
在一些实施例中,数据计算请求还包括:智能合约中权限验证方法的标识以及用户的标识。区块链节点根据智能合约中权限验证方法的标识,调用权限验证方法,获取待计算的数据对应的访问权限名单,其中访问权限名单包括允许访问待计算的数据的用户的标识或者不允许访问待计算的数据的用户的标识;区块链节点根据访问权限名单,确定用户是否允许访问待计算的数据;区块链节点在用户允许访问待计算的数据的情况下,根据待计算的数据在区块链中存储的位置,在区块链中获取待计算的数据。访问权限名单可以为黑名单或白名单。
在一些实施例中,数据计算请求还包括:智能合约中权限验证方法的标识以及用户的凭证,凭证例如为采用待计算的数据的拥有者即上传用户进行签名的预设数据,或者由业务系统进行签名的预设数据。待计算的数据可以来自多个不同的拥有者。因此,凭证可以有多个或者为由多个拥有者进行签名的预设数据。区块链节点根据智能合约中权限验证方法的标识,调用权限验证方法,对凭证进行验证,例如对签名的预设数据进行验签。在验证成功的情况下,确定用户允许访问待计算的数据。区块链节点在用户允许访问待计算的数据的情况下,根据待计算的数据在区块链中存储的位置,在区块链中获取待计算的数据。
通过智能合约中的权限验证方法对用户进行验证,保证了验证过程的准确性和安全性。对用户进行验证后才允许获取待计算的数据进行计算,避免非法用户获取数据进行计算,提高了安全性和数据的隐私性。
在步骤S106中,区块链节点调用智能合约中欲调用的计算方法对待计算的数据进行计算,得到计算结果。
区块链节点可以分为协议层和计算层,协议层可以实现共识机制,注册CA(认证机构)证书,确权协议的存储和执行和账本存储等区块链技术支撑功能。计算层可以存储智能合约,评估函数和密钥等。
例如,欲调用的计算方法为HE.Eval,存储在智能合约中。如果调用HE.Eval进行计算还需要用到待计算的数据对应的预设同态加密算法的公钥,可以在智能合约中存储该公钥。由于采用同态加密算法,基于加密后数据进行计算,得到的结果进行解密后,与直接对数据进行计算的结果是相同的。
在步骤S108中,区块链节点将计算结果发送至用户,以便用户对计算结果进行解密。
在一些实施例中,区块链节点根据计算结果生成第一交易信息,并将第一交易信息存储至区块链,其中,第一交易信息包括计算结果;在区块链节点通过与业务系统之间的接口接收用户的数据计算请求的情况下,区块链节点通过与业务系统之间的接口将计算结果发送至用户;或者,在区块链节点接收其他区块链节点广播的数据计算请求的情况下,由其他区块链节点根据存储至区块链第一交易信息,获取计算结果并通过与业务系统之间的接口将计算结果发送至用户。
各个区块链节点接收到广播的数据计算请求,都可以执行上述步骤S104~S106,得到计算结果。进一步,得到计算结果的区块链节点根据计算结果生成第一交易信息,并将第一交易信息进行广播。第一交易信息可以由发布的区块链节点进行签名,接收到第一交易信息的其他区块链节点进行验签。验签通过后将第一交易信息进行暂存。暂存的交易信息达到预设数量的情况下,可以生成区块(可以由任意节点或指定节点)。区块被广播至执行共识机制的区块链节点对区块进行共识,共识之后区块被添加至区块链。例如由n个共识节点,提供f=(n-1)/3的容错能力。节点同步过程采用向其他节点索要区块并校验的方式完成同步。视图切换过程可以在结合区块生成协议的基础上,再采用超时机制进行视图切换。在一定程度上减少算力开销和数据传输量。视图切换即更换共识主节点,每次更换一个主节点的同时都会切换视图。超时机制即在区块生成超过预设时长的情况下,进行视图切换。上述广播交易信息、进行签名验签、生成区块和进行共识的过程可以参考现有技术,也可以因为不同的区块链技术而有所不同,不限于所举示例。可以在第一交易信息存储至区块链之后,再将计算结果通过业务系统返回至用户。
如果前述用户验证数据计算权限时获得了同态加密解密密钥,可以对计算结果进行解密获取最终结果。或者,如果需要多个用户共同解密(如安全多方计算的方法)。用户可以请求待计算的数据的各个用户联合进行解密。
上述实施例中待计算的数据为采用预设同态加密算法加密后的数据,存储在区块链中,用户在具有数据计算权限的情况下发起数据计算请求。区块链节点接收到数据请求后,根据数据计算请求,在区块链中获取待计算的数据,并调用智能合约中欲调用的计算方法对待计算的数据进行计算,得到计算结果。区块链节点将计算结果发送至用户后,用户再对计算结果进行解密,得到最终结果。由于待计算的数据和计算方法都存储在区块链中保证了数据的不可篡改性和安全性,以及计算结果的准确性。由于待计算的数据为采用预设同态加密算法加密后的数据,用户得到计算结果后才进行解密,整个计算过程中任意区块链节点都无法获知数据的明文,提高对数据隐私性的保护。
下面结合图2描述本公开数据处理方法的另一些实施例。
图2为本公开数据处理方法另一些实施例的流程图。如图2所示,该实施例的方法包括:步骤S202~S206。
在步骤S202中,区块链节点接收用户的数据存储请求。
数据存储请求包括待存储的数据,待存储的数据是采用预设同态加密算法加密后的数据。例如,参考前述实施例,用户在客户端利用对应的公钥对欲存储的数据进行同态加密后,作为待存储的数据再上传区块链。
在步骤S204中,区块链节点根据待存储的数据生成第二交易信息,并将第二交易信息存储至区块链。
第二交易信息包括待存储的数据。在一些实施例中,区块链节点将第二交易信息广播至其他区块链节点;在由任意区块链节点(或指定节点)生成包含第二交易信息的区块,并由执行共识机制的区块链节点对区块进行共识之后,包含第二交易信息的区块被添加至区块链。第二交易信息可以由发布的区块链节点进行签名,接收到第二交易信息的其他区块链节点进行验签。验签通过后将第二交易信息进行暂存。暂存的交易信息达到预设数量的情况下,可以生成区块(可以由任意节点或指定节点)。区块被广播至执行共识机制的区块链节点对区块进行共识,共识之后区块被添加至区块链。上述广播交易信息、进行签名验签、生成区块和进行共识的过程可以参考现有技术,也可以因为不同的区块链技术而有所不同,不限于所举示例。
在步骤S206中,区块链节点将第二交易信息的存储位置返回至用户。
第二交易信息的存储位置可以存储在业务系统,以便后续其他用户发起数据计算请求,待计算的数据为第二交易信息包含的数据的情况下,通过业务系统可以向区块链节点获取待计算的数据。
上述实施例的方法,用户对欲存储的数据进行同态加密后再上传区块链,任意节点和用户都无法获取数据的真实含义,提高了数据的隐私性。
本公开中各个数据共享参与方(用户),可以构建区块链联盟机制,各个参与方将可以共享的数据同态加密存储在区块链的分布式架构中,在区块链上利用共识机制解决区块链节点间相互信任的问题。在相互信任的基础上,利用同态加密算法,利用各节点的加密数据共同计算出需要得到的函数值,采用分布式并行框架模型将用户的输入利用全同态加密算法进行计算,并将结果返回给用户,由于用户只能看到计算结果,所以在此过程中不会泄露任何隐私信息。
通过采用链上原文加密方式进行存储。加密算法可以为安全多方计算支持的算法,每一个用户分配一套加密秘钥,数据在上链之前进行同态加密,数据使用者在获得权限后,可以通过解密秘钥对经过计算的结果进行解密并使用。
参与方可以通过授权第三方访问其数据,也可以随时收回权限,撤销第三方对数据的访问,对区块链中存储的全部或部分数据内容访问控制和管理。
本公开提供一种区块链节点,下面结合图3进行描述。
图3为本公开区块链节点的一些实施例的结构图。如图3所示,该实施例的区块链节点30包括:接收模块310,获取模块320,计算模块330,发送模块340。
接收模块310,用于接收用户的数据计算请求,其中,数据计算请求包括:待计算的数据在区块链中存储的位置,智能合约的地址以及智能合约中欲调用的计算方法的标识,待计算的数据为采用预设同态加密算法加密后的数据,用户在具有数据计算权限的情况下,发起数据计算请求。
在一些实施例中,接收模块310用于通过与业务系统之间的接口接收用户的数据计算请求,或者,接收其他区块链节点广播的数据计算请求。
获取模块320,用于根据数据计算请求,在区块链中获取待计算的数据。
计算模块330,用于调用智能合约中欲调用的计算方法对待计算的数据进行计算,得到计算结果。
在一些实施例中,数据计算请求还包括:智能合约中权限验证方法的标识以及用户的标识。计算模块330用于根据智能合约中权限验证方法的标识,调用权限验证方法,获取待计算的数据对应的访问权限名单,其中访问权限名单包括允许访问待计算的数据的用户的标识或者不允许访问待计算的数据的用户的标识;根据访问权限名单,确定用户是否允许访问待计算的数据;在用户允许访问待计算的数据的情况下,根据待计算的数据在区块链中存储的位置,在区块链中获取待计算的数据。
发送模块340,用于将计算结果发送至用户,以便用户对计算结果进行解密。
在一些实施例中,发送模块340用于根据计算结果生成第一交易信息,并将第一交易信息存储至区块链,其中,第一交易信息包括计算结果;在接收模块310用于通过与业务系统之间的接口接收用户的数据计算请求的情况下,发送模块340用于通过与业务系统之间的接口将计算结果发送至用户;或者,在接收模块310用于接收其他区块链节点广播的数据计算请求的情况下,由其他区块链节点根据存储至区块链第一交易信息,获取计算结果并通过与业务系统之间的接口将计算结果发送至用户。
在一些实施例中,接收模块310还用于接收用户的数据存储请求,其中,数据存储请求包括待存储的数据,待存储的数据是采用预设同态加密算法加密后的数据。区块链节点30还包括:存储模块350,用于根据待存储的数据生成第二交易信息,并将第二交易信息存储至区块链,其中,第二交易信息包括待存储的数据;发送模块340还用于将第二交易信息的存储位置返回至用户。
在一些实施例中,发送模块340还用于将第二交易信息广播至其他区块链节点;在由任意区块链节点生成包含第二交易信息的区块,并由执行共识机制的区块链节点对区块进行共识之后,包含第二交易信息的区块被添加至区块链。
本公开还提供一种数据处理系统,下面结合图4进行描述。
图4为本公开数据处理系统的一些实施例的结构图。如图4所示,该实施例的数据处理系统4包括:多个前述任意实施例的区块链节点30;以及业务系统42。
业务系统42用于接收用户发送的数据计算请求,通过与区块链节点30之间的接口将用户的数据计算请求发送至区块链节点。
在一些实施例中,业务系统42还用于接收用户的密钥获取请求,其中,密钥生成请求包括用户的身份验证信息;对用户的身份验证信息进行验证,确定用户是否具有密钥获取权限;在用户具有密钥获取权限的情况下,根据预设的同态加密算法生成用户对应的公钥和私钥,并将用户对应的公钥和私钥返回给用户,以便用户利用对应的公钥对欲存储的数据进行同态加密。
在一些实施例中,业务系统42还用于接收用户的数据计算权限验证请求,其中,数据计算权限验证请求包括用户的身份验证信息,以及待计算的数据的标识;根据待计算的数据的标识对应的验证条件和用户的身份验证信息进行验证,确定用户是否具有数据计算权限;将验证结果返回给用户。
本公开的实施例中的电子设备,可以包括区块链节点和/或业务系统,可各由各种计算设备或计算机系统来实现,下面结合图5以及图6进行描述。
图5为本公开电子设备的一些实施例的结构图。如图5所示,该实施例的电子设备50包括:存储器510以及耦接至该存储器510的处理器520,处理器520被配置为基于存储在存储器510中的指令,执行本公开中任意一些实施例中的数据处理方法。
其中,存储器510例如可以包括系统存储器、固定非易失性存储介质等。系统存储器例如存储有操作系统、应用程序、引导装载程序(Boot Loader)、数据库以及其他程序等。
图6为本公开电子设备的另一些实施例的结构图。如图6所示,该实施例的电子设备60包括:存储器610以及处理器620,分别与存储器510以及处理器520类似。还可以包括输入输出接口630、网络接口640、存储接口650等。这些接口630,640,650以及存储器610和处理器620之间例如可以通过总线660连接。其中,输入输出接口630为显示器、鼠标、键盘、触摸屏等输入输出设备提供连接接口。网络接口640为各种联网设备提供连接接口,例如可以连接到数据库服务器或者云端存储服务器等。存储接口650为SD卡、U盘等外置存储设备提供连接接口。
本领域内的技术人员应当明白,本公开的实施例可提供为方法、系统、或计算机程序产品。因此,本公开可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本公开可采用在一个或多个其中包含有计算机可用程序代码的计算机可用非瞬时性存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本公开是参照根据本公开实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解为可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述仅为本公开的较佳实施例,并不用以限制本公开,凡在本公开的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。
Claims (15)
1.一种数据处理方法,包括:
区块链节点接收用户的数据计算请求,其中,所述数据计算请求包括:待计算的数据在区块链中存储的位置,智能合约的地址以及所述智能合约中欲调用的计算方法的标识,所述待计算的数据为采用预设同态加密算法加密后的数据,所述用户在具有数据计算权限的情况下,发起数据计算请求;
所述区块链节点根据所述数据计算请求,在区块链中获取所述待计算的数据;
所述区块链节点调用所述智能合约中欲调用的计算方法对所述待计算的数据进行计算,得到计算结果;
所述区块链节点将所述计算结果发送至所述用户,以便所述用户对所述计算结果进行解密。
2.根据权利要求1所述的数据处理方法,其中,所述数据计算请求还包括:所述智能合约中权限验证方法的标识以及所述用户的标识,所述区块链节点根据所述数据计算请求,在区块链中获取所述待计算的数据包括:
所述区块链节点根据所述智能合约中权限验证方法的标识,调用所述权限验证方法,获取所述待计算的数据对应的访问权限名单,其中所述访问权限名单包括允许访问所述待计算的数据的用户的标识或者不允许访问所述待计算的数据的用户的标识;
所述区块链节点根据所述访问权限名单,确定所述用户是否允许访问所述待计算的数据;
所述区块链节点在所述用户允许访问所述待计算的数据的情况下,根据所述待计算的数据在区块链中存储的位置,在区块链中获取所述待计算的数据。
3.根据权利要求1所述的数据处理方法,其中,所述区块链节点接收用户的数据计算请求包括:
所述区块链节点通过与业务系统之间的接口接收所述用户的数据计算请求,或者,接收其他区块链节点广播的数据计算请求。
4.根据权利要求3所述的数据处理方法,其中,所述区块链节点将所述计算结果发送至所述用户包括:
所述区块链节点根据所述计算结果生成第一交易信息,并将所述第一交易信息存储至区块链,其中,所述第一交易信息包括所述计算结果;
在所述区块链节点通过与业务系统之间的接口接收所述用户的数据计算请求的情况下,所述区块链节点通过与业务系统之间的接口将所述计算结果发送至所述用户;或者,在所述区块链节点接收其他区块链节点广播的数据计算请求的情况下,由所述其他区块链节点根据存储至区块链所述第一交易信息,获取所述计算结果并通过与业务系统之间的接口将所述计算结果发送至所述用户。
5.根据权利要求1所述的数据处理方法,还包括:
所述区块链节点接收用户的数据存储请求,其中,所述数据存储请求包括待存储的数据,所述待存储的数据是采用预设同态加密算法加密后的数据;
所述区块链节点根据所述待存储的数据生成第二交易信息,并将所述第二交易信息存储至区块链,其中,所述第二交易信息包括待存储的数据;
所述区块链节点将所述第二交易信息的存储位置返回至所述用户。
6.根据权利要求5所述的数据处理方法,其中,所述将所述第二交易信息存储至区块链包括:
所述区块链节点将所述第二交易信息广播至其他区块链节点;
在由任意区块链节点生成包含所述第二交易信息的区块,并由执行共识机制的区块链节点对所述区块进行共识之后,所述包含所述第二交易信息的区块被添加至区块链。
7.根据权利要求1所述的数据处理方法,还包括:
业务系统接收用户的密钥获取请求,其中,所述密钥生成请求包括用户的身份验证信息;
所述业务系统对所述用户的身份验证信息进行验证,确定所述用户是否具有密钥获取权限;
在所述用户具有密钥获取权限的情况下,所述业务系统根据预设的同态加密算法生成所述用户对应的公钥和私钥,并将用户对应的公钥和私钥返回给所述用户,以便所述用户利用对应的公钥对欲存储的数据进行同态加密。
8.根据权利要求1所述的数据处理方法,还包括:
业务系统接收用户的数据计算权限验证请求,其中,所述数据计算权限验证请求包括用户的身份验证信息,以及待计算的数据的标识;
所述业务系统根据待计算的数据的标识对应的验证条件和所述用户的身份验证信息进行验证,确定所述用户是否具有数据计算权限;
所述业务系统将验证结果返回给所述用户。
9.一种区块链节点,包括:
接收模块,用于接收用户的数据计算请求,其中,所述数据计算请求包括:待计算的数据在区块链中存储的位置,智能合约的地址以及所述智能合约中欲调用的计算方法的标识,所述待计算的数据为采用预设同态加密算法加密后的数据,所述用户在具有数据计算权限的情况下,发起数据计算请求;
获取模块,用于根据所述数据计算请求,在区块链中获取所述待计算的数据;
计算模块,用于调用所述智能合约中欲调用的计算方法对所述待计算的数据进行计算,得到计算结果;
发送模块,用于将所述计算结果发送至所述用户,以便所述用户对所述计算结果进行解密。
10.根据权利要求9所述的区块链节点,其中,
所述接收模块还用于接收用户的数据存储请求,其中,所述数据存储请求包括待存储的数据,所述待存储的数据是采用预设同态加密算法加密后的数据;
所述区块链节点还包括:
存储模块,用于根据所述待存储的数据生成第二交易信息,并将所述第二交易信息存储至区块链,其中,所述第二交易信息包括待存储的数据;
发送模块还用于将所述第二交易信息的存储位置返回至所述用户。
11.一种数据处理系统,包括:多个权利要求9或10所述的区块链节点;以及
业务系统,用于接收用户发送的数据计算请求,通过与区块链节点之间的接口将所述用户的数据计算请求发送至区块链节点。
12.根据权利要求11所述的数据处理系统,其中,
业务系统还用于接收用户的密钥获取请求,其中,所述密钥生成请求包括用户的身份验证信息;对所述用户的身份验证信息进行验证,确定所述用户是否具有密钥获取权限;在所述用户具有密钥获取权限的情况下,根据预设的同态加密算法生成所述用户对应的公钥和私钥,并将用户对应的公钥和私钥返回给所述用户,以便所述用户利用对应的公钥对欲存储的数据进行同态加密。
13.根据权利要求11所述的数据处理系统,其中,
业务系统还用于接收用户的数据计算权限验证请求,其中,所述数据计算权限验证请求包括用户的身份验证信息,以及待计算的数据的标识;根据待计算的数据的标识对应的验证条件和所述用户的身份验证信息进行验证,确定所述用户是否具有数据计算权限;将验证结果返回给所述用户。
14.一种电子设备,包括:
处理器;以及
耦接至所述处理器的存储器,用于存储指令,所述指令被所述处理器执行时,使所述处理器执行如权利要求1-8任一项所述的数据处理方法。
15.一种非瞬时性计算机可读存储介质,其上存储有计算机程序,其中,该程序被处理器执行时实现权利要求1-8任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010969216.4A CN114268437A (zh) | 2020-09-15 | 2020-09-15 | 数据处理方法、区块链节点、系统和计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010969216.4A CN114268437A (zh) | 2020-09-15 | 2020-09-15 | 数据处理方法、区块链节点、系统和计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114268437A true CN114268437A (zh) | 2022-04-01 |
Family
ID=80824157
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010969216.4A Pending CN114268437A (zh) | 2020-09-15 | 2020-09-15 | 数据处理方法、区块链节点、系统和计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114268437A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114581090A (zh) * | 2022-05-07 | 2022-06-03 | 华控清交信息科技(北京)有限公司 | 一种安全计算方法和安全计算系统 |
CN114969211A (zh) * | 2022-07-28 | 2022-08-30 | 中航信移动科技有限公司 | 一种基于区块链的民航数据处理系统 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108734017A (zh) * | 2018-05-20 | 2018-11-02 | 深圳市图灵奇点智能科技有限公司 | 驾驶数据共享方法和装置、系统和计算机存储介质 |
CN109544393A (zh) * | 2019-01-22 | 2019-03-29 | 众安信息技术服务有限公司 | 基于区块链的数据存储方法与装置 |
CN109615378A (zh) * | 2019-01-24 | 2019-04-12 | 上海点融信息科技有限责任公司 | 基于区块链的安全多方计算方法、装置及可读存储介质 |
CN109690551A (zh) * | 2018-08-24 | 2019-04-26 | 区链通网络有限公司 | 区块链数据保护方法、装置、系统及计算机可读存储介质 |
CN111047450A (zh) * | 2020-03-18 | 2020-04-21 | 支付宝(杭州)信息技术有限公司 | 链上数据的链下隐私计算方法及装置 |
CN111258725A (zh) * | 2020-01-17 | 2020-06-09 | 北京百度网讯科技有限公司 | 一种基于区块链的数据处理方法、装置、设备和介质 |
CN111581627A (zh) * | 2020-05-11 | 2020-08-25 | 北京精准沟通传媒科技股份有限公司 | 一种数据处理方法、装置及电子设备 |
-
2020
- 2020-09-15 CN CN202010969216.4A patent/CN114268437A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108734017A (zh) * | 2018-05-20 | 2018-11-02 | 深圳市图灵奇点智能科技有限公司 | 驾驶数据共享方法和装置、系统和计算机存储介质 |
CN109690551A (zh) * | 2018-08-24 | 2019-04-26 | 区链通网络有限公司 | 区块链数据保护方法、装置、系统及计算机可读存储介质 |
CN109544393A (zh) * | 2019-01-22 | 2019-03-29 | 众安信息技术服务有限公司 | 基于区块链的数据存储方法与装置 |
CN109615378A (zh) * | 2019-01-24 | 2019-04-12 | 上海点融信息科技有限责任公司 | 基于区块链的安全多方计算方法、装置及可读存储介质 |
CN111258725A (zh) * | 2020-01-17 | 2020-06-09 | 北京百度网讯科技有限公司 | 一种基于区块链的数据处理方法、装置、设备和介质 |
CN111047450A (zh) * | 2020-03-18 | 2020-04-21 | 支付宝(杭州)信息技术有限公司 | 链上数据的链下隐私计算方法及装置 |
CN111581627A (zh) * | 2020-05-11 | 2020-08-25 | 北京精准沟通传媒科技股份有限公司 | 一种数据处理方法、装置及电子设备 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114581090A (zh) * | 2022-05-07 | 2022-06-03 | 华控清交信息科技(北京)有限公司 | 一种安全计算方法和安全计算系统 |
CN114969211A (zh) * | 2022-07-28 | 2022-08-30 | 中航信移动科技有限公司 | 一种基于区块链的民航数据处理系统 |
CN114969211B (zh) * | 2022-07-28 | 2022-09-30 | 中航信移动科技有限公司 | 一种基于区块链的民航数据处理系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108964885B (zh) | 鉴权方法、装置、系统和存储介质 | |
KR20170057549A (ko) | 해시함수 기반의 대규모 동시 전자서명 서비스 시스템 및 그 방법 | |
CN106341232B (zh) | 一种基于口令的匿名实体鉴别方法 | |
US11228450B2 (en) | Method and apparatus for performing multi-party secure computing based-on issuing certificate | |
CN111742531B (zh) | 简档信息共享 | |
CN109905877B (zh) | 通信网络系统的消息验证方法、通信方法和通信网络系统 | |
CN113743939A (zh) | 基于区块链的身份认证方法、装置及系统 | |
CN113360925A (zh) | 电力信息物理系统中可信数据的存储和访问方法及系统 | |
CN111723384B (zh) | 数据处理方法、系统及设备 | |
CN114036539A (zh) | 基于区块链的安全可审计物联网数据共享系统及方法 | |
CN114039753B (zh) | 一种访问控制方法、装置、存储介质及电子设备 | |
Kravitz | Transaction immutability and reputation traceability: Blockchain as a platform for access controlled iot and human interactivity | |
KR101246339B1 (ko) | 큐알 코드 보안인증 시스템 및 그 방법 | |
Anand et al. | EECDH to prevent MITM attack in cloud computing | |
CN110910110A (zh) | 一种数据处理方法、装置及计算机存储介质 | |
CN113643134A (zh) | 基于多密钥同态加密的物联网区块链交易方法及系统 | |
CN114268437A (zh) | 数据处理方法、区块链节点、系统和计算机可读存储介质 | |
CN115622812A (zh) | 基于区块链智能合约的数字身份验证方法及系统 | |
CN115913677A (zh) | 一种基于区块链的协作边缘存储数据隐私保护系统及方法 | |
CN113329003B (zh) | 一种物联网的访问控制方法、用户设备以及系统 | |
CN110661816A (zh) | 一种基于区块链的跨域认证方法与电子设备 | |
CN116112242B (zh) | 面向电力调控系统的统一安全认证方法及系统 | |
CN115694812B (zh) | 一种基于零知识的门限身份认证方法、装置及云计算系统 | |
Lahmer et al. | Towards a virtual domain based authentication on MapReduce | |
CN111245594A (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 |