具体实施方式
以下结合附图对本公开的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本公开,并不用于限制本公开。
图1是根据本公开一示例性实施例示出的一种数字身份管理方法的流程图。如图1所示,所述方法应用于区块链***,包括步骤101至步骤105。
在步骤101中,接收用户端发送的数字身份创建请求,所述数字身份创建请求中包括多组非对称密钥对信息,每组非对称密钥对信息中包括该组非对称密钥对的密钥对编号、密钥对类型和公钥,所述密钥对类型中至少包括生成该组非对称密钥对的算法类型。该用户端可以为任意能够发送该数字身份创建请求的终端。
在该数字身份创建请求中,包括了多组非对称密钥对信息,其中,每组非对称密钥对中都包括该组非对称密钥对的密钥对编号、该组非对称密钥对所对应的密钥对类型以及该组非对称密钥对中的公钥。该密钥对编号为由用户端决定的任意非重复编号,例如可以为纯数字编号、或字母编号、或数字/字母混合编号等,也可以根据一定的编号规则来对每组非对称密钥对进行编号,具体的密钥对编号形式在本公开中不做限制,只要满足不重复的条件即可。该密钥对类型中除了可以包括生成该组非对称密钥对的算法类型,还可以包括该非对称密钥对的相关参数,例如,该密钥对类型可以为“ecdsa-secp256k1”,表示该非对称密钥对是采用ECDSA算法(Elliptic Curve Digital Signature Algorithm,椭圆曲线数字签名算法)和曲线secp256k1产生的,该密钥对类型还可以为“rsa-2048”,表示该非对称密钥对是采用RSA算法产生的,且密钥对中的密钥长度为2048位。由于非对称密钥对中包括公钥和私钥,在用户端发送该数字身份创建请求时,仅将每组非对称密钥对中的公钥发送给区块链***,而每组非对称密钥对中的私钥仅有发送该数字身份创建请求的用户端可知。
在步骤102中,确定所述数字身份创建请求是否为合法请求。确定该数字身份创建请求是否为合法请求的方式可以为多种,例如,可以判断该数字身份创建请求中的每一组非对称密钥对信息中是否都包括了密钥对编号、密钥对类型和公钥三项信息,若是,才能确定该数字身份创建请求为合法请求;另外,还可以判断该数字身份创建请求中是否包括了多组(两组或两组以上)非对称密钥对信息,若以上两个合法性判断的结果都为是,才能确定该数字身份创建请求为合法请求等等。
在步骤103中,在确定所述数字身份创建请求为合法请求的情况下,将多组所述非对称密钥对信息作为所述用户端的数字身份内容保存于所述区块链***中。其中,将该多组非对称密钥对信息保存于该区块链***中的过程可以为:将多组非对称密钥对信息作为该用户端待创建的数字身份的数字身份内容在区块链***中广播,待该数字身份内容被挖矿生效之后,即被写入了整个区块链***中,之后该区块链***中的任意区块链节点都能查询到所保存的该数字身份内容。
在步骤104中,根据所述数字身份创建请求中所包括的所有数据生成与所述数字身份创建请求一一对应的数字身份标识,并在所述数字身份标识与已在所述区块链***中保存的所述数字身份内容之间建立对应关系。在确定该数字身份创建请求为合法请求的情况下,即可根据该数字身份创建请求中的所有数据来生成与该数字身份创建请求一一对应的数字身份标识。该数字身份创建请求中的所有数据可以为例如步骤101中所述的多组非对称密钥对,在该数字身份创建请求中还包括其他数据的情况下,也可以用于生成该数字身份标识。
在该数字身份标识生成之后,将该数字身份标识与在步骤103中保存与该区块链***中的数字身份内容之间建立对应关系,也即该区块链中的任意节点都能够根据该数字身份标识查询到与之对应的该数字身份内容。
其中,本领域技术人员应该了解的是,步骤103和步骤104中生成数字身份标识和将该数字身份内容保存在区块链***中的步骤没有绝对的先后顺序,只要能够根据该数字身份创建请求生成对应的数字身份标识,并且能够在区块链***中通过该数字身份标识查询与之对应的数字身份内容即可。
在步骤105中,将所述数字身份标识发送给所述用户端。在该区块链***对接收到的数字身份创建请求完成处理之后,便可将处理过程中生成的与该数字身份创建请求一一对应的数字身份标识返回发送给发送该数字身份创建请求的用户端,以使该用户端之后能够通过该数字身份标识以及包括在该数字身份创建请求中的多组非对称密钥对来来验证其身份。
上述的步骤101至步骤105可以是由该区块链***中的任意区块链节点来执行的,且在步骤103和步骤104中,将该数字身份内容与该数字身份标识建立对应关系且保存在该区块链***中的步骤需要区块链***中所有区块链节点来参与执行。
通过上述技术方案,在接收到用户端发送的数字身份创建请求之后创建的数字身份能够对应该数字身份创建请求中的多组非对称密钥对信息,从而使得用户端能够通过多个非对称密钥对来实现对其自身的数字身份的验证。由于在数字身份创建请求中包括了多组非对称密钥对信息,且每组非对称密钥对信息都已经被保存在该区块链***中,因此用户端可以使用任一组非对称密钥对来验证其身份,并且在该多组非对称密钥对信息中有任一组非对称密钥对信息泄露或者失控的情况下,可以通过其他没有问题的非对称密钥对来验证用户身份,并及时对其数字身份信息进行修改,进而避免了用户端的数字身份所对应的唯一密钥对在丢失或泄露的情况下所导致的数字身份不可用或失控的问题。
图2是根据本公开又一示例性实施例示出的一种数字身份管理方法的流程图。如图2所示,所述方法还包括步骤201和步骤202。
在步骤201中,接收用户端发送的数字身份创建请求,所述数字身份创建请求中包括多组非对称密钥对信息,所述数字身份创建请求中还包括请求序号、请求类型、第一签名密钥对编号以及第一数字签名。其中,所述第一签名密钥对编号为用于对所述数字身份创建请求中除所述第一数字签名外的其他所有数据进行签名的密钥对在所述非对称密钥对信息中对应的密钥对编号,所述第一数字签名即为根据所述第一签名密钥对编号对应的密钥对对所述数字身份创建请求中除所述第一数字签名外的其他所有数据进行签名后所得到的加密数据。
其中,该请求序号表示同一个数字身份在需要对其自身的数据进行创建、修改、删除操作时,向区块链***发送操作请求的顺序号,因此对于一个数字身份的数字身份创建请求中的请求序号一定为0。后续向区块链中发送的请求中的请求序号依次加1。该请求类型即用于描述该请求是为了对该数字身份进行何种操作,可以包括创建、修改、删除等,对于该数字身份创建请求来说该请求类型即为创建类型。
例如,该数字身份创建请求中可以包括如表1所示的内容。其中key_pub1即为编号为1的密钥对中的公钥,key_pub2即为编号为2的密钥对中的公钥。该第一签名密钥对编号为1,则表示用于对该数字身份创建请求签名的密钥对即表1中两组非对称密钥对信息中编号为1的非对称密钥对,使用该编号为1的非对称密钥对中的私钥对该数字身份创建请求中除了该第一数字签名之外的其他所有数据进行签名,即可得到该第一数字签名。
表1
在步骤202中,在确定所述请求序号为零、且所述请求类型为创建类型、且根据所述第一签名密钥对编号所对应的所述非对称密钥对信息中的所述公钥对所述第一数字签名验证通过的情况下,确定所述数字身份创建请求为合法请求。其中,根据所述第一签名密钥对编号所对应的所述非对称密钥对信息中的所述公钥对所述第一数字签名验证的方法即为,通过该数字身份创建请求中与该第一签名密钥对编号对应的公钥以及该公钥对应的密钥对类型对该第一数字签名进行验签,若验签所得到的数据与该数据身份创建请求中除了该第一数字签名之外的其他所有数据相同,则表示该第一数字签名验证通过。
其中,对该数字身份创建请求是否合法的判断中,还可以包括判断该数字身份创建请求中的每一组非对称密钥对信息中是否都包括了密钥对编号、密钥对类型和公钥三项信息,若是,才能确定该数字身份创建请求为合法请求;另外,还可以包括判断该数字身份创建请求中是否包括了多组(两组或两组以上)非对称密钥对信息等等。
通过上述区别技术特征,该数字身份创建请求中除了包括多组非对称密钥对信息之外,还包括了多个可以用于对该数字身份创建请求进行合法性判断的数据,这样能够进一步保护该数字身份的安全,保证只有用户自身才能使用其自身的数字身份或对其自身的数字身份进行操作。
在一种可能的实施方式中,所述根据所述数字身份创建请求中所包括的所有数据生成与所述数字身份创建请求一一对应的数字身份标识包括:将对所述数字身份创建请求中所包括的所有数据进行哈希运算后得到的结果作为所述数字身份标识;或将对所述数字身份创建请求中所包括的所有数据进行哈希运算后得到的结果编码后作为所述数字身份标识。以上生成该数字身份标识的方法仅为示例,并不用于限制本公开中该数字身份标识的具体生成方法。
图3是根据本公开又一示例性实施例示出的一种数字身份管理方法的流程图。如图3所示,所述方法还包括步骤301至步骤303。
在步骤301中,接收所述用户端发送的数字身份查询请求,所述数字身份查询请求中包括所述数字身份标识。
在步骤302中,在所述区块链***中查询与所述数字身份标识对应的所述数字身份内容。
在步骤303中,将查询到的与所述数字身份标识对应的所述数字身份内容发送给所述用户端。
用户端在接收到区块链***返回的数字身份标识之后,就能够根据该数字身份标识来在该区块链***中查询在该数字身份表示创建过程中保存在该区块链***中的多组非对称密钥对信息,包括多组非对称密钥对信息中每组非对称密钥对的密钥对编号、密钥对类型以及公钥。
图4是根据本公开又一示例性实施例示出的一种数字身份管理方法的流程图。如图4所示,所述方法还包括步骤401至步骤403。
在步骤401中,接收所述用户端发送的数字身份修改请求,所述数字身份修改请求中包括所述数字身份标识和修改类型标识,所述修改类型标识用于表征所述数字身份修改请求为全量修改请求或差量修改请求。该全量修改请求即为对区块链***中所保存的与该数字身份标识对应的数字身份内容进行全量修改,也即将该区块链***中所保存的该数字身份内容全部替换为该数字身份修改请求中所包括的与该数字身份内容对应的数据。该差量修改请求即为对该区块链***中所保存的与该数字身份标识对应的数字身份内容进行差量修改,也即根据该区块链***中所保存的该数字身份内容以及该数字身份修改请求中所包括的修改差量二者相叠加,并将叠加之后的数据作为修改后的数字身份内容。
在步骤402中,根据所述修改类型标识确定所述数字身份修改请求是否为合法请求。由于该修改类型标识不同的情况下,该数字身份修改请求中所包括的数据内容也不同,因此需要根据该修改类型标识来确定对该数字身份修改请求的合法性判断的方法。
在步骤403中,在确定所述数字身份修改请求为合法请求的情况下,根据所述数字身份修改请求对在所述区块链***中保存的与所述数字身份标识对应的所述数字身份内容进行修改。
通过上述技术方案,能够在区块链***中成功创建数字身份之后,根据该区块链***返回的数字身份标识来对数字身份内容进行修改,并且可以通过全量修改和差量修改两种不同的修改方式来进行。
图5是根据本公开又一示例性实施例示出的一种数字身份管理方法中区块链***处理用户端发送的数字身份修改请求的方法的流程图。如图5所示,所述方法除了包括图4中所示的步骤403之外,还包括步骤501至步骤506。
在步骤501中,接收用户端发送的数字身份修改请求,该数字身份修改请求中包括除了包括如图4中步骤401所示的数字身份标识、修改类型标识之外,还包括请求序号、请求类型、第二签名密钥对编号和第二数字签名。所述第二签名密钥对编号为用于对所述数字身份修改请求中除所述第二数字签名外的其他所有数据进行签名的密钥对在修改前的非对称密钥对信息中对应的密钥对编号,所述第二数字签名即为根据所述第二签名密钥对编号对应的密钥对对所述数字身份修改请求中除所述第二数字签名外的其他所有数据进行签名后所得到的加密数据。
在步骤502中,对该数字身份修改请求中的修改类型标识进行判断,在该修改类型标识表征该数字身份修改请求为全量修改请求的情况下,转至步骤503,在该修改类型标识表征该数字身份修改请求为差量修改请求的情况下,转至步骤504。
在步骤503中,判断数字身份修改请求中是否至少包括两组用于修改的非对称密钥对信息,若是,则转至步骤505,若否,则转至步骤506。
在步骤504中,判断区块链***中保存的数字身份内容与数字身份修改请求中的修改差量叠加后得到的数字身份内容中是否至少包括两组非对称密钥对信息,若是,则转至步骤505,若否,则转至步骤506。
在步骤506中,在确定所述请求序号大于零、且所述请求序号大于上一次接收到的请求序号且为其相邻数、且所述请求类型为修改类型、且所述数字身份修改请求中所包括的所述数字身份标识对应的数字身份内容已保存在所述区块链***中、且所述第二签名密钥对编号对应的公钥存在于在所述区块链***中保存的与所述数字身份修改请求中包括的所述数字身份标识对应的数字身份内容中、且根据在区块链***中保存的与所述第二签名密钥对编号对应的所述公钥对所述第二数字签名验证通过的情况下,确定所述数字身份修改请求为合法请求。
所述修改类型标识表征所述数字身份修改请求为全量修改请求的情况下,所述数字身份修改请求中还包括用于修改的非对称密钥对信息,该数字身份修改请求中所包括的用于修改的非对称密钥对信息即为修改后区块链***中所保存的饿数字身份内容中的非对称密钥对信息。因此,在步骤503中,确定了该数字身份修改请求为全量修改请求的情况下,需要对该数字身份修改请求中所包括的该用于修改的非对称密钥对信息的组数进行判断,以保证区块链***中修改后的数字身份内容中所包括的非对称密钥对信息至少为两组。
在所述修改类型标识表征所述数字身份修改请求为差量修改请求的情况下,所述数字身份修改请求中还包括修改差量,所述修改差量为修改后的数字身份内容与在所述区块链***中保存的与所述数字身份修改请求中包括的所述数字身份标识对应的所述数字身份内容的差分量。因此,在步骤504中,确定了该数字身份修改请求为差量修改请求的情况下,需要先根据该数字身份修改请求中所包括的修改差量与区块链***中保存的数字身份内容进行叠加以得到直接根据该修改差量进行修改后的数字身份内容,再判断叠加后的数字身份内容中是否包括至少两组非对称密钥对信息,从而保证区块链***中直接根据该数字身份修改请求修改后的数字身份内容中至少包括两组非对称密钥对信息。
例如,该数字身份修改请求中可以根据修改类型的不同分别包括如表2和表3中所示的内容。其中,当数字身份修改请求为全量修改请求时,可以包括如表2所示的内容,当数字身份修改请求为差量修改请求时,可以包括如表3所示的内容。
表2
表3
由于请求序号表示同一个数字身份在需要对其自身的数据进行创建、修改、删除操作时,向区块链***发送操作请求的顺序号,因此,对于一个数字身份的数字身份创建请求中的请求序号一定为0,并且,用户端向区块链***中发送的数字身份创建请求、数字身份修改请求以及数字身份删除请求中都包括该请求序号,且该请求序号是按序递增的,因此数字身份修改请求的请求序号一定大于0。也即表2和表3中的请求序号一定大于0。在表2和表3中所示出的具体数值仅仅只是示例,并不用于限制该请求序号的取值。另外,该数字身份修改请求中的请求序号需要大于上一次接收到的请求序号且为其相邻数,也即,若上一次接收到的请求序号是数字身份创建请求中的请求序号,也即为零,则本次数字身份修改请求中的请求序号需要为1;若上一次接收到的请求序号是一个数字身份修改请求,其中的请求序号为3,则本次数字身份修改请求中的请求序号需要为4,以此类推。
区块链***在接收到包括如表2或表3所示的内容的数字身份修改请求的情况下,根据在区块链***中保存的与所述第二签名密钥对编号对应的所述公钥对所述第二数字签名验证的过程为:根据该数字身份修改请求中所包括的数字身份标识,在区块链***中查询到对应的数字身份内容,并查询与该数字身份修改请求中的第二签名密钥对编号对应公钥,并通过该公钥对该第二数字签名解签,并判断解签后的数据内容是否与该数字身份修改请求中除该第二数字签名之外的数据内容相同,若是,则验证通过。例如,该数字身份修改请求中的第二签名密钥对编号为1时,在区块链***中的数字身份内容中查询密钥对编号也为1的非对称密钥对信息,然后将该非对称密钥对信息中的公钥作为与该第二签名密钥对编号对应的公钥,并使用该公钥来对该第二数字签名进行验证。
图6是根据本公开又一示例性实施例示出的一种数字身份管理方法的流程图。如图6所示,所述方法还包括步骤601至步骤603。
在步骤601中,接收所述用户端发送的数字身份删除请求,所述数字身份删除请求中包括待删除数字身份的数字身份标识。
在步骤602中,确定所述数字身份删除请求是否为合法请求。确定所述数字身份删除请求是否为合法请求的方法可以为例如,判断该数字身份删除请求中的数字身份标识对应的数字身份是否已经在区块链***中创建成功,也即该区块链***中是否能够查询到与该数字身份标识对应的数字身份内容,在无法查询到对应的数字身份内容的情况下则可以确定该数字身份删除请求不合法。另外,在无法在区块链***中查询到对应的数字身份内容的情况下,还可以向用户端发送相应的提示信息,以表明该数字身份删除请求不合法的原因。
在步骤603中,在确定所述数字身份删除请求为合法请求的情况下,将所述区块链***中保存的与所述待删除数字身份的数字身份标识对应的数字身份内容标记为删除状态。
在确定该数字身份删除请求为合法请求的情况下,由于区块链***中的数据无法真正删除,因此只能将区块链***中的响应数字身份内容标记为删除状态。
在一种可能的实施方式中,所述数字身份删除请求中还包可以括所述请求序号、所述请求类型、第三签名密钥对编号和第三数字签名。所述第三签名密钥对编号为用于对所述数字身份删除请求中除所述第三数字签名外的其他所有数据进行签名的密钥对在删除前的非对称密钥对信息中对应的密钥对编号,所述第三数字签名即为根据所述第三签名密钥对编号对应的密钥对对所述数字身份删除请求中除所述第三数字签名外的其他所有数据进行签名后所得到的加密数据。
在此实施方式中,步骤602中确定该数字身份删除请求是否为合法请求时,确定方法可以为:在确定所述请求序号大于零、且所述请求序号大于上一次接收到的请求序号且为其相邻数、且所述请求类型为删除类型、且所述数字身份删除请求中所包括的数字身份标识对应的数字身份内容已保存在所述区块链***中、且所述数字身份删除请求中所包括的所述第三签名密钥对编号对应的公钥存在于所述区块链***保存的该数字身份内容中、且根据在区块链***中保存的与所述第三签名密钥对编号对应的公钥对所述第三数字签名验证通过的情况下,确定所述数字身份删除请求为合法请求。
例如,该数字身份删除请求中可以包括如表4中所示的内容。
表4
在一种可能的实施方式中,区块链***在接收到用户端发送的数字身份修改请求和/或数字身份删除请求之后,无论修改或删除操作是否成功,都可以将该请求的处理结果返回发送给用户端。
在一种可能的实施方式中,区块链***中的任意区块链节点都可以接收用户端发送的与数字身份管理相关的请求,并对该请求进行处理,最后将处理结果再返回发送至用户端。
图7是根据本公开一示例性实施例示出的一种数字身份管理装置100的结构框图。该装置100应用于区块链***,包括:第一接收模块10,用于接收用户端发送的数字身份创建请求,所述数字身份创建请求中包括多组非对称密钥对信息,每组非对称密钥对信息中包括该组非对称密钥对的密钥对编号、密钥对类型和公钥,所述密钥对类型中至少包括生成该组非对称密钥对的算法类型;第一确定模块20,用于确定所述数字身份创建请求是否为合法请求;保存模块30,用于在所述第一确定模块确定所述数字身份创建请求为合法请求的情况下,将多组所述非对称密钥对信息作为所述用户端的数字身份内容进行保存;生成模块40,用于根据所述数字身份创建请求中所包括的所有数据生成与所述数字身份创建请求一一对应的数字身份标识,并在所述数字身份标识与已保存的所述数字身份内容之间建立对应关系;第一发送模块50,用于将所述数字身份标识发送给所述用户端。
通过上述技术方案,在接收到用户端发送的数字身份创建请求之后创建的数字身份能够对应该数字身份创建请求中的多组非对称密钥对信息,从而使得用户端能够通过多个非对称密钥对来实现对其自身的数字身份的验证。由于在数字身份创建请求中包括了多组非对称密钥对信息,且每组非对称密钥对信息都已经被保存在该区块链***中,因此用户端可以使用任一组非对称密钥对来验证其身份,并且在该多组非对称密钥对信息中有任一组非对称密钥对信息泄露或者失控的情况下,可以通过其他没有问题的非对称密钥对来验证用户身份,并及时对其数字身份信息进行修改,进而避免了用户端的数字身份所对应的唯一密钥对在丢失或泄露的情况下所导致的数字身份不可用或失控的问题。
在一种可能的实施方式中,所述数字身份创建请求中还包括请求序号、请求类型、第一签名密钥对编号以及第一数字签名,所述第一签名密钥对编号为用于对所述数字身份创建请求中除所述第一数字签名外的其他所有数据进行签名的密钥对在所述非对称密钥对信息中对应的密钥对编号,所述第一数字签名即为根据所述第一签名密钥对编号对应的密钥对对所述数字身份创建请求中除所述第一数字签名外的其他所有数据进行签名后所得到的加密数据;第一确定模块20还用于:在确定所述请求序号为零、且所述请求类型为创建类型、且根据所述第一签名密钥对编号所对应的所述非对称密钥对信息中的所述公钥对所述第一数字签名验证通过的情况下,确定所述数字身份创建请求为合法请求。
在一种可能的实施方式中,所述生成模块40包括:第一生成子模块,用于将对所述数字身份创建请求中所包括的所有数据进行哈希运算后得到的结果作为所述数字身份标识;或第二生成子模块,用于将对所述数字身份创建请求中所包括的所有数据进行哈希运算后得到的结果编码后作为所述数字身份标识。
在一种可能的实施方式中,所述装置100还包括第二接收模块,用于接收所述用户端发送的数字身份查询请求,所述数字身份查询请求中包括所述数字身份标识;查询模块,用于在所述区块链***中查询与所述数字身份标识对应的所述数字身份内容;第二发送模块,用于将查询到的与所述数字身份标识对应的所述数字身份内容发送给所述用户端。
在一种可能的实施方式中,所述装置100还包括第三接收模块,用于接收所述用户端发送的数字身份修改请求,所述数字身份修改请求中包括所述数字身份标识和修改类型标识,所述修改类型标识用于表征所述数字身份修改请求为全量修改请求或差量修改请求;第二确定模块,用于根据所述修改类型标识确定所述数字身份修改请求是否为合法请求;修改模块,用于在确定所述数字身份修改请求为合法请求的情况下,根据所述数字身份修改请求对在所述区块链***中保存的与所述数字身份标识对应的所述数字身份内容进行修改。
在一种可能的实施方式中,在所述修改类型标识表征所述数字身份修改请求为全量修改请求的情况下,所述数字身份修改请求中还包括用于修改的非对称密钥对信息,所述第二确定模块还用于:在确定所述数字身份修改请求中至少包括两组所述用于修改的非对称密钥对信息的情况下,确定所述数字身份修改请求为合法请求。
在一种可能的实施方式中,在所述修改类型标识表征所述数字身份修改请求为差量修改请求的情况下,所述数字身份修改请求中还包括修改差量,所述修改差量为修改后的数字身份内容与在所述区块链***中保存的与所述数字身份修改请求中包括的所述数字身份标识对应的所述数字身份内容的差分量,所述第二确定模块还用于:在确定在所述区块链***中保存的与所述数字身份修改请求中包括的所述数字身份标识对应的所述数字身份内容与所述修改差量叠加后得到的数字身份内容中至少包括两组所述非对称密钥对信息的情况下,确定所述数字身份修改请求为合法请求。
在一种可能的实施方式中,所述数字身份修改请求中还包括所述请求序号、所述请求类型、第二签名密钥对编号和第二数字签名,所述第二签名密钥对编号为用于对所述数字身份修改请求中除所述第二数字签名外的其他所有数据进行签名的密钥对在修改前的非对称密钥对信息中对应的密钥对编号,所述第二数字签名即为根据所述第二签名密钥对编号对应的密钥对对所述数字身份修改请求中除所述第二数字签名外的其他所有数据进行签名后所得到的加密数据,所述第二确定模块还用于:在确定所述请求序号大于零、且所述请求序号大于上一次接收到的请求序号且为其相邻数、且所述请求类型为修改类型、且所述数字身份修改请求中所包括的所述数字身份标识对应的数字身份内容已保存在所述区块链***中、且所述第二签名密钥对编号对应的公钥存在于在所述区块链***中保存的与所述数字身份修改请求中包括的所述数字身份标识对应的数字身份内容中、且根据在区块链***中保存的与所述第二签名密钥对编号对应的所述公钥对所述第二数字签名验证通过的情况下,确定所述数字身份修改请求为合法请求。
在一种可能的实施方式中,所述装置100还包括第四接收模块,用于接收所述用户端发送的数字身份删除请求,所述数字身份删除请求中包括待删除数字身份的数字身份标识;第三确定模块,用于确定所述数字身份删除请求是否为合法请求;删除模块,用于在确定所述数字身份删除请求为合法请求的情况下,将所述区块链***中保存的与所述待删除数字身份的数字身份标识对应的数字身份内容标记为删除状态。
在一种可能的实施方式中,所述数字身份删除请求中还包括所述请求序号、所述请求类型、第三签名密钥对编号和第三数字签名,所述第三签名密钥对编号为用于对所述数字身份删除请求中除所述第三数字签名外的其他所有数据进行签名的密钥对在删除前的非对称密钥对信息中对应的密钥对编号,所述第三数字签名即为根据所述第三签名密钥对编号对应的密钥对对所述数字身份删除请求中除所述第三数字签名外的其他所有数据进行签名后所得到的加密数据,所述第三确定模块还用于:在确定所述请求序号大于零、且所述请求序号大于上一次接收到的请求序号且为其相邻数、且所述请求类型为删除类型、且所述数字身份删除请求中所包括的数字身份标识对应的数字身份内容已保存在所述区块链***中、且所述数字身份删除请求中所包括的所述第三签名密钥对编号对应的公钥存在于所述区块链***保存的该数字身份内容中、且根据在区块链***中保存的与所述第三签名密钥对编号对应的公钥对所述第三数字签名验证通过的情况下,确定所述数字身份删除请求为合法请求。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
图8是根据一示例性实施例示出的一种电子设备800的框图。该电子设备800可以为该区块链***中的任一区块链节点。如图8所示,该电子设备800可以包括:处理器801,存储器802。该电子设备800还可以包括多媒体组件803,输入/输出(I/O)接口804,以及通信组件805中的一者或多者。
其中,处理器801用于控制该电子设备800的整体操作,以完成上述的数字身份管理方法中的全部或部分步骤。存储器802用于存储各种类型的数据以支持在该电子设备800的操作,这些数据例如可以包括用于在该电子设备800上操作的任何应用程序或方法的指令,以及应用程序相关的数据,例如联系人数据、收发的消息、图片、音频、视频等等。该存储器802可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,例如静态随机存取存储器(Static Random Access Memory,简称SRAM),电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,简称EEPROM),可擦除可编程只读存储器(Erasable Programmable Read-Only Memory,简称EPROM),可编程只读存储器(Programmable Read-Only Memory,简称PROM),只读存储器(Read-Only Memory,简称ROM),磁存储器,快闪存储器,磁盘或光盘。多媒体组件803可以包括屏幕和音频组件。其中屏幕例如可以是触摸屏,音频组件用于输出和/或输入音频信号。例如,音频组件可以包括一个麦克风,麦克风用于接收外部音频信号。所接收的音频信号可以被进一步存储在存储器802或通过通信组件805发送。音频组件还包括至少一个扬声器,用于输出音频信号。I/O接口804为处理器801和其他接口模块之间提供接口,上述其他接口模块可以是键盘,鼠标,按钮等。这些按钮可以是虚拟按钮或者实体按钮。通信组件805用于该电子设备800与其他设备之间进行有线或无线通信。无线通信,例如Wi-Fi,蓝牙,近场通信(Near FieldCommunication,简称NFC),2G、3G、4G、NB-IOT、eMTC、或其他5G等等,或它们中的一种或几种的组合,在此不做限定。因此相应的该通信组件805可以包括:Wi-Fi模块,蓝牙模块,NFC模块等等。
在一示例性实施例中,电子设备800可以被一个或多个应用专用集成电路(Application Specific Integrated Circuit,简称ASIC)、数字信号处理器(DigitalSignal Processor,简称DSP)、数字信号处理设备(Digital Signal Processing Device,简称DSPD)、可编程逻辑器件(Programmable Logic Device,简称PLD)、现场可编程门阵列(Field Programmable Gate Array,简称FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述的数字身份管理方法。
在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,该程序指令被处理器执行时实现上述的数字身份管理方法的步骤。例如,该计算机可读存储介质可以为上述包括程序指令的存储器802,上述程序指令可由电子设备800的处理器801执行以完成上述的数字身份管理方法。
以上结合附图详细描述了本公开的优选实施方式,但是,本公开并不限于上述实施方式中的具体细节,在本公开的技术构思范围内,可以对本公开的技术方案进行多种简单变型,这些简单变型均属于本公开的保护范围。
另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合。为了避免不必要的重复,本公开对各种可能的组合方式不再另行说明。
此外,本公开的各种不同的实施方式之间也可以进行任意组合,只要其不违背本公开的思想,其同样应当视为本公开所公开的内容。