首页 / 专利库 / 资料储存系统 / 分布式账本 / 区块链 / 区块头 / 户籍管理方法、装置、设备以及存储介质

户籍管理方法、装置、设备以及存储介质

阅读:574发布:2020-05-13

专利汇可以提供户籍管理方法、装置、设备以及存储介质专利检索,专利查询,专利分析的服务。并且本 发明 实施例 公开了一种户籍管理方法、装置、设备以及存储介质,该方法包括:接收户籍关联 请求 ;基于第一家庭户籍信息和第二家庭户籍信息生成关联家庭户籍信息,关联家庭户籍信息包括第一家庭和第二家庭的所有家庭成员的个人户籍信息;基于关联家庭户籍信息中所有家庭成员的个人户籍信息确定默克尔树以及默克尔树的根 节点 的哈希值;基于默克尔树和根节点的哈希值构建新区 块 以将新区块加入 区块链 网络;确定关联家庭户籍信息中每个家庭成员的个人户籍信息在默克尔树中的存储路径,并返回根节点的哈希值和每个家庭成员的个人户籍信息在默克尔树中的存储路径。采用本发明实施例,可将多个家庭户籍信息关联存储,提高家庭户籍信息管理的灵活性。,下面是户籍管理方法、装置、设备以及存储介质专利的具体信息内容。

1.一种户籍管理方法,其特征在于,所述方法包括:
接收户籍关联请求,所述户籍关联请求携带第一用户的第一家庭户籍信息和第二用户的第二家庭户籍信息,所述第一家庭户籍信息包含所述第一用户所在的第一家庭的所有家庭成员的个人户籍信息,所述第二家庭户籍信息包含所述第二用户所在的第二家庭的所有家庭成员的个人户籍信息;
若所述户籍关联请求为有效请求,则确定所述第一用户的第一户籍迁出记录和所述第二用户的第二户籍迁出记录,并基于所述第一户籍迁出记录和/或所述第二户籍迁出记录确定所述第一家庭户籍信息和所述第二家庭户籍信息是否存在户籍关联关系;
若所述第一家庭户籍信息和所述第二家庭户籍信息存在所述户籍关联关系,则基于所述第一家庭户籍信息和所述第二家庭户籍信息生成关联家庭户籍信息,所述关联家庭户籍信息包括所述第一家庭和所述第二家庭的所有家庭成员的个人户籍信息;
基于所述关联家庭户籍信息中所有家庭成员的个人户籍信息确定默克尔树以及所述默克尔树的根节点的哈希值,将所述根节点的哈希值发送至共识节点,以使所述共识节点基于所述关联家庭户籍信息对所述根节点的哈希值进行验证;
接收所述共识节点在所述根节点的哈希值通过验证后发送的签名确认消息,在所述签名确认消息满足预设共识策略的情况下,基于所述默克尔树和所述根节点的哈希值构建新区并将所述新区块加入区块链网络;
确定所述关联家庭户籍信息中每个家庭成员的个人户籍信息在所述默克尔树中的存储路径,并返回所述根节点的哈希值和所述每个家庭成员的个人户籍信息在所述默克尔树中的存储路径。
2.根据权利要求1所述的方法,其特征在于,所述基于所述第一户籍迁出记录和/或所述第二户籍迁出记录确定所述第一家庭户籍信息和所述第二家庭户籍信息是否存在户籍关联关系包括:
基于所述第一户籍迁出记录和所述第二户籍迁出记录确定所述第一用户迁出前对应的家庭户籍信息和所述第二用户迁出前对应的家庭户籍信息是否为同一家庭户籍信息,若为同一家庭户籍信息,则确定所述第一家庭户籍信息和所述第二家庭户籍信息存在户籍关联关系,若不是同一家庭户籍信息,则确定所述第一家庭户籍信息和所述第二家庭信息不存在所述户籍关联关系;或者,
基于所述第一户籍迁出记录确定所述第一用户迁出前对应的家庭户籍信息是否为所述第二家庭户籍信息,若为所述第二家庭户籍信息,则确定所述第一家庭户籍信息和所述第二家庭户籍信息存在所述户籍关联关系,若不是所述第二家庭户籍信息,则确定所述第一家庭户籍信息和所述第二家庭户籍信息不存在所述户籍关联关系。
3.根据权利要求1所述的方法,其特征在于,所述基于所述关联家庭户籍信息中所有家庭成员的个人户籍信息确定默克尔树以及所述默克尔树的根节点的哈希值包括:
对所述关联家庭户籍信息中各个家庭成员的个人户籍信息分别进行哈希计算,得到多个基础哈希值;
基于所述多个基础哈希值确定出至少一个上层哈希值,一个上层哈希值由至少两个基础哈希值经过哈希计算得到;
从所述至少一个上层哈希值中确定出目标哈希值,所述目标哈希值由所述多个基础哈希值经过哈希计算得到;
基于多数多个基础哈希值、所述至少一个上层哈希值确定出默克尔树,所述多个基础哈希值分别为所述默克尔树的叶子节点的哈希值,所述至少一个上层哈希值中除所述目标哈希值外的其他上层哈希值分别为所述默克尔树的中间节点的哈希值,所述目标哈希值为所述默克尔树的根节点的哈希值。
4.根据权利要求1所述的方法,其特征在于,所述基于所述默克尔树和所述根节点的哈希值构建新区块并将所述新区块加入区块链网络包括:
获取区块链网络中最后一个区块的区块头特征值,并基于所述区块哈希值和所述根节点的哈希值构建出新的区块头;
基于所述默克尔树构建出新的区块体;
基于所述新的区块头和所述新的区块体构建出新区块,并将所述新区块连接至所述最后一个区块之后以将所述新区块加入所述区块链网络。
5.根据权利要求1所述方法,其特征在于,所述方法还包括:
接收户籍确认请求,所述户籍查询请求携带第三用户的个人户籍信息、第一目标根节点的哈希值以及第一目标存储路径;
从所述区块链网络中确定出区块头中包含所述第一目标根节点的哈希值的第一目标区块,并基于所述第一目标存储路径从所述第一目标区块的默克尔树中确定出第一目标基础哈希值;
对所述第三用户的个人户籍信息进行哈希计算得到所述第三用户的个人户籍信息的哈希值;
若所述第一目标基础哈希值与所述第三用户的个人户籍信息的哈希值一致,则返回户籍确认消息。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收户籍更新请求,所述户籍更新请求携带第四用户的个人户籍信息、第二目标根节点的哈希值以及第二目标存储路径;
从所述区块链网络中确定出区块头中包含所述第二目标根节点的哈希值的第二目标区块,并基于所述第二目标存储路径从所述第二目标区块的默克尔树中确定出第二目标基础哈希值;
对所述第四用户的个人户籍信息进行哈希计算得到所述第四用户的个人户籍信息的哈希值;
基于所述第四用户的个人户籍信息的哈希值更新所述第二目标区块的默克尔树得到新的默克尔树,基于所述新的默克尔树更新所述第二目标区块。
7.根据权利要求1所述的方法,其特征在于,所述户籍关联请求由户籍关联部提交,所述新区块中存储有所述关联家庭户籍信息中所有家庭成员的个人户籍信息,所述所有家庭成员的个人户籍信息由所述户籍关联部门的私钥进行加密;所述方法还包括接收户籍确认部门提交的户籍确认请求,所述户籍确认部门提交的户籍确认请求携带第五用户的身份信息和第三目标根节点的哈希值;
从所述区块链网络中确定出区块头中包含所述第三目标根节点的哈希值的第三目标区块,并基于所述第五用户的身份信息从所述第三目标区块中确定出所述第五用户的个人户籍信息;
获取所述户籍确认部门的公钥,并基于所述户籍确认部门的公钥对所述第五用户的个人户籍信息进行解密,若解密成功,则返回户籍确认消息;
所述户籍关联部门和所述户籍确认部门为所述户籍管理部门的子部门,所述户籍关联部门的私钥为户籍管理部门的私钥的子私钥,所述户籍确认部门的公钥为所述户籍管理部门的公钥或者为所述户籍管理部门的公钥的子公钥。
8.一种户籍管理装置,其特征在于,所述装置包括:
第一接收模块,用于接收户籍关联请求,所述户籍关联请求携带第一用户的第一家庭户籍信息和第二用户的第二家庭户籍信息,所述第一家庭户籍信息包含所述第一用户所在的第一家庭的所有家庭成员的个人户籍信息,所述第二家庭户籍信息包含所述第二用户所在的第二家庭的所有家庭成员的个人户籍信息;
第二确定模块,用于若所述户籍关联请求为有效请求,则确定所述第一用户的第一户籍迁出记录和所述第二用户的第二户籍迁出记录,并基于所述第一户籍迁出记录和/或所述第二户籍迁出记录确定所述第一家庭户籍信息和所述第二家庭户籍信息是否存在户籍关联关系;
生成模块,用于当所述第一家庭户籍信息和所述第二家庭户籍信息存在所述户籍关联关系时,基于所述第一家庭户籍信息和所述第二家庭户籍信息生成关联家庭户籍信息,所述关联家庭户籍信息包括所述第一家庭和所述第二家庭的所有家庭成员的个人户籍信息;
第一处理模块,用于基于所述关联家庭户籍信息中所有家庭成员的个人户籍信息确定默克尔树以及所述默克尔树的根节点的哈希值,将所述根节点的哈希值发送至共识节点,以使所述共识节点基于所述关联家庭户籍信息对所述根节点的哈希值进行验证;
第二处理模块,用于接收所述共识节点在所述根节点的哈希值通过验证后发送的签名确认消息,在所述签名确认消息满足预设共识策略的情况下,基于所述默克尔树和所述根节点的哈希值构建新区块并将所述新区块加入区块链网络;
第一返回模块,用于确定所述关联家庭户籍信息中每个家庭成员的个人户籍信息在所述默克尔树中的存储路径,并返回所述根节点的哈希值和所述每个家庭成员的个人户籍信息在所述默克尔树中的存储路径。
9.一种设备,其特征在于,包括处理器和存储器,所述处理器和存储器相互连接;
所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,执行如权利要求1至7任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行以实现权利要求1至7任一项所述的方法。

说明书全文

户籍管理方法、装置、设备以及存储介质

技术领域

[0001] 本发明涉及计算机技术领域,尤其涉及一种户籍管理方法、装置、设备以及存储介质。

背景技术

