CN114066461A - 基于区块链的身份信息管理方法、节点及区块链系统 - Google Patents
基于区块链的身份信息管理方法、节点及区块链系统 Download PDFInfo
- Publication number
- CN114066461A CN114066461A CN202010762074.4A CN202010762074A CN114066461A CN 114066461 A CN114066461 A CN 114066461A CN 202010762074 A CN202010762074 A CN 202010762074A CN 114066461 A CN114066461 A CN 114066461A
- Authority
- CN
- China
- Prior art keywords
- block
- node
- identity information
- crl
- information
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/40—Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
- G06Q20/401—Transaction verification
- G06Q20/4014—Identity check for transactions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3821—Electronic credentials
- G06Q20/38215—Use of certificates or encrypted proofs of transaction rights
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3827—Use of message hashing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3263—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
- H04L9/3268—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements using certificate validation, registration, distribution or revocation, e.g. certificate revocation list [CRL]
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Finance (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本申请实施例公开一种基于区块链的身份信息管理方法、节点及区块链系统,以实现轻节点对身份信息的管理。该方法包括:第一节点从第二节点获取待同步的第一区块的区块头,根据第一区块的区块头包括的特征信息,根据第一区块的区块头包括的特征信息与证书撤销列表CRL标识,验证第一区块与第一区块的前序区块之间是否满足链式结构,若满足,则确定第一区块承载有CRL,从第二节点获取CRL。或者,第二节点确定更新第一区块内存储的身份信息,根据第一区块以及第二区块生成第三区块,第二区块为当前更新周期内的最新区块,第一区块和第二区块为第三区块的前序区块,第三区块存储有第一区块中更新后的身份信息,第三区块存储在第一区块所在主链路的分叉上。
Description
技术领域
本申请涉及区块链技术领域,尤其涉及基于区块链的身份信息管理方法、节点及区块链系统。
背景技术
区块链是一种分布式账本的安全实现,它以区块作为数据结构存储交易信息,是一种维护区块的链式结构。区块链通过记录所有交易的历史信息维护其链式结构,可以维持持续增长的、可共享的、不可篡改的交易信息。由于区块链需要记录所有交易的历史信息,因此在物联网的大数据场景下,区块链的背书节点需要以每年太字节(terabyte,TB)级的速率增长其存储负担。为缓解区块链的背书节点的存储负担,可以将背书节点分为轻节点(light node)和全节点(full node)。
其中,全节点维护包括多个区块的区块链,全节点维护的区块包括区块头以及具体的交易信息,全节点可以和其他全节点一起参与共识产生区块和验证新的区块。轻节点只维护每个区块的区块头信息,不记录具体的交易信息,即轻节点维护的区块中只包括区块头,不包括具体的交易信息。当轻节点需要验证区块中的某个交易信息有效时,轻节点可以获取验证辅助信息,根据验证辅助信息计算得到区块头信息,根据计算得到的某个区块头信息确定该交易信息位于包括该区块头信息的区块中。
由上可知,轻节点可以感知交易信息的区块链记录,如感知该交易信息处于区块链的哪个区块上。由于具体的交易信息存储在全节点,对于轻节点而言,不能感知具体的交易信息,如不能感知到身份管理信息、支付等交易环境,以身份管理为例,轻节点对于无撤销的身份管理架构上有很好的支持,但对于更新、撤销的身份信息,如果其他节点将交易信息同步给轻节点时有意隐藏被撤销的身份信息,轻节点无法很好地感知身份信息的更新、撤销,不能实现对身份信息等交易信息的管理。因此,如何让区块链的轻节点能够有效记录被撤销的身份,不被不诚实的身份持有者,甚至不诚实的轻节点欺骗,是在物联网、车联网场景中实现轻量级的区块链身份管理的重要问题之一。
发明内容
本申请提供一种基于区块链的身份信息管理方法、节点及区块链系统,以实现轻节点对身份信息,尤其被撤销的身份信息的管理。
为达到上述目的,本申请实施例采用如下技术方案:
第一方面,提供一种基于区块链的身份信息管理方法,一种可能的实现方式中,该方法包括:第一节点根据第一区块的区块头包括的特征信息,验证第一区块与第一区块的前序区块之间是否满足链式结构;若第一区块与第一区块的前序区块之间不满足链式结构,则第一节点根据第一区块的区块头包括的特征信息与证书撤销列表CRL标识,验证第一区块与第一区块的前序区块之间是否满足链式结构,若满足,则确定第一区块承载有CRL;第一节点从第二节点获取CRL。
基于第一方面所示方法,具有身份信息撤销记录的区块在结构上具有和其他区块不一样的标志特征,如为具有身份信息撤销记录的区块配置CRL标识,具有身份信息撤销记录的区块在和前序区块成链时,必须结合该CRL标识才能让有具有身份信息撤销记录的区块与前序区块之间满足链式结构,使得在忽视该CRL标识的情况下,即CRL标识不参与链式结构的验证的情况下,具有身份信息撤销记录的区块与前序区块的两个区块之间的链式规则无法通过。当新区块同步时,如果下游轻节点发现当前区块结合CRL标识才能成功验证链式规则时,则确定当前区块中存储有CRL标识,从上游节点获取CRL,通过影响区块链链式结构验证的CRL标识,使得区块链在结构上能识别出目标区块是否包含了CRL,并借此索取CRL,使得上游节点无法隐藏存在身份信息撤销记录的事实,避免撤销记录的交易存在被轻节点忽略(如恶意隐藏和干扰)而未全网同步的风险。同时,在基于区块链的身份管理中,对轻节点而言,在区块链上只记录身份信息撤销记录,不需要维护整条链的全部历史交易信息,显著降低了身份撤销所带来的认证和动态性的时延和通信负担。
一种可能的设计中,第一节点确定将第一区块的区块头包括的特征信息作为哈希输入参数计算得到的哈希值与第一区块的前序区块的哈希值是否相同;若相同,则第一区块与第一区块的前序区块之间满足链式结构;若不同,则第一区块与第一区块的前序区块之间不满足链式结构。
一种可能的设计中,第一节点确定将第一区块的区块头包括的特征信息与CRL标识作为哈希输入参数计算得到的哈希值与第一区块的前序区块的哈希值是否相同;若相同,则第一区块与第一区块的前序区块之间满足链式结构;若不同,则第一区块与第一区块的前序区块之间不满足链式结构。
一种可能的设计中,CRL为全量列表或者差分列表。
又一种可能的实现方式中,第一方面所述的方案还可以为:第一节点获取身份验证信息,身份验证信息包括待验证的身份信息,注册有身份信息的第一区块的地址信息以及身份信息对应的验证辅助信息AuxI;第一节点根据第一区块的地址信息,确定第一区块;如果第一区块存在分叉,则根据第一区块以及第二区块确定出第三区块,第二区块为当前更新周期内的最新区块,第一区块和第二区块为第三区块的前序区块,第三区块存储有第一区块中更新后的身份信息,第三区块是位于分叉链路上的、与第一区块对应的更新区块;第一节点根据待验证的身份信息、身份信息对应的AuxI以及第三区块,验证身份信息。
基于第一方面的又一种可能的实现方式,在不破坏区块链的主链路特性的情况下,将区块中的更新信息存储到一个新的区块中,并将更新后的区块存储在与主链路衔接的分叉上,凭借这种具有分叉的拓扑关系即能感知到某个区块中内容的更新,实现身份验证。
一种可能的设计中,第一节点将第一区块的区块头包括的特征信息以及第二区块的区块头包括的特征信息作为哈希输入参数计算得到一哈希值;第一节点比较计算得到的哈希值以及分叉链路上每个区块对应的哈希值,将与计算得到的哈希值相同的区块作为第三区块。
一种可能的设计中,第一节点根据将待验证的身份信息以及身份信息对应的AuxI进行哈希计算得到一哈希值,如果哈希值与第三区块的哈希根相同,则确定身份信息有效;如果哈希值与第三区块的哈希根不同,则确定身份信息无效。
一种可能的设计中,第三区块以及当前更新周期结束时的最后一个区块为第四区块的前序区块,第四区块为下一更新周期的第一个区块。如此,将分叉上的更新区块与下一更新周期的区块之间形成链式结构,当更新周期结束后对更新区块的感知是强制的,否则无法通过下一个区块,使得懒惰的或有图谋的轻节点无法隐藏更新后的区块(即被更新的内容),无法长时间地维持已更新区块的旧版本而隐藏相关身份信息已被更新的事实。
第二方面,提供了一种区块链节点,区块链节点可以实现上述第一方面或者第一方面可能的设计中第一节点所执行的功能,所述功能可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个上述功能相应的模块。如,处理单元。处理单元,用于根据第一区块的区块头包括的特征信息,验证第一区块与第一区块的前序区块之间是否满足链式结构;若第一区块与第一区块的前序区块之间不满足链式结构,则处理单元根据第一区块的区块头包括的特征信息与证书撤销列表CRL标识,验证第一区块与第一区块的前序区块之间是否满足链式结构,若满足,则确定第一区块承载有CRL;处理单元从第二节点获取CRL。
一种可能的设计中,处理单元,具体用于确定将第一区块的区块头包括的特征信息作为哈希输入参数计算得到的哈希值与第一区块的前序区块的哈希值是否相同;若相同,则第一区块与第一区块的前序区块之间满足链式结构;若不同,则第一区块与第一区块的前序区块之间不满足链式结构。
一种可能的设计中,处理单元,具体用于确定将第一区块的区块头包括的特征信息与CRL标识作为哈希输入参数计算得到的哈希值与第一区块的前序区块的哈希值是否相同;若相同,则第一区块与第一区块的前序区块之间满足链式结构;若不同,则第一区块与第一区块的前序区块之间不满足链式结构。
一种可能的设计中,CRL为全量列表或者差分列表。
一种可能的设计中,区块链节点还包括接收单元,接收单元,用于获取身份验证信息,身份验证信息包括待验证的身份信息,注册有身份信息的第一区块的地址信息以及身份信息对应的验证辅助信息AuxI;处理单元根据第一区块的地址信息,确定第一区块;如果第一区块存在分叉,则根据第一区块以及第二区块确定出第三区块,第二区块为当前更新周期内的最新区块,第一区块和第二区块为第三区块的前序区块,第三区块存储有第一区块中更新后的身份信息,第三区块是位于分叉链路上的、与第一区块对应的更新区块;处理单元,还用于根据待验证的身份信息、身份信息对应的AuxI以及第三区块,验证身份信息。
一种可能的设计中,处理单元,具体用于将第一区块的区块头包括的特征信息以及第二区块的区块头包括的特征信息作为哈希输入参数计算得到一哈希值;处理单元,还用于比较计算得到的哈希值以及分叉链路上每个区块对应的哈希值,将与计算得到的哈希值相同的区块作为第三区块。
一种可能的设计中,处理单元,还用于根据将待验证的身份信息以及身份信息对应的AuxI进行哈希计算得到一哈希值,如果哈希值与第三区块的哈希根相同,则确定身份信息有效;如果哈希值与第三区块的哈希根不同,则确定身份信息无效。
一种可能的设计中,第三区块以及当前更新周期结束时的最后一个区块为第四区块的前序区块,第四区块为下一更新周期的第一个区块。
第三方面,提供了一种区块链节点,该区块链节点可以为第一节点或者第一节点中的芯片或者片上系统。该区块链节点可以实现上述各方面或者各可能的设计中第一节点所执行的功能,所述功能可以通过硬件实现。一种可能的设计中,该区块链节点可以包括:处理器。处理器可以用于支持区块链节点实现上述第一方面或者第一方面的任一种可能的设计中所涉及的功能。例如:处理器可以用于根据第一区块的区块头包括的特征信息,验证第一区块与第一区块的前序区块之间是否满足链式结构;若第一区块与第一区块的前序区块之间不满足链式结构,则处理器根据第一区块的区块头包括的特征信息与证书撤销列表CRL标识,验证第一区块与第一区块的前序区块之间是否满足链式结构,若满足,则确定第一区块承载有CRL;处理单元从第二节点获取CRL。在又一种可能的设计中,所述区块链节点还可以包括存储器,存储器,用于保存区块链节点必要的计算机执行指令和数据。当该区块链节点运行时,该处理器执行该存储器存储的该计算机执行指令,以使该区块链节点执行如上述第一方面或者第一方面的任一种可能的设计所述的基于区块链的身份信息管理方法。
其中,该区块链节点的具体实现方式可参考第一方面或第一方面的任一种可能的设计提供的基于区块链的身份信息管理方法中第一节点的行为功能。
第四方面,提供了一种区块链节点,该区块链节点包括一个或多个处理器和一个或多个存储器;一个或多个存储器与一个或多个处理器耦合,一个或多个存储器用于存储计算机程序代码或计算机指令;当一个或多个处理器执行计算机指令时,使得区块链节点执行如第一方面或者第一方面的任一可能的设计所述的基于区块链的身份信息管理方法。
第五方面,提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机指令或程序,当计算机指令或程序在计算机上运行时,使得计算机执行如第一方面或者第一方面的任一可能的设计所述的基于区块链的身份信息管理方法。
第六方面,提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行如第一方面或者第一方面的任一可能的设计所述的基于区块链的身份信息管理方法。
第七方面,提供了一种芯片系统,所述芯片系统包括一个或多个处理器和一个或多个存储器;一个或多个存储器与一个或多个处理器耦合,一个或多个存储器中存储有计算机程序代码或计算机指令;当所述一个或多个处理器执行所述计算机程序代码或计算机指令时,使得所述芯片系统执行如第一方面或者第一方面的任一可能的设计所述的基于区块链的身份信息管理方法。
其中,第三方面至第七方面中任一种设计方式所带来的技术效果可参见上述第一方面至第二方面的任一种可能的设计所带来的技术效果,不予赘述。
第八方面,提供一种基于区块链的身份信息管理方法,该方法包括:第二节点获取证书撤销列表CRL;第二节点根据获取到的CRL生成第一区块,第一区块的区块体中存储有CRL,第一区块的区块头包括的特征信息与CRL标识作为哈希输入参数计算得到的哈希值与第一区块的前序区块的哈希值相同。
基于第七方面的一种实现方式,具有身份信息撤销记录的区块在结构上具有和其他区块不一样的标志特征,如为具有身份信息撤销记录的区块配置CRL标识,具有身份信息撤销记录的区块在和前序区块成链时,必须结合该CRL标识才能让有具有身份信息撤销记录的区块与前序区块之间满足链式结构,使得在忽视该CRL标识的情况下,即CRL标识不参与链式结构的验证的情况下,具有身份信息撤销记录的区块与前序区块的两个区块之间的链式规则无法通过。当新区块同步时,如果下游轻节点发现当前区块结合CRL标识才能成功验证链式规则时,则确定当前区块中存储有CRL标识,从上游节点获取CRL,通过影响区块链链式结构验证的CRL标识,使得区块链在结构上能识别出目标区块是否包含了CRL,并借此索取CRL,使得上游节点无法隐藏存在身份信息撤销记录的事实,避免撤销记录的交易存在被轻节点忽略(如恶意隐藏和干扰)而未全网同步的风险。同时,在基于区块链的身份管理中,对轻节点而言,在区块链上只记录身份信息撤销记录,不需要维护整条链的全部历史交易信息,显著降低了身份撤销所带来的认证和动态性的时延和通信负担。
一种可能的设计中,第二节点接收来自CRL服务器的CRL,CRL服务器存储有CRL对应的授权信息。
一种可能的设计中,CRL为全量列表或者差分列表。
第七方面的又一种实现方式中,第二节点确定更新第一区块内存储的身份信息;第二节点根据第一区块以及第二区块,生成第三区块,第二区块为当前更新周期内的最新区块,第一区块和第二区块为第三区块的前序区块,第三区块存储有第一区块中更新后的身份信息,第三区块为与第一区块对应的更新区块;第二节点将第三区块存储在第一区块所在主链路的分叉上。基于第七方面的又一种实现方式,在不破坏区块链的主链路特性的情况下,将区块中的更新信息存储到一个新的区块中,并将更新后的区块存储在与主链路衔接的分叉上,凭借这种具有分叉的拓扑关系即能感知到某个区块中内容的更新。
一种可能的设计中,第二节点根据第三区块以及当前更新周期结束时的最后一个区块,生成第四区块,第三区块和最后一个区块为第四区块的前序区块,第四区块为下一更新周期的第一个区块。如此,将分叉上的更新区块与下一更新周期的区块之间形成链式结构,当更新周期结束后对更新区块的感知是强制的,否则无法通过下一个区块,使得懒惰的或有图谋的轻节点无法隐藏更新后的区块(即被更新的内容),无法长时间地维持已更新区块的旧版本而隐藏相关身份信息已被更新的事实。
一种可能的设计中,第二节点向被更新身份信息的终端所关联的BSS发送辅助信息更改通知,辅助信息更改通知用于触发BSS向终端发送更新后的验证辅助信息AuxI。
第九方面,提供了一种区块链节点,区块链节点可以实现上述第八方面或者第八方面可能的设计中第二节点所执行的功能,所述功能可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个上述功能相应的单元。如,接收单元和处理单元。接收单元,用于获取证书撤销列表CRL;处理单元,用于根据获取到的CRL生成第一区块,第一区块的区块体中存储有CRL,第一区块的区块头包括的特征信息与CRL标识作为哈希输入参数计算得到的哈希值与第一区块的前序区块的哈希值相同。
一种可能的设计中,接收单元,具体用于接收来自CRL服务器的CRL,CRL服务器存储有CRL对应的授权信息。
一种可能的设计中,CRL为全量列表或者差分列表。
一种可能的设计中,处理单元,还用于确定更新第一区块内存储的身份信息;处理单元,还用于根据第一区块以及第二区块,生成第三区块,第二区块为当前更新周期内的最新区块,第一区块和第二区块为第三区块的前序区块,第三区块存储有第一区块中更新后的身份信息,第三区块为与第一区块对应的更新区块;处理单元,还用于将第三区块存储在第一区块所在主链路的分叉上。
一种可能的设计中,处理单元,还用于根据第三区块以及当前更新周期结束时的最后一个区块,生成第四区块,第三区块和最后一个区块为第四区块的前序区块,第四区块为下一更新周期的第一个区块。
一种可能的设计中,区块链节点还包括发送单元,发送单元,用于向被更新身份信息的终端所关联的BSS发送辅助信息更改通知,辅助信息更改通知用于触发BSS向终端发送更新后的验证辅助信息AuxI。
第十方面,提供了一种区块链节点,该区块链节点可以为第二节点或者第二节点中的芯片或者片上系统。该区块链节点可以实现上述各方面或者各可能的设计中第二节点所执行的功能,所述功能可以通过硬件实现。一种可能的设计中,该区块链节点可以包括:收发器和处理器。收发器和处理器可以用于支持区块链节点实现上述第八方面或者第八方面的任一种可能的设计中所涉及的功能。例如:收发器可以用于获取证书撤销列表CRL;处理器可以用于根据获取到的CRL生成第一区块,第一区块的区块体中存储有CRL,第一区块的区块头包括的特征信息与CRL标识作为哈希输入参数计算得到的哈希值与第一区块的前序区块的哈希值相同。在又一种可能的设计中,所述区块链节点还可以包括存储器,存储器,用于保存区块链节点必要的计算机执行指令和数据。当该区块链节点运行时,该处理器执行该存储器存储的该计算机执行指令,以使该区块链节点执行如上述第八方面或者第八方面的任一种可能的设计所述的基于区块链的身份信息管理方法。
其中,该区块链节点的具体实现方式可参考第八方面或第八方面的任一种可能的设计提供的基于区块链的身份信息管理方法中第二节点的行为功能。
第十一方面,提供了一种区块链节点,该区块链节点包括一个或多个处理器和一个或多个存储器;一个或多个存储器与一个或多个处理器耦合,一个或多个存储器用于存储计算机程序代码或计算机指令;当一个或多个处理器执行计算机指令时,使得区块链节点执行如第八方面或者第八方面的任一可能的设计所述的基于区块链的身份信息管理方法。
第十二方面,提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机指令或程序,当计算机指令或程序在计算机上运行时,使得计算机执行如第八方面或者第八方面的任一可能的设计所述的基于区块链的身份信息管理方法。
第十三方面,提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行如第八方面或者第八方面的任一可能的设计所述的基于区块链的身份信息管理方法。
第十四方面,提供了一种芯片系统,所述芯片系统包括一个或多个处理器和一个或多个存储器;一个或多个存储器与一个或多个处理器耦合,一个或多个存储器中存储有计算机程序代码或计算机指令;当所述一个或多个处理器执行所述计算机程序代码或计算机指令时,使得所述芯片系统执行如第八方面或者第八方面的任一可能的设计所述的基于区块链的身份信息管理方法。
其中,第十方面至第十四方面中任一种设计方式所带来的技术效果可参见上述第八方面至第九方面的任一种可能的设计所带来的技术效果,不予赘述。
第十五方面,提供了一种区块链系统,该区块链系统包括如第二方面至第三方面的任一方面所述的区块链节点以及如第八方面至第九方面任一方面所述的区块链节点。
附图说明
图1a为全节点/轻节点分离部署示意图;
图1b为交易信息的组织关系示意图;
图2为本申请实施例提供的区块链系统示意图;
图3为本申请实施例提供的区块链节点的结构示意图;
图4为本申请实施例提供的一种基于区块链的身份信息管理方法流程图;
图5为本申请实施例提供的一种基于区块链的身份信息管理方法流程图;
图6为本申请实施例提供的一种基于区块链的身份信息管理方法流程图;
图7为本申请实施例提供的基于区块链的分叉结构感知身份撤销和区块更新的示意图;
图8为本申请实施例提供的又一种基于区块链的管理方法流程图;
图9为本申请实施例提供的一种身份信息验证示意图;
图10为本申请实施例提供的一种区块链节点100的结构示意图;
图11为本申请实施例提供的一种区块链节点110的结构示意图;
图12为本申请实施例提供的一种区块链系统的结构示意图。
具体实施方式
在介绍本申请实施例之前,对本申请实施例中涉及到的技术术语进行描述。
区块链,是一种分布式账本的安全实现,以区块作为数据结构存储交易信息,如由区块链系统中的若干台计算设备以区块作为数据结构共同参与“记账”(即记录交易信息),共同维护的一份完整的分布式数据库。在区块链系统中,任一节点可以根据客户端发送的交易信息生成新的区块,并以广播的形式通知其他节点,其他节点对这个区块进行验证,当区块链系统中的所有节点达成共识后,新的区块就可以被添加到区块链中。一个区块链可以包括多个区块,相邻的前后两个节点满足一定的链式结构,这种链式结构使得一旦一个区块被所有节点共识后加入到各自的区块副本上后,该区块将不能被更改(或被篡改)。
交易(transaction)信息,是指客户端通过任一节点创建、并需要最终发布至区块链的分布式数据库中的数据。交易信息根据具体的应用场景需要,可以包括转账记录、智能合约记录、清算记录、数据记录、用户身份信息记录等。交易信息存在狭义的交易信息以及广义的交易信息之分。狭义的交易信息是指客户端向区块链发布的一笔价值转移;例如,在传统的比特币区块链网络中,交易信息可以是客户端在区块链中发起的一笔转账的数据。广义的交易信息是指客户端向区块链发布的任意的数据:例如,运营方可以基于实际的业务需求搭建一个联盟链,依托于联盟链部署一些在线业务(比如,租房业务、车辆调度业务、保险理赔业务、信用服务、医疗服务等),而在这类联盟链中,交易信息可以是客户端在联盟链中发布的一笔具有业务意图的业务消息或者业务请求;又如,交易信息还可以是客户端向区块链发送的、用以更改客户端的账户状态的数据(如账户余额等),或者可以是用户身份凭证等。
需要说明是,本申请中,只要是客户端向区块链的分布式数据库发布的任意信息,均可属于本申请所述的“交易信息”。为应对物联网的背书节点的受限能力,目前在物联网领域对区块链技术研究的解决方案是将背书节点区分为轻节点(light node)和全节点(full node)。
其中,如图1a所示,全节点和传统的背书节点一致,维护整条链的所有交易信息,并和其他全节点一起参与共识产生和验证新的区块;轻节点只维护每个区块的区块头信息,不记录每个交易的具体信息。如图1a所示为轻节点所维护信息和全节点维护信息的关系。和全节点相比,轻节点的存储中去除了以哈希树组织的区块内所有交易的信息,和交易相关的只保留的树根(Tx_Root)。不过,轻节点的维护信息仍然保持了区块链该有的必要特征,它仍然能够验证前序区块和后续区块之间的链式结构是否正确:当轻节点在已有已验证前序区块时,获得新区块,能通过验证新区块的哈希结果,以及新区块的Pre_Hash域内容和前序区块的哈希是否一致来判断新区块的有效性。
区块(block),是区块链中用于记录/存储电子形式的交易信息的最小单元。区块是按时间顺序一个个先后生成的,每一个区块记录有它在被创建期间发生的所有交易,所有区块汇总起来形成一个链式的记录合集,该链式的记录集合称为区块链。不同区块链系统中区块的大小可能相同或不同。一个区块可以包括区块头(header)和区块体(body)。
区块头,可以称为交易头,区块头主要用于记录当前区块的一个或者多个特征信息,如区块头可以包括时间戳(timestamp)、当前区块所有交易信息的哈希汇总结果(如所有交易信息以哈希树组织的哈希根(Tx_Root))(或者称为交易根)、使之和当前区块的前序区块形成链式结构的必要信息(如当前区块的前序区块的哈希值(Prev_Hash))、交易数量(transaction count)和随机数(nonce)等特征信息中的至少一种特征信息,时间戳可以用于表示当前区块的生成时间。在确定当前区块的哈希值时,需要将当前区块的区块头中的各个特征信息按照预设顺序连接在一起组成一个字符串,对这个字符串计算哈希计算得到一个哈希值,该哈希值即为当前区块的哈希值。由于不同区块的区块头所包括的特征信息的数值通常不同,因此,每一区块均唯一对应一个哈希值。基于每一区块均唯一对应一个哈希值,且每个区块的区块头均包括有该区块的前一区块(或前序区块)的哈希值,这样,多个区块即可形成区块链。
区块体,可以用于存储交易信息。区块体中的所有交易信息可以以哈希树的形式存储在区块中,每个交易信息对应一个哈希值以及验证辅助信息(auxiliaryinformation,AuxI)。而区块头包含了该区块体中所有交易信息以哈希树组织的哈希根。
例如,图1b为哈希树示意图,如图1b所示,该哈希树包括叶子节点以及根节点(图1b中标记为3的节点),每个节点对应一个哈希值,叶子节点包括交易信息对应的哈希值以及交易信息对应的AuxI,最下面一排的叶子节点为各个交易信息对应的节点。对于每个交易信息(不限于身份信息或者身份凭证),轻节点作为验证者只知道哈希根及其有效性,因此,记录证明者除了待证明记录外,还需要验证AuxI。如图1b所示,假设一个区块中包含了4个身份记录:ID1~ID4,对于排在最左边的ID1,其验证辅助信息为图中标记为2的节点。当证明ID1存在于本区块时,证明者出示身份凭证及AuxI,验证者通过自下而上的逐层哈希,能够计算出最终的和区块头(标记为3的节点)中的哈希根一致的哈希值,则说明本身份信息注册在区块链上。
需要说明的是,在哈希树中,某个交易信息所对应的叶子节点到根节点整条路径上所有历经节点的兄弟节点,例如,如图1b所示,ID1的AuxI辅助信息是标记为2的两个节点,根据ID1和标记为2的两个节点对应的AuxI最终计算出的哈希值与标记为3的根节点对应的哈希根一致,则说明验证成功,ID1本身注册在区块链上。
在全节点/轻节点分离的模式下,全节点之间通过共识确认新的区块后,将新区块的区块头同步给轻节点,轻节点互相之间同步区块头以使得全网迅速同步。目前,轻节点模式的技术主要应用于物联网设备感知信息的记录和不可伪造。每一次共识周期,物联网将感知信息以交易的形式上报到区块链(全节点),全节点以哈希树组织成新的区块并广播。轻节点获得可验证链式结构的新区块头,已上报感知信息的物联网设备根据全节点上该区块的树形结构获得AuxI。后续,当轻节点需要验证某个感知信息的有效性时,证明者通过AuxI可以证明该信息在区块链的对应区块上。
但是,目前轻节点模式的区块链也仅局限于感知信息的区块链记录,并没有扩展到区块链更核心的业务中,比如身份管理,甚至支付等交易环境。以身份管理为例,轻节点对于无撤销的身份管理架构上有很好的支持,但是考虑到撤销时,轻节点所存储的哈希信息无法感知身份的更新撤销情况:被撤销的用户在尝试告诉验证者自己的身份“曾”注册于区块链上时,不会视图告诉验证者自己身份撤销信息也在区块链上记录着。例如,在身份管理中。假设第k个区块中,终端的身份信息注册成功,但在第k+j个区块(j>0)中撤销(不限定撤销的表现类型,但该区块的交易中说明了该终端在第k个区块所注册的身份信息已经被回收)。然而,对于轻节点的验证者来说,第k个区块和第k+j个区块是两个独立的区块,两者承载的交易都通过哈希使得没有任何语义信息。因此,对于终端而言,当它通过验证辅助信息证明自己的身份信息在第k个区块时,必须强制让他表示他的身份信息已经被撤销了,然而对于攻击者而言,不会这么做且可以逃避,使得轻节点无法感知到终端的身份信息被撤销。
为解决轻节点管理身份信息的问题,本申请提供一种基于区块链的身份信息管理方法,该方法可以包括:为存储有CRL的区块配置一个CRL标识,在成链时考虑该CRL标识,只有结合该CRL标识时存储有CRL的区块与该区块的前序区块才能满足区块之间的链式结构,忽略该CRL标识,则不实现承载有CRL的区块的成链。具体的,该方法可以参照下述图4~图5对应的实施例中所述。
或者,本申请还提供一种基于区块链的身份信息管理方法,该方法可以包括:当更新某个区块中的身份信息时,将该区块中更新后的身份信息存储在更新区块中,同时将该更新区块存储在分叉链路上,如此,通过区块链的分叉结构确定出被更新的区块对应的新的区块,在新的区块中验证身份信息的有效性。具体的,该方法可参照下述图6或图8所示。
下面结合说明书附图,对本申请提供的基于区块链的身份信息管理方法的进行描述。
图2为本申请实施例提供的一种区块链系统结构图,如图2所示,该区块链系统可以包括终端(或者称为客户端(client))、全节点、轻节点,轻节点可以包括非可信节点以及可信节点。进一步,图2所示区块链系统还可以包括接入节点(access point)、业务支撑系统(business support system,BSS)、证书撤销列表(certificate revocation list,CRL)服务器(server)等。CRL服务器可以独立部署,也可以集成在全节点中,不予限制。此外,图2仅为示例性附图,图2所示网元以及网元的数量不予限制。
下面对图2中的各个网元进行介绍:
终端可以为终端设备(terminal equipment)或者用户设备(user equipment,UE)或者移动台(mobile station,MS)或者移动终端(mobile terminal,MT)等。具体的,终端可以是手机(mobile phone)、平板电脑或带无线收发功能的电脑,还可以是虚拟现实(virtual reality,VR)终端、增强现实(augmented reality,AR)终端、工业控制中的无线终端、无人驾驶中的无线终端、远程医疗中的无线终端、智能电网中的无线终端、智慧城市(smart city)中的无线终端、智能家居、车载终端等。用户可以通过区块链系统中的终端实现创建链码,发起交易等功能。终端可以部署在任意的电子设备上,通过区块链系统相应的软件开发工具包(software development kit,SDK)实现。该电子设备通过与区块链网络中的节点进行通信,从而实现终端相应的功能。
其中,全节点、轻节点如上所述,用于生成区块链,以区块链的形式存储/记录交易信息。
其中,CRL服务器可以为身份信息撤销记录进行授权认证。
其中,BSS可以管理其区域内的终端,如管理其区域内的终端的身份信息的注册方式等。
其中,接入节点主要用于实现终端的资源调度、无线资源管理、无线接入控制等功能。具体的,接入节点可以为小型基站、无线接入点、收发点(transmission receivepoint,TRP)、传输点(transmission point,TP)以及某种其它接入节点中的任一节点。
需要说明的是,本申请中的节点可以理解为处理单元。在一种实现方式中,节点可以为物理设备,例如服务器或终端设备。在另一种实现方式中,节点可以为虚拟计算机;虚拟计算机为所有类型的虚拟化设备中软件虚拟出来的运行环境的统称,该概念包括虚拟机、容器。在其他实现方式中,节点可以为进程(process)或者线程(thread);线程是操作系统能够进行运算调度的最小单位,线程被包含在进程之中,是进程中的实际运作单位;进程是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位。
在具体实现时,图3所示各个节点可采用图3所示的组成结构或者包括图3所示的部件。图3为本申请实施例提供的一种装置300的组成示意图,当该装置300具有本申请实施例所述的终端的功能时,该装置300可以为终端或者终端中的芯片或者片上系统。当装置300具有本申请实施例所述的接入节点的功能时,装置300可以为接入节点或者接入节点中的芯片或者片上系统。
如图3所示,该装置300可以包括处理器301,通信线路302以及通信接口303。进一步的,该装置300还可以包括存储器304。其中,处理器301,存储器304以及通信接口303之间可以通过通信线路302连接。
其中,处理器301可以是中央处理器(central processing unit,CPU)、通用处理器网络处理器(network processor,NP)、数字信号处理器(digital signal processing,DSP)、微处理器、微控制器、可编程逻辑器件(programmable logic device,PLD)或它们的任意组合。处理器301还可以是其它具有处理功能的装置,如电路、器件或软件模块等。
通信线路302,用于在装置300所包括的各部件之间传送信息。
通信接口303,用于与其他设备或其它通信网络进行通信。该其它通信网络可以为以太网,无线接入网(radio access network,RAN),无线局域网(wireless local areanetworks,WLAN)等。通信接口303可以是射频模块、收发器或者任何能够实现通信的装置。本申请实施例以通信接口303为射频模块为例进行说明,其中,射频模块可以包括天线、射频电路等,射频电路可以包括射频集成芯片、功率放大器等。
存储器304,用于存储指令。其中,指令可以是计算机程序。
其中,存储器304可以是只读存储器(read-only memory,ROM)或可存储静态信息和/或指令的其他类型的静态存储设备,也可以是随机存取存储器(random accessmemory,RAM)或者可存储信息和/或指令的其他类型的动态存储设备,还可以是电可擦可编程只读存储器(electrically erasable programmable read-only memory,EEPROM)、只读光盘(compact disc read-only memory,CD-ROM)或其他光盘存储、光碟存储、磁盘存储介质或其他磁存储设备,光碟存储包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等。
需要说明的是,存储器304可以独立于处理器301存在,也可以和处理器301集成在一起。存储器304可以用于存储指令或者程序代码或者一些数据等。存储器304可以位于装置300内,也可以位于装置300外,不予限制。处理器301,用于执行存储器304中存储的指令,以实现本申请下述实施例提供的数据传输方法。
在一种示例中,处理器301可以包括一个或多个CPU,例如图3中的CPU0和CPU1。
作为一种可选的实现方式,装置300包括多个处理器,例如,除图3中的处理器301之外,还可以包括处理器307。
作为一种可选的实现方式,装置300还包括输出设备305和输入设备306。输入设备306是键盘、鼠标、麦克风或操作杆等,输出设备305是显示屏、扬声器(speaker)等设备。
需要说明的是,装置300可以是台式机、便携式电脑、网络服务器、移动手机、平板电脑、无线终端、嵌入式设备、芯片系统或有图3中类似结构的设备。此外,图3中示出的组成结构并不构成对该装置的限定,除图3所示部件之外,该装置可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
本申请实施例中,芯片系统可以由芯片构成,也可以包括芯片和其他分立器件。
下面以图2所示架构为例,对本申请实施例提供的基于区块链的身份信息管理方法进行描述。需要说明的是,其中,下述实施例中各设备可以具有图3所示部件,本申请实施例中各个设备之间交互的消息名称或消息中的参数名称等只是一个示例,具体实现中也可以采用其他的名称。例如本申请实施例所述的同步可以替换为共识等术语。本申请实施例中的确定也可以理解为创建(create)或者生成(generate),本申请实施例中的“包括”也可以理解为“携带”等,本申请实施例对此不作具体限定。此外,需要说明的是,本申请不限于基于区块链进行身份管理,如进行身份撤销管理,还可以基于区块链管理其他被刻意隐藏的信息,比如修改的/更新的交易信息等等,即本申请所述方法还可以管理其他被刻意隐藏的信息,不予限制。
图4为本申请提供的一种基于区块链的身份信息管理方法,如图4所示,可以包括:
步骤401:第二节点获取证书撤销列表(certificate revocation list,CRL)。
其中,第二节点可以为图2所示系统中的全节点或者轻节点,不予限制。
其中,CRL可以包括一段时间内收集到的身份信息撤销记录(或称为证书撤销记录),身份信息撤销记录可以记录某个或者某些被撤销的身份信息、撤销时间、撤销原因等,这些身份信息可以为已注册到第二节点的区块链的身份信息,也可以为已过期的身份信息等。本申请不限于将身份信息撤销记录以列表形式存储,还可以以其他形式存储,不予限制,此外,本申请不限于将包括身份信息撤销记录的列表称为CRL,还可以命名为其他名称,不予限制。
本申请各实施例中,CRL可以为全量列表,也可以为差分列表,不予限制。全量列表可以指CRL中保存有一段时间内(如一个或者连续几个更新周期内)收集到的所有/全部身份信息撤销记录,差分列表可以指CRL仅保存有当前更新周期内/当前时刻收集到的增量身份信息撤销记录,增量身份信息撤销记录是指在与当前更新周期相邻的前一更新周期内收集到的身份信息撤销记录基础上新增的一些身份信息撤销记录。例如,以收集4个更新周期内的身份信息撤销记录为例,可以将4个更新周期内的身份信息撤销记录全部保存在CRL中,也可以在第1个更新周期时将第1个更新周期内的身份信息撤销记录全部保存在CRL1中,在第2个更新周期时在CRL1基础之上新增的身份信息撤销记录保存在CRL2中,在第3个更新周期时在CRL2基础之上新增的身份信息撤销记录保存在CRL3中,在第4个更新周期时在CRL3基础之上新增的身份信息撤销记录保存在CRL4中。
示例性的,当第二节点为全节点时,如果CRL服务器独立于第二节点部署,则第二节点可以从CRL服务器获取CRL,此时,CRL服务器对CRL中各个身份信息撤销记录进行有效性验证,保留不具备有效性的身份信息撤销记录,不将不具备有效性的身份信息撤销记录保存在CRL中,将具备有效性的身份信息撤销记录保存在CRL中发送给第二节点。如果CRL服务器集成在第二节点上,则第二节点可以从BSS获取CRL。当第二节点为轻节点时,第二节点可以从第二节点的上游节点或者源节点获取CRL,第二节点从上游节点或者源节点获取CRL的方式与本申请实施例中第一节点从第二节点获取CRL的方式相同。
需要说明的是,如果CRL服务器集成在第二节点上,则第二节点从BSS获取CRL之后,可以对CRL包括的各个身份信息撤销记录进行进行有效性验证,剔除CRL中不具备有效性的身份信息撤销记录,保留具备有效性的身份信息撤销记录。
步骤402:第二节点根据获取到的CRL生成第一区块,第一区块的区块体中存储有所述CRL,第一区块的区块头包括的特征信息与CRL标识作为哈希输入参数计算得到的哈希值与所述第一区块的前序区块的哈希值相同。
示例性的,第二节点可以将CRL存储在第一区块的区块体中。进一步的,第二节点设置第一区块的区块头,其中,第一区块结合CRL标识后才能与第一区块的前序区块之间满足链式结构,如区块头包括的特征信息与CRL标识作为哈希输入参数得到的哈希值与第一区块的前序区块的哈希值相同。
其中,CRL标识可以用于确定当前区块是否存在/承载有CRL,或者可以替换描述为CRL标识可以用于用于感知是否存在CRL,CRL标识可以为比特数、字母、数字的任意组合,可以根据需要配置,不予限制。一旦当前区块中承载有CRL,则需要CRL标识与区块头的特征信息结合起来作为哈希输入参数,参与到哈希计算中,计算出的哈希结果与前序区块的相同。换言之,如若根据第一区块的区块头的特征信息计算出的哈希值与前序区块的哈希值相同,则确定当前区块未承载有CRL,反之,若根据第一区块的区块头的特征信息计算出的哈希值与前序区块的哈希值不同,而第一区块的区块头的特征信息结合CRL标识后,计算出的哈希值与前序区块的哈希值相同,则确定当前区块承载有CRL。
例如,以第二节点为全节点为例,第二节点获取到CRL后,按照如下方式生成第一区块:初始化第一区块(即第一区块为空),将CRL列表承载在第一区块的区块体中,同时,设置第一区块的区块头中的特征信息,如CRL列表对应的哈希根、随机数、前序区块的哈希值、CRL对应的交易数量、时间戳等等,以便第一区块的区块头中的特征信息与CRL标识一起哈希后得到的哈希值与第一区块的前序区块的哈希值相同,满足链式结构。
需要说明的是,CRL确定后,CRL列表对应的哈希根(Tx_Root)、前序区块的哈希值(Prev_Hash)、CRL对应的交易数量、时间戳(timestamp)是固定不变的,不可调整的,只有随机数是可调整的,此时,设置第一区块的区块头中的特征信息主要是设置随机数的取值,使得包括随机数在内的第一区块的区块头中的特征信息与CRL标识一起哈希后得到的哈希值与第一区块的前序区块的哈希值相同。
其中,第一区块的区块头包括的各特征信息的相关描述可以参照前述,不予赘述。本申请不改变区块头的结构,区块头包括的特征信息以及各个特征信息的含义与现有标准中相同。
至此,第二节点完成第一区块的共识,第一区块为存储有CRL的区块。
进一步的,第二节点发送撤销响应,如向CRL服务器发送撤销响应,该撤销响应用于指示CRL成功存储在区块上。
步骤403:第二节点向第一节点同步第一区块的区块头。
其中,第一节点可以称为背书节点,第一节点可以为图1中不同于第二节点的节点,第一节点可以为图1中的轻节点,也可以图1中的全节点,不予限制。第一节点可以包括至少一条区块链,每条区块链可以包括至少一个区块。第一节点、第二节点之间,第一节点可以为称为下游节点,第二节点可以称为上游节点或者源节点。
示例性的,第二节点可以发送同步信息,同步信息中携带有第一区块的区块头。
步骤404:第一节点获取待同步的第一区块的区块头。
示例性的,第一节点可以监听第二节点发送的携带第一区块的区块头的同步信息,从接收到的同步信息中获取第一区块的区块头。
步骤405:第一节点根据第一区块的区块头包括的特征信息,验证第一区块与第一区块的前序区块之间是否满足链式结构。
示例性的,第一节点可以将第一区块的区块头的特征信息(如哈希根、时间戳、随机数等)作为哈希输入参数,输入到哈希算法计算得到第一区块的哈希值,若计算得到的哈希值与第一区块的前序区块的哈希值相同,则确定满足链式结构,反之,则确定不满足链式结构。
其中,哈希算法可以包括安全哈希算法(secure hash algorithm,SHA)256或者散列信息认证码(hash-based message authentication code,HMAC)算法等,不予限制。
步骤406:若第一区块与第一区块的前序区块之间不满足链式结构,则第一节点根据第一区块的区块头包括的特征信息与CRL标识,验证第一区块与第一区块的前序区块之间是否满足链式结构,若满足,则确定第一区块承载有CRL。
示例性的,第一节点可以将第一区块的区块头的特征信息(如哈希根、时间戳、随机数等)、CRL标识作为哈希输入参数,输入到哈希算法计算得到一个哈希值,若计算得到的哈希值与第一区块的前序区块的哈希值相同,则确定第一区块与第一区块的前序区块之间满足链式结构,第一区块承载有CRL。
步骤407:第一节点从第二节点获取CRL,将获取到的CRL存储在第一区块中,如将CRL存储在第一区块的区块体中。
示例性的,第一节点可以向第二节点发送请求信息,请求信息可以携带有第一区块的区块头包括的哈希根,该请求信息可以用于请求CRL。第二节点接收第一区块的区块头包括的哈希根,以接收到的哈希根为索引查找第二节点本地存储的区块链中的每个区块,找到包括该哈希根的区块,从找到的区块中获取CRL,并发送给第一节点。
至此,完成第一区块从第二节点到第一节点的同步。
进一步的,如果CRL为全量列表,则第一节点获取到CRL后,可以清除之前缓存的CRL,如清除前一更新周期中存储的CRL。例如,以收集4个更新周期内的身份信息撤销记录为例,在第1个更新周期时将第1个更新周期内的身份信息撤销记录全部保存在CRL1中,在第2个更新周期时在CRL1基础之上新增的身份信息撤销记录保存在CRL2中,在第3个更新周期时在CRL2基础之上新增的身份信息撤销记录保存在CRL3中,在第4个更新周期时,若获取到全量列表的CRL,则可以清除CRL3、CRL2以及CRL1。
进一步的,如果第一节点仅将第一区块的区块头包括的特征信息作为哈希输入参数,验证得到第一区块与第一区块的前序区块之间满足链式结构,则确定第一区块中不存在CRL,无需执行步骤406-步骤407,无需同步CRL,仅同步第一区块的区块头即可。
基于图4所示方法,具有身份信息撤销记录的区块在结构上具有和其他区块不一样的标志特征,如为具有身份信息撤销记录的区块配置CRL标识,具有身份信息撤销记录的区块在和前序区块成链时,必须结合该CRL标识才能让有具有身份信息撤销记录的区块与前序区块之间满足链式结构,使得在忽视该CRL标识的情况下,即CRL标识不参与链式结构的验证的情况下,具有身份信息撤销记录的区块与前序区块的两个区块之间的链式规则无法通过。当新区块同步时,如果下游轻节点发现当前区块结合CRL标识才能成功验证链式规则时,则确定当前区块中存储有CRL标识,从上游节点获取CRL,通过影响区块链链式结构验证的CRL标识,使得区块链在结构上能识别出目标区块是否包含了CRL,并借此索取CRL,使得上游节点无法隐藏存在身份信息撤销记录的事实,避免撤销记录的交易存在被轻节点忽略(如恶意隐藏和干扰)而未全网同步的风险。同时,在基于区块链的身份管理中,对轻节点而言,在区块链上只记录身份信息撤销记录,不需要维护整条链的全部历史交易信息,显著降低了身份撤销所带来的认证和动态性的时延和通信负担。
图4所示方法与现有技术中除Sovrin和Hyperledger Indy以外的身份管理技术对比,图4所示方法中,区块链背书节点作为查询节点时能以轻节点进行部署,这使得针对时延敏感或能力受限的业务场景中,本实施例在基于区块链的身份注册记录查询和验证时,具有优势。和Sovrin/Hyperledger Indy的Cryptographic Accumulator机制相比,图4所示方法中,在作为身份身份验证节点的区块链轻节点上施加了可以容忍的存储要求,如仅存储CRL,使得在身份的撤销过程中,不会存在累加器的可信维护者需要向未撤销身份的持有者下发辅助信息的问题,解决未撤销身份的持有者这一侧的负担。
下面以CRL服务器独立部署,将终端的身份信息先注册到区块,后撤销终端的身份信息为例,对图4所示方法进行详细介绍。图5为本申请实施例提供的一种基于区块链的身份信息管理方法流程图,如图5所示,所述方法可以包括:
步骤501:终端和BSS之间协商对身份信息的注册,如果协商成功,则执行步骤502。
示例性的,终端和BSS之间协商对身份信息的注册可以包括:终端向BSS发送第一请求,第一请求携带有身份信息(如身份ID),第一请求可以用于请求注册该身份信息,该身份信息可以为新的身份信息,如可以为之前未注册在/未存储在区块链中的身份信息,或者,该身份信息可以为已过期的、需要继续使用的身份信息。BSS接收到终端发送的第一请求,对终端进行授权验证,确定是否允许终端将身份信息注册到/存储到区块链中,如果允许该终端将身份信息注册到区块链,则确定该终端为合法用户,协商成功,反之,如果不允许该终端将身份信息注册到区块链,则确定该终端为非法用户,协商失败。
其中,BSS可以根据终端的签约信息确定是否允许该终端将身份信息注册到区块链,终端的签约信息可以用于指示终端入网时签订的一些业务,如签订了使用区块链存储数据等等。若签约信息指示该终端签约了使用区块存储数据,则确定允许该终端将身份信息注册到区块链,反之,则确定不允许该终端将身份信息注册到区块链,流程结束。
需要说明的是,BSS域内(或者称为BSS覆盖区域或者BSS管理区域内)的多个终端可以参照上述过程与BSS之间协商对身份信息的注册。此外,图5所示方法中的身份信息还可以替换为交易信息及其他信息,不予限制。
步骤502:BSS向第二节点发送第二请求。
其中,第二节点可以如图4中步骤401中所述,不予赘述。
其中,第二请求可以用于请求将终端的身份信息注册到/存储在第二节点的区块链上,第二请求可以携带终端的身份信息。
需要说明的是,BSS可以执行步骤501所示过程,与多个终端进行协商,并在协商后,将多个终端的身份信息携带在一条第二请求中发送给第二节点,实现听过一条请求消息向第二节点提出多个身份信息的注册;或者,BSS将多个终端的身份信息携带在多条第二请求中,一条第二请求对应携带一个终端的身份信息。
如果第二请求携带多个终端的身份信息,则在BSS向第二节点发送第二请求之前,BSS可以按照图1b所示哈希树的过程方式组织自己域内的多个身份信息,为每个终端的身份信息配置AuxI以及得到多个身份信息对应的哈希根,此时,第二请求还可以携带多个身份信息对应的哈希树。或者,BSS不生成哈希树,而是由第二节点接收到第二请求后,根据第二请求携带的多个身份信息生成哈希树。
其中,BSS将多个身份信息组织成图1b所示哈希树的方式可参照现有技术,不予赘述。示例性的,其他一个或者多个BSS可以参照步骤502所示方法将自身域下的多个身份信息发送给第二节点。
步骤503:第二节点接收来自BSS的第二请求,将第二请求携带的身份信息存储在(或者注册在/保存在)区块1中。
示例性的,第二节点接收到BSS发送的第二请求后,将BSS发送的多个身份信息组织成哈希树,写入区块1的区块体中,完成身份信息记录共识,同时,配置该区块1的区块头,使该区块1与区块1的前序区块之间满足链式结构,如将区块1的区块头的特征信息作为哈希输入参数得到的哈希值与前序区块的哈希值相同。需要说明的是,如果第二节点接收到的BSS发送的第二请求中携带有哈希树,则第二节点不破坏各个BSS发送的哈希树,即不破坏BSS对于其域内身份信息的组织关系,以每个BSS所提交的哈希根作为叶子节点,组织二叉树,将该二叉树保存在区块1的区块体中。
其中,在第二节点将BSS发送的身份信息记录在区块之前,为了保证本地注册的合法性,所述方法还包括:第二节点验证BSS的合法性,如果该BSS合法,则将BSS发送的身份信息记录在区块中,反之,如果该BSS是非法的,则不记录该BSS发送的身份信息。
其中,第二节点可以参照下述方式验证BSS的合法性:第二节点向管理人员发送验证请求,验证请求用于验证BSS是否合法,验证请求可以包括用于标识BSS的BSS的标识信息,管理人员接收到验证请求后,根据BSS的标识信息,查看该BSS是否是管理该区域的BSS,若是,则确定BSS合法,向第二节点发送BSS合法的指示信息,反之,则确定BSS不合法,向第二节点发送BSS不合法的指示信息。
进一步的,第二节点将区块1按照时序接续到区块链,如接续到区块1的前序区块之后。
步骤504:第二节点向BSS发送区块1的地址信息、区块1中每个身份信息对应的AuxI。
其中,区块1的地址信息可以用于标识区块1在哪个区块链的哪个位置。区块1的地址信息还可以命名为区块1的记录地址,不予限制。
需要说明的是,一种示例中,第二节点可以向BSS发送每个终端的身份信息对应的AuxI,即发送的AuxI可以针对每个终端的。又一种示例中,与步骤503中对应,在BSS自己组织终端的身份信息生成哈希树的情况下,第二节点可以向BSS发送该BSS生成的哈希树所对应的哈希根,BSS可以根据自己组织的哈希树生成每个终端的身份信息对应的AuxI,并对应发送给各个终端,此时,AuxI是针对每个BSS的,以BSS为粒度。
步骤505:第二节点向第一节点同步区块1的区块头。
示例性的,第二节点可以向第一节点同步区块1的区块头中的特征信息,即区块1的区块头中的摘要信息。需要说明的是,若本区块1无CRL,则完成本次区块1的同步过程,否则,以图4所示方法中步骤403-407的方式同步本区块1,如第一节点收到同步信息后,首先检查链式规则确认区块1的有效性和类型(是否是存储有CRL的区块),若区块1不为存储CRL的区块,且区块1与前序区块无法成链,则说明该区块1为无效区块,寻找新的同步源,若区块1为存储CRL的区块,则索要区块1中的CRL。
需要说明的是,本申请不限定步骤504、步骤505的执行步骤,可以参照图5所示,先执行步骤504,再执行步骤505,也可以先执行步骤505、再执行步骤504,或者,同时执行步骤504以及步骤505,不予限制。
上述步骤501~步骤506为注册终端的身份信息的过程,进一步的,还可以撤销已注册的身份信息,该过程如下步骤506~步骤512所示。
步骤506:终端和BSS之间协商对身份信息的撤销,如果协商成功,则执行步骤507,如果协商失败,则流程结束。
一种示例中,对身份信息的撤销是终端发起的,如终端和BSS之间协商对身份信息的撤销可以包括:终端确定自身的身份信息(或者凭证信息)发生泄露等,需要撤销自身的身份信息,终端向BSS发送第三请求,第三请求携带有身份信息(如身份ID),第三请求用于请求撤销该身份信息,该身份信息可以为之前注册在区块链中的身份信息。BSS接收到终端发送的第三请求,对终端进行授权验证,确定是否允许终端撤销该身份信息,如果允许该终端撤销身份信息,则协商成功,反之,如果不允许该终端撤销该身份信息,则协商失败。
又一种示例中,对身份信息的撤销请求是BSS发起的,如终端和BSS之间协商对身份信息的撤销可以包括:BSS发现其域内的某个终端违规或其他资质出现问题,BSS向该终端发送第三请求,第三请求携带有身份信息(如身份ID),第三请求用于请求撤销该终端的身份信息,终端的身份信息可以为之前注册在区块链中的身份信息。终端接收到BSS发送的第三请求后,若同意撤销自身的身份信息,则向BSS发送响应消息,协商成功,反之,若终端发现BSS的撤销不合理,不同意撤销自身的身份信息,则向BSS发送拒绝消息,协商失败。
步骤507:BSS向CRL服务器(CRL server)发起撤销授权申请。
其中,撤销授权申请可以包括BSS授权的所有在本次需要撤销的身份信息,还可以包括其他信息,如还可以包括撤销授权凭证等授权信息,撤销授权凭证可以包括运营商的签名/BSS的签名等可仲裁凭证。
步骤508:CRL服务器接收撤销授权申请,确认撤销授权申请是否有效,并在撤销授权申请具备有效性的情况下,生成CRL。
示例性的,CRL服务器可以根据撤销授权信息中的签名,根据签名的有效性以及签名主体是否具有撤销身份注册的权限,判断撤销授权申请是否有效。
其中,CRL可以为全量列表或者差分列表,不予赘述。
步骤509:CRL服务器向第二节点发送CRL,即将CRL共识到第二节点。
需要说明的是,本申请中,CRL在区块链中达成共识时,CRL去除了步骤507中撤销授权申请所包括的撤销授权凭证等信息,只保留被撤销的身份信息的关键标识,而CRL服务器本地保留撤销授权凭证以备日后仲裁。由于CRL服务器是关联于全节点分布式部署的,因此每次共识时,本区块的CRL将所有CRL服务器所收集的需要撤销的身份信息进行组织,生成CRL,需要注意的是,撤销的身份信息不需要以哈希树进行组织。
步骤510:第二节点接收来自CRL服务器的CRL,将CRL存储在区块2中,完成CRL的共识,并向CRL服务器、BSS以及终端发送撤销反馈结果。
其中,撤销反馈结果可以用于指示撤销的身份信息成功记录在区块中,撤销成功。
其中,第二节点将CRL存储在区块2可以包括:第二节点将CRL存储在区块2的区块体中,并结合CRL标识实现区块2的成链规则,如结合CRL标识设置区块2的区块头所包括的特征信息,使得将区块2的区块头包括的特征信息与CRL标识作为哈希输入参数计算的到的哈希值与区块2的前序区块的哈希值相同。
步骤511:第二节点向第一节点同步区块2的区块头。
其中,第二节点向第一节点同步区块2的区块头可参照第二节点向第一节点同步区块1的区块头的过程,不予赘述。
步骤512:第一节点接收区块2的区块头,如果通过链式规则检测到区块2是存储有CRL的区块,则第一节点从第二节点获取CRL,将获取到CRL存储到区块2中,完成区块2的同步。进一步的,若获取到的CRL为全量列表,则清除之前历史区块的区块体中存储的CRL,即删除历史区块的区块体,仅保留历史区块的区块头。
其中,第一节点通过链式规则检测到区块2是存储有CRL的区块的过程可以参照步骤405-步骤406所述,如第一节点先将区块2的区块头包括的特征信息作为哈希输入参数得到哈希值与前序区块的哈希值比较,若不同,则接着将区块2的区块头包括的特征信息和CRL标识作为哈希输入参数得到哈希值,若得到的哈希值与前序区块的哈希值相同,则确定区块2为存储有CRL的区块。
需要说明的是,对于新加入区块链系统或长久离线的轻节点,如第一节点,存在上线后一次性同步多个区块的情况,在新同步的区块链上会先后有多个区块具有CRL标识,且可能有些具有CRL标识的区块在同步的时候未包含具体的身份信息撤销记录。此时,第一节点需要判断这些区块是否刻意隐藏了必要的身份信息撤销记录,判断区块链的后续区块是否有全量的CRL,若有,则同步的信息有效。
基于图5所示方法,本实施例通过设置影响区块链链式结构验证的CRL标识,使得区块链在结构上能识别出目标区块是否包含了CRL,这使得轻节点在保持其只记录区块头的情况下,能够以精简的方式记录身份信息撤销记录。因此,本实施例支持背书节点能全局部署到IoT等分布式网络中,在基于区块链的身份管理中,由于对轻节点支持的实现,显著降低了身份撤销所带来的认证和动态性的时延和通信负担。同时,记录在区块链上的身份撤销信息不包含身份撤销授权,只保留被撤销身份的标识,这对轻节点的存储是友好的。同时,CRL服务器本地保存了授权信息,如果UE在身份认证时发现自己的身份被撤销,并认为有CRL服务器在未授权的情况下对其身份做了撤销记录,则可进行申诉,该过程虽然对诚实的UE身份存在功能上的体验损失,然而,考虑到CRL服务器作为运营商级别的区块链模块,被仲裁问责的风险是得不偿失的,因此具有足够的保护效果,保证每个身份信息撤销记录的授权性。
上述图4或图5所示方式,以将CRL标识参与到承载有CRL的区块与前序区块之间的链式结构验证中,通过CRL标识来验证当前区块是否承载有CRL,轻节点同步CRL为例进对本申请实施例提供的基于区块链的身份信息管理方法进行描述。可替换的,本申请实施例还提供一种基于区块链的身份信息管理方法:当一个区块中的身份信息被更新(如撤销)时,将更新后的身份信息存储到新的区块中,该新的区块与被更新的区块不在一个分叉中,如被更新的区块在主链路上,更新后的区块(即新的区块)在分叉的链路上,即区块链系统中存在新旧两个版本的区块,通过区块链拓扑结构的变化让轻节点感知到区块的变化。具体的,该过程可参照图6所示。
图6为本申请实施例提供的又一种基于区块链的身份信息管理方法流程图,如图6所示,所述方法可以包括:
步骤601:第二节点确定更新(如撤销)第一区块内存储的身份信息。
其中,第一区块可以为第一区块链上的任一区块,第一区块中注册有多个身份信息。第一区块可以包括区块头以及区块体,如上所述,区块头可以包括一种或者多种特征信息,区块体可以包括以哈希树形式组织的多个身份信息。
示例性的,第二节点可以接收来自BSS的第四请求,第四请求可以用于请求请求撤销/更新终端的身份信息,第四请求可以包括第一区块的地址信息、以及终端的身份信息撤销记录等。第一区块的地址信息可以在终端的身份信息成功注册到/存储到第一区块之后,由第二节点通过BSS反馈给终端。
步骤602:第二节点根据第一区块以及第二区块,生成第三区块。
其中,第二区块可以为第一区块链上的最新区块,如第二区块可以为第一区块链上正在生成的区块或者当前刚刚生成的一个区块,此时,第二区块的下一区块还未开始生成。
其中,第三区块与第一区块和第二区块之间满足链式结构,第三区块的区块头的哈希输入参数计算得到的哈希值与将第一区块的区块头的特征信息和第二区块的区块头的特征信息作为哈希输入参数得到的哈希值相同,同时,第二节点对第一区块中的所有身份信息进行更新处理,如对确定更新的身份信息进行更新,保留未确定更新的身份信息不变,将更新处理后的身份信息存储在第三区块的区块体中,如若确定撤销第一区块中的身份信息,则删除确定撤销的身份信息,保留未被撤销的身份信息,将第一区块中未被撤销的所有身份信息存储在第三区块的区块体中。
由上可知,第一区块、第二区块可以作为第三区块的父亲区块/前序区块,即第三区块同时具有第一区块以及第二区块两个前序区块,第一区块可以是第三区块的源区块,第一区块中可以存储有更新前的身份信息,第三区块可以存储有更新后的身份信息,第二区块可以作为第三区块的计时区块,在第二区块所在的更新周期内生成第三区块。
步骤603:第二节点不直接将第三区块作为第一区块链上的后续区块,而是将第三区块记录在第一区块链的分叉链路上。
进一步的,第二节点可以为第一区块配置一标签,该标签可以用于标识第一区块在链式结构中分叉或者第一区块中存储的身份信息无效,存在与第一区块对应的新的区块,该新的区块中存储有第一区块中更新后的身份信息。
进一步可选的,第二节点将第三区块的区块头同步给第一节点。
如此,可以将第一区块所对应的更新后的区块(如第三区块)记录在第一区块所在区块链的分叉链路上,后续,在身份验证节点验证某个终端的身份信息是否有效的时,可以通过分叉记录的链式结构,获知第一区块的内容已被更新,第一区块为无效区块,无法通过第一区块进行身份验证,进而找到第一区块对应的第三区块,通过第三区块对终端的身份信息进行验证。具体的,身份验证节点验证身份信息的过程可参照下述图9所示。
进一步可选的,为了避免懒惰的或者有图谋的节点刻意隐藏更新后的区块(如第三区块),不将更新后的区块同步给其他节点,导致其他节点无法感知到身份信息被更新的问题,第二节点还可以在生成第一区块链上的下一区块,如第四区块时,将更新后的区块以及第一区块链上第四区块的前序区块共同作为第四区块的前序区块/父亲区块,使第三区块与第四区块的前序区块之间满足链式结构,如将第三区块的区块头的特征信息以及第四区块的前序区块的区块头的特征信息作为哈希输入参数计算得到的哈希值与将第四区块的区块头中的特征信息作为哈希输入参数得到的哈希值相同。
如此,可以将第三区块与第一区块链上新生成的下一区块之间建立链式关系,以便其他节点,如第一节点,同步第一区块链上新生成的下一区块(如第四区块)时,通过该链式关系感知第三区块的存在,并查验是否已从第二节点将第三区块同步过来,若没有,则从第二节点获取第三区块,将第三区块同步到第一节点上,以免漏掉第三区块及更新后的身份信息。
其中,第四区块可以为第二区块所在更新周期的下一更新周期的首个区块,第四区块的前序区块可以为第二区块所在更新周期内的最后一个区块。
例如,图7为轻节点感知的身份信息和区块更新机制,如图7所示,区块链按时间划分为多个更新周期,一个更新周期包含若干个被共识有效的区块按时序形成区块链。当一个区块中的身份信息(可以是一个或者多个身份信息)被撤销时,令该区块记为Bx。区块Bx可以是当前更新周期内,也可以是非当前更新周期内的区块。假设当前最新区块是Bt。以Bx和Bt为前序区块,形成更新后的区块Updated Bx作为后续区块,即更新区块Updated Bx同时有两个前序区块。这两个区块中,Bx表示被更新区块,更新区块Updated Bx的内容是基于Bx上内容的更改,Bt为计时区块,只负责表示该更新区块Updated Bx的更新时间,更新区块Updated Bx的内容与区块Bt中的内容无任何逻辑关系。更新区块Updated Bx不直接作为主链上的后续节点,而是作为分叉,如果后续发生该更新区块Updated Bx的进一步身份撤销时,直接从分叉上衔接出最新版本,且绑定当时主链上的最新区块作为计时区块,Bx作为该分叉上存在的更新区块的源区块。
进一步的,如图7所示,当前更新周期结束时,令该更新周期的最后一个区块为Bp,需要将本更新周期内所产生的更新区块Updated Bx的存在性影响到下一个更新周期的区块Bq,以达成区块更新的不可否认性。具体来说,本更新周期内分叉链路上的所有更新区块中的最后一个区块以及Bp同时作为Bq的前序区块,形成链式规则,忽略任何一个更新区块无法通过Bq,即在验证Bq与Bq所在主链上前序区块之间的链式结构时,必须结合分叉上的最后一个更新区块,不然链式结构验证不会通过。
基于图7所示方法,在不破坏区块链的主链路特性的情况下,将区块中的更新信息存储到一个新的区块中,并将更新后的区块存储在与主链路衔接的分叉上,凭借这种具有分叉的拓扑关系即能感知到某个区块中内容的更新。同时,将分叉上的更新区块与下一更新周期的区块之间形成链式结构,当更新周期结束后对更新区块的感知是强制的,否则无法通过下一个区块,使得懒惰的或有图谋的轻节点无法隐藏更新后的区块(即被更新的内容),无法长时间地维持已更新区块的旧版本而隐藏相关身份信息已被更新的事实。
下面以第一区块为区块1,将终端的身份信息先注册到区块1,后撤销终端的身份信息为例,对图6所示方法进行详细介绍。图8为本申请实施例提供的一种基于区块链的身份信息管理方法流程图,如图8所示,所述方法可以包括:
图8为本申请实施例提供的又一种基于区块链的身份信息管理方法流程图,如图8所示,所述方法可以包括:
步骤801:终端和BSS之间协商对身份信息的注册,如果协商成功,则执行步骤802。
其中,步骤801可参照步骤501所述,不予赘述。
步骤802:BSS向第二节点发送第二请求。
其中,步骤802可参照步骤502所述,不予赘述。
步骤803:第二节点接收来自BSS的第二请求,将第二请求携带的身份信息存储在(或者注册在/保存在)区块1中。
其中,步骤803可参照步骤503所述,不予赘述。
步骤804:第二节点向BSS发送区块1的地址信息、区块1中每个身份信息对应的AuxI。
其中,步骤804可参照步骤504所述,不予赘述。
进一步的,BSS将区块1的地址信息、区块1中每个身份信息对应的AuxI发送给终端。
步骤805:第二节点向第一节点同步区块1的区块头。
其中,步骤805可参照步骤505所述,不予赘述。
需要说明的是,本申请不限定步骤804、步骤805的执行步骤,可以参照图5所示,先执行步骤804,再执行步骤805,也可以先执行步骤805、再执行步骤804,或者,同时执行步骤804以及步骤805,不予限制。
步骤806:终端和BSS之间协商对身份信息的撤销,如果协商成功,则执行步骤807,如果协商失败,则流程结束。
其中,步骤806可参照步骤506所述,不予赘述。
步骤807:BSS向第二节点发送第四请求。
其中,第四请求可以用于请求撤销/更新终端的身份信息,第四请求可以包括区块1的地址信息、以及终端的身份信息(如身份ID或者用户身份凭证)、AuxI以及撤销标识等,撤销标识用于指示撤销终端的身份信息。区块1的地址信息可以在步骤804中,终端的身份信息成功注册到/存储到区块1之后,由第二节点通过BSS反馈给终端。
需要说明的是,第二节点可以携带一个或者多个需要撤销的终端的身份信息,BSS可以向第二节点发送一个或者多个第四请求,不予限制。
步骤808:第二节点接收第四请求,根据第四请求确定更新区块1中的身份信息。
示例性的,第二节点根据第四请求携带的区块1的地址信息找到区块1,并验证第四请求携带的身份信息的有效性,如根据身份信息以及AuxI计算哈希根,若计算得到的哈希根与区块1中包括身份信息的哈希树的哈希根相同,则身份信息校验通过,并在身份信息具备有效性后确定更新(如撤销区块1)中的身份信息。
需要说明的是,区块链在统一共识内可能承接多个撤销身份信息的请求,多个撤销的身份信息可能对应一个或不同的历史区块,如果对应不同的历史区块,则针对每个历史单独处理后续步骤809~步骤813,如果对应同一历史区块,则执行一次步骤809~步骤813即可更新该历史区块中的内容,将更新后的内容存储到处于分叉上的新的区块中。
步骤809:第二节点更新区块1中的身份信息,将更新后的身份信息组成新的哈希树,并将新的哈希树存储在区块2中,其中区块2对应两个前序区块:区块1以及当前更新周期内与区块1一样处于主链路上的最新区块。
其中,区块2可以称为更新区块,区块1可以称为待更新区块。区块2的区块体中在保留待更新区块(区块1)的哈希树的树形结构的基础上,删除区块1中哈希树上被撤销的身份信息,并按照哈希的输出更改哈希树中对应的节点的哈希值,包括整个哈希树的哈希根以及AuxI,将更新后的哈希树存储在区块2的区块体中。此时,更新后的哈希树保留有区块1中未被撤销的身份信息,且未被撤销的身份信息对应的AuxI发生了更新。例如,区块1中存储如图1b所示的哈希树,该哈希树上有用户1的ID、用户2的ID、用户3的ID以及用户4的ID,此时,若用户1的ID被撤销,则第二节点需要更新该哈希树,删除哈希树上用户1的ID,保留用户2的ID、用户3的ID以及用户4的ID,更新AuxI以及该哈希树的哈希根。
其中,区块2的区块头包括的特征参数作为哈希输入参数计算得到的哈希值与将区块1的区块头包括的特征参数以及当前更新周期内的最新区块的区块头包括的特征信息作为哈希输入参数计算得到的哈希值相同,即将区块1的区块头包括的特征参数组成第一字符串,将当前更新周期内的最新区块的区块头包括的特征信息组成第二字符串,将第一字符串、第二字符串作为哈希输入参数输入到哈希算法得到的一个哈希值1,将区块2的区块头包括的特征参数作为哈希输入参数输入到哈希算法得到一个哈希值2,哈希值1与哈希值2相同。
需要说明的是,本申请中所述的将区块头包括的特征参数作为哈希输入参数输入到哈希算法得到哈希值可以指:将区块头包括的除前序区块的哈希值之外的其他特征信息作为哈希输入参数输入到哈希算法得到哈希值。
步骤810:第二节点向BSS.re发送辅助信息更改通知。
其中,BSS.re可以为被撤销身份信息的终端所关联的BSS.re,BSS.re管理被撤销身份信息的终端。本申请中,被撤销身份信息的终端可以称为终端.re。
其中,辅助信息更改通知可以用于触发BSS.re将更新后的AuxI发送给未被撤销身份信息的终端,辅助信息更改通知可以包括被撤销的身份信息以及更新后的AuxI,或者,在哈希树由BSS.re组织的情况下,辅助信息更改通知可以包括该BSS.re管理下的被撤销的身份信息。
步骤811:BSS.re接收辅助信息更改通知,向终端.re发送更新后的AuxI。
示例性的,如果BSS.re接收到的辅助信息更改通知包括更新后的AuxI,则直接将更新后的AuxI发送给终端.re。如果BSS.re接收到的辅助信息更改通知包括该BSS.re管理下的被撤销的身份信息,则BSS.re删除哈希树上被撤销的身份信息,并按照哈希的输出更改哈希树中的AuxI,向终端.re发送更新后的AuxI。
步骤812:第二节点向第一节点同步区块2的区块头。
其中,第二节点向第一节点同步区块2的区块头可参照第二节点向第一节点同步区块1的区块头的过程,不予赘述。需要说明的是,第一节点可以作为中继向其他轻节点,如第三节点等同步新的区块2。
在本步骤中,第一节点在将区块2的区块头同步过来时候,通过验证区块2、区块1以及当前更新周期内的最新区块之间的链式结构关系,能够获知区块2存在两个前序区块,且位于分叉结构上,能知道该区块2是来自哪个历史区块(如区块1)的版本更新,在后续验证中,第一节点能感知到对应的历史区块(区块1)的内容已被更改,需要通过更新版本的区块(如区块2)来验证身份信息的有效性。具体的,该过程可参照下述图9所示。进一步的,第一节点可以对同步过来的区块2做下标记,标记该区块2为区块1的更新版本。
步骤813:当前更新周期结束后,第二节点生成下一更新周期的第一个区块:区块3时,第二节点根据区块2以及当前更新周期内的最后一个区块设置区块3的区块头中的特征信息,以使得区块2以及当前更新周期内的最后一个区块共同作为区块3的前序区块。
示例性的,区块3的区块头包括的特征参数作为哈希输入参数计算得到的哈希值与将区块2的区块头包括的特征参数以及当前更新周期内的最后一个区块的区块头包括的特征信息作为哈希输入参数计算得到的哈希值相同,即将区块2的区块头包括的特征参数组成第一字符串,将当前更新周期内的最后一个区块的区块头包括的特征信息组成第二字符串,将第一字符串、第二字符串作为哈希输入参数输入到哈希算法得到一个哈希值3,将区块3的区块头包括的特征参数作为哈希输入参数输入到哈希算法得到一个哈希值4,哈希值3与哈希值4的取值相同。
如此,可以在区块链达成共识时,将本更新周期起所有更新后的区块以及本更新周期起最新区块作为主链新区块的前序区块,完成本更新周期期内区块更改的历史不可否认性。本步骤后,轻节点无法在忽视区块更新现实的情况下完成有效的区块链延伸。
基于图8所示方法,在不破坏区块链的主链路特性的情况下,将区块1中的更新信息存储到一个新的区块2中,并将更新后的区块2存储在与主链路衔接的分叉上,凭借这种具有分叉的拓扑关系即能感知到区块1中内容的更新。同时,将分叉上的更新区块2与下一更新周期的区块3之间形成链式结构,当更新周期结束后对更新区块2的感知是强制的,否则无法通过下一个区块3,使得懒惰的或有图谋的轻节点无法隐藏更新后的区块2。
下面结合图9所示过程,以第一节点为用于验证身份信息是否有效/是否被更改的身份验证节点为例,对身份验证过程进行描述。图9为本申请实施例提供的一种身份验证流程图,如图9所示,所述可以包括:
步骤901:身份持有者通过其所使用的终端向身份验证节点发送第五请求。
其中,身份验证节点可以为上述第一节点或者其他节点,不予限制。
其中,第五请求可以请求身份验证节点验证终端的身份信息是否被撤销或更新。第五请求可以包括身份验证信息,所述身份验证信息可以包括需要验证的/待验证的身份信息、注册/存储有该身份信息的第一区块的地址信息地址以及AuxI。若终端之前获得BSS.re提供的更新后的AuxI,则第五请求为更新后的AuxI。
步骤902:身份验证节点接收第五请求,验证第五请求携带的身份信息的有效性,若身份信息有效,则执行下述步骤903~步骤906。
示例性的,身份信息是一个验证公钥,身份持有者可通过签名和认证方法让身份验证节点验证身份有效性。总的来说,验证者在这个过程中要确认以下两点:对方是某个身份的持有者;该身份注册在区块链上。
步骤903:身份验证节点根据第五请求,向第一节点发送注册/存储有该身份信息的第一区块的地址信息地址以及AuxI。
需要说明的是,身份验证节点本身可以作为区块链轻节点,如可以作为第一节点,如果这样的话,后续步骤904~步骤906均为身份验证节点的内部执行过程。
步骤904:第一节点接收注册/存储有该身份信息的第一区块的地址信息地址以及AuxI,根据第一区块的地址信息,查询注册/存储有该身份信息的第一区块,如果发现第一区块存在更新版版本,如第三区块,则执行步骤905。
示例性的,第一节点可以根据根据第一区块的地址信息找到第一区块,若确定第一区块在结构中已经分叉得到新的第一区块:第三区块,说明该第一区块中存在已被撤销的身份,则根据分叉查询该第一区块的最新版本:第三区块。具体的,可以验证分叉上的第一区块、与分叉上的第一区块同时共识的最新第一区块以及第一区块之间是否满足链式结构,如将与分叉上的第一区块同时共识的最新第一区块的第一区块头包括的特征信息以及第一区块的第一区块头包括的特征信息作为哈希输入参数计算得到一个哈希值,将分叉上的第一区块的第一区块头包括的特征信息作为哈希输入参数计算得到又一个哈希值,若两个哈希值相同,则三个第一区块之间的链式结构满足,将分叉上的该第一区块作为第一区块的最新版本。
步骤905:第一节点向身份验证节点返回第三区块的第一区块头。
步骤906:身份验证节点根据AuxI计算得到第一哈希根,如果第一哈希根与步骤905中第三区块的第一区块头中的哈希根相同,则该身份信息验证通过,反之,则该身份信息验证失败,可能该身份信息被撤销。
基于图9所示方法,可以验证某个终端的身份信息的时候,基于分叉的链式结构找到被撤销身份信息的历史区块的更新版本,并根据更新版本验证身份信息是否被撤销。
上述主要从方法的角度对本申请实施例提供的方案进行了介绍。为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例可以根据上述方法示例对节点进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。可选的,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
图10示出了一种区块链节点100的结构图,该区块链节点100可以为第一节点、第一节点中的芯片、片上系统或者其他能够实现上述方法中第一节点的功能的装置等,该区块链节点100可以用于执行上述方法实施例中涉及的第一节点的功能。作为一种可实现方式,图10所示区块链节点100包括:接收单元1001、处理单元1002。
接收单元1001,用于从第一节点获取待同步的第一区块的区块头。例如,接收单元1001可以支持区块链节点100执行步骤404以及步骤512。
处理单元1002,用于根据第一区块的区块头包括的特征信息,验证第一区块与第一区块的前序区块之间是否满足链式结构;若第一区块与第一区块的前序区块之间不满足链式结构,则第一节点根据第一区块的区块头包括的特征信息与证书撤销列表CRL标识,验证第一区块与第一区块的前序区块之间是否满足链式结构,若满足,则确定第一区块承载有CRL。例如,处理单元1002支持区块链节点100执行步骤406以及步骤512。
接收单元1001,还用于第一节点从第二节点获取CRL。例如,接收单元1001可以支持区块链节点100执行步骤407。
具体的,上述图4-图5所示方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。区块链节点100用于执行图4-图5所示基于区块链的身份信息管理方法中第一节点的功能,因此可以达到与上述基于区块链的身份信息管理方法相同的效果。
又一种可能的实现方式中,接收单元1001,用于获取身份验证信息,身份验证信息包括待验证的身份信息,注册有身份信息的第一区块的地址信息以及身份信息对应的验证辅助信息AuxI。例如,接收单元1001用于支持区块链节点100执行步骤904。
处理单元1002,用于根据第一区块的地址信息,确定第一区块,如果第一区块存在分叉,则根据第一区块以及第二区块确定出第三区块,第二区块为当前更新周期内的最新区块,第一区块和第二区块为第三区块的前序区块,第三区块存储有第一区块中更新后的身份信息,第三区块是位于分叉链路上的、与第一区块对应的更新区块。例如,处理单元1002用于支持区块链节点100执行步骤904。
处理单元1002,还用于根据待验证的身份信息、身份信息对应的AuxI以及第三区块,验证身份信息。例如,处理单元1002用于支持区块链节点100执行步骤906。
具体的,上述图9所示方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。区块链节点100用于执行图9身份验证方法中第一节点的功能,因此可以达到与上述身份验证方法中相同的效果。
作为又一种可实现方式,图10所示区块链节点100包括:处理模块和通信模块。处理模块用于对区块链节点100的动作进行控制管理,例如,处理模块可以集成处理单元1002的功能,可以用于支持该区块链节点100执行步骤406以及步骤512、步骤906的动作及本文所描述的技术的其它过程。通信模块可以集成接收单元1001的功能,可以用于支持区块链节点100执行步骤404以及步骤512、步骤904以及与其他网络实体的通信,例如与图2示出的功能模块或网络实体之间的通信。该区块链节点100还可以包括存储模块,用于存储指令和/或数据。该指令被处理模块执行时,使得处理模块实现上述第一节点侧的方法。
其中,处理模块可以是处理器、控制器、模块或电路。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框。通信模块可以是收发电路、管脚、接口电路、总线接口、或通信接口等。存储模块可以是存储器。当处理模块为处理器,通信模块为通信接口,存储模块为存储器时,本申请实施例涉及的区块链节点100可以为图3所示装置。
图11示出了一种区块链节点110的结构图,该区块链节点110可以为第二节点、第二节点中的芯片、片上系统、或者其他能够实现上述方法中第二节点的功能的装置等,该区块链节点110可以用于执行上述方法实施例中涉及的第二节点的功能。作为一种可实现方式,图11所示区块链节点110包括:接收单元1101、处理单元1102。
接收单元1101,用于获取证书撤销列表CRL。例如,接收单元1101支持区块链节点执行步骤401以及步骤510。
处理单元1102,用于根据获取到的CRL生成第一区块,所述第一区块的区块体中存储有所述CRL,所述第一区块的区块头包括的特征信息与CRL标识作为哈希输入参数计算得到的哈希值与所述第一区块的前序区块的哈希值相同。例如,处理单元1102支持区块链节点执行步骤402以及步骤510。
具体的,上述图4-图5所示方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。区块链节点110用于执行图4-图5所示基于区块链的身份信息管理方法中第二节点的功能,因此可以达到与上述基于区块链的身份信息管理方法相同的效果。
又一种可能的设计中,处理单元1102,用于确定更新第一区块内存储的身份信息,以及根据所述第一区块以及第二区块,生成第三区块,所述第二区块为当前更新周期内的最新区块,所述第一区块和所述第二区块为所述第三区块的前序区块,所述第三区块存储有所述第一区块中更新后的身份信息,所述第三区块为与所述第一区块对应的更新区块;
处理单元1102,还用于将所述第三区块存储在第一区块所在主链路的分叉上。例如,处理单元1102支持区块链节点执行步骤601~步骤603、步骤808以及步骤809。
具体的,上述图6或图8所示方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。区块链节点110用于执行图6或图8所示基于区块链的身份信息管理方法中第二节点的功能,因此可以达到与上述基于区块链的身份信息管理方法相同的效果。
作为又一种可实现方式,图11所示区块链节点110包括:处理模块和通信模块。处理模块用于对区块链节点110的动作进行控制管理,例如,处理模块可以集成处理单元的功能,可以用于支持该区块链节点110执行步骤601~步骤603、步骤808以及步骤809以及本文所描述的第二节点除收发动作之外的动作。通信模块可以集成接收单元1101的功能,可以用于支持区块链节点110执行步骤401以及步骤510以及与其他网络实体的通信,例如与图2示出的功能模块或网络实体之间的通信。该区块链节点110还可以包括存储模块,用于存储区块链节点110的指令和/或数据。该指令被处理模块执行时,可以使得处理模块实现上述第二节点侧的方法。
其中,处理模块可以是处理器、控制器、模块或电路。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框。处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等等。通信模块可以是收发电路、管脚、接口电路、总线接口、或通信接口等。存储模块可以是存储器。当处理模块为处理器,通信模块为通信接口,存储模块为存储器时,本申请实施例所涉及的区块链节点110可以为图3所示装置。
在本申请实施例中,处理器可以是通用处理器、数字信号处理器、专用集成电路、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
在本申请实施例中,存储器可以是非易失性存储器,比如硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD)等,还可以是易失性存储器(volatilememory),例如随机存取存储器(random-access memory,RAM)。存储器是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。本申请实施例中的存储器还可以是电路或者其它任意能够实现存储功能的装置,用于存储指令和/或数据。
图12为本申请实施例提供的一种区块链系统的结构图,如图12所示,该区块链系统可以包括:第一节点120、第二节点121。其中,第一节点120可以具有上述区块链节点100的功能。第二节点121可以具有上述区块链节点110的功能。
一种示例中,第一节点120从第二节点121获取待同步的第一区块的区块头;
第一节点120根据第一区块的区块头包括的特征信息,验证第一区块与第一区块的前序区块之间是否满足链式结构;
若第一区块与第一区块的前序区块之间不满足链式结构,则第一节点120根据第一区块的区块头包括的特征信息与证书撤销列表CRL标识,验证第一区块与第一区块的前序区块之间是否满足链式结构,若满足,则确定第一区块承载有CRL;
第一节点120从第二节点121获取CRL。
又一种示例中,第一节点120获取身份验证信息,身份验证信息包括待验证的身份信息,注册有身份信息的第一区块的地址信息以及身份信息对应的验证辅助信息AuxI;
第一节点120根据第一区块的地址信息,确定第一区块,如果第一区块存在分叉,则根据第一区块以及第二区块确定出第三区块,第二区块为当前更新周期内的最新区块,第一区块和第二区块为第三区块的前序区块,第三区块存储有第一区块中更新后的身份信息,第三区块是位于分叉链路上的、与第一区块对应的更新区块。
第一节点120根据待验证的身份信息、身份信息对应的AuxI、第三区块,验证身份信息。
具体的,第一节点120、第二节点121的具体实现过程可参照上述图4-图9方法实施例中第一节点、第二节点的执行过程,在此不再赘述。
本申请实施例还提供了一种计算机可读存储介质。上述方法实施例中的全部或者部分流程可以由计算机程序来指令相关的硬件完成,该程序可存储于上述计算机可读存储介质中,该程序在执行时,可包括如上述各方法实施例的流程。计算机可读存储介质可以是前述任一实施例的终端装置,如:包括数据发送端和/或数据接收端的内部存储单元,例如终端装置的硬盘或内存。上述计算机可读存储介质也可以是上述终端装置的外部存储设备,例如上述终端装置上配备的插接式硬盘,智能存储卡(smart media card,SMC),安全数字(secure digital,SD)卡,闪存卡(flash card)等。进一步地,上述计算机可读存储介质还可以既包括上述终端装置的内部存储单元也包括外部存储设备。上述计算机可读存储介质用于存储上述计算机程序以及上述终端装置所需的其他程序和数据。上述计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的数据。
本申请实施例还提供了一种计算机指令。上述方法实施例中的全部或者部分流程可以由计算机指令来指令相关的硬件(如计算机、处理器、网络设备、和终端等)完成。该程序可被存储于上述计算机可读存储介质中。
在上述实施例中,可以全部或部分的通过软件,硬件,固件或者其任意组合来实现。当使用软件程序实现时,可以全部或部分地以计算机程序产品的形式出现。计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本申请实施例的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。
计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、区块链节点或数据中心通过有线(例如同轴电缆、光纤、数字用户线(Digital SubscriberLine,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、区块链节点或数据中心传输。计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的区块链节点、数据中心等数据终端。该可用介质可以是磁性介质,(例如,软盘,硬盘、磁带)、光介质(例如,数字多功能影音光盘Digital Versatile DiscDVD)或者半导体介质(例如固态硬盘solid state disk(SSD))等。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请实施例的具体实施方式,但本申请实施例的保护范围并不局限于此,任何在本申请实施例揭露的技术范围内的变化或替换,都应涵盖在本申请实施例的保护范围之内。因此,本申请实施例的保护范围应以所述权利要求的保护范围为准。
Claims (19)
1.一种基于区块链的身份信息管理方法,其特征在于,所述方法包括:
第一节点从第二节点获取待同步的第一区块的区块头;
所述第一节点根据所述第一区块的区块头包括的特征信息,验证所述第一区块与所述第一区块的前序区块之间是否满足链式结构;
若所述第一区块与所述第一区块的前序区块之间不满足链式结构,则所述第一节点根据所述第一区块的区块头包括的特征信息与证书撤销列表CRL标识,验证所述第一区块与所述第一区块的前序区块之间是否满足链式结构,若满足,则确定所述第一区块承载有CRL;
所述第一节点从所述第二节点获取所述CRL。
2.根据权利要求1所述的方法,其特征在于,所述第二节点根据所述第一区块的区块头包括的特征信息,验证所述第一区块与所述第一区块的前序区块之间是否满足链式结构包括:
所述第一节点确定将所述第一区块的区块头包括的特征信息作为哈希输入参数计算得到的哈希值与所述第一区块的前序区块的哈希值是否相同;
若相同,则所述第一区块与所述第一区块的前序区块之间满足链式结构;
若不同,则所述第一区块与所述第一区块的前序区块之间不满足链式结构。
3.根据权利要求1或2所述的方法,其特征在于,所述第一节点根据所述第一区块的区块头包括的特征信息与证书撤销列表CRL标识,验证所述第一区块与所述第一区块的前序区块之间是否满足链式结构,包括:
所述第一节点确定将所述第一区块的区块头包括的特征信息与CRL标识作为哈希输入参数计算得到的哈希值与所述第一区块的前序区块的哈希值是否相同;
若相同,则所述第一区块与所述第一区块的前序区块之间满足链式结构;
若不同,则所述第一区块与所述第一区块的前序区块之间不满足链式结构。
4.根据权利要求1-3任一项所述的方法,其特征在于,
所述CRL为全量列表或者差分列表。
5.一种基于区块链的身份信息管理方法,其特征在于,所述方法包括:
第二节点获取证书撤销列表CRL;
所述第二节点根据获取到的CRL生成第一区块,所述第一区块的区块体中存储有所述CRL,所述第一区块的区块头包括的特征信息与CRL标识作为哈希输入参数计算得到的哈希值与所述第一区块的前序区块的哈希值相同。
6.根据权利要求5所述的方法,其特征在于,所述第二节点获取CRL包括:
所述第二节点接收来自CRL服务器的CRL,所述CRL服务器存储有所述CRL对应的授权信息。
7.根据权利要求5或6所述的方法,其特征在于,
所述CRL为全量列表或者差分列表。
8.一种基于区块链的身份信息管理方法,其特征在于,所述方法包括:
第一节点获取身份验证信息,所述身份验证信息包括待验证的身份信息,注册有所述身份信息的第一区块的地址信息以及所述身份信息对应的验证辅助信息AuxI;
所述第一节点根据所述第一区块的地址信息,确定所述第一区块;
如果所述第一区块存在分叉,则根据所述第一区块以及第二区块确定出第三区块,所述第二区块为当前更新周期内的最新区块,所述第一区块和所述第二区块为所述第三区块的前序区块,所述第三区块存储有所述第一区块中更新后的身份信息,所述第三区块是位于分叉链路上的、与所述第一区块对应的更新区块;
所述第一节点根据所述待验证的身份信息、所述身份信息对应的AuxI以及所述第三区块,验证所述身份信息。
9.根据权利要求8所述的方法,其特征在于,所述根据所述第一区块以及第二区块确定出第三区块,包括:
所述第一节点将所述第一区块的区块头包括的特征信息以及所述第二区块的区块头包括的特征信息作为哈希输入参数计算得到一哈希值;
所述第一节点比较计算得到的哈希值以及所述分叉链路上每个区块对应的哈希值,将与所述计算得到的哈希值相同的区块作为所述第三区块。
10.根据权利要求8或9所述的方法,其特征在于,所述第一节点根据所述待验证的身份信息、所述身份信息对应的AuxI以及所述第三区块,验证所述身份信息,包括:
所述第一节点根据将所述待验证的身份信息以及所述身份信息对应的AuxI进行哈希计算得到一哈希值,如果所述哈希值与所述第三区块的哈希根相同,则确定所述身份信息有效;
如果所述哈希值与所述第三区块的哈希根不同,则确定所述身份信息无效。
11.根据权利要求8-10任一项所述的方法,其特征在于,
所述第三区块以及所述当前更新周期结束时的最后一个区块为第四区块的前序区块,所述第四区块为下一更新周期的第一个区块。
12.一种基于区块链的身份信息管理方法,其特征在于,所述方法包括:
第二节点确定更新第一区块内存储的身份信息;
所述第二节点根据所述第一区块以及第二区块,生成第三区块,所述第二区块为当前更新周期内的最新区块,所述第一区块和所述第二区块为所述第三区块的前序区块,所述第三区块存储有所述第一区块中更新后的身份信息,所述第三区块为与所述第一区块对应的更新区块;
所述第二节点将所述第三区块存储在第一区块所在主链路的分叉上。
13.根据权利要求12所述的方法,其特征在于,所述方法还包括:
所述第二节点根据所述第三区块以及所述当前更新周期结束时的最后一个区块,生成第四区块,所述第三区块和所述最后一个区块为所述第四区块的前序区块,所述第四区块为下一更新周期的第一个区块。
14.根据权利要求12或者13所述的方法,其特征在于,所述方法还包括:
所述第二节点向被更新身份信息的终端所关联的BSS发送辅助信息更改通知,所述辅助信息更改通知用于触发所述BSS向所述终端发送更新后的验证辅助信息AuxI。
15.一种区块链系统,其特征在于,所述区块链系统包括如上述权利要求1-4任一项所述的第一节点以及权利要求5-7任一项所述的第二节点;或者,包括如权利要求8-11任一项所述的第一节点以及如权利要求12-14任一项所述的第二节点。
16.一种区块链节点,其特征在于,包括:一个或多个处理器,以及一个或多个存储器;所述一个或多个存储器与所述一个或多个处理器耦合,所述一个或多个存储器存储有计算机指令;当所述一个或多个处理器执行计算机指令时,使得所述计算机指令实现如权利要求1-4或者权利要求8-11中任意一项所述的基于区块链的身份信息管理方法。
17.一种计算机可读存储介质,其特征在于,包括指令,当所述指令在计算机上运行时,使得所述计算机实现如上述权利要求1-4或者权利要求8-11中任意一项所述的基于区块链的身份信息管理方法。
18.一种区块链节点,其特征在于,包括:一个或多个处理器,以及一个或多个存储器;所述一个或多个存储器与所述一个或多个处理器耦合,所述一个或多个存储器存储有计算机指令;当所述一个或多个处理器执行计算机指令时,使得所述计算机指令实现如上述权利要求5-7或者权利要求12-14中任一项所述的基于区块链的身份信息管理方法。
19.一种计算机可读存储介质,其特征在于,包括指令,当所述指令在计算机上运行时,使得所述计算机实现如上述权利要求5-7或者权利要求12-14中任一项所述的基于区块链的身份信息管理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010762074.4A CN114066461A (zh) | 2020-07-31 | 2020-07-31 | 基于区块链的身份信息管理方法、节点及区块链系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010762074.4A CN114066461A (zh) | 2020-07-31 | 2020-07-31 | 基于区块链的身份信息管理方法、节点及区块链系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114066461A true CN114066461A (zh) | 2022-02-18 |
Family
ID=80228012
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010762074.4A Pending CN114066461A (zh) | 2020-07-31 | 2020-07-31 | 基于区块链的身份信息管理方法、节点及区块链系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114066461A (zh) |
-
2020
- 2020-07-31 CN CN202010762074.4A patent/CN114066461A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11637746B2 (en) | Object identification for groups of IoT devices | |
CN110602050B (zh) | 区块链访问的鉴权方法和装置、存储介质、电子装置 | |
CN111144881B (zh) | 对资产转移数据的选择性访问 | |
EP3639465B1 (en) | Improved hardware security module management | |
US10523526B2 (en) | System and method for managing services and licenses using a blockchain network | |
US11469891B2 (en) | Expendable cryptographic key access | |
US11115418B2 (en) | Registration and authorization method device and system | |
WO2020143470A1 (zh) | 发放数字证书的方法、数字证书颁发中心和介质 | |
CN103098070B (zh) | 用于监视网络服务中数据位置的方法、装置和系统 | |
WO2021018088A1 (zh) | 可信认证方法,网络设备、系统及存储介质 | |
US20230316273A1 (en) | Data processing method and apparatus, computer device, and storage medium | |
US20200145234A1 (en) | Secure bootstrap for a blockchain network | |
WO2022121538A1 (zh) | 基于区块链的数据同步方法、系统及相关设备 | |
US8391487B2 (en) | Secure remote configuration of device capabilities | |
US11729175B2 (en) | Blockchain folding | |
KR20220118405A (ko) | 블록체인 트랜잭션들을 이용한 통신 프로토콜 | |
EP4216077A1 (en) | Blockchain network-based method and apparatus for data processing, and computer device | |
CN114547636A (zh) | 分布式账本系统 | |
CN111698198B (zh) | 秘密生成和份额分发 | |
CN116671060A (zh) | 分散式广播加密和密钥生成设施 | |
KR20220118408A (ko) | 블록체인 트랜잭션들을 이용한 요청 및 응답 프로토콜 | |
CN112182009A (zh) | 区块链的数据更新方法及装置、可读存储介质 | |
JP2001202332A (ja) | 認証プログラム管理システム | |
CN114066461A (zh) | 基于区块链的身份信息管理方法、节点及区块链系统 | |
CN117716349A (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 |