CN111147477B - 一种基于区块链网络的验证方法及装置 - Google Patents

一种基于区块链网络的验证方法及装置 Download PDF

Info

Publication number
CN111147477B
CN111147477B CN201911350912.0A CN201911350912A CN111147477B CN 111147477 B CN111147477 B CN 111147477B CN 201911350912 A CN201911350912 A CN 201911350912A CN 111147477 B CN111147477 B CN 111147477B
Authority
CN
China
Prior art keywords
user
identity
identity information
blind
tree
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
Application number
CN201911350912.0A
Other languages
English (en)
Other versions
CN111147477A (zh
Inventor
张俊麒
陈浩
胡朝新
苏小康
张开翔
范瑞彬
韩丹
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
WeBank Co Ltd
Original Assignee
WeBank Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by WeBank Co Ltd filed Critical WeBank Co Ltd
Priority to CN201911350912.0A priority Critical patent/CN111147477B/zh
Publication of CN111147477A publication Critical patent/CN111147477A/zh
Application granted granted Critical
Publication of CN111147477B publication Critical patent/CN111147477B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0815Network architectures or network communication protocols for network security for authentication of entities providing single-sign-on or federations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/083Network architectures or network communication protocols for network security for authentication of entities using passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0876Network architectures or network communication protocols for network security for authentication of entities based on the identity of the terminal or configuration, e.g. MAC address, hardware or software configuration or device fingerprint

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Power Engineering (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Storage Device Security (AREA)

Abstract

本发明实施例公开了一种基于区块链网络的验证方法及装置,验证服务器接收验证请求后,至少根据验证请求中的至少两个第一盲密钥构建得到第一默克尔身份树,并根据区块链网络中用户的默克尔身份树的根和第一默克尔身份树的根,确定至少两个身份信息是否同属于该用户,用户的默克尔身份树是通过用户的各个身份信息对应的第一盲密钥构建得到。通过联合区块链网络中用户的默克尔身份树的根,并使用至少两个身份信息对应的第一盲密钥对至少两个身份信息进行验证,可以避免将用户的身份信息提供给验证服务器,提高用户的身份信息的安全性。

Description

一种基于区块链网络的验证方法及装置
技术领域
本发明涉及金融科技(Fintech)技术领域,尤其涉及一种基于区块链网络的验证方法及装置。
背景技术
随着计算机技术的发展,越来越多的技术应用在金融领域,传统金融业正在逐步向金融科技(Fintech)转变,区块链技术也不例外,但由于金融行业的安全性、实时性要求,金融科技也对区块链技术提出了更高的要求。
现阶段,不同的应用服务器通常要求用户使用同一身份信息来登录各个应用,比如用户的身份证号码、手机号等,如此,当多个应用服务器在关联同一用户时,可以基于该用户在多个应用服务器中的身份信息来确定是否为同一用户。然而,由于该种方式中同一用户使用相同的身份信息来登录各个应用,因此存在各个应用服务器私自串通匹配用户的情形,导致用户的隐私信息的安全性得不到保障。
综上,目前亟需一种基于区块链网络的验证方法,用以解决现有技术中用户使用同一身份信息登录各个应用所导致的用户的隐私信息不安全的技术问题。
发明内容
本发明实施例提供一种基于区块链网络的验证方法及装置,用以解决现有技术中用户使用同一身份信息登录各个应用所导致的用户的隐私信息不安全的技术问题。
第一方面,本发明实施例提供的一种基于区块链网络的验证方法,所述方法包括:
验证服务器接收用户端发送的验证请求;所述验证请求中包括用户的标识和至少两个第一盲密钥,所述至少两个第一盲密钥与至少两个身份信息对应;进一步地,所述验证服务器至少使用所述至少两个第一盲密钥构建得到第一默克尔身份树,并根据所述用户的标识从所述区块链网络中获取所述用户的默克尔身份树的根,根据所述用户的默克尔身份树的根和所述第一默克尔身份树的根,确定所述至少两个身份信息是否同属于所述用户;其中,所述用户的默克尔身份树由所述用户端使用各个第一盲密钥构建得到,所述各个第一盲密钥与所述用户的各个身份信息对应。
本发明实施例中,通过联合区块链网络中用户的默克尔身份树的根,并使用至少两个身份信息对应的第一盲密钥对至少两个身份信息进行验证,可以仅将身份信息对应的盲密钥提供给验证服务器,而无需将用户的身份信息提供给验证服务器,从而可以保证用户的身份信息不被验证服务器获取;且,区块链网络中存储用户的默克尔身份树的根,而未存储用户的默克尔身份树的全量数据,从而还可以保证用户的身份信息不被区块链网络获取,从而可以提高用户的身份信息的安全性。
在一种可能的实现方式中,所述验证请求中还包括一个或多个路径节点值,所述一个或多个路径节点值为所述用户的默克尔身份树中的节点值,每个路径节点值与所述各个第一盲密钥中除所述至少两个第一盲密钥以外的一个或多个第一盲密钥对应;具体实施中,所述服务器至少使用所述至少两个第一盲密钥构建得到第一默克尔身份树,包括:所述服务器使用所述至少两个第一盲密钥和所述一个或多个路径节点值构建得到所述第一默克尔身份树。
在一种可能的实现方式中,所述验证服务器根据所述用户的默克尔身份树的根和所述第一默克尔身份树的根,确定所述至少两个身份信息是否同属于所述用户,包括:若所述用户的默克尔身份树的根和所述第一默克尔身份树的根相同,则所述验证服务器确定所述至少两个身份信息均为所述用户的身份信息,若所述用户的默克尔身份树的根和所述第一默克尔身份树的根不同,则所述验证服务器确定所述至少两个身份信息中存在至少一个身份信息不是所述用户的身份信息。
第二方面,本发明实施例提供的一种基于区块链网络的验证方法,所述方法包括:
用户端使用各个第一盲密钥构建得到用户的默克尔身份树;所述各个第一盲密钥与所述用户的各个身份信息对应;所述用户端将所述用户的默克尔身份树的根同步给所述区块链网络,并验证服务器发送验证请求;所述验证请求中包括所述用户的标识和至少两个第一盲密钥,所述至少两个第一盲密钥与至少两个身份信息对应,所述验证请求用于所述验证服务器验证所述至少两个身份信息是否同属于所述用户。
本发明实施例中,区块链网络中仅存储用户的默克尔身份树的根,而不存储到默克尔身份树的全量数据,如此,区块链网络中的各个区域链节点无法获取用户的身份信息,从而能够保证用户的身份信息在区块链网络中的安全性。
在一种可能的实现方式中,所述用户的默克尔身份树包括第1至第N级节点层;所述第N级节点层中设置有根节点,所述根节点用于存储所述用户的默克尔身份树的根;第I级节点层中的任一节点连接第I-1级节点层中的两个节点,所述第I级节点层中的节点值与所连接的第I-1级节点层中的两个节点值对应;所述第1级节点层中的各个节点值分别与所述各个第一盲密钥对应;其中,1<I≤N,且I、N为整数。
在上述实现方式中,通过使用用户的各个身份信息对应的各个第一盲密钥构建用户的默克尔身份树,而不使用用户的各个身份信息构建用户的默克尔身份树,能够在隐藏用户的各个身份信息的同时,基于各个第一盲密钥完成对各个身份信息关联性的验证,提高验证的安全性和准确性。
在一种可能的实现方式中,所述客户端通过如下方式生成所述验证请求:若所述用户的默克尔身份树的第1级节点层中的各个节点值分别与所述至少两个第一盲密钥对应,则根据所述至少两个第一盲密钥生成所述验证请求;若所述用户的默克尔身份树的第1级节点层中的各个节点值还与其它第一盲密钥对应,则根据所述至少两个第一盲密钥和所述其它第一盲密钥所在的支路上的路径节点值,生成所述验证请求;每个路径节点值与一个或多个其它第一盲密钥对应。
在上述实现方式中,通过使用至少两个身份信息对应的第一盲密钥和其它身份信息对应的第一盲密钥所在的支路上的节点值生成验证请求,一方面能够保证验证信息的完整性,准确实现基于验证信息对至少两个身份信息的验证,另一方面还能不泄露其它的身份信息,提高其它身份信息的安全性。
在一种可能的实现方式中,所述用户的任一身份信息通过如下方式生成:所述用户端生成唯一标识字符串,设置所述身份信息对应的第一盲密钥,并使用所述第一盲密钥对所述唯一标识字符串进行盲化,得到所述身份信息。
在上述实现方式中,用户的每个身份信息均可以基于随机生成的唯一标识字符串加密得到,因此用户的不同身份信息能够保证唯一性和无关联性,如此,即使各个应用服务器私下串通匹配用户,也无法基于不同的身份信息确定各个身份信息之间的关联,保护用户的隐私信息。
在一种可能的实现方式中,所述身份信息满足如下形式:ID=hash(hash(A+K2)+K1);其中,ID为所述身份信息,A为所述唯一标识字符串,K1为所述身份信息对应的第一盲密钥,K2为第二盲密钥。
在上述实现方式中,通过设置第一盲密钥和第二盲密钥同时对用户的唯一标识字符串进行盲化,可以避免应用服务器破解用户的身份信息得到唯一标识字符串,进一步地提高唯一标识字符串的安全性;且,哈希加密算法是不可逆的算法,无法被应用服务器反向攻破,如此,即使用户将身份信息提供给应用服务器,应用服务器也无法根据身份信息反解得到用户的唯一标识字符串,进一步保证了用户的隐私信息的安全性。
第三方面,本发明实施例提供的一种基于区块链网络的验证装置,所述装置包括:
收发模块,用于接收用户端发送的验证请求;所述验证请求中包括用户的标识和至少两个第一盲密钥,所述至少两个第一盲密钥与至少两个身份信息对应;
构建模块,用于至少使用所述至少两个第一盲密钥构建得到第一默克尔身份树;
获取模块,用于根据所述用户的标识,从所述区块链网络中获取所述用户的默克尔身份树的根;
确定模块,用于根据所述用户的默克尔身份树的根和所述第一默克尔身份树的根,确定所述至少两个身份信息是否同属于所述用户;
其中,所述用户的默克尔身份树由所述用户端使用各个第一盲密钥构建得到,所述各个第一盲密钥与所述用户的各个身份信息对应。
在一种可能的实现方式中,所述验证请求中还包括一个或多个路径节点值,所述一个或多个路径节点值为所述用户的默克尔身份树中的节点值,每个路径节点值与所述各个第一盲密钥中除所述至少两个第一盲密钥以外的一个或多个第一盲密钥对应;所述构建模块具体用于:使用所述至少两个第一盲密钥和所述一个或多个路径节点值构建得到所述第一默克尔身份树。
在一种可能的实现方式中,所述确定模块具体用于:若所述用户的默克尔身份树的根和所述第一默克尔身份树的根相同,则确定所述至少两个身份信息均为所述用户的身份信息,若所述用户的默克尔身份树的根和所述第一默克尔身份树的根不同,则确定所述至少两个身份信息中存在至少一个身份信息不是所述用户的身份信息。
第四方面,本发明实施例提供的一种基于区块链网络的验证装置,所述装置包括:
构建模块,用于使用各个第一盲密钥构建得到用户的默克尔身份树;所述各个第一盲密钥与所述用户的各个身份信息对应;
同步模块,用于将所述用户的默克尔身份树的根同步给所述区块链网络;
收发模块,用于向验证服务器发送验证请求;所述验证请求中包括所述用户的标识和至少两个第一盲密钥,所述至少两个第一盲密钥与至少两个身份信息对应,所述验证请求用于所述验证服务器验证所述至少两个身份信息是否同属于所述用户。
在一种可能的实现方式中,所述用户的默克尔身份树包括第1至第N级节点层;所述第N级节点层中设置有根节点,所述根节点用于存储所述用户的默克尔身份树的根;第I级节点层中的任一节点连接第I-1级节点层中的两个节点,所述第I级节点层中的节点值与所连接的第I-1级节点层中的两个节点值对应;所述第1级节点层中的各个节点值分别与所述各个第一盲密钥对应;其中,1<I≤N,且I、N为整数。
在一种可能的实现方式中,所述装置还包括生成模块,所述生成模块通过如下方式生成所述验证请求:若所述用户的默克尔身份树的第1级节点层中的各个节点值分别与所述至少两个第一盲密钥对应,则根据所述至少两个第一盲密钥生成所述验证请求;若所述用户的默克尔身份树的第1级节点层中的各个节点值还与其它第一盲密钥对应,则根据所述至少两个第一盲密钥和所述其它第一盲密钥所在的支路上的路径节点值,生成所述验证请求;每个路径节点值与一个或多个其它第一盲密钥对应。
在一种可能的实现方式中,所述构建模块还通过如下方式生成所述用户的任一身份信息:生成唯一标识字符串,设置所述身份信息对应的第一盲密钥,并使用所述第一盲密钥对所述唯一标识字符串进行盲化,得到所述身份信息。
在一种可能的实现方式中,所述身份信息满足如下形式:ID=hash(hash(A+K2)+K1);其中,ID为所述身份信息,A为所述唯一标识字符串,K1为所述身份信息对应的第一盲密钥,K2为第二盲密钥。
第五方面,本发明实施例提供的一种计算设备,包括至少一个处理器以及至少一个存储器,其中,所述存储器存储有计算机程序,当所述程序被所述处理器执行时,使得所述处理器执行上述第一方面或第二方面任意所述的基于区块链网络的验证方法。
第六方面,本发明实施例提供的一种计算机可读存储介质,其存储有可由计算设备执行的计算机程序,当所述程序在所述计算设备上运行时,使得所述计算设备执行上述第一方面或第二方面任意所述的基于区块链网络的验证方法。
本发明的这些方面或其他方面在以下实施例的描述中会更加简明易懂。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种可能的系统架构示意图;
图2为本发明实施例提供的一种基于区块链网络的验证方法的流程示意图;
图3为本发明实施例提供的一种默克尔身份树的结构示意图;
图4为本发明实施例提供的一种更新的默克尔身份树的结构示意图;
图5为本发明实施例提供的一种基于区块链网络的验证装置的结构示意图;
图6为本发明实施例提供的又一种基于区块链网络的验证装置的结构示意图;
图7为本发明实施例提供的一种计算设备的结构示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
图1为本发明实施例提供的一种可能的系统架构示意图,如图1所示,该系统架构中包括区块链网络100、用户端110和至少一个应用服务器,比如应用服务器121、应用服务器122、应用服务器123和应用服务器124;其中,区块链网络100可以分别与用户端110和每个应用服务器连接,比如可以通过有线方式连接,或者通过无线方式连接,不作限定。
如图1所示,区块链网络100中可以设置有一个或多个区块链节点,一个或多个区块链节点中的任意两个区块链节点通信连接,从而共同维护区块链网络,比如区块链网络100中设置有区块链节点1001、区块链节点1002、区块链节点1003与区块链节点1004,区块链节点1001~区块链节点1004中的任意两个区块链节点可以通信连接。
本发明实施例中,区块链网络100中的区块链节点可以具有多种功能,比如,路由功能、交易功能、区块链功能和共识功能等,路由功能是指区块链节点可以将客户端传送过来的交易信息传送给区块链网络100中的其它区块链节点,以实现各个区块链节点之间的通信,交易功能和共识功能是指区块链节点可以通过共识支持与用户的交易或与其它区块链节点的交易,还可以记录在该区块链节点(或区块链网络100)中执行过的全部交易,区块链功能是指区块链节点可以基于交易的执行情况在区块链网络100中生成新区块。其中,路由功能是区块链网络100中的每个区块链节点必须具有的功能,而其它功能可由本领域技术人员根据实际需要进行设置。
需要说明的是,区块链网络100中的一个区块链节点可以在一台物理机(服务器)上,且一个区块链节点具体可以是指服务器中运行的一个进程或者一系列进程。比如,区块链节点1001可以为服务器上运行的一个进程,或者也可以为是指服务器,具体不作限定。
需要说明的是,图1仅是一种示例性的说明,并不构成对本方案的限定,具体实施中,应用服务器可以为部署在区块链网络100外部的客户端,也可以为部署在区块链网络100内部的区块链节点,相应地,用户端110可以为部署在区块链网络100外部的客户端,也可以为部署在区块链网络100内部的区块链节点,具体不作限定。
本发明实施例中,验证服务器可以为任一应用服务器,也可以为其它服务器,具体不作限定。
基于图1所示意的系统架构,图2为本发明实施例提供的一种验证方法对应的流程示意图,该方法包括:
步骤201,用户端使用各个第一盲密钥构建用户的默克尔身份树,各个第一盲密钥与用户的各个身份信息对应。
在一种可能的实现方式中,用户端可以通过如下方式生成用户在任一应用服务器中的身份信息:
步骤a,生成用户在应用服务器中的唯一标识字符串。
具体实施中,可以采用多种方式生成唯一标识字符串,比如可以通过SnowFlake算法生成全局唯一且逐渐递增的唯一标识字符串,或者也可以通过通用唯一识别码(Universally Unique Identifier,UUID)算法生成全局唯一且无序的唯一标识字符串,或者还可以按照用户的设置规则生成唯一标识字符串,具体不作限定。
步骤b,设置第一盲密钥,并使用第一盲密钥对唯一标识字符串进行盲化,得到用户在应用服务器中的身份信息。
其中,使用第一盲密钥盲化唯一标识字符串的方式可以有多种,比如可以使用第一盲密钥对唯一标识字符串进行椭圆曲线加密,加密形式如下:
ID=K1*PA
其中,ID为用户在应用服务器中的身份信息,A为用户在应用服务器中的唯一标识字符串,K1为唯一标识字符串A对应的第一盲密钥,P为椭圆曲线上的点。
或者,也可以使用第一盲密钥对唯一标识字符串进行哈希加密,加密形式如下:
ID=hash(A+K1)
其中,hash为加密使用的哈希函数,可以由用户根据业务需要进行设置,比如可以为sha3,或者可以为sha256,不作限定。
在一个示例中,为了更好地隐藏用户的唯一标识字符串,还可以设置第二盲密钥,具体实施中,先使用第二盲密钥对唯一标识字符串进行盲化,得到中间字符串,再使用第一盲密钥对中间字符串进行盲化,得到用户在应用服务器中的身份信息,通过设置第一盲密钥和第二盲密钥对用户的唯一标识字符串进行盲化,可以避免应用服务器破解用户的身份信息得到唯一标识字符串,进一步地提高唯一标识字符串的安全性。
相应地,使用第一盲密钥和第二盲密钥盲化唯一标识字符串的方式可以有多种,比如可以使用第一盲密钥和第二盲密钥对唯一标识字符串进行椭圆曲线加密,加密形式如下:
Figure BDA0002334641600000101
其中,K2为唯一标识字符串A对应的第一盲密钥。
或者,也可以使用第一盲密钥和第二盲密钥对唯一标识字符串进行哈希加密,加密形式如下:
ID=hash(hash(A+K2)+K1)
或者,还可以使用第一盲密钥和第二盲密钥对唯一标识字符串进行其它加密,不作限定。
需要说明的是,本发明实施例所述的盲化是指单向加密过程,盲化的数据无法被其它设备破解,比如唯一标识字符串被盲化后,验证服务器和区块链节点均无法破解得到唯一标识字符串,从而保护唯一标识字符串的安全性。
相应地,当生成用户在应用服务器中的身份信息后,用户端还可以使用用户在该应用服务器中的身份信息在应用服务器中进行注册,以使应用服务器基于各个用户的身份信息构建注册表;如此,用户在后续登录应用服务器时,可以将该身份信息提供给应用服务器,以使应用服务器查询注册表确定该用户是否为预先在应用服务器中注册的用户,若是,则可以允许用户登录应用服务器,若否,则不允许用户登录应用服务器。
在上述示例中,用户在每个应用服务器中的身份信息均是基于随机生成的唯一标识字符串加密得到,因此用户在不同应用服务器中的身份信息均不同,如此,即使各个应用服务器私下串通匹配用户,也无法基于不同的身份信息确定各个身份信息之间的关联,保护用户的隐私信息;且,椭圆曲线加密算法和哈希加密算法均是不可逆的算法,无法被应用服务器反向攻破,如此,即使用户将身份信息提供给应用服务器,应用服务器也无法根据身份信息反解得到用户的唯一标识字符串,进一步保证了用户的隐私信息的安全性。
本发明实施例中,用户端在生成用户的各个身份信息后,还可以使用各个身份信息对应的各个第一盲密钥构建得到用户的默克尔身份树,构建的过程可以为实时构建,比如实时检测用户端中是否新生成了用户的身份信息,若是,则可以基于新的身份信息对应的第一盲密钥更新原有的默克尔身份树,或者也可以为按照设定周期构建,比如每隔设定周期检测一次用户的身份信息,若确定相比于上一设定周期新生成了至少一条身份信息,则可以基于新的各个身份信息对应的各个第一盲密钥更新原有的默克尔身份树。
图3为本发明实施例提供的一种默克尔身份树的结构示意图,如图3所示,默克尔身份树中按照层级关系依次设置有叶子节点、中间节点和根节点,叶子节点位于层级关系的最底层,根节点位于层级关系的最顶层。其中,每个叶子节点还可以连接对应的扩展节点,扩展节点用于存储生成用户的各个身份信息对应的第一盲密钥,叶子节点用于存储所连接的扩展节点中的第一盲密钥的加密值(比如哈希加密值或椭圆曲线加密值,不作限定),根节点用于存储默克尔身份树的根;相应地,默克尔身份树中还设置有第1至第n级中间节点层,第1级中间节点层中的节点连接两个叶子节点,第1级中间节点层中的节点值用于存储所连接的两个叶子节点值(即第一盲密钥的加密值)的加密值,第i级中间节点层中的节点连接第i-1级中间节点层中的两个节点,第i级中间节点层中的节点值用于存储所连接的第i-1级中间节点层中的两个节点值的加密值,2≤i≤n。
举例来说,用户的默克尔身份树的构建过程可以如下:
假设K11为用户在应用服务器121中的身份信息对应的第一盲密钥,K12为用户在应用服务器122中的身份信息对应的第一盲密钥,K13为用户在应用服务器123中的身份信息对应的第一盲密钥,则用户端110可以先对第一盲密钥K11进行哈希加密,得到叶子节点值hash1,再对第一盲密钥K12进行哈希加密,得到叶子节点值hash2,再拼接叶子节点值hash1和叶子节点值hash2,并对拼接得到的hash1+hash2进行哈希加密,得到中间节点值hash12:
hash12=hash(hash1+hash2)
相应地,用户端110还可以对第一盲密钥K13进行哈希加密,得到叶子节点值hash3,再拼接叶子节点值hash3和叶子节点值hash3,并对拼接得到的hash3+hash3进行哈希加密,得到中间节点值hash33:
hash33=hash(hash3+hash3)
进一步地,用户端110可以拼接中间节点值hash12和中间节点值hash33,并对拼接得到的hash12+hash33进行哈希加密,得到根节点值hash123:
hash123=hash(hash12+hash33)
如此,用户的默克尔身份树的根为hash123。
如图4所示,在一个示例中,若用户端110中新生成了用户在应用服务器124中的身份信息,假设K14为用户在应用服务器124中的身份信息对应的第一盲密钥,则用户端110还可以在用户的默克尔身份树中新增一个扩展节点,并使用该扩展节点存储用户在应用服务器124中的身份信息对应的第一盲密钥K14,且,用户端110可以先对身份信息4对应的第一盲密钥K14进行哈希加密,得到叶子节点值hash4,再拼接叶子节点值hash3和叶子节点值hash4,对拼接得到的hash3+hash4进行哈希加密,得到中间节点值hash34:
hash34=hash(hash3+hash4)
进一步地,用户端110可以拼接中间节点值hash12和中间节点值hash34,并对拼接得到的hash12+hash34进行哈希加密,得到根节点值hash1234:
hash1234=hash(hash12+hash34)
如此,更新后的用户的默克尔身份树的根为hash1234。
步骤202,用户端将用户的默克尔身份树的根同步给区块链网络。
具体实施中,当用户端中生成了一棵新的用户的默克尔身份树或更新了旧的用户的默克尔身份树后,用户端均可以将用户的默克尔身份树的全量数据存储在用户端的内存中,且可以将用户的默克尔身份树的根同步给区块链网络中的区块链节点,比如可以仅同步给区块链网络中的某一个区块链节点,以使该区块链节点同步给区块链网络中的其它区块链节点,并通过与其它区块链节点的共识将用户的默克尔身份树的根存储在区块链网络的数据库中,或者也可以同步给区块链网络中的全部区块链节点,以使全部区块链节点通过共识将用户的默克尔身份树的根存储在区块链网络的数据库中,具体不作限定。
步骤203,用户端生成验证请求,所述验证请求中包括所述用户的标识和至少两个第一盲密钥,至少两个第一盲密钥与至少两个身份信息对应。
此处,至少两个第一盲密钥可以为任意的两个盲密钥,比如可以为用户的身份信息对应的各个第一盲密钥中的至少两个第一盲密钥,也可以为其它盲密钥,具体不作限定。
具体实施中,验证请求可以基于待关联的至少两个身份信息来生成,比如,若用户的默克尔身份树仅基于待关联的至少两个身份信息对应的第一盲密钥构建得到,则用户端可以直接根据待关联的至少两个身份信息对应的第一盲密钥生成验证请求;若用户的默克尔身份树基于待关联的至少两个身份信息对应的第一盲密钥以及无需关联的身份信息对应的第一盲密钥构建得到,则用户端可以根据待关联的至少两个身份信息对应的第一盲密钥,以及用户的默克尔身份树中除至少两个第一盲密钥以外的其它第一盲密钥所在的支路上的叶子节点值或中间节点值生成验证请求。
举例来说,当待关联的至少两个身份信息为用户在应用服务器121中的身份信息、用户在应用服务器122中的身份信息和用户在应用服务器123中的身份信息时,若用户的默克尔身份树的结构如图3所示,则用户端110可以直接根据用户在应用服务器121中的身份信息对应的第一盲密钥K11、用户在应用服务器122中的身份信息对应的第一盲密钥K12和用户在应用服务器123中的身份信息时对应的第一盲密钥K13生成验证请求;相应地,若用户的默克尔身份树的结构如图4所示,则用户端110可以根据用户在应用服务器121中的身份信息对应的第一盲密钥K11、用户在应用服务器122中的身份信息对应的第一盲密钥K12和用户在应用服务器123中的身份信息对应的第一盲密钥K13,以及用户在应用服务器124中的身份信息对应的第一盲密钥K14所在的支路上的中间节点值hash4生成验证请求。
需要说明的是,针对于任一其它身份信息,该身份信息对应的第一盲密钥所在的支路上的叶子节点或中间节点是指与待关联的身份信息对应的第一盲密钥所在的支路不重复的最大的节点。比如,若用户的默克尔身份树的结构如图4所示,则当待关联的至少两个身份信息为用户在应用服务器121中的身份信息和用户在应用服务器122中的身份信息时,用户端110可以根据用户在应用服务器121中的身份信息对应的第一盲密钥K11、用户在应用服务器122中的身份信息对应的第一盲密钥K12,以及用户在应用服务器123中的身份信息对应的第一盲密钥K13所在的支路、用户在应用服务器124中的身份信息对应的第一盲密钥K14所在的支路上的最大节点值hash34生成验证请求。
在一个示例中,验证请求中的各个信息还设置有对应的层级关系,任一信息的层级关系是指该信息在用户的默克尔身份树中的位置,比如所在的节点层以及在节点层中的顺序。
本发明实施例中,通过使用待关联的至少两个身份信息对应的第一盲密钥和无需关联的身份信息的第一盲密钥所在的支路上的节点值生成验证请求,可以在关联至少两个身份信息的同时,不泄露其它的身份信息所使用的第一盲密钥,从而提高身份信息的安全性。
步骤204,用户端将所述验证请求发送给验证服务器。
此处,验证服务器可以为待关联的至少两个身份信息对应的应用服务器中的任意一个或任意多个。
具体实施中,用户端可以通过独立于区块链网络的外部连接关系向验证服务器发送验证请求,比如验证服务器预先向用户端提供服务界面,用户通过在用户端的服务界面上输入验证请求,以触发用户端将验证请求提交给验证服务器。
在一个示例中,如图1所示,该系统架构中还可以包括证书签发节点130,证书签发节点130与用户端110连接,比如可以通过有线方式连接,或者可以通过无线方式连接,不作限定。
其中,证书签发节点130是指较为权威的安全认证机构,例如中国金融认证中心(CFCA),证书签发节点130能够根据用户端110的证书签发请求生成带有证书签发节点130签名的节点证书。
具体实施中,用户端还可以使用用户端的节点证书对验证请求进行签名,再将签名后的验证请求发送给验证服务器,相应地,验证服务器接收到签名后的验证请求后,可以先确定验证请求的签名是否与用户端的节点证书匹配,若匹配,则可以执行验证过程,若不匹配,则不执行验证过程。
在上述示例中,通过使用用户端的节点证书对验证请求进行签名,可以避免验证服务器对伪造签名的验证请求进行处理,提高验证的安全性。
步骤205,验证服务器至少根据所述验证请求中的至少两个第一盲密钥,构建第一默克尔身份树。
具体实施中,若验证请求中仅包含待关联的至少两个身份信息对应的第一盲密钥,则验证服务器可以直接按照图3所示意的方式构建得到第一默克尔身份树,并获取第一默克尔身份树的根。相应地,若验证请求中同时包含待关联的至少两个身份信息对应的第一盲密钥、无需关联的身份信息对应的支路上的叶子节点值或中间节点值、各个信息在用户的默克尔身份树中的层级结构,则验证服务器还可以根据各个信息在用户的默克尔身份树中的层级结构,按照相同的方式使用待关联的至少两个身份信息对应的第一盲密钥和无需关联的身份信息对应的支路上的叶子节点值或中间节点值构建得到第一默克尔身份树,并获取第一默克尔身份树的根。
本发明实施例中,通过在验证请求中添加各个信息在用户的默克尔身份树中的层级结构,使得验证服务器能够根据该层级结构重复构建用户的默克尔身份树的过程,从而用户的默克尔身份树能够用于评价和验证第一默克尔身份树,提高关联验证的准确性。
步骤206,验证服务器根据所述用户的标识,从区块链网络中获取用户的默克尔身份树的根。
本发明实施例中,验证服务器可以在接收到验证请求后,向区块链网络中的部分或全部区块链节点发送获取请求,以获取区块链网络的数据库中存储的用户的默克尔身份树的根,或者,验证服务器也可以预先从区块链网络的数据库中获取各个用户的默克尔身份树的根,并存储在验证服务器的内存中,如此,当接收到验证请求后,验证服务器解析验证请求确定用户的标识,然后根据用户的标识从其内存中获取该用户的默克尔身份树的根。
步骤207,验证服务器确定用户的默克尔身份树的根与第一默克尔身份树的根是否相同,若相同,则执行步骤208,若不同,则执行步骤209。
步骤208,验证服务器确定至少两个身份信息同属于所述用户。
步骤209,验证服务器确定至少两个身份信息中至少存在一个身份信息不属于所述用户。
具体实施中,若确定至少两个身份信息同属于所述用户,则验证服务器还可以在内存中构建该用户、至少两个身份信息和至少两个身份信息所在的应用服务器的对应关系,并可以将该对应关系广播给至少两个身份信息所在的应用服务器,以使各个应用服务器同步关联信息,保证关联信息的准确性。
本发明的上述实施例中,用户端根据用户的各个身份信息对应的各个第一盲密钥构建所述用户的默克尔身份树,并将所述用户的默克尔身份树的根同步给所述区块链网络,所述用户端生成验证请求,并将所述验证请求发送给验证服务器;所述验证请求中包括用户的标识和至少两个第一盲密钥,至少连个第一盲密钥与至少两个身份信息对应;相应地,验证服务器接收用户端发送的验证请求后,根据所述验证请求中包含的所述至少两个第一盲密钥构建第一默克尔身份树,并从所述区块链网络中获取所述用户的默克尔身份树的根,根据所述用户的默克尔身份树的根和所述第一默克尔身份树的根,确定所述至少两个身份信息是否同属于所述用户。本发明实施例中,通过联合区块链网络中用户的默克尔身份树的根,并使用至少两个身份信息对应的第一盲密钥对至少两个身份信息进行验证,可以仅将身份信息对应的盲密钥提供给验证服务器,而无需将用户的身份信息提供给验证服务器,从而可以保证用户的身份信息不被验证服务器获取;且,区块链网络中存储用户的默克尔身份树的根,而未存储用户的默克尔身份树的全量数据,从而还可以保证用户的身份信息不被区块链网络获取,从而可以提高用户的身份信息的安全性。
针对上述方法流程,本发明实施例还提供一种基于区块链网络的验证装置,该装置的具体内容可以参照上述方法实施。
图5为本发明实施例提供的一种基于区块链网络的验证装置,所述装置包括:
收发模块501,用于接收用户端发送的验证请求;所述验证请求中包括用户的标识和至少两个第一盲密钥,所述至少两个第一盲密钥与至少两个身份信息对应;
构建模块502,用于至少使用所述至少两个第一盲密钥构建得到第一默克尔身份树;
获取模块503,用于根据所述用户的标识,从所述区块链网络中获取所述用户的默克尔身份树的根;
确定模块504,用于根据所述用户的默克尔身份树的根和所述第一默克尔身份树的根,确定所述至少两个身份信息是否同属于所述用户;
其中,所述用户的默克尔身份树由所述用户端使用各个第一盲密钥构建得到,所述各个第一盲密钥与所述用户的各个身份信息对应。
可选地,所述验证请求中还包括一个或多个路径节点值,所述一个或多个路径节点值为所述用户的默克尔身份树中的节点值,每个路径节点值与所述各个第一盲密钥中除所述至少两个第一盲密钥以外的一个或多个第一盲密钥对应;
所述构建模块502具体用于:
使用所述至少两个第一盲密钥和所述一个或多个路径节点值构建得到所述第一默克尔身份树。
可选地,所述确定模块504具体用于:
若所述用户的默克尔身份树的根和所述第一默克尔身份树的根相同,则确定所述至少两个身份信息均为所述用户的身份信息,若所述用户的默克尔身份树的根和所述第一默克尔身份树的根不同,则确定所述至少两个身份信息中存在至少一个身份信息不是所述用户的身份信息。
图6为本发明实施例提供的一种基于区块链网络的验证装置,所述装置包括:
构建模块601,用于使用各个第一盲密钥构建得到用户的默克尔身份树;所述各个第一盲密钥与所述用户的各个身份信息对应;
同步模块602,用于将所述用户的默克尔身份树的根同步给所述区块链网络;
收发模块603,用于向验证服务器发送验证请求;所述验证请求中包括所述用户的标识和至少两个第一盲密钥,所述至少两个第一盲密钥与至少两个身份信息对应,所述验证请求用于所述验证服务器验证所述至少两个身份信息是否同属于所述用户。
可选地,所述用户的默克尔身份树包括第1至第N级节点层;
所述第N级节点层中设置有根节点,所述根节点用于存储所述用户的默克尔身份树的根;第I级节点层中的任一节点连接第I-1级节点层中的两个节点,所述第I级节点层中的节点值与所连接的第I-1级节点层中的两个节点值对应;所述第1级节点层中的各个节点值分别与所述各个第一盲密钥对应;
其中,1<I≤N,且I、N为整数。
可选地,所述装置还包括生成模块604,所述生成模块604通过如下方式生成所述验证请求:
若所述用户的默克尔身份树的第1级节点层中的各个节点值分别与所述至少两个第一盲密钥对应,则根据所述至少两个第一盲密钥生成所述验证请求;若所述用户的默克尔身份树的第1级节点层中的各个节点值还与其它第一盲密钥对应,则根据所述至少两个第一盲密钥和所述其它第一盲密钥所在的支路上的路径节点值,生成所述验证请求;每个路径节点值与一个或多个其它第一盲密钥对应。
可选地,所述构建模块601还通过如下方式生成所述用户的任一身份信息:
生成唯一标识字符串;
设置所述身份信息对应的第一盲密钥,并使用所述第一盲密钥对所述唯一标识字符串进行盲化,得到所述身份信息。
可选地,所述身份信息满足如下形式:
ID=hash(hash(A+K2)+K1)
其中,ID为所述身份信息,A为所述唯一标识字符串,K1为所述身份信息对应的第一盲密钥,K2为第二盲密钥。
从上述内容可以看出:本发明的上述实施例中,用户端根据用户的各个身份信息对应的各个第一盲密钥构建所述用户的默克尔身份树,并将所述用户的默克尔身份树的根同步给所述区块链网络,所述用户端生成验证请求,并将所述验证请求发送给验证服务器;所述验证请求中包括用户的标识和至少两个第一盲密钥,至少连个第一盲密钥与至少两个身份信息对应;相应地,验证服务器接收用户端发送的验证请求后,根据所述验证请求中包含的所述至少两个第一盲密钥构建第一默克尔身份树,并从所述区块链网络中获取所述用户的默克尔身份树的根,根据所述用户的默克尔身份树的根和所述第一默克尔身份树的根,确定所述至少两个身份信息是否同属于所述用户。本发明实施例中,通过联合区块链网络中用户的默克尔身份树的根,并使用至少两个身份信息对应的第一盲密钥对至少两个身份信息进行验证,可以仅将身份信息对应的盲密钥提供给验证服务器,而无需将用户的身份信息提供给验证服务器,从而可以保证用户的身份信息不被验证服务器获取;且,区块链网络中存储用户的默克尔身份树的根,而未存储用户的默克尔身份树的全量数据,从而还可以保证用户的身份信息不被区块链网络获取,从而可以提高用户的身份信息的安全性。
基于同一发明构思,本发明实施例还提供了一种计算设备,如图7所示,包括至少一个处理器701,以及与至少一个处理器连接的存储器702,本发明实施例中不限定处理器701与存储器702之间的具体连接介质,图7中处理器701和存储器702之间通过总线连接为例。总线可以分为地址总线、数据总线、控制总线等。
在本发明实施例中,存储器702存储有可被至少一个处理器701执行的指令,至少一个处理器701通过执行存储器702存储的指令,可以执行前述的基于区块链网络的验证方法中所包括的步骤。
其中,处理器701是计算设备的控制中心,可以利用各种接口和线路连接计算设备的各个部分,通过运行或执行存储在存储器702内的指令以及调用存储在存储器702内的数据,从而实现数据处理。可选的,处理器701可包括一个或多个处理单元,处理器701可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理下发指令。可以理解的是,上述调制解调处理器也可以不集成到处理器701中。在一些实施例中,处理器701和存储器702可以在同一芯片上实现,在一些实施例中,它们也可以在独立的芯片上分别实现。
处理器701可以是通用处理器,例如中央处理器(CPU)、数字信号处理器、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本发明实施例中公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合基于区块链网络的关联实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
存储器702作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块。存储器702可以包括至少一种类型的存储介质,例如可以包括闪存、硬盘、多媒体卡、卡型存储器、随机访问存储器(Random AccessMemory,RAM)、静态随机访问存储器(Static Random Access Memory,SRAM)、可编程只读存储器(Programmable Read Only Memory,PROM)、只读存储器(Read Only Memory,ROM)、带电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)、磁性存储器、磁盘、光盘等等。存储器702是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。本发明实施例中的存储器702还可以是电路或者其它任意能够实现存储功能的装置,用于存储程序指令和/或数据。
基于同一发明构思,本发明实施例还提供了一种计算机可读存储介质,其存储有可由计算设备执行的计算机程序,当所述程序在所述计算设备上运行时,使得所述计算设备执行上述图2任意所述的基于区块链网络的验证方法。
本领域内的技术人员应明白,本发明的实施例可提供为方法、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (14)

1.一种基于区块链网络的验证方法,其特征在于,所述方法包括:
验证服务器接收用户端发送的验证请求;所述验证请求中包括用户的标识和至少两个第一盲密钥,所述至少两个第一盲密钥与至少两个身份信息对应;
所述验证服务器至少使用所述至少两个第一盲密钥构建得到第一默克尔身份树;
所述验证服务器根据所述用户的标识,从所述区块链网络中获取所述用户的默克尔身份树的根;
所述验证服务器根据所述用户的默克尔身份树的根和所述第一默克尔身份树的根,确定所述至少两个身份信息是否同属于所述用户;
其中,所述用户的默克尔身份树由所述用户端使用各个第一盲密钥构建得到,所述各个第一盲密钥与所述用户的各个身份信息对应;
所述用户的任一身份信息通过如下方式生成:
所述用户端生成唯一标识字符串;
所述用户端设置所述身份信息对应的第一盲密钥,并使用所述第一盲密钥对所述唯一标识字符串进行盲化,得到所述身份信息;
所述身份信息满足如下形式:
ID=hash(hash(A+K2)+K1);
其中,ID为所述身份信息,A为所述唯一标识字符串,K1为所述身份信息对应的第一盲密钥,K2为第二盲密钥。
2.根据权利要求1所述的方法,其特征在于,所述验证请求中还包括一个或多个路径节点值,所述一个或多个路径节点值为所述用户的默克尔身份树中的节点值,每个路径节点值与所述各个第一盲密钥中除所述至少两个第一盲密钥以外的一个或多个第一盲密钥对应;
所述服务器至少使用所述至少两个第一盲密钥构建得到第一默克尔身份树,包括:
所述服务器使用所述至少两个第一盲密钥和所述一个或多个路径节点值构建得到所述第一默克尔身份树。
3.根据权利要求1或2所述的方法,其特征在于,所述验证服务器根据所述用户的默克尔身份树的根和所述第一默克尔身份树的根,确定所述至少两个身份信息是否同属于所述用户,包括:
若所述用户的默克尔身份树的根和所述第一默克尔身份树的根相同,则所述验证服务器确定所述至少两个身份信息均为所述用户的身份信息,若所述用户的默克尔身份树的根和所述第一默克尔身份树的根不同,则所述验证服务器确定所述至少两个身份信息中存在至少一个身份信息不是所述用户的身份信息。
4.一种基于区块链网络的验证方法,其特征在于,所述方法包括:
用户端使用各个第一盲密钥构建得到用户的默克尔身份树;所述各个第一盲密钥与所述用户的各个身份信息对应;
所述用户端将所述用户的默克尔身份树的根同步给所述区块链网络;
所述用户端向验证服务器发送验证请求;所述验证请求中包括所述用户的标识和至少两个第一盲密钥,所述验证请求用于所述验证服务器验证所述至少两个第一盲密钥对应的身份信息是否同属于所述用户;
所述用户的任一身份信息通过如下方式生成:
所述用户端生成唯一标识字符串;
所述用户端设置所述身份信息对应的第一盲密钥,并使用所述第一盲密钥对所述唯一标识字符串进行盲化,得到所述身份信息;
所述身份信息满足如下形式:
ID=hash(hash(A+K2)+K1);
其中,ID为所述身份信息,A为所述唯一标识字符串,K1为所述身份信息对应的第一盲密钥,K2为第二盲密钥。
5.根据权利要求4所述的方法,其特征在于,所述用户的默克尔身份树包括第1至第N级节点层;
所述第N级节点层中设置有根节点,所述根节点用于存储所述用户的默克尔身份树的根;第I级节点层中的任一节点连接第I-1级节点层中的两个节点,所述第I级节点层中的节点值与所连接的第I-1级节点层中的两个节点值对应;所述第1级节点层中的各个节点值分别与所述各个第一盲密钥对应;
其中,1<I≤N,且I、N为整数。
6.根据权利要求5所述的方法,其特征在于,所述用户端通过如下方式生成所述验证请求:
若所述用户的默克尔身份树的第1级节点层中的各个节点值分别与所述至少两个第一盲密钥对应,则所述用户端根据所述至少两个第一盲密钥生成所述验证请求;若所述用户的默克尔身份树的第1级节点层中的各个节点值还与其它第一盲密钥对应,则所述用户端根据所述至少两个第一盲密钥和所述其它第一盲密钥所在的支路上的路径节点值,生成所述验证请求;每个路径节点值与一个或多个其它第一盲密钥对应。
7.一种基于区块链网络的验证装置,其特征在于,所述装置包括:
收发模块,用于接收用户端发送的验证请求;所述验证请求中包括用户的标识和至少两个第一盲密钥,所述至少两个第一盲密钥与至少两个身份信息对应;
构建模块,用于至少使用所述至少两个第一盲密钥构建得到第一默克尔身份树;
获取模块,用于根据所述用户的标识,从所述区块链网络中获取所述用户的默克尔身份树的根;
确定模块,用于根据所述用户的默克尔身份树的根和所述第一默克尔身份树的根,确定所述至少两个身份信息是否同属于所述用户;
其中,所述用户的默克尔身份树由所述用户端使用各个第一盲密钥构建得到,所述各个第一盲密钥与所述用户的各个身份信息对应;
所述用户的任一身份信息通过如下方式生成:
所述用户端生成唯一标识字符串;
所述用户端设置所述身份信息对应的第一盲密钥,并使用所述第一盲密钥对所述唯一标识字符串进行盲化,得到所述身份信息;
所述身份信息满足如下形式:
ID=hash(hash(A+K2)+K1);
其中,ID为所述身份信息,A为所述唯一标识字符串,K1为所述身份信息对应的第一盲密钥,K2为第二盲密钥。
8.根据权利要求7所述的装置,其特征在于,所述验证请求中还包括一个或多个路径节点值,所述一个或多个路径节点值为所述用户的默克尔身份树中的节点值,每个路径节点值与所述各个第一盲密钥中除所述至少两个第一盲密钥以外的一个或多个第一盲密钥对应;
所述构建模块具体用于:
使用所述至少两个第一盲密钥和所述一个或多个路径节点值构建得到所述第一默克尔身份树。
9.根据权利要求7或8所述的装置,其特征在于,所述确定模块具体用于:
若所述用户的默克尔身份树的根和所述第一默克尔身份树的根相同,则确定所述至少两个身份信息均为所述用户的身份信息,若所述用户的默克尔身份树的根和所述第一默克尔身份树的根不同,则确定所述至少两个身份信息中存在至少一个身份信息不是所述用户的身份信息。
10.一种基于区块链网络的验证装置,其特征在于,所述装置包括:
构建模块,用于使用各个第一盲密钥构建得到用户的默克尔身份树;所述各个第一盲密钥与所述用户的各个身份信息对应;
同步模块,用于将所述用户的默克尔身份树的根同步给所述区块链网络;
收发模块,用于向验证服务器发送验证请求;所述验证请求中包括所述用户的标识和至少两个第一盲密钥,所述至少两个第一盲密钥与至少两个身份信息对应,所述验证请求用于所述验证服务器验证所述至少两个身份信息是否同属于所述用户;
所述用户的任一身份信息通过如下方式生成:
所述用户端生成唯一标识字符串;
所述用户端设置所述身份信息对应的第一盲密钥,并使用所述第一盲密钥对所述唯一标识字符串进行盲化,得到所述身份信息;
所述身份信息满足如下形式:
ID=hash(hash(A+K2)+K1);
其中,ID为所述身份信息,A为所述唯一标识字符串,K1为所述身份信息对应的第一盲密钥,K2为第二盲密钥。
11.根据权利要求10所述的装置,其特征在于,所述用户的默克尔身份树包括第1至第N级节点层;
所述第N级节点层中设置有根节点,所述根节点用于存储所述用户的默克尔身份树的根;第I级节点层中的任一节点连接第I-1级节点层中的两个节点,所述第I级节点层中的节点值与所连接的第I-1级节点层中的两个节点值对应;所述第1级节点层中的各个节点值分别与所述各个第一盲密钥对应;
其中,1<I≤N,且I、N为整数。
12.根据权利要求11所述的装置,其特征在于,所述装置还包括生成模块,所述生成模块通过如下方式生成所述验证请求:
若所述用户的默克尔身份树的第1级节点层中的各个节点值分别与所述至少两个第一盲密钥对应,则根据所述至少两个第一盲密钥生成所述验证请求;若所述用户的默克尔身份树的第1级节点层中的各个节点值还与其它第一盲密钥对应,则根据所述至少两个第一盲密钥和所述其它第一盲密钥所在的支路上的路径节点值,生成所述验证请求;每个路径节点值与一个或多个其它第一盲密钥对应。
13.一种计算设备,其特征在于,包括至少一个处理器以及至少一个存储器,其中,所述存储器存储有计算机程序,当所述程序被所述处理器执行时,使得所述处理器执行权利要求1~6任一权利要求所述的方法。
14.一种计算机可读存储介质,其特征在于,其存储有可由计算设备执行的计算机程序,当所述程序在所述计算设备上运行时,使得所述计算设备执行权利要求1~6任一权利要求所述的方法。
CN201911350912.0A 2019-12-24 2019-12-24 一种基于区块链网络的验证方法及装置 Active CN111147477B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911350912.0A CN111147477B (zh) 2019-12-24 2019-12-24 一种基于区块链网络的验证方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911350912.0A CN111147477B (zh) 2019-12-24 2019-12-24 一种基于区块链网络的验证方法及装置

Publications (2)

Publication Number Publication Date
CN111147477A CN111147477A (zh) 2020-05-12
CN111147477B true CN111147477B (zh) 2023-04-18

Family

ID=70519770

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911350912.0A Active CN111147477B (zh) 2019-12-24 2019-12-24 一种基于区块链网络的验证方法及装置

Country Status (1)

Country Link
CN (1) CN111147477B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112187454B (zh) * 2020-09-14 2022-12-02 国网浙江省电力有限公司 基于区块链的密钥管理方法及系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107257340A (zh) * 2017-06-19 2017-10-17 阿里巴巴集团控股有限公司 一种认证方法、基于区块链的认证数据处理方法及设备
CN108259438A (zh) * 2016-12-29 2018-07-06 中移(苏州)软件技术有限公司 一种基于区块链技术的认证的方法和装置
CN108347428A (zh) * 2017-12-29 2018-07-31 北京世纪互联宽带数据中心有限公司 基于区块链的应用程序的注册系统、方法和装置
CN108711052A (zh) * 2018-05-18 2018-10-26 电子科技大学 一种基于区块链的信息验证系统
CN109040082A (zh) * 2018-08-10 2018-12-18 阿里巴巴集团控股有限公司 用户的身份内容信息的认证、验证方法和装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108259438A (zh) * 2016-12-29 2018-07-06 中移(苏州)软件技术有限公司 一种基于区块链技术的认证的方法和装置
CN107257340A (zh) * 2017-06-19 2017-10-17 阿里巴巴集团控股有限公司 一种认证方法、基于区块链的认证数据处理方法及设备
CN108347428A (zh) * 2017-12-29 2018-07-31 北京世纪互联宽带数据中心有限公司 基于区块链的应用程序的注册系统、方法和装置
CN108711052A (zh) * 2018-05-18 2018-10-26 电子科技大学 一种基于区块链的信息验证系统
CN109040082A (zh) * 2018-08-10 2018-12-18 阿里巴巴集团控股有限公司 用户的身份内容信息的认证、验证方法和装置

Also Published As

Publication number Publication date
CN111147477A (zh) 2020-05-12

Similar Documents

Publication Publication Date Title
JP7486630B2 (ja) ブロック認識
US10826888B2 (en) Method for providing certificate service based on smart contract and server using the same
US20210209373A1 (en) Media authentication using distributed ledger
CN108111314B (zh) 数字证书的生成和校验方法及设备
CN108334753B (zh) 盗版应用验证方法和分布式服务器节点
CN111327564B (zh) 一种联盟链的准入方法及装置
CN112671720B (zh) 一种云平台资源访问控制的令牌构造方法、装置及设备
CN111314172B (zh) 基于区块链的数据处理方法、装置、设备及存储介质
Tate et al. Multi-user dynamic proofs of data possession using trusted hardware
CN110570196A (zh) 交易数据处理方法、装置、终端设备以及存储介质
CN110677376A (zh) 认证方法、相关设备和系统及计算机可读存储介质
CN111147477B (zh) 一种基于区块链网络的验证方法及装置
WO2018219425A1 (en) Method for validating and/or authenticating online curriculum vitae using blockchain distributed ledger technology
CN113051622B (zh) 索引构建方法、装置、设备和存储介质
CN112749964B (zh) 一种信息监控方法、系统、设备及存储介质
CN113794716B (zh) 一种终端设备入网认证方法、装置、设备及可读存储介质
CN112653767B (zh) 数字身份管理方法、装置、电子设备和可读存储介质
CN116566615A (zh) 一种基于区块链的身份认证方法及装置
CN116938500A (zh) 一种数据处理方法、装置、设备及计算机可读存储介质
CN113094051A (zh) 应用程序的构建方法、装置、设备和介质
CN115375304A (zh) 一种基于区块链的数据处理方法、装置、设备以及介质
CN113852655A (zh) 信息管理方法、装置及区块链服务系统
CN112101048A (zh) 身份识别信息的处理装置及方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant