专利名称:证明生成方法及装置、电子设备、存储介质
专利类型:实用新型专利
专利申请号:CN202210179222.9
专利申请(专利权)人:蚂蚁区块链科技(上海)有限公司
权利人地址:上海市黄浦区外马路618号8层803室
专利发明(设计)人:林渝淇,魏长征
专利摘要:本说明书提供一种证明生成方法,包括:获取证明方的隐私数据和判断条件,所述证明方的声明中包含对所述隐私数据进行加密得到的密文数据;在第一证明生成条件被满足的情况下生成第一证明,第一证明生成条件包括接收到所述证明方发起的针对所述声明的第一证明生成请求、且验证过所述隐私数据和所述判断条件之间的关系匹配于所述证明方提供的第一判断结果,第一证明用于表明所述密文数据与所述判断条件之间的关系与第一判断结果相匹配;在接收到所述验证方发起的针对所述声明的第二证明生成请求的情况下生成第二证明,第二证明用于表明所述密文数据与所述判断条件之间的关系与所述验证方提供的第二判断结果相匹配。
主权利要求:
1.一种证明生成方法,应用于证明生成平台,包括:
获取证明方的隐私数据和针对所述隐私数据的判断条件;
在第一证明生成条件被满足的情况下生成第一证明,第一证明生成条件包括接收到所述证明方发起的针对所述证明方的声明的第一证明生成请求、且验证过所述隐私数据和所述判断条件之间的关系匹配于所述证明方提供的第一判断结果,第一证明用于在零知识证明算法的验证下向验证方表明所述声明中的密文数据与所述判断条件之间的关系与第一判断结果相匹配;其中,所述证明方的声明中包含对所述隐私数据进行加密得到的密文数据,所述声明为颁发方根据所述证明方的请求所颁发,所述声明用于表明所述证明方的隐私数据真实可靠;
在第二证明生成条件被满足的情况下生成第二证明,第二证明生成条件包括接收到所述验证方发起的针对所述声明的第二证明生成请求,第二证明用于在零知识证明算法的验证下表明所述声明中的密文数据与所述判断条件之间的关系与所述验证方提供的第二判断结果相匹配,所述声明与所述第二证明用于向除验证方以外的其他设备的使用者知悉所述验证方具备伪造证明的权限。
2.根据权利要求1所述的方法,还包括:
获取第二证明生成请求的请求方提供的私钥,并根据所述私钥生成相应的公钥;
在生成的公钥与验证方的公钥相同的情况下,确定所述请求方为所述验证方。
3.根据权利要求1所述的方法,还包括:
向所述证明方返回第一证明,以由所述证明方将第一证明提供至所述验证方;或者,获取所述证明方提供的所述验证方的接收地址,并将第一证明发送至所述接收地址,以使所述验证方获得第一证明。
4.根据权利要求1所述的方法,
所述声明中包含第二证明生成条件的信息;或者,第二证明生成条件为公开信息。
5.根据权利要求1所述的方法,所述声明包括可验证声明;所述方法还包括:响应于所述证明方发起的声明颁发请求,向区块链网络查询与所述声明颁发请求包含的去中心化标识符对应的公钥;
向所述证明方发送挑战消息,所述挑战消息用于指示所述证明方使用所述证明方的私钥对所述挑战消息中包含的挑战数据进行签名;
在使用查询到的公钥对所述证明方返回的挑战数据验签通过的情况下,生成包含所述密文数据和所述去中心化标识符的可验证声明,所述去中心化标识符用于表明所述可验证声明的接收方为所述证明方。
6.根据权利要求5所述的方法,还包括:
对所述证明方的隐私数据进行真实性校验;
在校验通过的情况下对所述隐私数据进行加密得到所述密文数据,以生成所述可验证声明。
7.根据权利要求1所述的方法,所述隐私数据包含所述证明方的明文隐私信息和随机字符串。
8.根据权利要求1所述的方法,还包括:
响应于第二证明生成请求,向所述验证方返回第二证明。
9.一种证明生成装置,应用于证明生成平台,包括:
获取单元,获取证明方的隐私数据和针对所述隐私数据的判断条件;
第一生成单元,在第一证明生成条件被满足的情况下生成第一证明,第一证明生成条件包括接收到所述证明方发起的针对所述证明方的声明的第一证明生成请求、且验证过所述隐私数据和所述判断条件之间的关系匹配于所述证明方提供的第一判断结果,第一证明用于在零知识证明算法的验证下向验证方表明所述声明中的密文数据与所述判断条件之间的关系与第一判断结果相匹配;其中,所述证明方的声明中包含对所述隐私数据进行加密得到的密文数据,所述声明为颁发方根据所述证明方的请求所颁发,所述声明用于表明所述证明方的隐私数据真实可靠;
第二生成单元,在第二证明生成条件被满足的情况下生成第二证明,第二证明生成条件包括接收到所述验证方发起的针对所述声明的第二证明生成请求,第二证明用于在零知识证明算法的验证下表明所述声明中的密文数据与所述判断条件之间的关系与所述验证方提供的第二判断结果相匹配,所述声明与所述第二证明用于向除验证方以外的其他设备的使用者知悉所述验证方具备伪造证明的权限。
10.一种电子设备,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器通过运行所述可执行指令以实现如权利要求1‑8中任一项所述的方法。
11.一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现如权利要求1‑8中任一项所述方法的步骤。 说明书 : 证明生成方法及装置、电子设备、存储介质技术领域[0001] 本说明书一个或多个实施例涉及数据处理技术领域,尤其涉及一种证明生成方法及装置、电子设备、存储介质。背景技术[0002] 出于对隐私保护的考虑,用户在使用自身隐私数据的同时,也希望隐私数据不被泄露。零知识证明(Zero‑KnowledgeProof)或零知识协议包括两部分:宣称某一命题为真的证明者(prover)和确认该命题确实为真的验证者(verifier);其中,证明者能够在不向验证者提供任何有用的信息的情况下,使验证者相信某个论断是正确的。[0003] 零知识证明实质上是一种涉及两方或更多方的协议,即两方或更多方完成一项任务所需采取的一系列步骤。证明者向验证者证明并使其相信自己知道或拥有某一消息,但证明过程不能向验证者泄漏任何关于被证明消息的信息,从而避免了泄露证明者的隐私。发明内容[0004] 有鉴于此,本说明书一个或多个实施例提供一种证明生成方法及装置、电子设备、存储介质。[0005] 为实现上述目的,本说明书一个或多个实施例提供技术方案如下:[0006] 根据本说明书一个或多个实施例的第一方面,提出了一种证明生成方法,包括:[0007] 获取证明方的隐私数据和针对所述隐私数据的判断条件,所述证明方的声明中包含对所述隐私数据进行加密得到的密文数据;[0008] 在第一证明生成条件被满足的情况下生成第一证明,第一证明生成条件包括接收到所述证明方发起的针对所述声明的第一证明生成请求、且验证过所述隐私数据和所述判断条件之间的关系匹配于所述证明方提供的第一判断结果,第一证明用于在零知识证明算法的验证下向验证方表明所述密文数据与所述判断条件之间的关系与第一判断结果相匹配;[0009] 在第二证明生成条件被满足的情况下生成第二证明,第二证明生成条件包括接收到所述验证方发起的针对所述声明的第二证明生成请求,第二证明用于在零知识证明算法的验证下表明所述密文数据与所述判断条件之间的关系与所述验证方提供的第二判断结果相匹配。[0010] 根据本说明书一个或多个实施例的第二方面,提出了一种证明生成装置,包括:[0011] 获取单元,获取证明方的隐私数据和针对所述隐私数据的判断条件,所述证明方的声明中包含对所述隐私数据进行加密得到的密文数据;[0012] 第一生成单元,在第一证明生成条件被满足的情况下生成第一证明,第一证明生成条件包括接收到所述证明方发起的针对所述声明的第一证明生成请求、且验证过所述隐私数据和所述判断条件之间的关系匹配于所述证明方提供的第一判断结果,第一证明用于在零知识证明算法的验证下向验证方表明所述密文数据与所述判断条件之间的关系与第一判断结果相匹配;[0013] 第二生成单元,在第二证明生成条件被满足的情况下生成第二证明,第二证明生成条件包括接收到所述验证方发起的针对所述声明的第二证明生成请求,第二证明用于在零知识证明算法的验证下表明所述密文数据与所述判断条件之间的关系与所述验证方提供的第二判断结果相匹配。[0014] 根据本说明书一个或多个实施例的第三方面,提出了一种电子设备,包括:[0015] 处理器;[0016] 用于存储处理器可执行指令的存储器;[0017] 其中,所述处理器通过运行所述可执行指令以实现如第一方面所述的方法。[0018] 根据本说明书一个或多个实施例的第四方面,提出了一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现如第一方面所述方法的步骤。附图说明[0019] 图1是一示例性实施例提供的一种证明生成方法的流程图。[0020] 图2是一示例性实施例提供的创建DID的交互图。[0021] 图3是一示例性实施例提供的颁发可验证声明的交互图。[0022] 图4是一示例性实施例提供的另一种证明生成方法的流程图。[0023] 图5是一示例性实施例提供的验证证明方的交互图。[0024] 图6是一示例性实施例提供的一种设备的结构示意图。[0025] 图7是一示例性实施例提供的一种证明生成装置的框图。具体实施方式[0026] 这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书一个或多个实施例相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书一个或多个实施例的一些方面相一致的装置和方法的例子。[0027] 需要说明的是:在其他实施例中并不一定按照本说明书示出和描述的顺序来执行相应方法的步骤。在一些其他实施例中,其方法所包括的步骤可以比本说明书所描述的更多或更少。此外,本说明书中所描述的单个步骤,在其他实施例中可能被分解为多个步骤进行描述;而本说明书中所描述的多个步骤,在其他实施例中也可能被合并为单个步骤进行描述。[0028] 请参见图1,图1是一示例性实施例提供的一种证明生成方法的流程图。如图1所示,该方法应用于证明生成平台,可以包括以下步骤:[0029] 步骤102,获取证明方的隐私数据和针对所述隐私数据的判断条件,所述证明方的声明中包含对所述隐私数据进行加密得到的密文数据。[0030] 在本实施例中,用户作为证明者可在所使用的客户端上登录自身的用户账号,从而使得该客户端作为证明方,验证方和颁发方的概念与此类似。证明方可向颁发方请求颁发记录有证明方真实的隐私信息的声明,颁发方首先对隐私信息进行真实性校验,从而在真实性校验通过后向证明方颁发该声明。换言之,由颁发方作为可信平台为证明方背书,通过颁发声明以表明证明方的隐私信息真实可靠。以VC(VerifiableClaim,可验证声明)为例,可通过DIS(DecentralizedIdentifierService,去中心化的身份服务)来为各个用户创建身份。DIS可为用户提供不受任何单一注册中心、身份服务商或者认证中心限制的,完全由用户自身控制的DID(DecentralizedIdentifier,去中心化身份标识符)。DID可作为一个实体的标识,而对于该实体拥有哪些权限、能力、行为甚至资产等具体信息,则可通过VC来表示。VC是颁发方使用自身的分布式数字身份(DID)给用户的DID的某些属性做背书而签发的描述性声明,并附加有颁发方的数字签名。那么,用户可通过向其他用户提供自身的VC,从而向该其他用户证明VC中记录的关于自身的属性信息为真实可靠的。[0031] 声明中记录有持有该声明的用户的属性信息,而属性信息通常为用户的隐私信息,若声明中记录的隐私信息为明文形式,则用户在向其他用户提供自身的声明时存在暴露隐私信息的风险。因此,可对采用分布式数字身份的用户所持有声明中记录的隐私信息进行保护,从而使得隐私信息“可用不可见”。[0032] 具体而言,证明方可向颁发方请求颁发记录有证明方真实的隐私信息的声明,颁发方在向证明方颁发相应的声明时,可对所颁发的声明中记录的隐私信息进行加密处理,从而实现对证明方的隐私保护。同时,可结合零知识证明技术来保证声明中所记录持有者的隐私信息不被泄露的前提下,仍然可用于描述该隐私信息(证明该隐私信息真实有效),即使得声明中的隐私信息“可用不可见”。[0033] 零知识证明技术中包含加密算法、证明生成算法和证明验证算法。其中,加密算法用于对证明方的隐私数据进行加密,由于隐私数据为密文形式,需要采用与该加密算法相匹配的证明生成算法来生成相应的证明,该证明可表明证明方的隐私数据(密文形式)符合针对该隐私数据设定的判断条件(可理解为判断隐私数据是否通过验证的验证通过条件),而对于该证明,则可通过与上述证明生成算法相匹配的证明验证算法来进行验证,确定该证明表明的内容是否正确。简而言之,在加密隐私数据、生成证明、验证证明的过程中,零知识证明技术包含的上述三类算法之间为相互对应的关系。[0034] 举例而言,用户A的隐私数据包含年龄信息,而针对年龄设定的判断条件为“年龄满18周岁”。那么,用户A可向声明的颁发者(比如,民政局、公安机关等可信机构)提供自身的年龄信息,由颁发者在对年龄信息进行真实性校验并校验通过后,向用户A颁发相应的声明,该声明中记录有密文形式的年龄信息。用户A在获取声明后,可针对声明中的年龄信息生成用于表明“年龄满18周岁”的证明,并向验证者(比如,对于所出售商品具有年龄限制的商店)提供声明和证明,以由验证者基于声明和证明来判断用户A是否年满18周岁。其中,用户A、颁发者和验证者之间预先协商确定了各自使用的算法,即用户A使用的证明生成算法、颁发者使用的加密算法和验证者使用的证明验证算法之间互相匹配。[0035] 而对于零知识证明技术,可采用同态特性的承诺算法(Commitment)或者同态加密(HomomorphicEncryption)算法等。为了方便描述,以记号HE()表示同态承诺/加密算法,对于明文t,其密文形式为HE(t)。同态承诺/加密是一种特殊的加密方法,允许对密文进行处理得到仍然是加密的结果,即对密文直接进行处理,与对明文进行处理后再对处理结果加密得到的结果相同。以加法同态为例,HE(t1)+HE(t2)=HE(t1+t2)。同态承诺算法包括Pedersen承诺等,同态加密算法包括Paillier算法、Gentry算法、Okamoto–Uchiyama同态加密和Boneh‑Goh‑Nissim同态加密等等;当然,本说明书并不对所采用的加密算法进行限制;比如,还可采用哈希算法。相应的,范围证明技术是密码学领域的一种安全的证明协议,可用于证明一个数字在某一合理区间并且不泄露该数字的具体数值等信息。例如,Borromean环签名方案、Bulletproof方案、zkSNARK等零知识证明技术均可用于范围证明。[0036] 基于上述同态的特点,以转账为例,出于交易隐私保护的目的,可以通过同态加密或同态承诺技术对交易金额进行保护,以及利用范围证明技术保证交易额非负且账户余额足够支付(通过生成用于表明交易额非负且账户余额足够支付的范围证明)。[0037] 在本实施例中,证明生成平台可作为上述颁发方来向证明方颁发包含密文数据的声明。同样以VC为例,证明方采用DID来表明自身的身份,并通过向证明生成平台发起声明颁发请求来指示证明生成平台颁发VC,该声明颁发请求中包含证明方DID。证明生成平台在接收到声明颁发请求后,先对证明方DID进行验证,向区块链网络查询与声明颁发请求包含的DID对应的公钥;然后,向所述证明方发送挑战消息,该挑战消息用于指示证明方使用证明方的私钥对挑战消息中包含的挑战数据进行签名。证明生成平台在获取证明方返回的挑战数据后,使用从区块链网络查询到的公钥对该挑战数据进行签名验证(验签),以在验签通过的情况下,判定证明方DID为证明方所持有的DID,进而生成包含密文数据和证明方DID中心化标识符的可验证声明,通过在可验证声明中记录证明方DID,使得该证明方DID可表明可验证声明的接收方为上述证明方。[0038] 其中,证明生成平台在生成可验证声明之前,可先对证明方的隐私数据进行真实性校验,从而在校验通过的情况下对隐私数据进行加密得到密文数据,进而生成可验证声明。通过对证明方的隐私数据进行真实性校验,可确保生成的可验证声明真实可靠。[0039] 在本实施例中,在对证明方的明文隐私信息进行加密时,可将随机字符串作为掩码来提高加密得到的密文数据的随机性,从而防止密文数据被暴力破解。比如,明文隐私信息为年龄,采用的加密算法为哈希运算,由于年龄的数值范围较小,若直接对年龄进行哈希运算,则生成的密文数据的总数量则相应较少,那么容易被暴力破解,从而泄露用户的年龄隐私。因此,可(由证明方生成并提供至证明生成平台,或者由证明生成平台生成)生成一随机字符串,将该随机字符串与明文隐私信息进行拼接得到隐私数据,然后再对该隐私数据进行加密得到密文数据。换言之,本实施例中的隐私数据包含证明方的明文隐私信息和随机字符串。[0040] 进一步的,证明生成平台在向证明方颁发VC之前,可对证明方提供的明文隐私信息进行真实性校验,从而在真实性校验通过的情况下生成原始可验证声明,该原始可验证声明中包含明文隐私信息、随机字符串和密文数据。然后,证明方可获取证明生成平台在验证明文隐私信息通过的情况下生成的原始可验证声明,并删除原始可验证声明中的明文隐私信息和随机字符串以得到可验证声明,该可验证声明则是后续可提供至验证方进行验证的可验证声明。需要说明的是,本说明书并不对上述真实性校验操作的具体方式进行限制。[0041] 其中,基于零知识证明技术的加密算法以及相应的证明生成算法和证明验证算法可存在多组,即每组算法包括相互匹配的加密算法、证明生成算法和证明验证算法。或者,证明生成平台、证明方和验证方并未预先协商何种基于零知识证明技术的算法。针对上述情况,证明生成平台在生成原始可验证声明的过程中,在原始可验证声明中记录与自身所采用的加密算法相匹配的证明生成算法和证明验证算法的算法标识,以指示相应的用户采用与算法标识对应的算法。具体而言,可验证声明包含证明生成算法的第一算法标识,第一算法标识用于指示证明方根据第一算法标识确定出相应的证明生成算法;和/或,可验证声明包含证明验证算法的第二算法标识,第二算法标识用于指示验证方根据第二算法标识确定出证明验证算法。[0042] 而在证明生成平台生成原始可验证声明的过程中,证明生成平台可对原始可验证声明中区别于明文隐私信息和随机字符串的第一声明内容(包含声明证明生成平台、声明接收方、声明过期时间、声明颁发时间等,下文将详细进行说明)进行签名得到第一签名,并将第一签名记录在原始可验证声明中。换言之,原始可验证声明中包含证明生成平台针对原始可验证声明中第一声明内容的第一签名,证明生成平台通过第一签名为证明方背书。基于原始可验证声明中包含证明生成平台的第一签名,那么验证方判定证明方验证通过的前提条件包括与可验证声明对应的证明验证通过且第一签名验证通过。[0043] 除此之外,证明生成平台可对原始可验证声明中的第二声明内容(至少包括明文隐私信息和随机字符串)进行签名得到第二签名,并将第二签名记录在原始可验证声明中,即原始可验证声明中包含证明生成平台针对原始可验证声明中第二声明内容的第二签名。那么,证明方在获取到原始可验证声明后,可对原始可验证声明中包含的第二签名进行签名验证,以在第二签名验证通过的情况下(表明该原始可验证声明由证明生成平台生成并且未被篡改)生成上述可验证声明。[0044] 在本实施例中,证明生成平台在生成可验证声明后,还可用于响应证明生成请求来生成相应的证明,因此证明方可向证明生成平台提供相关数据(比如记录于证明生成请求中,或者通过区别于证明生成请求的其他请求来提供),以指示证明生成平台生成用于表明证明方所持有声明中记录的隐私数据满足一定条件的证明。具体而言,证明生成平台可将隐私数据、判断条件(可由验证方设定或提供)以及用于表明该隐私数据符合判断条件的判断结果输入证明生成算法以生成对应于可验证声明的证明,该证明用于表明该可验证声明中记录的密文数据符合判断条件。[0045] 承接于上述举例,用户A的年龄为25岁,验证方针对年龄设定的判断条件为“年龄满18周岁”,由于25岁>18岁,判断结果为“是”,即判断结果为用户A的年龄符合判断条件“年龄满18周岁”。因此,证明生成平台可将“用户A的年龄25岁”、“年龄满18周岁”以及判断结果为“是”输入证明生成算法,以生成对应于可验证声明的证明。[0046] 步骤104,在第一证明生成条件被满足的情况下生成第一证明,第一证明生成条件包括接收到所述证明方发起的针对所述声明的第一证明生成请求、且验证过所述隐私数据和所述判断条件之间的关系匹配于所述证明方提供的第一判断结果,第一证明用于在零知识证明算法的验证下向验证方表明所述密文数据与所述判断条件之间的关系与第一判断结果相匹配。[0047] 在本实施例中,基于上述生成可验证声明和相应证明的方式,证明方可向验证方提供可验证声明和相应的证明,由验证方根据该证明来判断可验证声明中记录的密文数据与判断条件之间的关系是否与判断结果相匹配,即判断可验证声明中记录的密文数据是否满足判断条件。可见,通过证明方持有的可验证声明和相应的证明可以确定出证明方的隐私信息是否满足一定条件,即可验证声明和相应的证明体现了“证明方的隐私信息是否满足一定条件”这一信息,而该信息同样属于证明方的隐私,同时可验证声明和相应的证明存在被验证方转发至其他用户的可能,那么其他用户也就可能获取该隐私,导致证明方的隐私泄露。[0048] 下面以用户的角度进行举例说明,证明者通常只希望指定的验证者来验证可验证声明和相应的证明,而不希望该验证者将声明和证明泄漏。比如,证明者a持有的可验证声明和相应的证明共同表明“证明者a的年龄大于18周岁”,同时证明者a只希望目标商户b验证通过后进行后续交易。在该情况下,当目标商户b获取证明者a的可验证声明和相应证明后,目标商户b可以将可验证声明和相应证明转发至商户c,那么商户c通过可验证声明和相应证明也可以获取“证明者a的年龄大于18周岁”这一信息(该信息真实可靠),也就意味着目标商户b泄露了证明者a的隐私。[0049] 针对上述验证方存在泄露证明方隐私的问题,本说明书在上述证明生成方案的基础上,进一步向验证方开放可请求“伪造”与证明方持有的可验证声明对应的证明的权限,并且为验证方“伪造”的证明与证明方请求生成的证明类似,同样可用于表明相应的可验证声明中记录的密文数据(对应的隐私数据)与判断条件之间的关系。由于验证方也具备指示证明生成平台生成证明的权限,那么,验证方存在作恶的可能,即对于验证方请求生成的证明与证明方请求生成的证明,两者所表明的可验证声明中密文数据与判断条件之间的关系可能不同(当然,也可能相同)。比如,证明方请求生成的证明用于表明密文数据与判断条件之间的关系与第一判断结果相匹配,验证方请求生成的证明用于表明密文数据与判断条件之间的关系与第二判断结果相匹配,若验证方设定的第二判断结果与第一判断结果不一致,则说明验证方“伪造”了证明。[0050] 那么,当验证方向其他设备转发可验证声明和相应的证明时,由于验证方具备“伪造”证明的可能,导致其他设备无法确定从验证方处获取到的证明的真实性(无法确定是否与证明方提供的第一证明相同),那么根据验证方提供的可验证声明和相应证明确定出的“证明方的隐私信息是否满足判断条件”这一信息也就不一定真实可靠,即真实性存疑。通过上述向验证方开发伪造证明权限的方式,使得验证方无法保证转发至其他设备的证明的真实性,即验证方转发的证明不可信,从而降低了验证方泄露隐私的风险。[0051] 为了便于描述,本说明书将证明方向证明生成平台发起的证明生成请求称为第一证明生成请求,将验证方向证明生成平台发起的证明生成请求称为第二证明生成请求。相应的,证明生成平台响应于第一证明生成请求而生成的证明称为第一证明,证明生成平台响应于第二证明生成请求而生成的证明称为第二证明。当然,上述“第一”、“第二”的描述仅用于将证明方和验证方发起的证明生成请求区分开;比如,还可将证明方向证明生成平台发起的证明生成请求称为第二证明生成请求,将验证方向证明生成平台发起的证明生成请求称为第一证明生成请求,本说明书并不对此进行限制。[0052] 需要注意的是,第一证明生成请求由证明方发起,用于指示证明生成平台生成正确的证明,因此证明生成平台在接收到第一证明生成请求后,需验证隐私数据和判断条件之间的关系是否匹配于证明方提供的第一判断结果,以在隐私数据和判断条件之间的关系匹配于第一判断结果的情况下生成第一证明。而对于验证方发起的第二证明生成请求,由于向验证方开放了“伪造”与证明方持有的可验证声明对应的证明的权限,无需验证密文数据与判断条件之间的关系是否与验证方提供的第二判断结果相匹配。因此,证明生成平台在接收到验证方发起的第二证明生成请求的情况下,直接生成第二证明即可。[0053] 步骤106,在第二证明生成条件被满足的情况下生成第二证明,第二证明生成条件包括接收到所述验证方发起的针对所述声明的第二证明生成请求,第二证明用于在零知识证明算法的验证下表明所述密文数据与所述判断条件之间的关系与所述验证方提供的第二判断结果相匹配。[0054] 在本实施例中,证明生成平台在生成第二证明之后,可响应于第二证明生成请求,向验证方返回第二证明,使得验证方持有自身请求生成的证明。[0055] 在本实施例中,“伪造”证明的权限仅对验证方开放,因此证明生成平台在接收到第二证明生成请求时,需对第二证明生成请求的请求方进行身份验证。其中,可通过验证方的非对称密钥来确认验证方的身份。比如,预先在证明生成平台配置验证方的公钥,在接收到第二证明生成请求的情况下,可获取第二证明生成请求的请求方提供的私钥(比如,包含于第二证明生成请求,或者通过其他请求提供),并根据该私钥生成相应的公钥,从而在生成的公钥与验证方的公钥相同的情况下,确定请求方为验证方。[0056] 在本实施例中,证明生成平台可向证明方返回第一证明,以由证明方将第一证明提供至验证方,那么验证方可根据证明方的可验证声明和第一证明完成验证过程。或者,证明生成平台可获取证明方提供的验证方的接收地址,并将第一证明发送至该接收地址,以使验证方获得第一证明,进而根据证明方的可验证声明和第一证明完成验证过程。[0057] 在本实施例中,为了使得除验证方以外的其他设备的使用者充分知悉验证方具备“伪造”证明的权限,从而质疑验证方所提供证明的真实性,可在证明方的声明中记录上述第二证明生成条件的信息,或者将第二证明生成条件设定为公开信息。比如,可在证明方的声明中记录第二证明生成条件的标识,那么其他设备可通过该标识查询第二证明生成条件以供使用者进行查看;或者,直接在证明方的声明中记录第二证明生成条件的内容。又如,可将第二证明生成条件的内容公布在官方网站中以供公众查看。当然,本说明书并不对如何公布第二证明生成条件的具体实现方式进行限制。[0058] 为了便于理解,下面结合附图2‑5对本说明书的技术方案进行详细说明。[0059] 图2是一示例性实施例提供的创建DID的交互图。如图2所示,该交互过程可以包括以下步骤:[0060] 步骤202,证明方创建DID、对应于DID的密钥对和相应的DID文档。[0061] 在本实施例中,用户作为证明者可在所使用的客户端上登录自身的用户账号,从而使得该客户端作为证明方。其中,可通过DIS(DecentralizedIdentifierService,去中心化的身份服务)来为各个用户创建身份,DIS可为用户提供不受任何单一注册中心、身份服务商或者认证中心限制的,完全由用户自身控制的DID(DecentralizedIdentifier,去中心化身份标识符)。以为证明方创建DID为例,与证明方DID对应的密钥对包括公钥和私钥,公钥需发布至区块链进行存证,而与证明方DID对应的私钥则由证明方保管,比如保存于上述客户端本地。[0062] 在DIS系统中,一个DID(DecentralizedIdentifier,去中心化身份标识符)对应一个实体(比如,VC的颁发者、证明者、验证者等用户),而针对该DID的具体使用方式,则由与该DID对应的DID文档(DIDDocument)描述。DID文档用于描述如何使用相应的DID,至少包含相应DID的公钥;除此之外,还可记录加密方式、证明目的、验证方法和服务端等信息。其中,证明目的与验证方法相结合,以提供证明事物的机制。例如,DID文档可以指定特定的验证方法,例如密码公钥或化名生物特征协议,可以用于验证为目的而创建的方法。服务端点支持与DID控制器的可信交互。DID和DID文档可直接登记在区块链或其他分布式网络上,而无需向中心化注册机构申请,通过利用区块链等分布式网络技术的不可篡改、哈希加密等特性,可实现让数字身份真正为用户所拥有并支配,而不再有任何中间人(即使是DID技术供应商)接触拥有控制用户的身份和数据。[0063] 步骤204,证明方创建一笔用于存证DID和DID文档的交易。[0064] 步骤206,证明方向区块链网络提交该用于存证DID和DID文档的交易。[0065] 步骤208,区块链网络在区块链上存证DID和DID文档。[0066] 步骤210,证明方向区块链网络获取创建DID成功的回执。[0067] 在本实施例中,区块链网络在存证DID和DID文档之后,可生成用于记存证DID和DID文档成功的事件,并存储到区块链日志中。那么,证明方可通过区块链的回调机制来获取该事件,从而确定出在区块链上已存证DID和DID文档,也即证明方创建DID成功。或者,还可生成相应的提示消息以供证明方查看,以告知证明方链上创建DID成功。[0068] 图3是一示例性实施例提供的颁发可验证声明的交互图。如图3所示,该交互过程可以包括以下步骤:[0069] 步骤302,证明方创建声明颁发请求(包含证明方DID、明文隐私信息和证明者的身份信息)。[0070] 步骤304,证明方向颁发方发送声明颁发请求。[0071] 步骤306,颁发方读取声明颁发请求中包含的证明方DID。[0072] 步骤308,颁发方向区块链网络发起针对证明方DID的查询交易。[0073] 步骤310,区块链网络响应于查询交易,查询与证明方DID对应的DID文档。[0074] 步骤312,区块链网络向颁发方返回查询到的DID文档。[0075] 步骤314,颁发方向证明方发送DID认证挑战消息(包含挑战数据)。[0076] 在本实施例中,由上述图2创建DID的过程可知,证明方DID的DID文档中记录有与证明方DID对应的公钥,那么可利用该公钥来验证声明颁发请求中的证明方DID是否为证明方实际持有的DID,也即验证证明方是否为声明颁发请求中证明方DID的合法owner。[0077] 颁发方可随机生成一挑战数据(比如为字符串),并将该挑战数据通过DID认证挑战消息(DIDauthchallenge)发送至证明方,以指示证明方通过自身的私钥(即与证明方DID对应的私钥)对其进行签名,并返回挑战数据和签名。那么,颁发方可采用DID文档中的公钥对签名进行签名验证,进而在签名验证通过的情况下,确认证明方为声明颁发请求中记录的证明方DID的合法owner。[0078] 步骤316,证明方通过与证明方DID对应的私钥对挑战数据进行签名。[0079] 步骤318,证明方向颁发方返回挑战数据。[0080] 步骤320,颁发方采用DID文档中的公钥进行签名验证。[0081] 在本实施例中,除上述通过发送DID认证挑战消息的方式以外,还可采用在声明颁发请求中添加签名的方式。具体而言,证明方在创建的声明颁发请求中添加针对声明颁发请求中内容的签名,颁发方可在获取到DID文档后,采用DID文档中记录的公钥对声明颁发请求中的签名进行签名验证,从而确认证明方为声明颁发请求中记录的证明方DID的合法owner。[0082] 步骤322,颁发方在签名验证通过的情况下对明文隐私信息进行真实性校验。[0083] 在本实施例中,在创建声明颁发请求时,可在声明颁发请求中记录证明者的身份信息以作为颁发方对明文隐私信息进行真实性校验的依据。那么,在完成对证明方DID的验证后,可进一步根据声明颁发请求中记录的证明者的身份信息,对明文隐私信息进行真实性校验。例如,证明者的身份信息可包括证明者的身份证号码、籍贯、出生年月、户口信息等,那么颁发方(比如民政局或者公安机关)可根据上述身份信息对证明者的年龄进行真实性校验。[0084] 步骤324,颁发方在校验通过的情况下,采用加密算法对明文隐私信息和随机字符串加密得到密文数据,生成针对密文数据的原始可验证声明。[0085] 在本实施例中,DID是一个实体的标识,而该实体拥有哪些权限、能力、行为和资产等具体信息,则通过VC来表达。需要注意的是,一个DID可以拥有一个或多个VC。比如,VC中可包含以下字段:[0086] issuer:声明颁发者(颁发方);[0087] subject:声明接收者(颁发对象)的DID;[0088] expire:声明过期时间;[0089] issuancedate:声明颁发时间;[0090] claim:声明内容;[0091] proof:有效性证明(区别于上述证明方生成的证明)。[0092] 颁发方可生成一随机字符串(或者由证明方生成并提供至颁发方),然后与明文隐私信息进行拼接,以采用加密算法对拼接后的字符串进行加密得到密文数据。其中,颁发方可在issuer中记录自身的DID(即颁发方DID),在didsubject中记录证明方DID,在expire中记录声明过期时间,在issuancedate中记录颁发VC的时刻,在claim中记录明文隐私信息、随机字符串和密文数据。具体而言,可将claim字段扩展为进一步包含plaintext、random和commitment。plaintext用于记录明文隐私信息,比如age;random用于记录随机字符串,commitment用于记录密文数据。[0093] 而为了证明VC是由颁发方所颁发的,一方面,颁发方可采用自身的私钥对该VC中除明文隐私信息和随机字符串以外的其他声明内容(即第一声明内容,包含密文数据)进行签名得到第一签名,并将第一签名记录在proof中,比如记录于proof的zkpsignaturevalue字段中;另一方面,颁发方可采用自身的私钥对至少包括明文隐私信息和随机字符串的声明内容(即第二声明内容)进行签名得到第二签名,并将第二签名记录在proof中,比如记录于proof的signaturevalue字段中。[0094] 举例而言,原始可验证声明的内容如下:[0095][0096][0097] 除此之外,基于零知识证明技术的加密算法以及相应的证明生成算法和证明验证算法可存在多组,即每组算法包括相互匹配的加密算法、证明生成算法和证明验证算法。或者,颁发方、证明方和验证方并未预先协商何种基于零知识证明技术的算法。针对上述情况,颁发方在生成原始可验证声明的过程中,可在原始可验证声明中记录与自身所采用的加密算法相匹配的证明生成算法和证明验证算法的算法标识,以指示相应的用户采用与算法标识对应的算法。当然,若颁发方、证明方和验证方之间预先协商了采用何种基于零知识证明技术的算法,在无需记录上述算法标识。[0098] 需要说明的是,上述针对VC中所包含字段的描述,仅仅为一举例,在实际应用中可根据实际情况灵活调整。[0099] 步骤326,颁发方向证明方返回原始可验证声明。[0100] 在本实施例中,证明方在获取原始可验证声明后,可分别对第一签名和第二签名进行签名验证,从而在签名验证均通过的情况下执行后续步骤。[0101] 步骤328,证明方删除原始可验证声明中的明文隐私信息和随机字符串,得到最终的可验证声明。[0102] 在本实施例中,为了保证VC中所记录持有者的隐私信息不被泄露的前提下,仍然可用于描述该隐私信息(证明该隐私信息真实有效),可将从颁发方处获取到的VC中的plaintext字段和random字段删除(也可将第二签名删除),从而得到最终可使用的VC。[0103] 承接于上述举例,最终的可验证声明的内容如下:[0104][0105][0106] 图4是一示例性实施例提供的另一种证明生成方法的流程图。如图4所示,该方法应用于证明生成平台,可以包括以下步骤:[0107] 步骤402,接收证明方发起的第一证明生成请求。[0108] 在本实施例中,证明方通过第一证明生成请求指示证明生成平台生成第一证明;其中,第一证明生成请求中可包含证明方的隐私数据、针对隐私数据的判断条件和第一判断结果。当然,隐私数据还可由证明方通过其他途径上传至证明生成平台,判断条件还可由验证方设定并上传至证明生成平台。比如,在由证明生成平台向证明方颁发可验证声明的情况下,在颁发过程中证明生成平台可获取到隐私数据。[0109] 步骤404,若第一判断结果验证通过,则转入步骤406;否则,转入步骤412。[0110] 在本实施例中,由于第一证明生成请求由证明方发起,用于指示证明生成平台生成正确的证明,因此证明生成平台在接收到第一证明生成请求后,需验证隐私数据和判断条件之间的关系是否匹配于证明方提供的第一判断结果,以在隐私数据和判断条件之间的关系匹配于第一判断结果的情况下生成第一证明。[0111] 举例而言,用户A的年龄(明文隐私信息)为25岁,验证方针对年龄设定的判断条件为“年龄满18周岁”,由于25岁>18岁,第一判断结果为“是”,即用户A的年龄满18周岁。证明生成平台在接收到第一证明生成请求后,需验证“用户A的年龄25岁”和“年龄满18周岁”之间的关系是否匹配于第一判断结果“用户A的年龄满18周岁”。[0112] 步骤406,生成第一证明。[0113] 承接于上述图3示出的实施例,证明方的隐私数据包含明文隐私信息和随机字符串。证明生成平台可将明文隐私信息、随机字符串、判断条件和第一判断结果输入证明生成算法生成证明。例如,随机字符串为h@$fwehdu,证明生成平台可先将明文隐私信息“用户A的年龄25岁”和随机字符串“h@$fwehdu”进行拼接,再将拼接得到的字符串、判断条件“年龄满18周岁”以及判断结果“是”输入证明生成算法,以生成对应于可验证声明的第一证明,该第一证明可用于在证明验证算法的验证下表明该可验证声明中的密文数据记录的年龄(用户A的年龄)满18周岁。[0114] 步骤408,若接收到第二证明生成请求,则转入步骤410;否则,转入步骤412。[0115] 步骤410,根据验证方的私钥生成相应的公钥。[0116] 步骤412,结束证明生成操作。[0117] 步骤414,若生成的公钥与验证方的公钥相同,则转入步骤416;否则,转入步骤418。[0118] 在本实施例中,证明生成平台向验证方开放了“伪造”与证明方持有的可验证声明对应的证明的权限,那么只要验证方发起第二证明生成请求,就响应于该第二证明生成请求而生成第二证明,无需验证密文数据与判断条件之间的关系是否与验证方提供的第二判断结果相匹配。[0119] “伪造”证明的权限仅对验证方开放,因此证明生成平台在接收到第二证明生成请求时,需对第二证明生成请求的请求方进行身份验证。其中,可通过验证方的非对称密钥来确认验证方的身份。比如,验证方可先采用非对称加密算法生成自身的私钥,然后根据私钥生成相应的公钥,并向证明生成平台提供该公钥,即预先在证明生成平台配置验证方的公钥。那么,证明生成平台在接收到第二证明生成请求的情况下,可获取第二证明生成请求的请求方提供的私钥(比如,包含于第二证明生成请求,或者通过其他请求提供),并根据该私钥生成相应的公钥,从而在生成的公钥与验证方的公钥相同的情况下,确定请求方为验证方。其中,可采用KDF(Keyderivationfunction,密钥推导函数)算法、RSA算法、ECC(椭圆曲线密码学(ellipticcurvecryptography,椭圆曲线加密)和DSA(DigitalSignatureAlgorithm,数字签名算法)等非对称加密算法;当然,本说明书并不对此进行限制。[0120] 又如,可预先在证明生成平台配置验证方的公钥,请求方通过自身的私钥对第二证明生成请求进行签名,那么证明生成平台在接收到第二证明生成请求的情况下,可采用验证方的公钥对第二证明生成请求的签名进行验签,以在验签通过的情况下确定请求方为验证方。当然,还可采用其他任意用于身份验证的方式,本说明书并不对此进行限制。[0121] 步骤416,生成第二证明。[0122] 针对验证方存在泄露证明方隐私的问题,证明生成平台向验证方开放可请求“伪造”与证明方持有的可验证声明对应的证明的权限,并且为验证方“伪造”的证明与证明方请求生成的证明类似,同样可用于表明相应的可验证声明中记录的密文数据(对应的隐私数据)与判断条件之间的关系。由于验证方也具备指示证明生成平台生成证明的权限,那么,验证方存在作恶的可能,即对于验证方请求生成的证明与证明方请求生成的证明,两者所表明的可验证声明中密文数据与判断条件之间的关系可能不同(当然,也可能相同)。[0123] 承接于上述举例,验证方提供的第二判断结果为“否”,即未满18周岁。进一步的,证明生成平台可生成对应于可验证声明的第二证明,该第二证明可用于在证明验证算法的验证下表明该可验证声明中的密文数据记录的年龄(用户A的年龄)未满18周岁,而实际上可验证声明中的密文数据记录的年龄满18周岁,即验证方“伪造”了证明。[0124] 那么,当验证方向其他设备转发可验证声明和相应的证明时,由于验证方具备“伪造”证明的可能,导致其他设备无法确定从验证方处获取到的证明的真实性(无法确定是否与证明方提供的第一证明相同),那么根据验证方提供的可验证声明和相应证明确定出的“证明方的隐私信息是否满足判断条件”这一信息也就不一定真实可靠,即真实性存疑。通过上述向验证方开发伪造证明权限的方式,使得验证方转发的证明不可信,那么即便验证方将证明转发至其他设备,其他设备也对验证方转发的证明存在质疑,无法将根据可验证声明和该证明确定出的“证明方的隐私信息是否满足判断条件”这一信息作为可信的隐私信息来使用,从而降低了验证方泄露隐私的风险。[0125] 步骤418,输出身份验证失败消息。[0126] 图5是一示例性实施例提供的验证证明方的交互图。如图5所示,该交互过程可以包括以下步骤:[0127] 步骤502,证明方创建验证请求(包含证明方DID)。[0128] 步骤505,证明方向验证方发送验证请求。[0129] 步骤506,验证方验证证明方DID。[0130] 基于证明方通过DID来表示自身的身份标识,证明方需要向验证方提供证明方DID,以由验证方验证证明方DID,即验证证明方为所提供的证明方DID的合法owner。其中,验证证明方DID的过程可参考上述图3中的步骤308‑320,在此不再赘述。[0131] 步骤508,证明方向验证方发送可验证声明和相应的证明(第一证明)。[0132] 在本实施例中,证明方需要向验证方证明自身的隐私信息符合验证方设定的判断条件,那么需要向验证方提供上述图3示出实施例中获取到的VC和相应的证明(第一证明)。[0133] 步骤510,验证方验证可验证声明。[0134] 在本实施例中,验证方可通过颁发方的公钥来对可验证声明中的第一签名进行签名验证,从而验证可验证声明的数据完整性(是否被篡改)以及是否由颁发方颁发。其中,由于可验证声明的issuer字段中记录有颁发方DID,可根据颁发方DID向区块链网络查询颁发方公钥,具体过程与上述步骤306‑312类似,在此不再赘述。[0135] 步骤512,验证方验证证明。[0136] 在本实施例中,验证方可通过证明验证算法和证明来对可验证声明中的密文数据进行验证,确定该密文数据是否符合判断条件。由于第一证明为正确的证明,那么验证方可在证明验证算法的验证下确定出该密文数据与判断条件之间的关系与第一判断结果相匹配。其中,在证明验证通过且第一签名验证通过的情况下,可判定证明方验证通过。[0137] 步骤514,验证方判定证明方验证通过,执行针对证明方的相关业务操作。[0138] 步骤516,验证方向证明方返回业务操作的执行结果。[0139] 以网吧验证用户A是否年满18周岁为例,在判定用户A验证通过后,网吧的验证方可为用户A生成支付订单,并向用户A的客户端返回支付订单的信息。[0140] 与上述方法实施例相对应,本说明书还提供了一种证明生成装置的实施例。[0141] 图6是一示例性实施例提供的一种设备的示意结构图。请参考图6,在硬件层面,该设备包括处理器602、内部总线604、网络接口606、内存608以及非易失性存储器610,当然还可能包括其他业务所需要的硬件。处理器602从非易失性存储器610中读取对应的计算机程序到内存608中然后运行,在逻辑层面上形成证明生成装置。当然,除了软件实现方式之外,本说明书一个或多个实施例并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。[0142] 请参考图7,在一软件实施方式中,该证明生成装置可以包括:[0143] 获取单元71,获取证明方的隐私数据和针对所述隐私数据的判断条件,所述证明方的声明中包含对所述隐私数据进行加密得到的密文数据;[0144] 第一生成单元72,在第一证明生成条件被满足的情况下生成第一证明,第一证明生成条件包括接收到所述证明方发起的针对所述声明的第一证明生成请求、且验证过所述隐私数据和所述判断条件之间的关系匹配于所述证明方提供的第一判断结果,第一证明用于在零知识证明算法的验证下向验证方表明所述密文数据与所述判断条件之间的关系与第一判断结果相匹配;[0145] 第二生成单元73,在第二证明生成条件被满足的情况下生成第二证明,第二证明生成条件包括接收到所述验证方发起的针对所述声明的第二证明生成请求,第二证明用于在零知识证明算法的验证下表明所述密文数据与所述判断条件之间的关系与所述验证方提供的第二判断结果相匹配。[0146] 可选的,还包括:[0147] 校验单元74,获取第二证明生成请求的请求方提供的私钥,并根据所述私钥生成相应的公钥,在生成的公钥与验证方的公钥相同的情况下,确定所述请求方为所述验证方。[0148] 可选的,还包括:[0149] 第一返回单元75,向所述证明方返回第一证明,以由所述证明方将第一证明提供至所述验证方;或者,[0150] 获取所述证明方提供的所述验证方的接收地址,并将第一证明发送至所述接收地址,以使所述验证方获得第一证明。[0151] 可选的,[0152] 所述声明中包含第二证明生成条件的信息;或者,第二证明生成条件为公开信息。[0153] 可选的,所述声明包括可验证声明;所述装置还包括:[0154] 颁发单元76,响应于所述证明方发起的声明颁发请求,向区块链网络查询与所述声明颁发请求包含的去中心化标识符对应的公钥;[0155] 向所述证明方发送挑战消息,所述挑战消息用于指示所述证明方使用所述证明方的私钥对所述挑战消息中包含的挑战数据进行签名;[0156] 在使用查询到的公钥对所述证明方返回的挑战数据验签通过的情况下,生成包含所述密文数据和所述去中心化标识符的可验证声明,所述去中心化标识符用于表明所述可验证声明的接收方为所述证明方。[0157] 可选的,校验单元74还用于:[0158] 对所述证明方的隐私数据进行真实性校验;[0159] 在校验通过的情况下对所述隐私数据进行加密得到所述密文数据,以生成所述可验证声明。[0160] 可选的,所述隐私数据包含所述证明方的明文隐私信息和随机字符串。[0161] 可选的,还包括:[0162] 第一返回单元77,响应于第二证明生成请求,向所述验证方返回第二证明。[0163] 上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。[0164] 在一个典型的配置中,计算机包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。[0165] 内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flashRAM)。内存是计算机可读介质的示例。[0166] 计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD‑ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带、磁盘存储、量子存储器、基于石墨烯的存储介质或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。[0167] 还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。[0168] 上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。[0169] 在本说明书一个或多个实施例使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。[0170] 应当理解,尽管在本说明书一个或多个实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。[0171] 以上所述仅为本说明书一个或多个实施例的较佳实施例而已,并不用以限制本说明书一个或多个实施例,凡在本说明书一个或多个实施例的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书一个或多个实施例保护的范围之内。
专利地区:上海
专利申请日期:2022-02-25
专利公开日期:2024-06-18
专利公告号:CN114389810B