[0002] 目前,个人户籍信息一般通过两种方式进行保存。对于个人而言,保留在国家制发的户口本中,对于政府部来说,通过将家庭户籍信息集中存储于数据库中。
[0003] 但是目前所有的家庭户籍信息都是集中存储于政府机构的数据库中,虽然查询某个人的个人户籍信息较为快捷,但是在查询其直系亲属以及旁系亲属的个人户籍信息时需要通过检索查询才能得到,查询效率低下。另一方面,由于数据库中的家庭户籍信息存储量较为庞大容易被篡改,对于所有人和家庭户籍信息来说始终存在信息安全隐患。
[0004] 因此,如何对个人和家庭的户籍信息的管理方法进行改进和优化,是亟需解决的问题。

发明内容

[0005] 本发明实施例提供一种户籍管理方法、装置、设备以及存储介质,可可将多个家庭户籍信息关联存储,提高家庭户籍信息管理的灵活性。
[0006] 第一方面,本发明实施例提供一种户籍管理方法,该方法包括:
[0007] 接收户籍关联请求,上述户籍关联请求携带第一用户的第一家庭户籍信息和第二用户的第二家庭户籍信息,上述第一家庭户籍信息包含上述第一用户所在的第一家庭的所有家庭成员的个人户籍信息,上述第二家庭户籍信息包含上述第二用户所在的第二家庭的所有家庭成员的个人户籍信息;
[0008] 若上述户籍关联请求为有效请求,则确定上述第一用户的第一户籍迁出记录和上述第二用户的第二户籍迁出记录,并基于上述第一户籍迁出记录和/或上述第二户籍迁出记录确定上述第一家庭户籍信息和上述第二家庭户籍信息是否存在户籍关联关系;
[0009] 若上述第一家庭户籍信息和上述第二家庭户籍信息存在上述户籍关联关系,则基于上述第一家庭户籍信息和上述第二家庭户籍信息生成关联家庭户籍信息,上述关联家庭户籍信息包括上述第一家庭和上述第二家庭的所有家庭成员的个人户籍信息;
[0010] 基于上述关联家庭户籍信息中所有家庭成员的个人户籍信息确定默克尔树以及上述默克尔树的根节点的哈希值,将上述根节点的哈希值发送至共识节点,以使上述共识节点基于上述关联家庭户籍信息对上述根节点的哈希值进行验证;
[0011] 接收上述共识节点在上述根节点的哈希值通过验证后发送的签名确认消息,在上述签名确认消息满足预设共识策略的情况下,基于上述默克尔树和上述根节点的哈希值构建新区并将上述新区块加入区块链网络;
[0012] 确定上述关联家庭户籍信息中每个家庭成员的个人户籍信息在上述默克尔树中的存储路径,并返回上述根节点的哈希值和上述每个家庭成员的个人户籍信息在上述默克尔树中的存储路径。
[0013] 结合第一方面,在一种可能的实施方式中,上述基于上述第一户籍迁出记录和/或上述第二户籍迁出记录确定上述第一家庭户籍信息和上述第二家庭户籍信息是否存在户籍关联关系包括:
[0014] 基于上述第一户籍迁出记录和上述第二户籍迁出记录确定上述第一用户迁出前对应的家庭户籍信息和上述第二用户迁出前对应的家庭户籍信息是否为同一家庭户籍信息,若为同一家庭户籍信息,则确定上述第一家庭户籍信息和上述第二家庭户籍信息存在户籍关联关系,若不是同一家庭户籍信息,则确定上述第一家庭户籍信息和上述第二家庭信息不存在上述户籍关联关系;或者,
[0015] 基于上述第一户籍迁出记录确定上述第一用户迁出前对应的家庭户籍信息是否为上述第二家庭户籍信息,若为上述第二家庭户籍信息,则确定上述第一家庭户籍信息和上述第二家庭户籍信息存在上述户籍关联关系,若不是上述第二家庭户籍信息,则确定上述第一家庭户籍信息和上述第二家庭户籍信息不存在上述户籍关联关系。
[0016] 结合第一方面,在一种可能的实施方式中,上述基于上述关联家庭户籍信息中所有家庭成员的个人户籍信息确定默克尔树以及上述默克尔树的根节点的哈希值包括:
[0017] 对上述关联家庭户籍信息中各个家庭成员的个人户籍信息分别进行哈希计算,得到多个基础哈希值;
[0018] 基于上述多个基础哈希值确定出至少一个上层哈希值,一个上层哈希值由至少两个基础哈希值经过哈希计算得到;
[0019] 从上述至少一个上层哈希值中确定出目标哈希值,上述目标哈希值由上述多个基础哈希值经过哈希计算得到;
[0020] 基于多数多个基础哈希值、上述至少一个上层哈希值确定出默克尔树,上述多个基础哈希值分别为上述默克尔树的叶子节点的哈希值,上述至少一个上层哈希值中除上述目标哈希值外的其他上层哈希值分别为上述默克尔树的中间节点的哈希值,上述目标哈希值为上述默克尔树的根节点的哈希值。
[0021] 结合第一方面,在一种可能的实施方式中,上述基于上述默克尔树和上述根节点的哈希值构建新区块并将上述新区块加入区块链网络包括:
[0022] 获取区块链网络中最后一个区块的区块头特征值,并基于上述区块哈希值和上述根节点的哈希值构建出新的区块头;
[0023] 基于上述默克尔树构建出新的区块体;
[0024] 基于上述新的区块头和上述新的区块体构建出新区块,并将上述新区块连接至上述最后一个区块之后以将上述新区块加入上述区块链网络。
[0025] 结合第一方面,在一种可能的实施方式中,上述方法还包括:
[0026] 接收户籍确认请求,上述户籍查询请求携带第三用户的个人户籍信息、第一目标根节点的哈希值以及第一目标存储路径;
[0027] 从上述区块链网络中确定出区块头中包含上述第一目标根节点的哈希值的第一目标区块,并基于上述第一目标存储路径从上述第一目标区块的默克尔树中确定出第一目标基础哈希值;
[0028] 对上述第三用户的个人户籍信息进行哈希计算得到上述第三用户的个人户籍信息的哈希值;
[0029] 若上述第一目标基础哈希值与上述第三用户的个人户籍信息的哈希值一致,则返回户籍确认消息。
[0030] 结合第一方面,在一种可能的实施方式中,上述方法还包括:
[0031] 接收户籍更新请求,上述户籍更新请求携带第四用户的个人户籍信息、第二目标根节点的哈希值以及第二目标存储路径;
[0032] 从上述区块链网络中确定出区块头中包含上述第二目标根节点的哈希值的第二目标区块,并基于上述第二目标存储路径从上述第二目标区块的默克尔树中确定出第二目标基础哈希值;
[0033] 对上述第四用户的个人户籍信息进行哈希计算得到上述第四用户的个人户籍信息的哈希值;
[0034] 基于上述第四用户的个人户籍信息的哈希值更新上述第二目标区块的默克尔树得到新的默克尔树,基于上述新的默克尔树更新上述第二目标区块。
[0035] 结合第一方面,在一种可能的实施方式中,上述户籍关联请求由户籍关联部门提交,上述新区块中存储有上述关联家庭户籍信息中所有家庭成员的个人户籍信息,上述所有家庭成员的个人户籍信息由上述户籍关联部门的私钥进行加密;上述方法还包括[0036] 接收户籍确认部门提交的户籍确认请求,上述户籍确认部门提交的户籍确认请求携带第五用户的身份信息和第三目标根节点的哈希值;
[0037] 从上述区块链网络中确定出区块头中包含上述第三目标根节点的哈希值的第三目标区块,并基于上述第五用户的身份信息从上述第三目标区块中确定出上述第五用户的个人户籍信息;
[0038] 获取上述户籍确认部门的公钥,并基于上述户籍确认部门的公钥对上述第五用户的个人户籍信息进行解密,若解密成功,则返回户籍确认消息;
[0039] 上述户籍关联部门和上述户籍确认部门为上述户籍管理部门的子部门,上述户籍关联部门的私钥为户籍管理部门的私钥的子私钥,上述户籍确认部门的公钥为上述户籍管理部门的公钥或者为上述户籍管理部门的公钥的子公钥。
[0040] 第二方面,本发明实施例提供了一种户籍管理装置,该装置包括:
[0041] 第一接收模块,用于接收户籍关联请求,上述户籍关联请求携带第一用户的第一家庭户籍信息和第二用户的第二家庭户籍信息,上述第一家庭户籍信息包含上述第一用户所在的第一家庭的所有家庭成员的个人户籍信息,上述第二家庭户籍信息包含上述第二用户所在的第二家庭的所有家庭成员的个人户籍信息;
[0042] 第一确定模块,用于当上述户籍关联请求为有效请求时,确定上述第一用户的第一户籍迁出记录和上述第二用户的第二户籍迁出记录,并基于上述第一户籍迁出记录和/或上述第二户籍迁出记录确定上述第一家庭户籍信息和上述第二家庭户籍信息是否存在户籍关联关系;
[0043] 生成模块,用于当上述第一家庭户籍信息和上述第二家庭户籍信息存在上述户籍关联关系时,基于上述第一家庭户籍信息和上述第二家庭户籍信息生成关联家庭户籍信息,上述关联家庭户籍信息包括上述第一家庭和上述第二家庭的所有家庭成员的个人户籍信息;
[0044] 第一处理模块,用于基于上述关联家庭户籍信息中所有家庭成员的个人户籍信息确定默克尔树以及上述默克尔树的根节点的哈希值,将上述根节点的哈希值发送至共识节点,以使上述共识节点基于上述关联家庭户籍信息对上述根节点的哈希值进行验证;
[0045] 第二处理模块,用于接收上述共识节点在上述根节点的哈希值通过验证后发送的签名确认消息,在上述签名确认消息满足预设共识策略的情况下,基于上述默克尔树和上述根节点的哈希值构建新区块并将上述新区块加入区块链网络;
[0046] 第一返回模块,用于确定上述关联家庭户籍信息中每个家庭成员的个人户籍信息在上述默克尔树中的存储路径,并返回上述根节点的哈希值和上述每个家庭成员的个人户籍信息在上述默克尔树中的存储路径。
[0047] 结合第二方面,在一种可能的实施方式中,上述第一确定模块包括:
[0048] 第一确定单元,用于基于上述第一户籍迁出记录和上述第二户籍迁出记录确定上述第一用户迁出前对应的家庭户籍信息和上述第二用户迁出前对应的家庭户籍信息是否为同一家庭户籍信息,若为同一家庭户籍信息,则确定上述第一家庭户籍信息和上述第二家庭户籍信息存在户籍关联关系,若不是同一家庭户籍信息,则确定上述第一家庭户籍信息和上述第二家庭信息不存在上述户籍关联关系;或者,
[0049] 第二确定单元,用于基于上述第一户籍迁出记录确定上述第一用户迁出前对应的家庭户籍信息是否为上述第二家庭户籍信息,若为上述第二家庭户籍信息,则确定上述第一家庭户籍信息和上述第二家庭户籍信息存在上述户籍关联关系,若不是上述第二家庭户籍信息,则确定上述第一家庭户籍信息和上述第二家庭户籍信息不存在上述户籍关联关系。
[0050] 结合第二方面,在一种可能的实施方式中,上述第一处理模块包括:
[0051] 处理单元,用于对上述关联家庭户籍信息中各个家庭成员的个人户籍信息分别进行哈希计算,得到多个基础哈希值;
[0052] 第三确定单元,用于基于上述多个基础哈希值确定出至少一个上层哈希值,一个上层哈希值由至少两个基础哈希值经过哈希计算得到;
[0053] 第四确定单元,用于从上述至少一个上层哈希值中确定出目标哈希值,上述目标哈希值由上述多个基础哈希值经过哈希计算得到;
[0054] 第一构建单元,用于基于多数多个基础哈希值、上述至少一个上层哈希值确定出默克尔树,上述多个基础哈希值分别为上述默克尔树的叶子节点的哈希值,上述至少一个上层哈希值中除上述目标哈希值外的其他上层哈希值分别为上述默克尔树的中间节点的哈希值,上述目标哈希值为上述默克尔树的根节点的哈希值。
[0055] 结合第二方面,在一种可能的实施方式中,上述第二处理模块包括:
[0056] 第二构建单元,用于获取区块链网络中最后一个区块的区块头特征值,并基于上述区块哈希值和上述根节点的哈希值构建出新的区块头;
[0057] 第三构建单元,用于基于上述默克尔树构建出新的区块体;
[0058] 第四构建单元,用于基于上述新的区块头和上述新的区块体构建出新区块,并将上述新区块连接至上述最后一个区块之后以将上述新区块加入上述区块链网络。
[0059] 结合第二方面,在一种可能的实施方式中,上述装置还包括:
[0060] 第二接收模块,还用于接收户籍确认请求,上述户籍查询请求携带第三用户的个人户籍信息、第一目标根节点的哈希值以及第一目标存储路径;
[0061] 第二确定模块,还用于从上述区块链网络中确定出区块头中包含上述第一目标根节点的哈希值的第一目标区块,并基于上述第一目标存储路径从上述第一目标区块的默克尔树中确定出第一目标基础哈希值;
[0062] 第三处理模块,还用于对上述第三用户的个人户籍信息进行哈希计算得到上述第三用户的个人户籍信息的哈希值;
[0063] 第二返回模块,还用于当上述第一目标基础哈希值与上述第三用户的个人户籍信息的哈希值一致时,返回户籍确认消息。
[0064] 结合第二方面,在一种可能的实施方式中,上述装置还包括:
[0065] 第三接收模块,还用于接收户籍更新请求,上述户籍更新请求携带第四用户的个人户籍信息、第二目标根节点的哈希值以及第二目标存储路径;
[0066] 第三确定模块,还用于从上述区块链网络中确定出区块头中包含上述第二目标根节点的哈希值的第二目标区块,并基于上述第二目标存储路径从上述第二目标区块的默克尔树中确定出第二目标基础哈希值;
[0067] 第四处理模块,还用于对上述第四用户的个人户籍信息进行哈希计算得到上述第四用户的个人户籍信息的哈希值;
[0068] 更新模块,还用于基于上述第四用户的个人户籍信息的哈希值更新上述第二目标区块的默克尔树得到新的默克尔树,基于上述新的默克尔树更新上述第二目标区块。
[0069] 结合第二方面,在一种可能的实施方式中,上述户籍关联请求由户籍关联部门提交,上述新区块中存储有上述关联家庭户籍信息中所有家庭成员的个人户籍信息,上述所有家庭成员的个人户籍信息由上述户籍关联部门的私钥进行加密;上述装置还包括[0070] 第四接收模块,还用于接收户籍确认部门提交的户籍确认请求,上述户籍确认部门提交的户籍确认请求携带第五用户的身份信息和第三目标根节点的哈希值;
[0071] 第四确定模块,还用于从上述区块链网络中确定出区块头中包含上述第三目标根节点的哈希值的第三目标区块,并基于上述第五用户的身份信息从上述第三目标区块中确定出上述第五用户的个人户籍信息;
[0072] 第五处理模块,还用于获取上述户籍确认部门的公钥,并基于上述户籍确认部门的公钥对上述第五用户的个人户籍信息进行解密,若解密成功,则返回户籍确认消息;
[0073] 上述户籍关联部门和上述户籍确认部门为上述户籍管理部门的子部门,上述户籍关联部门的私钥为户籍管理部门的私钥的子私钥,上述户籍确认部门的公钥为上述户籍管理部门的公钥或者为上述户籍管理部门的公钥的子公钥。
[0074] 第三方面,本发明实施例提供了一种设备,该设备包括处理器和存储器,该处理器和存储器相互连接。该存储器用于存储支持该终端设备执行上述第一方面和/或第一方面任一种可能的实现方式提供的方法的计算机程序,该计算机程序包括程序指令,该处理器被配置用于调用上述程序指令,执行上述第一方面和/或第一方面任一种可能的实施方式所提供的方法。
[0075] 第四方面,本发明实施例提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行以实现上述第一方面和/或第一方面任一种可能的实施方式所提供的方法。
[0076] 在本发明实施例中,通过对第一用户和第二用户的户籍迁出记录来确定第一用户对应的第一家庭户籍信息和第二用户对应的第二家庭户籍信息之间存在关联关系,可确保第一家庭户籍信息和第二家庭户籍信息具备关联存储的条件,可靠性高。同时,基于第一家庭户籍信息和第二家庭户籍信息生成关联家庭户籍信息,进而将关联家庭户籍信息中的各个家庭成员的个人户籍信息哈希值通过构建默克尔树写入区块链网络,可确保关联家庭户籍信息中各个家庭成员的个人用户信息不会被篡改,提高关联家庭户籍信息存储的稳定性。进一步的,还可基于户籍确认请求以及户籍更新请求完成对某一用户的个人户籍信息的确认与更新,进一步提高户籍管理的效率,适用性更高。附图说明
[0077] 为了更清楚地说明本发明实施例中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0078] 图1是本发明实施例提供的户籍管理方法的原理示意图;
[0079] 图2是本发明实施例提供的户籍管理方法的一流程示意图;
[0080] 图3a是本发明实施例提供的确定户籍关联关系的一场景示意图;
[0081] 图3b是本发明实施例提供的确定户籍关联关系的另一场景示意图;
[0082] 图4a是本发明实施例提供的确定默克尔树的一场景示意图;
[0083] 图4b是本发明实施例提供的确定默克尔树的另一场景示意图;
[0084] 图4c是本发明实施例提供的确定默克尔树的又一场景示意图;
[0085] 图5a是本发明实施例提供的区块头的组成示意图;
[0086] 图5b是本发明实施例提供的区块的组成示意图;
[0087] 图6是本发明实施例提供的户籍管理方法的另一流程示意图;
[0088] 图7是本发明实施例提供的户籍管理方法的又一流程示意图;
[0089] 图8是本发明实施例提供的更新默克尔树的场景示意图;
[0090] 图9是本发明实施例提供的户籍管理装置的结构示意图;
[0091] 图10是本发明实施例提供的设备的结构示意图。

