本发明涉及区块链技术领域,更具体地说,涉及一种区块链数据的处理方法及装置。
背景技术:
区块链本质上是一个区中心化数据库,就像一个共享账本,作为比特币的底层技术,区块链具有去中心化、开放性、匿名性和不可篡改等特点。在传统的公有区块链中,用户的账户信息和交易内容等数据都是公开的,任何用户都可以参与记账和查看交易数据,仅仅通过“伪匿名”的方式保护用户隐私。这虽然增加了用户对数据真实可靠的信心,但对于金融行业来说,数据的完全公开涉及到大量商业机密和利益,因此有必要使用一种隐私保护方法来保护数据隐私。
现有技术中,银行通过建立许可账本的方法来解决这个问题。这种方法将区块链的参与者限制在了已知实体的范围内,可保证只有被许可的用户才可查阅区块链中的数据。但是已知实体的范围仍然较大,不能实现只有数据的利益相关方才可查阅区块链中的数据,安全性差。
技术实现要素:
有鉴于此,本发明的目的在于提供一种区块链数据的处理方法及装置,将散列原始数据得到散列值,再由相关利益人将散列值用私钥加密,保证了只有拥有与私钥相匹配的公钥的使用者才可查阅区块链中存储的数据,提高了区块链存储数据的安全性。
为实现上述目的,本发明提供如下技术方案:
一种区块链数据的处理方法,应用于处理器,所述方法包括:
基于第一客户端发送的原始数据生成第一散列值;
接收所述第一客户端基于第一私钥加密所述第一散列值生成的第一加密散列值;
接收第二客户端基于第二私钥加密所述第一加密散列值生成的第二加密散列值,所述第一客户端与所述第二客户端不相同;
存储所述第二客户端发送的所述第二加密散列值。
优选地,所述基于第一客户端发送的原始数据生成第一散列值包括:
基于预设算法将所述原始数据分为至少一份原始分数据;
基于所有所述原始分数据生成所述第一散列值。
优选地,所述方法还包括:
接收所述第一客户端发送的与所述第一私钥相匹配的第一公钥;
接收所述第二客户端发送的与所述第二私钥相匹配的第二公钥;
存储所述第一公钥及所述第二公钥。
优选地,所述存储所述第二加密散列值后,所述方法还包括:
判断所述处理器存储的第二加密散列值是否与所述第二客户端发送的第二客户端存储的第二加密散列值相同;
当所述处理器存储的第二加密散列值与所述第二客户端发送的第二客户端存储的第二加密散列值相同时,基于所述第二公钥解密所述处理器存储的第二加密散列值生成第三加密散列值;
基于所述第一公钥解密所述第三加密散列值生成第三散列值;
判断所述第三散列值是否与第三客户端发送的所述第一客户端存储的第一散列值相同;
当所述第三散列值与所述第三客户端发送的所述第一客户端存储的第一散列值相同时,生成表示所述处理器存储的第二加密散列值真实的验证信号。
优选地,所述原始数据包括客户数据及随机数据,所述每一所述原始数据的随机数据是唯一的。
一种区块链数据的处理装置,所述装置包括计算模块、传输模块及存储模块,其中:
所述计算模块用于基于第一客户端发送的原始数据生成第一散列值;
所述传输模块用于接收所述第一客户端基于第一私钥加密所述第一散列值生成的第一加密散列值;
所述传输模块还用于接收第二客户端基于第二私钥加密所述第一加密散列值生成的第二加密散列值,所述第一客户端与所述第二客户端不相同;
所述存储模块用于存储所述第二客户端发送的所述第二加密散列值。
优选地,所述计算模块包括分类单元及计算单元,其中:
所述分类单元用于基于预设算法将所述原始数据分为至少一份原始分数据;
所述计算单元用于基于所有所述原始分数据生成所述第一散列值。
优选地,所述传输模块还用于接收所述第一客户端发送的与所述第一私钥相匹配的第一公钥;所述传输模块还用于接收所述第二客户端发送的与所述第二私钥相匹配的第二公钥。
优选地,所述装置还包括判断模块、解密模块及生成模块,其特征在于:
所述判断模块用于判断所述处理器存储的第二加密散列值是否与所述第二客户端发送的第二客户端存储的第二加密散列值相同;
当所述处理器存储的所述第二加密散列值与所述第二客户端发送的第二客户端存储的第二加密散列值相同时,所述解密模块用于基于所述第二公钥解密所述处理器存储的第二加密散列值生成第三加密散列值;
所述解密模块还用于基于所述第一公钥解密所述第三加密散列值生成第三散列值;
所述判断模块还用于判断所述第三散列值是否与第三客户端发送的所述第一客户端存储的第一散列值相同;
当所述第三散列值与第三客户端发送的所述第一客户端存储的第一散列值相同时,所述生成模块生成表示所述处理器存储的第二加密散列值真实的验证信号。
优选地,所述原始数据包括客户数据及随机数据,每一所述原始数据的随机数据是唯一的。
从上述技术方案可以看出,本发明公开了一种区块链数据的处理方法,应用于处理器,方法包括基于第一客户端发送的原始数据生成第一散列值,接收第一客户端基于第一私钥加密第一散列值生成的第一加密散列值,接收第二客户端基于第二私钥加密第一加密散列值生成的第二加密散列值,第一客户端与第二客户端不相同,存储第二加密散列值。将散列原始数据得到散列值,再由相关利益人将散列值用私钥加密,保证了只有拥有与私钥相匹配的公钥的使用者才可查阅区块链中存储的数据,提高了区块链存储数据的安全性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本发明公开的一种区块链数据的处理方法的实施例1的流程图;
图2为本发明公开的一种区块链数据的处理方法的实施例2的流程图;
图3为本发明公开的一种区块链数据的处理方法的实施例3的流程图;
图4为本发明公开的一种区块链数据的处理方法的实施例4的流程图;
图5为本发明公开的一种区块链数据的处理装置的实施例1的结构示意图;
图6为本发明公开的一种区块链数据的处理装置的实施例2的结构示意图;
图7为本发明公开的一种区块链数据的处理装置的实施例3的结构示意图;
图8为本发明公开的一种区块链数据的处理装置的实施例4的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
如图1所示,为本发明提供的一种区块链数据的处理方法的实施例1的流程图,所述方法应用于处理器,包括以下步骤:
s101、基于第一客户端发送的原始数据生成第一散列值;
原始数据可以包括商业合同、账本等机密信息,用户通过第一客户端将原始数据发送至处理器,处理器可以基于哈希算法计算原始数据的哈希值,即第一散列值。使用第一客户端的用户可为原始数据的利益相关方。
s102、接收第一客户端基于第一私钥加密第一散列值生成的第一加密散列值;
将第一散列值发送至第一客户端,用户使用第一客户端基于第一私钥对第一散列值进行加密生成第一加密散列值。用户可自行保存与第一私钥相匹配的第一公钥。
s103、接收第二客户端基于第二私钥加密第一加密散列值生成的第二加密散列值,第一客户端与第二客户端不相同;
将第一加密散列值发送至第二客户端,用户使用第二客户端基于第二私钥对第一加密散列值进行加密生成第二加密散列值。用户可自行保存于第二私钥相匹配的第二公钥。第一客户端与第二客户端不同,且使用第二客户端的用户可为中立方,如登记中心或交易中心等。
s104、存储第二客户端发送的第二加密散列值;
将第二客户端发送的第二加密散列值存储在区块链中,存储时可任意选择存储的区块。
从上述技术方案可以看出,本发明公开了一种区块链数据的处理方法,应用于处理器,方法包括基于第一客户端发送的原始数据生成第一散列值,接收第一客户端基于第一私钥加密第一散列值生成的第一加密散列值,接收第二客户端基于第二私钥加密第一加密散列值生成的第二加密散列值,第一客户端与第二客户端不相同,存储第二加密散列值。将散列原始数据得到散列值,再由相关利益人将散列值用私钥加密,保证了只有拥有与私钥相匹配的公钥的使用者才可查阅区块链中存储的数据,提高了区块链存储数据的安全性。
如图2所示,为本发明提供的一种区块链数据的处理方法的实施例2的流程图,所述方法应用于处理器,包括以下步骤:
s201、基于预设算法将原始数据分为至少一份原始分数据;
原始数据包括客户数据及随机数据,每一原始数据的随机数据是唯一的,随机数可用来区分客户数据相同的原始数据,用来保证原始数据的唯一性。客户数据可以包括商业合同、账本等机密信息,用户通过第一客户端将原始数据发送至处理器。处理器基于预设算法将原始数据分为至少一份原始分数据,以原始数据为合同为例,可以将合同分为格式化信息及自填信息,其中,自填信息还可以分为填空信息、选择信息、附言信息等。将原始数据分为原始分数据可进一步提高存储的信息的安全性。
s202、基于所有原始分数据生成第一散列值;
基于哈希算法计算原始数据的哈希值,即第一散列值。使用第一客户端的用户可为原始数据的利益相关方。
s203、接收第一客户端基于第一私钥加密第一散列值生成的第一加密散列值;
将第一散列值发送至第一客户端,用户使用第一客户端基于第一私钥对第一散列值进行加密生成第一加密散列值。用户可自行保存与第一私钥相匹配的第一公钥。
s204、接收第二客户端基于第二私钥加密第一加密散列值生成的第二加密散列值,第一客户端与第二客户端不相同;
将第一加密散列值发送至第二客户端,用户使用第二客户端基于第二私钥对第一加密散列值进行加密生成第二加密散列值。用户可自行保存于第二私钥相匹配的第二公钥。第一客户端与第二客户端不同,且使用第二客户端的用户可为中立方,如登记中心或交易中心等。
s205、存储第二客户端发送的第二加密散列值;
将第二客户端发送的第二加密散列值存储在区块链中,存储时可任意选择存储的区块。
如图3所示,为本发明在上述实施例的基础上提供的一种区块链数据的处理方法的实施例3的流程图,包括以下步骤:
s301、接收第一客户端发送的与第一私钥相匹配的第一公钥;
s302、接收第二客户端发送的与第二私钥相匹配的第二公钥;
s303、存储第一公钥及第二公钥;
将第一公钥及第二公钥存储到区块链中可便于其他有权利查阅存储的信息的用户(司法机构)查阅信息。
如图4所示,为本发明在上述实施例的基础上提供的一种区块链数据的处理方法的实施例4的流程图,包括以下步骤:
s401、判断处理器存储的第二加密散列值是否与第二客户端发送的第二客户端存储的第二加密散列值相同;
处理器将第二加密散列值存储到区块链中以后,可校验区块链中存储的信息与用户存储的信息是否相同,从而判断区块链中的信息是否被篡改,本实施例的方法可用于实现此功能。接收第二客户端发送的第二客户端存储的第二加密散列值,判断处理器存储的第二加密散列值是否与第二客户端发送的第二客户端存储的第二加密散列值相同。
s402、当处理器存储的第二加密散列值与第二客户端发送的第二客户端存储的第二加密散列值相同时,基于第二公钥解密处理器存储的第二加密散列值生成第三加密散列值;
当处理器存储的第二加密散列值与第二客户端发送的第二客户端存储的第二加密散列值相同时,可使用已存储的第二密钥解密处理器存储的第二加密散列值生成第三加密散列值。若处理器存储的第二加密散列值为被篡改,则生成的第三加密散列值应与上述第一加密散列值相同。
s403、基于第一公钥解密第三加密散列值生成第三散列值;
可使用已存储的第一密钥解密第三加密散列值生成第三散列值,若第三加密散列值与上述第一加密散列值相同,则第三散列应与上述第一散列值相同。
s404、判断第三散列值是否与第三客户端发送的第一客户端存储的第一散列值相同;
第三客户端可与第一客户端相同,也可与第一客户端不同,例如,第一客户端由原始数据的利益相关方使用,第三客户端可由第三方(监察机构)使用,此时,第一客户端将存储的第一散列值发送至第三客户端,第三客户端将此第一散列值发送至处理器。处理器判断第三散列值是否与第三客户端发送的第一客户端存储的第一散列值相同。
s405、当第三散列值与第三客户端发送的第一客户端存储的第一散列值相同时,生成表示处理器存储的第二加密散列值真实的验证信号;
当第三散列值与第三客户端发送的第一客户端存储的第一散列值相同时,则说明区块链中存储的第二加密散列值未被更改,此时生成用于表示处理器存储的第二加密散列值真实的验证信号。
如图5所示,为本发明提供的一种区块链数据的处理装置的实施例1的结构示意图,所述装置包括计算模块101、传输模块102及存储模块103,其中:
计算模块101用于基于第一客户端发送的原始数据生成第一散列值;
原始数据可以包括商业合同、账本等机密信息,用户通过第一客户端将原始数据发送至处理器,处理器可以基于哈希算法计算原始数据的哈希值,即第一散列值。使用第一客户端的用户可为原始数据的利益相关方。
传输模块102用于接收第一客户端基于第一私钥加密第一散列值生成的第一加密散列值;
将第一散列值发送至第一客户端,用户使用第一客户端基于第一私钥对第一散列值进行加密生成第一加密散列值。用户可自行保存与第一私钥相匹配的第一公钥。
传输模块102还用于接收第二客户端基于第二私钥加密第一加密散列值生成的第二加密散列值,第一客户端与第二客户端不相同;
将第一加密散列值发送至第二客户端,用户使用第二客户端基于第二私钥对第一加密散列值进行加密生成第二加密散列值。用户可自行保存于第二私钥相匹配的第二公钥。第一客户端与第二客户端不同,且使用第二客户端的用户可为中立方,如登记中心或交易中心等。
存储模块103用于存储第二客户端发送的第二加密散列值;
将第二客户端发送的第二加密散列值存储在区块链中,存储时可任意选择存储的区块。
从上述技术方案可以看出,本发明公开了一种区块链数据的处理装置,其工作原理为基于第一客户端发送的原始数据生成第一散列值,接收第一客户端基于第一私钥加密第一散列值生成的第一加密散列值,接收第二客户端基于第二私钥加密第一加密散列值生成的第二加密散列值,第一客户端与第二客户端不相同,存储第二加密散列值。将散列原始数据得到散列值,再由相关利益人将散列值用私钥加密,保证了只有拥有与私钥相匹配的公钥的使用者才可查阅区块链中存储的数据,提高了区块链存储数据的安全性。
如图6所示,为本发明提供的一种区块链数据的处理装置的实施例2的结构示意图,所述装置包括计算模块201、传输模块204及存储模块205,其中计算模块201包括分类单元202及计算单元203;在所述装置中:
分类单元202用于基于预设算法将原始数据分为至少一份原始分数据;
原始数据包括客户数据及随机数据,每一原始数据的随机数据是唯一的,随机数可用来区分客户数据相同的原始数据,用来保证原始数据的唯一性。客户数据可以包括商业合同、账本等机密信息,用户通过第一客户端将原始数据发送至处理器。处理器基于预设算法将原始数据分为至少一份原始分数据,以原始数据为合同为例,可以将合同分为格式化信息及自填信息,其中,自填信息还可以分为填空信息、选择信息、附言信息等。将原始数据分为原始分数据可进一步提高存储的信息的安全性。
计算单元203用于基于所有原始分数据生成第一散列值;
基于哈希算法计算原始数据的哈希值,即第一散列值。使用第一客户端的用户可为原始数据的利益相关方。
传输模块204用于接收第一客户端基于第一私钥加密第一散列值生成的第一加密散列值;
将第一散列值发送至第一客户端,用户使用第一客户端基于第一私钥对第一散列值进行加密生成第一加密散列值。用户可自行保存与第一私钥相匹配的第一公钥。
传输模块204还用于接收第二客户端基于第二私钥加密第一加密散列值生成的第二加密散列值,第一客户端与第二客户端不相同;
将第一加密散列值发送至第二客户端,用户使用第二客户端基于第二私钥对第一加密散列值进行加密生成第二加密散列值。用户可自行保存于第二私钥相匹配的第二公钥。第一客户端与第二客户端不同,且使用第二客户端的用户可为中立方,如登记中心或交易中心等。
存储模块205用于存储第二客户端发送的第二加密散列值;
将第二客户端发送的第二加密散列值存储在区块链中,存储时可任意选择存储的区块。
如图7所示,为本发明在上述实施例的基础上提供的一种区块链数据的处理装置的实施例3的结构示意图,在上述系统中:
传输模块301还用于接收第一客户端发送的与第一私钥相匹配的第一公钥;
传输模块301还用于接收第二客户端发送的与第二私钥相匹配的第二公钥;
存储模块302还用于存储第一公钥及第二公钥;
将第一公钥及第二公钥存储到区块链中可便于其他有权利查阅存储的信息的用户(司法机构)查阅信息。
如图8所示,为本发明在上述实施例的基础上提供的一种区块链数据的处理方法的实施例4的结构示意图,所述系统还包括判断模块401、解密模块402及生成模块403,其中:
判断模块401用于判断处理器存储的第二加密散列值是否与第二客户端发送的第二客户端存储的第二加密散列值相同;
处理器将第二加密散列值存储到区块链中以后,可校验区块链中存储的信息与用户存储的信息是否相同,从而判断区块链中的信息是否被篡改,本实施例的方法可用于实现此功能。接收第二客户端发送的第二客户端存储的第二加密散列值,判断处理器存储的第二加密散列值是否与第二客户端发送的第二客户端存储的第二加密散列值相同。
当处理器存储的第二加密散列值与第二客户端发送的第二客户端存储的第二加密散列值相同时,解密模块402用于基于第二公钥解密处理器存储的第二加密散列值生成第三加密散列值;
当处理器存储的第二加密散列值与第二客户端发送的第二客户端存储的第二加密散列值相同时,可使用已存储的第二密钥解密处理器存储的第二加密散列值生成第三加密散列值。若处理器存储的第二加密散列值为被篡改,则生成的第三加密散列值应与上述第一加密散列值相同。
解密模块402还用于基于第一公钥解密第三加密散列值生成第三散列值;
可使用已存储的第一密钥解密第三加密散列值生成第三散列值,若第三加密散列值与上述第一加密散列值相同,则第三散列应与上述第一散列值相同。
判断模块401还用于判断第三散列值是否与第三客户端发送的第一客户端存储的第一散列值相同;
第三客户端可与第一客户端相同,也可与第一客户端不同,例如,第一客户端由原始数据的利益相关方使用,第三客户端可由第三方(监察机构)使用,此时,第一客户端将存储的第一散列值发送至第三客户端,第三客户端将此第一散列值发送至处理器。处理器判断第三散列值是否与第三客户端发送的第一客户端存储的第一散列值相同。
当第三散列值与第三客户端发送的第一客户端存储的第一散列值相同时,生成模块403生成表示处理器存储的第二加密散列值真实的验证信号;
当第三散列值与第三客户端发送的第一客户端存储的第一散列值相同时,则说明区块链中存储的第二加密散列值未被更改,此时生成用于表示处理器存储的第二加密散列值真实的验证信号。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。