具体实施方式

[0092] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0093] 请参见图1,图1是本发明实施例提供的户籍管理方法的原理示意图。在图1中,当接收到一个携带有多个用户的家庭户籍信息(如第一用户的第一家庭户籍信息101和第二用户的第二家庭户籍信息102)的户籍关联请求10时,可根据第一用户的户籍迁出记录和/或第二用户的户籍迁出记录确定第一家庭户籍信息101和第二家庭户籍信息102之间是否存在户籍关联关系。当确定第一家庭户籍信息101和第二家庭户籍信息102之间存在户籍关联关系时,可将第一家庭户籍信息101和第二家庭户籍信息102进行合并得到一个关联家庭户籍信息20。其中上述关联家庭户籍信息20中包含有第一家庭户籍信息101中所包含的第一用户所在家庭的所有家庭成员的个人户籍信息,以及第二户籍信息102中所包含的第二用户所在家庭的所有家庭成员的个人户籍信息。
[0094] 在得到上述关联家庭户籍信息20之后,可基于关联家庭户籍信息中各个家庭成员的个人户籍信息确定出用于构建区块的默克尔树30和默克尔树30的根节点的哈希值40。此时可将上述根节点的哈希值40发送至区块链网络中的共识节点(如共识节点50a、共识节点50b以及共识节点50c),以使共识节点50a、共识节点50b以及共识节点50c对上述根节点的哈希值40进行验证,并接收共识节点50a、共识节点50b以及共识节点50c在上述根节点的哈希值40通过验证后发送的签名确认消息。当接收到的签名确认消息满足预设共识策略时,可基于上述默克尔树30和根节点的哈希值40构建出一个新区块60,并将新区块60添加至区块链网络中的主链70上,从而达到将包含有第一家庭户籍信息101和第二家庭户籍信息102的关联户籍信息20存储至区块链网络的目的。
[0095] 其中,上述共识节点50a、共识节点50b以及共识节点50c仅为区块链网络中的部分节点,具体共识节点的数量可基于实际应用场景确定,在此不做限制。
[0096] 应当理解,上述预设共识策略包括但不限于工作量证明机制(Proof of Work,PoW)、权益证明机制(Proof of Stake,PoS)、股份授权证明机制(Delegated Proof of Stake,DPoS)实用拜占庭机制(Practical Byzantine Fault Tolerance,PBFT)以及Ripple共识算法等,具体可基于实际应用场景确定,在此不做限制。此外,任何人、任何企业都可以架设服务器以加入区块链网络成为一个节点。所以,区块链网络可以理解为一个可以在多个站点、不同地理位置或者多个机构组成的区块链网络里进行数据处理、分享的数据库。
[0097] 参见图2,图2是本发明实施例提供的户籍管理方法的一流程示意图。本发明实施例提供的户籍管理方法可包括如下步骤S101至S106。
[0098] S101、接收户籍关联请求。
[0099] 在一些可行的实施方式中,上述户籍关联请求可以是任一用户提交的用户管理其家庭户籍信息与另一用户的家庭户籍信息进行关联存储的请求,也可是两个用户共同提交的用于关联并存储两个家庭户籍信息的请求,还可以是第三方平台(如政府机构)等对相关用户的家庭户籍信息进行关联存储时产生的请求,具体可基于实际应用场景确定,在此不做限制。
[0100] 其中,上述户籍关联请求携带第一用户的第一家庭户籍信息和第二用户的户籍家庭信息,并且上述第一家庭户籍信息包含第一用户所在的家庭中所有家庭成员的个人户籍信息,上述第二家庭户籍信息包含第二用户所在的家庭中所有家庭成员的个人户籍信息。也就是说,在接收到一个户籍关联请求之后,同样会接收到两个用户的家庭户籍信息,以及每一家庭户籍信息中所包含的各个家庭成员的个人户籍信息。
[0101] 其中,上述每个家庭成员的个人户籍信息包括但不限于姓名、曾用名、性别、出生日期、与家庭户主关系、出生地、籍贯、公民身份证号、家庭住址、职业、文化程度等,具体可基于实际应用场景确定,在此不做限制。需要说明的是,上述第一家庭户籍信息和上述第二家庭户籍信息在上述户籍关联请求中的信息表现形式包括但不限于字符串、二进制数据等,具体也可基于实际应用场景确定,在此不做限制。
[0102] S102、若户籍关联请求为有效请求,则确定第一用户的第一户籍迁出记录和第二用户的第二户籍迁出记录,并基于第一户籍迁出记录和/或第二户籍迁出记录确定第一家庭户籍信息和第二家庭户籍信息是否存在户籍关联关系。
[0103] 在一些可行的实施方式中,在接收到户籍关联请求之后,如果上述户籍关联请求中还携带上述第一家庭户籍信息的第一数字签名和上述第二家庭户籍信息的第二数字签名,还可基于上述第一数字签名和上述第二数字签名确定上述户籍关联请求是否为有效请求,如果为有效请求,则对上述第一家庭户籍信息和上述第二家庭户籍信息进行进一步处理。如果不是有效请求,则可返回请求错误消息以告知请求发送方该请求为无效请求,请重新提交户籍关联请求。
[0104] 具体地,可获取上述第一用户的第一公钥和上述第二用户的第二公钥,并基于上述第一公钥对上述第一家庭户籍信息的第一数字签名进行解密得到上述第一家庭户籍信息的第一摘要信息,同时基于上述第二公钥对上述第二家庭户籍信息的第二数字签名进行解密得到第二家庭户籍信息的第二摘要信息。另一方面,可对上述户籍关联请求中携带的第一家庭户籍信息和第二家庭户籍信息分别进行哈希计算,得到第一家庭户籍信息的第三摘要信息和第二家庭户籍信息的第四摘要信息。
[0105] 进一步地,此时可将上述第一家庭户籍信息的第一摘要信息和第三摘要信息进行比较,将上述第二家庭户籍信息的第二摘要信息和第四摘要信息进行比较。如果上述第一家庭户籍信息的第一摘要信息和第三摘要信息一致,并且上述第二家庭户籍信息的第二摘要信息和第四摘要信息一致,可说明上述户籍关联请求在提交过程中上述第一家庭户籍信息和上述第二家庭户籍信息没有被篡改,进而从侧面说明上述户籍关联请求为有效请求。另一方面,如果上述第一家庭户籍信息的第一摘要信息和第三摘要信息不一致,和/或,上述第二家庭户籍信息的第二摘要信息和第四摘要信息不一致,则说明至少有一个家庭的家庭户籍信息在上述户籍关联请求的提交过程中已被篡改,此事可进一步确定上述户籍关联请求为无效请求。
[0106] 举例来说,假设上述第一家庭户籍信息的数字签名为0010101,上述第二家庭户籍信息的数字签名为0110101。如果采用上述第一公钥对数字签名0010101进行解密得到的第一摘要信息为1000100,对上述第一家庭户籍信息进行哈希计算的到的第三摘要信息同样为1000100,此时第一摘要信息与第三摘要信息一致。如果采用上述第二公钥对数字签名0110101进行解密得到的第二摘要信息为1000101,对上述第二家庭户籍信息进行哈希计算的到的第四摘要信息同样为1000101,此时第二摘要信息和第四摘要信息一致。基于上述实现方式,则可说明上述第一家庭户籍信息和上述第二家庭户籍信息在上述户籍关联请求提交过程中未被篡改,进而说明上述户籍关联请求为有效请求。
[0107] 可选的,在对上述户籍关联请求进行验证时,还可以通过验证请求提交方的身份信息(如是否是预设黑名单用户)、管理权限(是否可获取家庭户籍信息并对家庭户籍信息进行关联)等方式,以及通过验证户籍关联请求中的请求参数是否包含异常参数等方式进行验证,具体实现方式可基于实际应用场景确定,在此不做限制。
[0108] 在一些可行的实施方式中,当上述户籍关联请求为有效请求时,可确定出上述第一用户的第一户籍迁出记录和上述第二用户的户籍迁出记录,进而基于上述第一户籍迁出记录和/或上述第二户籍迁出记录确定上述第一家庭户籍信息和上述第二家庭户籍信息是否存在户籍关联关系。其中,上述第一户籍迁出记录和上述第二户籍迁出记录分别包含上述第一用户和上述第二用户从一个家庭户籍信息中迁出至另一家庭户籍信息中的详细说明,并且任一户籍迁出记录的具体表现形式可基于实际应用场景确定,在此不做限制。
[0109] 具体地,当上述第一用户存在第一户籍迁出记录并且上述第二用户存在第二户籍迁出记录时,可基于上述第一户籍迁出记录和上述第二户籍迁出记录确定出上述第一用户迁出前对应的家庭户籍信息以及上述第二用户迁出前对应的家庭户籍信息,并将上述第一用户迁出前对应的家庭户籍信息和上述第二用户迁出前对应的家庭户籍信息进行比较。如果上述第一用户迁出前对应的家庭户籍信息和上述第二用户迁出前对应的家庭户籍信息为同一家庭户籍信息,则可说明上述第一家庭户籍信息和上述第二家庭户籍信息存在户籍关联关系。否则可确定上述第一家庭户籍信息和上述第二家庭户籍信息不存在户籍关联关系。
[0110] 举例来说,参见图3a,图3a是本发明实施例提供的确定户籍关联关系的一场景示意图。在图3a中,基于用户A的户籍迁出记录可确定出用户A由家庭a中迁出,即家庭a的家庭户籍信息为用户A迁出前所在的家庭户籍信息(用户A是家庭a中的家庭成员)。基于用户B的户籍迁出记录可确定出用户B由家庭b中迁出,即家庭b的家庭户籍信息为用户B迁出前所在的家庭户籍信息(用B是家庭b中的家庭成员)。此时将家庭a的家庭户籍信息和家庭b的家庭户籍信息进行比较,如果家庭a的家庭户籍信息与家庭b的家庭户籍信息一致,说明用户A和用户B在迁出前为同一家庭中的家庭成员,此时可说明用户A对应的家庭户籍信息和用户B对应的家庭户籍信息具有某种程度上的户籍关联关系。如果家庭a的家庭户籍信息与家庭b的家庭户籍信息不一致,说明用户A和用户B在迁出前分别为不同家庭中的家庭成员,此时可说明用户A对应的家庭户籍信息和用户B对应的家庭户籍信息之间并不存在户籍关联关系。
[0111] 可选的,当上述第一用户和上述第二用户中只有一个用户存在户籍迁出记录(以上述第一用户存在第一户籍迁出记录并且上述第二用户不存在第二户籍迁出记录为例)时,可基于上述第一户籍迁出记录确定出上述第一用户迁出前对应的家庭户籍信息,并将上述第一用户迁出前对应的家庭户籍信息和上述第二用户的家庭户籍信息进行比较。如果上述第一用户迁出前对应的家庭户籍信息和上述第二用户的家庭户籍信息为同一家庭户籍信息,则可说明上述第一家庭户籍信息和上述第二家庭户籍信息存在户籍关联关系。否则可确定上述第一家庭户籍信息和上述第二家庭户籍信息不存在户籍关联关系。
[0112] 举例来说,参见图3b,图3b是本发明实施例提供的确定户籍关联关系的另一场景示意图。在图3b中,基于用户A的户籍迁出记录可确定出用户A由家庭a中迁出,即家庭a的家庭户籍信息为用户A迁出前所在的家庭户籍信息(用户A是家庭a中的家庭成员)。此时将家庭a的家庭户籍信息和用户B的家庭户籍信息进行比较,如果家庭a的家庭户籍信息与用户B的家庭户籍信息一致,说明用户A在迁出前和用户B为同一家庭中的家庭成员,此时可说明用户A对应的家庭户籍信息和用户B对应的家庭户籍信息具有某种程度上的户籍关联关系。如果家庭a的家庭户籍信息与用户B的家庭户籍信息不一致,说明用户A在迁出前和用户B分别为不同家庭中的家庭成员,此时可说明用户A对应的家庭户籍信息和用户B对应的家庭户籍信息之间并不存在户籍关联关系。
[0113] S103、若第一家庭户籍信息和第二家庭户籍信息存在户籍关联关系,则基于第一家庭户籍信息和第二家庭户籍信息生成关联家庭户籍信息。
[0114] 在一些可行的实施方式中,当上述第一家庭户籍信息和上述第二家庭户籍信息存在户籍关联关系时,可将上述第一家庭户籍信息和上述第二家庭户籍信息进行合并生成一个关联家庭户籍信息。其中,上述关联家庭户籍信息中包括上述第一家庭户籍信息中所有家庭成员的个人户籍信息和上述第二家庭户籍信息中所有家庭成员的个人户籍信息。
[0115] 具体的,上述关联家庭户籍信息中还可包括上述第一家庭户籍信息中的家庭成员与上述第二家庭户籍信息中的家庭成员之间的成员关系,例如,假设上述第一家庭户籍信息中的户主与上述第二家庭户籍信息中的户主在户籍迁出之对应的同一个家庭户籍信息中为兄弟关系,则可确定关联家庭户籍信息中各个成员之间的如表姐妹、表兄妹等成员关系,具体成员关系可基于上述第一家庭户籍信息和上述第二家庭户籍信息的具体成员的个人户籍信息确定,在此不做限制。
[0116] 需要特别说明的是,上述关联家庭户籍信息中各个家庭成员的个人户籍信息的具体存在方式可基于实际应用场景确定,在此也不做任何限制。
[0117] S104、基于关联家庭户籍信息中所有家庭成员的个人户籍信息确定默克尔树以及默克尔树的根节点的哈希值,将根节点的哈希值发送至共识节点,以使共识节点基于关联家庭户籍信息对根节点的哈希值进行验证。
[0118] 在一些可行的实施方式中,在确定出关联家庭户籍信息之后,可对关联家庭户籍信息中各个家庭成员的个人户籍信息分别进行哈希计算,得到每个家庭成员的个人户籍信息的基础哈希值,进而基于得到的多个基础哈希值确定出至少一个上层哈希值。其中一个上层哈希值最少由两个基础哈希值经过哈希计算得到。
[0119] 在得到至少一个上层哈希值之后,可从至少一个上层哈希值中确定出由所有基础哈希值经过哈希计算得到的目标哈希值,从而基于上述多个基础哈希值、上述至少一个哈希值确定出默克尔树。其中,上述每一个基础哈希值为默克尔树的一个叶子节点且一个叶子节点只对应一个基础哈希值,上述目标哈希值为默克尔树的根节点的哈希值,上述至少一个上层哈希值中除上述目标哈希值外的其他上层哈希值为默克尔树的中间节点的哈希值。
[0120] 具体地,在得到上述关联家庭户籍信息中各个家庭成员的个人户籍信息的基础哈希值之后,可将各个基础哈希值进行横向排列(具体排列方式可基于出生日期、名字首字母顺序等,具体可基于实际应用场景确定,在此不做限制)。当基础哈希值的数量为偶数时,可依次串联每两个基础哈希值并对串联后的两个基础哈希值进行哈希计算,得到多个上层哈希值。此时得到的每个上层哈希值(为方便描述,以下简称第一上层哈希值)均由两个基础哈希值串联后经过哈希计算得到。当第一上层哈希值的数量为1时,可将唯一一个上层哈希值确定为目标哈希值,此时可得到一个包含两个叶子节点、一个根节点的默克尔树。当第一上层节点的数量不为1且为偶数时,可再次将每两个上层哈希值进行进行串联并进行哈希计算,得到至少一个第二上层哈希值,以此类推,直至得到最后一个上层哈希值为止。此时最后一个上层哈希值即为默克尔树的根节点的哈希值,其余上层哈希值均为默克尔树的中间节点的哈希值,各个基础哈希值为默克尔树的叶子节点。
[0121] 举例来说,请参见图4a,图4a是本发明实施例提供的确定默克尔树的一场景示意图。在图4a中,假设一个关联家庭户籍信息中包含家庭成员1的个人户籍信息1、家庭成员2的个人户籍信息2、家庭成员3的个人户籍信息3以及家庭成员4的个人户籍信息4。此时对家庭成员1的个人户籍信息1、家庭成员2的个人户籍信息2、家庭成员3的个人户籍信息3以及家庭成员4的个人户籍信息4分别进行哈希计算得到哈希值1、哈希值2、哈希值3以及哈希值4(均为基础哈希值)。此时可将哈希值1和哈希值2串联并对串联后的哈希值进行哈希计算得到哈希值12,将哈希值3和哈希值4串联并对串联后的哈希值进行哈希计算得到哈希值
34,此时哈希值12和哈希值34均为上层哈希值。进一步地,可再次对哈希值12和哈希值34进行串联并对串联后的哈希值进行哈希计算得到最后一个哈希值1234。此时可由基础哈希值(哈希值1、哈希值2、哈希值3以及哈希值4)、上层哈希值(哈希值12和哈希值34)以及目标哈希值(哈希值1234)构建出一个默克尔树,并且哈希值1、哈希值2、哈希值3以及哈希值4为默克尔树的叶子节点的哈希值,哈希值12和哈希值34为默克尔树的中间节点的哈希值,哈希值1234为默克尔树的根节点的哈希值。
[0122] 可选的,当基础哈希值的数量为奇数时,可依次串联每两个基础哈希值并对串联后的两个基础哈希值进行哈希计算,得到多个上层哈希值。此时得到的每个第一上层哈希值均由两个基础哈希值串联后经过哈希计算得到,并且有一个基础哈希值未参与上述第一上层哈希值的计算。此时可将上述为参与第一哈希值计算的基础哈希值和得到的第一上层哈希值一起,基于上述实现方式得到至少一个第二上层哈希值,以此类推,直至得到最后一个上层哈希值为止。此时最后一个上层哈希值即为默克尔树的根节点的哈希值,其余上层哈希值均为默克尔树的中间节点的哈希值。
[0123] 举例来说,参见图4b,图4b是本发明实施例提供的确定默克尔树的另一场景示意图。在图4b中,假设上述关联家庭户籍信息中包含家庭成员1的个人户籍信息1、家庭成员2的个人户籍信息2以及家庭成员3的个人户籍信息3。此时对家庭成员1的个人户籍信息1、家庭成员2的个人户籍信息2以及家庭成员3的个人户籍信息3分别进行哈希计算得到哈希值1、哈希值2以及哈希值3(均为基础哈希值)。此时由于基础哈希值的数量为奇数,此时可将哈希值1和哈希值2串联并对串联后的哈希值进行哈希计算得到哈希值12。进一步地,可对哈希值12和哈希值3进行串联并对串联后的哈希值进行哈希计算得到最后一个哈希值123。
此时可由基础哈希值(哈希值1、哈希值2以及哈希值3)、上层哈希值(哈希值12)以及目标哈希值(哈希值123)构建出一个默克尔树,并且哈希值1、哈希值2以及哈希值3为默克尔树的叶子节点的哈希值,哈希值12为默克尔树的中间节点的哈希值,哈希值123为默克尔树的根节点的哈希值。
[0124] 可选的,当基础哈希值的数量为奇数时,可先复制任意一个基础哈希值以得到偶数个基础哈希值,进而再次依次串联每两个基础哈希值并对串联后的两个基础哈希值进行哈希计算,得到多个上层哈希值。此时得到的每个第一上层哈希值均由两个基础哈希值串联后经过哈希计算得到,并且有一个基础哈希值未参与上述第一上层哈希值的计算。此时可将上述为参与第一哈希值计算的基础哈希值和得到的第一上层哈希值一起,基于上述实现方式得到至少一个第二上层哈希值,以此类推,直至得到最后一个上层哈希值为止。此时最后一个上层哈希值即为默克尔树的根节点的哈希值,其余上层哈希值均为默克尔树的中间节点的哈希值。
[0125] 举例来说,参见图4c,图4c是本发明实施例提供的确定默克尔树的又一场景示意图。假设上述关联家庭户籍信息中包含家庭成员1的个人户籍信息1、家庭成员2的个人户籍信息2以及家庭成员3的个人户籍信息3。此时对家庭成员1的个人户籍信息1、家庭成员2的个人户籍信息2以及家庭成员3的个人户籍信息3分别进行哈希计算得到哈希值1、哈希值2、哈希值3以及哈希值4(均为基础哈希值)。由于基础哈希值的数量为奇数,此时可对哈希值3进行复制得到两个相同的哈希值3,以得到偶数个基础哈希值。进而可将哈希值1和哈希值2串联并对串联后的哈希值进行哈希计算得到哈希值12,将哈希值3和哈希值3(复制得到)串联并对串联后的哈希值进行哈希计算得到哈希值33,此时哈希值12和哈希值33均为上层哈希值。进一步地,可再次对哈希值12和哈希值33进行串联并对串联后的哈希值进行哈希计算得到最后一个哈希值1233。此时可由基础哈希值(哈希值1、哈希值2、哈希值3)、上层哈希值(哈希值12和哈希值33)以及目标哈希值(哈希值1233)构建出一个默克尔树,并且哈希值1、哈希值2、以及哈希值3为默克尔树的叶子节点的哈希值,哈希值12和哈希值33为默克尔树的中间节点的哈希值,哈希值1233为默克尔树的根节点的哈希值。
[0126] 进一步的,当基于上述任意一种实现方式由基础哈希值得到的上层哈希值的数量大于1且为奇数时,可采用上述任意一种对奇数个基础哈希值的处理方法对上层哈希值进行处理,具体实现方式在此不做限制。
[0127] 在一些可行的实施方式中,在确定出默克尔树的根节点的哈希值之后,可将根节点的哈希值发送至区块链网络中的共识节点,以使共识节点基于上述关联家庭户籍信息对根节点的哈希值进行验证。具体的,每个共识节点可对上述关联家庭户籍信息中各个家庭成员的个人户籍信息进行哈希计算,得到各个家庭成员的个人户籍信息的哈希值,并基于得到的多个哈希值得到一个默克尔树的根节点的哈希值。每个共识节点基于各自计算出的根节点的哈希值与接收到的根节点的哈希值进行比较,若二者一致,则可确定接收到的根节点的哈希值为准确有效的哈希值,此时共识节点返回一个签名确认消息。可选的,该签名确认消息可以为任意形式的用于告知根节点的哈希值验证通过的信息,具体信息内容在此不做限制。同时每个共识节点生成的签名确认消息可表示该签名确认消息的生成节点,从而在接收到各个共识节点的签名确认消息之后可根据签名确认消息确定出发送签名确认消息的共识节点。可选的,每个共识节点在生成签名确认消息之后,可对该签名确认消息经过哈希计算生成一份摘要,并通过自身的私钥对摘要进行加密以防止签名确认消息被篡改。
[0128] S105、接收共识节点在根节点的哈希值通过验证后发送的签名确认消息,在签名确认消息满足预设共识策略的情况下,基于默克尔树和根节点的哈希值构建新区块并将新区块加入区块链网络。
[0129] 在一些可行的实施方式中,可接收上述区块链网络中多个共识节点发送的签名确认消息,并当接收到的各个签名确认消息满足预设共识策略时可确定新区块为有效区块。其中,上述预设共识策略可以是当区块链网络中所有共识节点中一定比例的共识节点对根节点的哈希值验证通过后即认为根节点的哈希值为有效哈希值,例如当接收到百分之九十五的共识节点发送的签名确认消息后,可认为根节点的哈希值为有效区块,此时可基于默克尔树和根节点的哈希值构建新区块。或者,上述预设共识策略也可以是在接收上述区块链网络中多个共识节点发送的签名确认消息时,基于签名确认消息中的签名确定发送签名确认消息的共识节点是否属于预设共识节点,在发送签名确认消息的共识节点为预设共识节点,和/或发送签名确认消息的共识节点超过区块链网络中所有共识节点一定比例后,可认为根节点的哈希值为有效哈希值,此时可基于默克尔树和根节点的哈希值构建新区块。
需要特别说明的是,上述预设共识策略还可包括但不限于工作量证明机制(Proof of Work,PoW)、权益证明机制(Proof of Stake,PoS)、股份授权证明机制(Delegated Proof of Stake,DPoS)实用拜占庭机制(Practical Byzantine Fault Tolerance,PBFT)以及Ripple共识算法等,具体可基于实际应用场景确定,在此不做限制。
[0130] 在一些可行的实施方式中,区块链网络由多个区块组成,每一区块中包括区块头和区块体,区块头中存储有输入信息特征值,以及版本号、时间戳和难度值等,区块主体中存储有输入信息。参见图5a,图5a是本发明实施例提供的区块头的组成示意图。如图5a所示,其中每一区块以上一区块为父区块,下一区块中同样包括区块头和区块主体,区块头中存储有当前区块的输入信息特征值、父区块的区块头特征值、版本号、时间戳和难度值,并以此类推,使得区块链中每个区块中存储的区块数据均与父区块中存储的区块数据存在关联,保证了区块中输入信息的安全性。在生成新区块时,可获取当前区块链网络中最后一个区块的区块哈希值,作为新区块的区块头中父区块的区块头特征值,并将时间戳更新为新区块的生成时间。同时尝试不同的随机数,多次进行特征值计算,使得计算得到的区块头特征值可以满足下述公式:
[0131] SHA256(SHA256(version+prev_hash+merkle_root+ntime+nbits+x))阈值,该特征值阈值可以根据nbits确定得到。这样,当计算得到满足上述公式的随机数时,便可基于默克尔树的根节点哈希值、时间戳、难度值、版本号、以及父区块的区块头特征值构建出新区块的区块头。并将完整的默克尔树和关联户籍信息中各个家庭成员的个人户籍信息存储进新区块区块体中,得到新区块。
[0133] S106、确定关联家庭户籍信息中每个家庭成员的个人户籍信息在默克尔树中的存储路径,并返回根节点的哈希值和每个家庭成员的个人户籍信息在默克尔树中的存储路径。
[0134] 在一些可行的实施方式中,在基于上述默克尔树和根节点的哈希值构建出新区块并将新区块加入区块链网络之后,还可进一步基于各个家庭成员的个人户籍信息在默克尔树中的具体位置(例如位于第几个叶子节点)生成每一个家庭成员的个人户籍信息的存储路径,以在获取到任一家庭成员的个人户籍信息存储路径以及相对应的默克尔树的根节点的哈希值之后,可从区块链网络中确定出该家庭成员的个人户籍信息的哈希值。
[0135] 参见图5b,图5b是本发明实施例提供的区块的组成示意图。如图5b所示,基于区块头中存储的根节点的哈希值可得到区块体中各个家庭成员的个人户籍信息的哈希值。由于每个家庭成员的个人户籍信息的哈希值为区块体中的默克尔树的一个叶子节点,因此每个家庭成员的个人户籍信息的哈希值在区块体中具有唯一的存储位置。基于上述说明不难得知,在确定出任一家庭成员的个人户籍信息在默克尔树中的存储路径以及该默克尔树所在区块的区块头包含的根节点的哈希值之后,即可确定出该家庭成员的个人户籍信息的哈希值。基于上述实现方式,在将新区块加入区块链网络之后,可确定出关联家庭户籍信息中每个家庭成员的个人户籍信息在默克尔树中的存储路径,并返回根节点的哈希值和每个家庭成员的个人户籍信息在默克尔树中的存储路径。
[0136] 在本发明实施例中,通过对第一用户和第二用户的户籍迁出记录来确定第一用户对应的第一家庭户籍信息和第二用户对应的第二家庭户籍信息之间存在关联关系,可确保第一家庭户籍信息和第二家庭户籍信息具备关联存储的条件,可靠性高。同时,基于第一家庭户籍信息和第二家庭户籍信息生成关联家庭户籍信息,进而将关联家庭户籍信息中的各个家庭成员的个人户籍信息哈希值通过构建默克尔树写入区块链网络,可确保关联家庭户籍信息中各个家庭成员的个人用户信息不会被篡改,提高关联家庭户籍信息存储的稳定性。
[0137] 参见图6,图6是本发明实施例提供的户籍管理方法的另一流程示意图。图6所示的户籍管理方法可包括如下步骤S201至S204。
[0138] S201、接收户籍确认请求。
[0139] 在一些可行的实施方式中,上述户籍关联请求可以是任一用户提交的确认个人户籍信息的请求,也可是第三方平台(如政府机构)等对相关用户的个人户籍信息进行确认时产生的请求,具体可基于实际应用场景确定,在此不做限制。
[0140] 其中,上述户籍确认请求携带第三用户的个人户籍信息、存储该用户个人户籍信息的区块对应的根节点的哈希值(为方便描述,以下简称第一目标根节点的哈希值)以及该用户的个人户籍信息在默克尔树中的存储路径(为方面描述,以下简称第一目标存储路径)。
[0141] 其中,上述第三用户的个人户籍信息包括但不限于姓名、曾用名、性别、出生日期、与家庭户主关系、出生地、籍贯、公民身份证号、家庭住址、职业、文化程度等,具体可基于实际应用场景确定,在此不做限制。需要说明的是,上述第三用户的个人户籍信息在上述户籍确认请求中的信息表现形式包括但不限于字符串、二进制数据等,具体也可基于实际应用场景确定,在此不做限制。
[0142] S202、从区块链网络中确定出区块头中包含第一目标根节点的哈希值的第一目标区块,并基于第一目标存储路径从第一目标区块的默克尔树中确定出第一目标基础哈希值。
[0143] 在一些可行的实施方式中,当接收到户籍确认请求之后,可获取区块链网络中所有区块的区块头中存储的默克尔树的根节点的哈希值,并将上述第一目标根节点的哈希值进行比较,从而确定出包含上述第一目标根节点的哈希值的目标区块。此时可对该目标区块的区块体进行解析得到区块体中存储的目标默克尔树,并基于户籍确认请求中携带的第一目标存储路径确定出在目标默克尔树中与第一目标存储路径相对应的第一目标基础哈希值(目标叶子节点的哈希值),进而基于第一目标哈希值对上述户籍确认请求中携带的第三用户的个人户籍信息进行确认。
[0144] S203、对第三用户的个人户籍信息进行哈希计算得到第三用户的个人户籍信息的哈希值,若第一目标基础哈希值与第三用户的个人户籍信息的哈希值一致,则返回户籍确认消息。
[0145] 在一些可行的实施方式中,在得到第一目标哈希值之后,可对上述第三用户的个人户籍信息进行哈希计算得到上述第三用户的个人户籍信息的哈希值,并将上述第三用户的个人户籍信息的哈希值与第一目标基础哈希值进行比较。若上述第三用户的个人户籍信息的哈希值与第一目标基础哈希值完全一致,则可确定上述户籍确认请求中携带的个人户籍信息为正确个人户籍信息。此时生成并向上述户籍确认请求的提交方返回户籍确认消息,以告知该提交方其提交的第三用户的个人户籍信息与区块链网络中存储的个人户籍信息一致。
[0146] 在一些可行的实施方式中,当上述户籍关联请求为户籍关联部门提交的请求,并且在构建新区块时可将管理家庭户籍信息中各个家庭成员的个人户籍信息分别采用户籍关联部门的私钥进行加密并存储至新区块中。基于上述实现方式,当接收到户籍确认部门提交的户籍确认请求时,可获取户籍确认部门提交的户籍确认请求携带的第五用户的身份信息和第三目标根节点的哈希值,并从区块链网络中确定出区块头包含第三目标根节点的哈希值的第三目标区块。进而可基于第五用户的身份信息从第三目标区块中确定出第五用户的个人户籍信息,其中第五用户的个人户籍信息存储于第三目标区块的区块体中,且在被存储时已采用对应的户籍关联部门的私钥进行加密。在从第三目标区块中获取到第五用户的个人户籍信息之后,可获取户籍确认部门的公钥并基于该公钥对第五用户的个人户籍信息进行解密,若成功解密,说明户籍确认部门和户籍关联部门就第五用户的个人户籍信息达成一致,进而完成第五用户的个人户籍信息的确认。其中,户籍关联部门和户籍确认部门为户籍管理部门的子部门,户籍关联部门的私钥为户籍管理部门的私钥的子私钥,户籍确认部门的公钥为户籍管理部门的公钥或者为户籍管理部门的公钥的子公钥。进一步地,户籍管理部门可基于助记词和其私钥生成多个子私钥并发放到各个子部门,还可基于助记词和其公钥生成多个子公钥钥并发放到各个部门(也可将其公钥发放到各个子部门),基于上述实现方式,户籍管理部门的一个子部门可完成对由另一子部门加密的个人户籍信息的确认。
[0147] 参见图7,图7是本发明实施例提供的户籍管理方法的又一流程示意图。图7提供的户籍管理方法可包括如下步骤S301至S304。
[0148] S301、接收户籍更新请求。
[0149] 在一些可行的实施方式中,上述户籍更新请求可以是任一用户提交的用于更新其在区块链网络中存储的个人户籍信息的请求,也可以是第三方平台(如政府机构)等对相关用户的家庭户籍信息进行管理更新时产生的请求,具体可基于实际应用场景确定,在此不做限制。
[0150] 其中,上述户籍更新请求携带第四用户的个人户籍信息以及存储该用户个人户籍信息的区块对应的根节点的哈希值(为方便描述,以下简称第二目标根节点的哈希值)以及该用户的个人户籍信息在默克尔树中的存储路径(为方面描述,以下简称第二目标存储路径)。
[0151] 其中,上述第四用户的个人户籍信息包括但不限于姓名、曾用名、性别、出生日期、与家庭户主关系、出生地、籍贯、公民身份证号、家庭住址、职业、文化程度等,具体可基于实际应用场景确定,在此不做限制。需要说明的是,上述户籍更新请求中的信息表现形式包括但不限于字符串、二进制数据等,具体也可基于实际应用场景确定,在此不做限制。
[0152] S302、从区块链网络中确定出区块头中包含第二目标根节点的哈希值的第二目标区块,并基于第二目标存储路径从第二目标区块的默克尔树中确定出第二目标基础哈希值。
[0153] 在一些可行的实施方式中,从区块链网络中确定出区块头中包含第二目标根节点的哈希值的第二目标区块,并基于第二目标存储路径从第二目标区块的默克尔树中确定出第二目标基础哈希值的具体实现过程可参见图6中步骤S202所示的实现方式,在此不再赘述。
[0154] S303、对第四用户的个人户籍信息进行哈希计算得到第四用户的个人户籍信息的哈希值。
[0155] 在一些可行的实施方式中,对第四用户的个人户籍信息进行哈希计算得到第四用户的个人户籍信息的哈希值的具体确定过程也可参见图6中步骤S202所示的实现方式,在此不做说明。
[0156] S304、基于第四用户的个人户籍信息的哈希值更新第二目标区块的默克尔树得到新的默克尔树,基于新的默克尔树更新所述第二目标区块。
[0157] 在一些可行的实施方式中,在基于第四用户的个人户籍信息的哈希值更新第二目标区块的默克尔树时,可基于第四用户的个人户籍信息的哈希值更新第二目标区块的区块体中的默克尔树的第二目标基础哈希值,并在同时更新基于第二目标基础哈希值得到的上层哈希值以及根节点的哈希值,以得到一个新的默克尔树。与此同时,还需要基于新的默克尔树更新区块头中的原根节点的哈希值。
[0158] 如图8所示,图8是本发明实施例提供的更新默克尔树的场景示意图。在图8中的默克尔树中,个人户籍信息1的哈希值1、个人户籍信息2的哈希值2、个人户籍信息3的哈希值3以及个人户籍信息4的哈希值4分别为默克尔树的叶子节点。此时假设基于户籍更新请求确定出的需要被更新的基础哈希值为哈希值4,此时可将第四用户的个人户籍信息的哈希值替换掉默克尔树中的哈希值4,进而同哈希值3一起更新默克尔树中的上层哈希值34以及根节点的哈希值1234,进而完成对默克尔树的更新。
[0159] 在本发明实施例中,通过对第一用户和第二用户的户籍迁出记录来确定第一用户对应的第一家庭户籍信息和第二用户对应的第二家庭户籍信息之间存在关联关系,可确保第一家庭户籍信息和第二家庭户籍信息具备关联存储的条件,可靠性高。同时,基于第一家庭户籍信息和第二家庭户籍信息生成关联家庭户籍信息,进而将关联家庭户籍信息中的各个家庭成员的个人户籍信息哈希值通过构建默克尔树写入区块链网络,可确保关联家庭户籍信息中各个家庭成员的个人用户信息不会被篡改,提高关联家庭户籍信息存储的稳定性。进一步的,还可基于户籍确认请求以及户籍更新请求完成对某一用户的个人户籍信息的确认与更新,进一步提高户籍管理的效率,适用性更高。
[0160] 参见图9,图9是本发明实施例提供的户籍管理装置的结构示意图。本发明实施例提供的装置1包括:
[0161] 第一接收模块11,用于接收户籍关联请求,上述户籍关联请求携带第一用户的第一家庭户籍信息和第二用户的第二家庭户籍信息,上述第一家庭户籍信息包含上述第一用户所在的第一家庭的所有家庭成员的个人户籍信息,上述第二家庭户籍信息包含上述第二用户所在的第二家庭的所有家庭成员的个人户籍信息;
[0162] 第一确定模块12,用于当上述户籍关联请求为有效请求时,确定上述第一用户的第一户籍迁出记录和上述第二用户的第二户籍迁出记录,并基于上述第一户籍迁出记录和/或上述第二户籍迁出记录确定上述第一家庭户籍信息和上述第二家庭户籍信息是否存在户籍关联关系;
[0163] 生成模块13,用于当上述第一家庭户籍信息和上述第二家庭户籍信息存在上述户籍关联关系时,基于上述第一家庭户籍信息和上述第二家庭户籍信息生成关联家庭户籍信息,上述关联家庭户籍信息包括上述第一家庭和上述第二家庭的所有家庭成员的个人户籍信息;
[0164] 第一处理模块14,用于基于上述关联家庭户籍信息中所有家庭成员的个人户籍信息确定默克尔树以及上述默克尔树的根节点的哈希值,将上述根节点的哈希值发送至共识节点,以使上述共识节点基于上述关联家庭户籍信息对上述根节点的哈希值进行验证;
[0165] 第二处理模块15,用于接收上述共识节点在上述根节点的哈希值通过验证后发送的签名确认消息,在上述签名确认消息满足预设共识策略的情况下,基于上述默克尔树和上述根节点的哈希值构建新区块并将上述新区块加入区块链网络;
[0166] 第一返回模块16,用于确定上述关联家庭户籍信息中每个家庭成员的个人户籍信息在上述默克尔树中的存储路径,并返回上述根节点的哈希值和上述每个家庭成员的个人户籍信息在上述默克尔树中的存储路径。
[0167] 在一些可行的实施方式中,上述第一确定模块12包括:
[0168] 第一确定单元121,用于基于上述第一户籍迁出记录和上述第二户籍迁出记录确定上述第一用户迁出前对应的家庭户籍信息和上述第二用户迁出前对应的家庭户籍信息是否为同一家庭户籍信息,若为同一家庭户籍信息,则确定上述第一家庭户籍信息和上述第二家庭户籍信息存在户籍关联关系,若不是同一家庭户籍信息,则确定上述第一家庭户籍信息和上述第二家庭信息不存在上述户籍关联关系;或者,
[0169] 第二确定单元122,用于基于上述第一户籍迁出记录确定上述第一用户迁出前对应的家庭户籍信息是否为上述第二家庭户籍信息,若为上述第二家庭户籍信息,则确定上述第一家庭户籍信息和上述第二家庭户籍信息存在上述户籍关联关系,若不是上述第二家庭户籍信息,则确定上述第一家庭户籍信息和上述第二家庭户籍信息不存在上述户籍关联关系。
[0170] 在一些可行的实施方式中,上述第一处理模块14包括:
[0171] 处理单元141,用于对上述关联家庭户籍信息中各个家庭成员的个人户籍信息分别进行哈希计算,得到多个基础哈希值;
[0172] 第三确定单元142,用于基于上述多个基础哈希值确定出至少一个上层哈希值,一个上层哈希值由至少两个基础哈希值经过哈希计算得到;
[0173] 第四确定单元143,用于从上述至少一个上层哈希值中确定出目标哈希值,上述目标哈希值由上述多个基础哈希值经过哈希计算得到;
[0174] 第一构建单元144,用于基于多数多个基础哈希值、上述至少一个上层哈希值确定出默克尔树,上述多个基础哈希值分别为上述默克尔树的叶子节点的哈希值,上述至少一个上层哈希值中除上述目标哈希值外的其他上层哈希值分别为上述默克尔树的中间节点的哈希值,上述目标哈希值为上述默克尔树的根节点的哈希值。
[0175] 在一些可行的实施方式中,上述第二处理模块15包括:
[0176] 第二构建单元151,用于获取区块链网络中最后一个区块的区块头特征值,并基于上述区块哈希值和上述根节点的哈希值构建出新的区块头;
[0177] 第三构建单元152,用于基于上述默克尔树构建出新的区块体;
[0178] 第四构建单元153,用于基于上述新的区块头和上述新的区块体构建出新区块,并将上述新区块连接至上述最后一个区块之后以将上述新区块加入上述区块链网络。
[0179] 在一些可行的实施方式中,上述装置1还包括:
[0180] 第二接收模块17,还用于接收户籍确认请求,上述户籍查询请求携带第三用户的个人户籍信息、第一目标根节点的哈希值以及第一目标存储路径;
[0181] 第二确定模块18,还用于从上述区块链网络中确定出区块头中包含上述第一目标根节点的哈希值的第一目标区块,并基于上述第一目标存储路径从上述第一目标区块的默克尔树中确定出第一目标基础哈希值;
[0182] 第三处理模块19,还用于对上述第三用户的个人户籍信息进行哈希计算得到上述第三用户的个人户籍信息的哈希值;
[0183] 第二返回模块20,还用于当上述第一目标基础哈希值与上述第三用户的个人户籍信息的哈希值一致时,返回户籍确认消息。
[0184] 在一些可行的实施方式中,上述装置1还包括:
[0185] 第三接收模块21,还用于接收户籍更新请求,上述户籍更新请求携带第四用户的个人户籍信息、第二目标根节点的哈希值以及第二目标存储路径;
[0186] 第三确定模块22,还用于从上述区块链网络中确定出区块头中包含上述第二目标根节点的哈希值的第二目标区块,并基于上述第二目标存储路径从上述第二目标区块的默克尔树中确定出第二目标基础哈希值;
[0187] 第四处理模块23,还用于对上述第四用户的个人户籍信息进行哈希计算得到上述第四用户的个人户籍信息的哈希值;
[0188] 更新模块24,还用于基于上述第四用户的个人户籍信息的哈希值更新上述第二目标区块的默克尔树得到新的默克尔树,基于上述新的默克尔树更新上述第二目标区块。
[0189] 在一些可行的实施方式中,上述户籍关联请求由户籍关联部门提交,上述新区块中存储有上述关联家庭户籍信息中所有家庭成员的个人户籍信息,上述所有家庭成员的个人户籍信息由上述户籍关联部门的私钥进行加密;上述装置1还包括:
[0190] 第四接收模块25,还用于接收户籍确认部门提交的户籍确认请求,上述户籍确认部门提交的户籍确认请求携带第五用户的身份信息和第三目标根节点的哈希值;
[0191] 第四确定模块26,还用于从上述区块链网络中确定出区块头中包含上述第三目标根节点的哈希值的第三目标区块,并基于上述第五用户的身份信息从上述第三目标区块中确定出上述第五用户的个人户籍信息;
[0192] 第五处理模块27,还用于获取上述户籍确认部门的公钥,并基于上述户籍确认部门的公钥对上述第五用户的个人户籍信息进行解密,若解密成功,则返回户籍确认消息;
[0193] 上述户籍关联部门和上述户籍确认部门为上述户籍管理部门的子部门,上述户籍关联部门的私钥为户籍管理部门的私钥的子私钥,上述户籍确认部门的公钥为上述户籍管理部门的公钥或者为上述户籍管理部门的公钥的子公钥。
[0194] 具体实现中,上述设备1000可通过其内置的各个功能模块执行如上述图2、图6和/或图7中各个步骤所提供的实现方式,具体可参见上述各个步骤所提供的实现方式,在此不再赘述。
[0195] 在本发明实施例中,通过对第一用户和第二用户的户籍迁出记录来确定第一用户对应的第一家庭户籍信息和第二用户对应的第二家庭户籍信息之间存在关联关系,可确保第一家庭户籍信息和第二家庭户籍信息具备关联存储的条件,可靠性高。同时,基于第一家庭户籍信息和第二家庭户籍信息生成关联家庭户籍信息,进而将关联家庭户籍信息中的各个家庭成员的个人户籍信息哈希值通过构建默克尔树写入区块链网络,可确保关联家庭户籍信息中各个家庭成员的个人用户信息不会被篡改,提高关联家庭户籍信息存储的稳定性。进一步的,还可基于户籍确认请求以及户籍更新请求完成对某一用户的个人户籍信息的确认与更新,进一步提高户籍管理的效率,适用性更高。
[0196] 参见图10,图10是本发明实施例提供的设备的结构示意图。如图10所示,本实施例中的设备1000可以包括:处理器1001,网络接口1004和存储器1005,此外,上述设备1000还可以包括:用户接口1003,和至少一个通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。其中,用户接口1003可以包括显示屏(Display)、键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1004可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器1005可选的还可以是至少一个位于远离前述处理器1001的存储装置。如图10所示,作为一种计算机可读存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及设备控制应用程序。
[0197] 在图10所示的设备1000中,网络接口1004可提供网络通讯功能;而用户接口1003主要用于为用户提供输入的接口;而处理器1001可以用于调用存储器1005中存储的设备控制应用程序,以实现:
[0198] 接收户籍关联请求,上述户籍关联请求携带第一用户的第一家庭户籍信息和第二用户的第二家庭户籍信息,上述第一家庭户籍信息包含上述第一用户所在的第一家庭的所有家庭成员的个人户籍信息,上述第二家庭户籍信息包含上述第二用户所在的第二家庭的所有家庭成员的个人户籍信息;
[0199] 若上述户籍关联请求为有效请求,则确定上述第一用户的第一户籍迁出记录和上述第二用户的第二户籍迁出记录,并基于上述第一户籍迁出记录和/或上述第二户籍迁出记录确定上述第一家庭户籍信息和上述第二家庭户籍信息是否存在户籍关联关系;
[0200] 若上述第一家庭户籍信息和上述第二家庭户籍信息存在上述户籍关联关系,则基于上述第一家庭户籍信息和上述第二家庭户籍信息生成关联家庭户籍信息,上述关联家庭户籍信息包括上述第一家庭和上述第二家庭的所有家庭成员的个人户籍信息;
[0201] 基于上述关联家庭户籍信息中所有家庭成员的个人户籍信息确定默克尔树以及上述默克尔树的根节点的哈希值,将上述根节点的哈希值发送至共识节点,以使上述共识节点基于上述关联家庭户籍信息对上述根节点的哈希值进行验证;
[0202] 接收上述共识节点在上述根节点的哈希值通过验证后发送的签名确认消息,在上述签名确认消息满足预设共识策略的情况下,基于上述默克尔树和上述根节点的哈希值构建新区块并将上述新区块加入区块链网络;
[0203] 确定上述关联家庭户籍信息中每个家庭成员的个人户籍信息在上述默克尔树中的存储路径,并返回上述根节点的哈希值和上述每个家庭成员的个人户籍信息在上述默克尔树中的存储路径。
[0204] 在一些可行的实施方式中,上述处理器1001用于:
[0205] 基于上述第一户籍迁出记录和上述第二户籍迁出记录确定上述第一用户迁出前对应的家庭户籍信息和上述第二用户迁出前对应的家庭户籍信息是否为同一家庭户籍信息,若为同一家庭户籍信息,则确定上述第一家庭户籍信息和上述第二家庭户籍信息存在户籍关联关系,若不是同一家庭户籍信息,则确定上述第一家庭户籍信息和上述第二家庭信息不存在上述户籍关联关系;或者,
[0206] 基于上述第一户籍迁出记录确定上述第一用户迁出前对应的家庭户籍信息是否为上述第二家庭户籍信息,若为上述第二家庭户籍信息,则确定上述第一家庭户籍信息和上述第二家庭户籍信息存在上述户籍关联关系,若不是上述第二家庭户籍信息,则确定上述第一家庭户籍信息和上述第二家庭户籍信息不存在上述户籍关联关系。
[0207] 在一些可行的实施方式中,上述处理器1001用于:
[0208] 对上述关联家庭户籍信息中各个家庭成员的个人户籍信息分别进行哈希计算,得到多个基础哈希值;
[0209] 基于上述多个基础哈希值确定出至少一个上层哈希值,一个上层哈希值由至少两个基础哈希值经过哈希计算得到;
[0210] 从上述至少一个上层哈希值中确定出目标哈希值,上述目标哈希值由上述多个基础哈希值经过哈希计算得到;
[0211] 基于多数多个基础哈希值、上述至少一个上层哈希值确定出默克尔树,上述多个基础哈希值分别为上述默克尔树的叶子节点的哈希值,上述至少一个上层哈希值中除上述目标哈希值外的其他上层哈希值分别为上述默克尔树的中间节点的哈希值,上述目标哈希值为上述默克尔树的根节点的哈希值。
[0212] 在一些可行的实施方式中,上述处理器1001用于:
[0213] 获取区块链网络中最后一个区块的区块头特征值,并基于上述区块哈希值和上述根节点的哈希值构建出新的区块头;
[0214] 基于上述默克尔树构建出新的区块体;
[0215] 基于上述新的区块头和上述新的区块体构建出新区块,并将上述新区块连接至上述最后一个区块之后以将上述新区块加入上述区块链网络。
[0216] 在一些可行的实施方式中,上述处理器1001还用于:
[0217] 接收户籍确认请求,上述户籍查询请求携带第三用户的个人户籍信息、第一目标根节点的哈希值以及第一目标存储路径;
[0218] 从上述区块链网络中确定出区块头中包含上述第一目标根节点的哈希值的第一目标区块,并基于上述第一目标存储路径从上述第一目标区块的默克尔树中确定出第一目标基础哈希值;
[0219] 对上述第三用户的个人户籍信息进行哈希计算得到上述第三用户的个人户籍信息的哈希值;
[0220] 若上述第一目标基础哈希值与上述第三用户的个人户籍信息的哈希值一致,则返回户籍确认消息。
[0221] 在一些可行的实施方式中,上述处理器1001还用于:
[0222] 接收户籍更新请求,上述户籍更新请求携带第四用户的个人户籍信息、第二目标根节点的哈希值以及第二目标存储路径;
[0223] 从上述区块链网络中确定出区块头中包含上述第二目标根节点的哈希值的第二目标区块,并基于上述第二目标存储路径从上述第二目标区块的默克尔树中确定出第二目标基础哈希值;
[0224] 对上述第四用户的个人户籍信息进行哈希计算得到上述第四用户的个人户籍信息的哈希值;
[0225] 基于上述第四用户的个人户籍信息的哈希值更新上述第二目标区块的默克尔树得到新的默克尔树,基于上述新的默克尔树更新上述第二目标区块。
[0226] 在一些可行的实施方式中,上述户籍关联请求由户籍关联部门提交,上述新区块中存储有上述关联家庭户籍信息中所有家庭成员的个人户籍信息,上述所有家庭成员的个人户籍信息由上述户籍关联部门的私钥进行加密;上述处理器1001还用于:
[0227] 接收户籍确认部门提交的户籍确认请求,上述户籍确认部门提交的户籍确认请求携带第五用户的身份信息和第三目标根节点的哈希值;
[0228] 从上述区块链网络中确定出区块头中包含上述第三目标根节点的哈希值的第三目标区块,并基于上述第五用户的身份信息从上述第三目标区块中确定出上述第五用户的个人户籍信息;
[0229] 获取上述户籍确认部门的公钥,并基于上述户籍确认部门的公钥对上述第五用户的个人户籍信息进行解密,若解密成功,则返回户籍确认消息;
[0230] 上述户籍关联部门和上述户籍确认部门为上述户籍管理部门的子部门,上述户籍关联部门的私钥为户籍管理部门的私钥的子私钥,上述户籍确认部门的公钥为上述户籍管理部门的公钥或者为上述户籍管理部门的公钥的子公钥。
[0231] 应当理解,在一些可行的实施方式中,上述处理器1001可以是中央处理单元(central processing unit,CPU),该处理器还可以是其他通用处理器、数字信号处理器(digital signal processor,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现成可编程门阵列(field-programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。该存储器可以包括只读存储器随机存取存储器,并向处理器提供指令和数据。存储器的一部分还可以包括非易失性随机存取存储器。例如,存储器还可以存储设备类型的信息。
[0232] 具体实现中,上述设备1000可通过其内置的各个功能模块执行如上述图2、图6和/或图7中各个步骤所提供的实现方式,具体可参见上述各个步骤所提供的实现方式,在此不再赘述。
[0233] 在本发明实施例中,通过对第一用户和第二用户的户籍迁出记录来确定第一用户对应的第一家庭户籍信息和第二用户对应的第二家庭户籍信息之间存在关联关系,可确保第一家庭户籍信息和第二家庭户籍信息具备关联存储的条件,可靠性高。同时,基于第一家庭户籍信息和第二家庭户籍信息生成关联家庭户籍信息,进而将关联家庭户籍信息中的各个家庭成员的个人户籍信息哈希值通过构建默克尔树写入区块链网络,可确保关联家庭户籍信息中各个家庭成员的个人用户信息不会被篡改,提高关联家庭户籍信息存储的稳定性。进一步的,还可基于户籍确认请求以及户籍更新请求完成对某一用户的个人户籍信息的确认与更新,进一步提高户籍管理的效率,适用性更高。
[0234] 本发明实施例还提供一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,被处理器执行以实现图2、图6和/或图7中各个步骤所提供的方法,具体可参见上述各个步骤所提供的实现方式,在此不再赘述。
[0235] 上述计算机可读存储介质可以是前述任一实施例提供的任务处理装置的内部存储单元,例如电子设备的硬盘或内存。该计算机可读存储介质也可以是该电子设备的外部存储设备,例如该电子设备上配备的插接式硬盘,智能存储卡(smart media card,SMC),安全数字(secure digital,SD)卡,闪存卡(flash card)等。上述计算机可读存储介质还可以包括磁碟、光盘、只读存储记忆体(read-only memory,ROM)或随机存储记忆体(randomaccess memory,RAM)等。进一步地,该计算机可读存储介质还可以既包括该电子设备的内部存储单元也包括外部存储设备。该计算机可读存储介质用于存储该计算机程序以及该电子设备所需的其他程序和数据。该计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的数据。
[0236] 本发明的权利要求书和说明书及附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本发明的至少一个实施例中。在说明书中的各个位置展示该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。在本发明说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
[0237] 本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
[0238] 以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