CN115622812A - 基于区块链智能合约的数字身份验证方法及系统 - Google Patents
基于区块链智能合约的数字身份验证方法及系统 Download PDFInfo
- Publication number
- CN115622812A CN115622812A CN202211616417.1A CN202211616417A CN115622812A CN 115622812 A CN115622812 A CN 115622812A CN 202211616417 A CN202211616417 A CN 202211616417A CN 115622812 A CN115622812 A CN 115622812A
- Authority
- CN
- China
- Prior art keywords
- verification
- identity
- contract
- zero
- client
- 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
- 238000012795 verification Methods 0.000 title claims abstract description 102
- 238000000034 method Methods 0.000 title claims abstract description 50
- 230000001105 regulatory effect Effects 0.000 claims abstract description 20
- 230000015654 memory Effects 0.000 claims description 13
- 238000004590 computer program Methods 0.000 claims description 6
- 238000012544 monitoring process Methods 0.000 claims description 5
- 238000010200 validation analysis Methods 0.000 claims description 4
- 230000008569 process Effects 0.000 description 10
- 238000013475 authorization Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 5
- 238000007726 management method Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 230000008520 organization Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 238000010276 construction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- JEIPFZHSYJVQDO-UHFFFAOYSA-N iron(III) oxide Inorganic materials O=[Fe]O[Fe]=O JEIPFZHSYJVQDO-UHFFFAOYSA-N 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0876—Network 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
- H04L63/0442—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply asymmetric encryption, i.e. different keys for encryption and decryption
-
- 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/3218—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 using proof of knowledge, e.g. Fiat-Shamir, GQ, Schnorr, ornon-interactive zero-knowledge proofs
- H04L9/3221—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 using proof of knowledge, e.g. Fiat-Shamir, GQ, Schnorr, ornon-interactive zero-knowledge proofs interactive zero-knowledge proofs
-
- 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/3226—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 using a predetermined code, e.g. password, passphrase or PIN
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Power Engineering (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请涉及用户隐私保护技术领域,特别涉及一种基于区块链智能合约的数字身份验证方法及系统,可以降低用户属性明文信息泄露风险。该方法包括:身份提供方服务器在获取到第一VC之后,发布托管合约,以及,至少提供零知识证明程序和验证合约,并部署到区块链;其中,第一VC由监管机构服务器发布以用于验证身份提供方服务器的身份合法性;客户端在获取到第二VC之后,至少获取零知识证明程序;客户端通过零知识证明程序生成证据,证据基于用户属性信息获得;服务提供方服务器基于客户端提交的证据和第二VC,调用区块链上的托管合约和/或验证合约对应的验证接口,以获得第二VC和证据是否合法的验证结果。
Description
技术领域
本申请涉及用户隐私保护技术领域,特别涉及一种基于区块链智能合约的数字身份验证方法及系统。
背景技术
随着区块链技术的发展,其去中心化、公开透明、可追溯、不可篡改等特性受到了各方的关注,许多学者也纷纷将区块链技术应用于数字身份管理系统架构的设计中,并提出了不同的设计方案,具体可归纳为3种主要架构:基于区块链分布式账本进行数字身份信息及其哈希摘要存储的架构、利用区块链可编程智能合约进行数字身份的声明、发布、认证和授权的架构、基于区块链可验证凭证(variable certificate,VC)的数字身份架构。
前两种架构存在身份隐私泄露风险,尽管其中部分架构在区块链上存储的只是数字身份的哈希摘要或者加密信息,但是认证授权身份时仍然需要提交身份的明文信息(明文求哈希后与链上哈希进行对比或者解密明文后查看信息是否正确)。虽然,基于区块链的可验证凭证数字身份架构具备诸多优点,但是可验证凭证上通常记录着用户身份的明文信息,因此,在利用可验证凭证进行身份认证与授权时,仍然存在隐私泄露风险。
发明内容
本申请实施例提供一种基于区块链智能合约的数字身份验证方法及系统,用以解决上述问题。
第一方面,本申请实施例提供一种基于区块链智能合约的数字身份验证方法,该方法包括:
身份提供方服务器在获取到第一VC之后,发布托管合约,以及,至少提供零知识证明程序和验证合约,并部署到所述区块链;其中,所述第一VC由监管机构服务器发布以用于验证所述身份提供方的身份合法性;所述零知识证明程序,用于基于用户属性信息来验证用户身份的合法性;客户端在获取到第二VC之后,至少获取所述零知识证明程序;其中,所述第二VC由所述身份提供方服务器发布以用于验证持有所述客户端的用户的身份合法性;所述客户端通过零知识证明程序生成证据,所述证据基于用户属性信息获得;服务提供方服务器基于客户端提交的所述证据和所述第二VC,调用区块链上的所述托管合约和/或所述验证合约对应的验证接口,以获得所述第二VC以及所述证据是否合法的验证结果信息,并基于所述验证结果信息确定是否向所述用户提供目标服务。
作为一种可能的实现方式,所述方法还包括:所述监管机构服务器发布监管合约,所述监管合约至少用于提供面向机构的第一注册服务;所述身份提供方服务器调用所述第一注册服务,以获得所述第一VC。
作为一种可能的实现方式,所述方法还包括:所述身份提供方服务器发布托管合约,所述托管合约至少用于提供面向客户端的第二注册服务;所述客户端调用所述第二注册服务,以获得所述第二VC。
作为一种可能的实现方式,所述至少提供零知识证明程序和验证合约,并部署到所述区块链,具体包括:提供零知识证明程序,生成证明密钥PK、验证密钥VK,以及验证合约,并部署到所述区块链。
作为一种可能的实现方式,所述方法还包括:所述监管机构服务器,基于非对称加密算法,生成第一公钥和第一私钥,并发布所述第一公钥对应的第一DID信息;所述身份提供方服务器,基于非对称加密算法,生成第二公钥和第二私钥,并发布所述第二公钥对应的第二DID信息;所述客户端,基于非对称加密算法,生成第三公钥和第三私钥,并发布所述第三公钥对应的第三DID信息。
作为一种可能的实现方式,所述至少获取所述零知识证明程序,具体包括:所述客户端获取所述零知识证明程序、所述证明密钥PK、所述第二VC、身份属性字段、所述第一DID信息至所述第三DID信息;其中,所述身份属性字段表示用户属性信息的名称;所述客户端通过零知识证明程序生成证据,具体包括:所述客户端,基于所述证明密钥PK、明文输入和隐私输入,通过部署于客户端的所述零知识证明程序,生成证据和签名;其中,所述明文输入包括所述第一DID信息至所述第三DID信息;所述隐私输入包括用户输入的用户属性信息和第三私钥;所述签名,为采用所述第三私钥进行加密而获得的签名。
作为一种可能的实现方式,所述客户端提供相应的输入接口,以供用户设置所述合法证据对应的目标服务提供方和验证次数;所述客户端向所述目标服务提供方请求服务时携带所述验证次数信息;通过验证后,重置所述验证次数信息。
作为一种可能的实现方式,所述零知识证明程序为采用circom创建的zk-Snark电路。
第二方面,本申请实施例还提供基于区块链智能合约的数字身份验证系统,所述系统包括:
身份提供方服务器,用于执行以下操作:在获取到第一VC之后,发布托管合约,以及,至少提供零知识证明程序和验证合约,并部署到所述区块链;其中,所述第一VC由监管机构服务器发布以用于验证所述身份提供方的身份合法性;所述零知识证明程序,用于基于用户属性信息来验证用户身份的合法性;
客户端,用于执行以下操作:在获取到第二VC之后,至少获取所述零知识证明程序;其中,所述第二VC由所述身份提供方服务器发布以用于验证持有所述客户端的用户的身份合法性;所述客户端通过零知识证明程序生成证据,所述证据基于用户属性信息获得;
服务提供方服务器,用于执行以下操作:基于客户端提交的所述证据和所述第二VC,调用区块链上的所述托管合约和/或所述验证合约对应的验证接口,以获得所述第二VC以及所述证据是否合法的验证结果信息,并基于所述验证结果信息确定是否向所述客户端提供目标服务。
第三方面,本申请实施例还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述电子设备为一台或多台,至少一个所述处理器执行所述程序时实现如上述第一方面任意一项所述的方法。
本申请实施例提供的基于区块链智能合约的数字身份验证方法及系统,采用区块链智能合约和零知识证明及非对称加密验签技术,由受监管机构约束的身份提供方,来管理用户认证、授权和验证的全流程合约,可验证凭证上不会记录用户身份的明文信息,而涉及到用户属性信息的明文仅会在客户端使用,系统中的其他各方例如身份提供方、服务提供方等没有机会接触到用户属性信息的明文,因此,隐私保护的安全性更高,能够进一步降低用户属性信息等隐私数据的泄露风险。该方案提供的交互机制,整体上解决了身份可控隐私、身份授权监管和高效验证的问题,用户隐私数据保护等级更高,更安全。
附图说明
图1为本申请实施例提供的基于区块链智能合约的数字身份验证方法的流程示意图;
图2为本申请实施例提供的基于区块链智能合约的数字身份验证方法的一个实施例的交互流程图;
图3为本申请实施例提供的基于区块链智能合约的数字身份验证方法的流程逻辑示意图;
图4为本申请实施例提供的基于区块链智能合约的数字身份验证方法中零知识证明程序的处理流程架构示意图;
图5为本申请实施例提供的基于区块链智能合约的数字身份验证系统的架构示意图。
具体实施方式
本申请的实施方式部分使用的术语仅用于对本申请的具体实施例进行解释,而非旨在限定本申请。
本申请实施例提供的基于区块链智能合约的数字身份验证方法及系统,可以应用于分布式数字身份管理的应用场景中。
在应用场景的相关技术中,一方面,用户属性当下采用选择性披露和用服务提供方的公钥非对称加密等方案,导致用户属性对服务提供方的信息泄漏。另一方面,相关技术中,身份服务方(身份提供方)可以不受约束的获取用户身份属性信息,并发放验证凭证。此外,相关的基于区块链智能合约的零知识证明身份管理方案,仅仅把区块链当作存证工具,没有实现多方验证/授权/监管的功能,存在认证过程不透明、认证属性单一、多身份服务商多证明的问题。
鉴于此,本申请实施例提出一种基于区块链智能合约的数字身份验证方法,以解决上述问题。
本申请实施例提供的方案,一方面,在客户端执行基于零知识证明程序的证据生成,然后由身份提供方部署于区块链上的验证合约进行验证的交互机制,完成用户身份隐私验证;另一方面,相关技术中,身份服务方(身份提供方)可以不受约束的获取用户身份属性信息,并发放验证凭证,本申请实施例采用监管机构基于链上合约授权身份服务方提供身份服务,并在全网公示,保证身份服务提供方的可信可控。此外,本申请实施例提供的方案,采用由身份提供方统一维护的共享托管合约,该托管合约生成用户属性所需的零知识验证程序并发布链上,并提供验证方法(即验证合约),同时对于用户生成的证明(即证据Proof)可设置访问白名单和验证次数。
为便于理解本申请实施例提供的方案,先对该交互过程中涉及的系统参与方进行介绍。系统参与方可以包括监管机构服务器、身份提供方服务器、服务提供方服务器、客户端。
其中,监管机构服务器,用于发布监管合约,将身份提供方服务器纳入到该监管合约,使其成为授权后的合法身份提供方服务器。
身份提供方服务器,基于监管机构服务器的授权,发布关于身份属性的共享托管合约,该共享托管合约接受加密的认证请求,并颁发可验证的VC,托管用户身份属性的零知识证明程序,提供生成证明密钥、验证密钥和验证证明方法(即验证合约);
服务提供方服务器,获取客户端提供的零知识证明(Proof)和VC凭证,并提交给托管合约验证证明的合法性。在一个实施例中,对于任何验证后的零知识证明,可以均设为作废。
客户端,请求获取身份可验证的凭证VC,提供可证明拥有身份属性的零知识证明Proof。在一个实施例中,客户端还可以授权服务提供方服务器使用证明的次数。
具体地,参阅图1所示,本申请实施例提供的基于区块链智能合约的数字身份验证方法,可以包括如下流程:
101,身份提供方服务器在获取到第一VC之后,发布托管合约,以及,至少提供零知识证明程序和验证合约,并部署到所述区块链。
第一VC由监管机构发布,以用于验证身份提供方的身份合法性。
零知识证明程序,用于基于用户属性信息来验证用户身份的合法性。零知识证明程序由身份提供方提供并部署于区块链。
在一部分实施例中,身份提供方服务器负责执行以下操作:
提供零知识证明程序、生成证明密钥PK、验证密钥VK、提供验证合约,并将零知识证明程序和验证合约部署到所述区块链,并发布PK和VK。
102,客户端在获取到第二VC之后,至少获取零知识证明程序。
第二VC由身份提供方发布以用于验证客户端的身份合法性。客户端通过零知识证明程序生成证据,证据基于用户属性信息获得。例如,客户端可以在获取零知识证明程序之后进行安装,然后至少以用户属性信息为输入,生成相应的零知识证明,零知识证明即Proof,也可以称之为证据。
用户属性信息可以是用户个人身份相关的各种信息,例如用户的身高,年龄,性别,兴趣,爱好等。
103,服务提供方服务器基于客户端提交的所述证据和所述第二VC,调用区块链上的所述托管合约和/或所述验证合约对应的验证接口,以获得所述第二VC以及所述证据是否合法的验证结果信息,并基于所述验证结果信息确定是否向所述客户端提供目标服务。
下面列举一个具体的实施例,以便于更清楚地理解本申请实施例提供的验证方案。
示例性地,参阅图2所示,基于基于区块链智能合约的数字身份验证方法可以包括如下流程:
201,监管机构服务器基于非对称加密算法,生成第一公钥和第一私钥。
202,发布第一公钥对应的第一DID、监管机构DID Doc;
DID(Decentralized Identifier,去中心化身份),第一DID,即区块链上第一公钥的DID标识符,可以理解为第一公钥在区块链上去中心化存储的地址信息。监管机构DIDDoc(DID Document),存储于区块链上,可以DID为 key 做索引。
203,监管机构服务器发布监管合约。
该监管合约,可以提供机构注册、撤销和查询服务,以供授权对象进行注册、撤销和查询等操作。
204,身份提供方服务器生成第二公钥和第二私钥。
205,身份提供方服务器发布第二公钥对应的第二DID、监管机构服务器DID Doc。
206,身份提供方服务器调用监管机构注册服务。
调用监管机构服务器的注册服务时,应提交身份提供方的相关信息。
207,监管机构服务器发布身份提供方对应的第一VC。
第一VC即供身份提供方使用的可验证凭证,由监管机构服务器发布,持有该VC(第一VC),代表该身份提供方已获得监管机构的授权,即,由监管机构授权而提供身份服务。
208,身份提供方服务器发布托管合约。
该托管合约提供用户注册、撤销和查询等服务,以供用户执行注册、查询和撤销等操作。在该实施例中,并没有实际使用监管合约或托管合约的查询和撤销服务。在其他实施例中,实际上,监管合约和托管合约可以仅提供注册服务,而不提供撤销和查询服务。
209,身份提供方服务器提供基于用户属性的零知识证明程序,生成证明密钥PK、验证密钥VK,以及验证合约,并部署到区块链。
身份提供者发布提供身份服务托管合约,包括用户注册、撤销和查询等功能,以及为用户属性提供通用属性的身份零知识证明程序。
在本申请实施例中,零知识证明程序为非交互零知识证明程序。
示例性地,该零知识证明程序,是采用circom创建而得,具体可以是zkSnark(Zero-Knowledge Succinct Non-Interactive Argument of Knowledge,零知识简明非交互式知识证明)电路。然后,利用circom的编译和构建,生成证明密钥proving key和验证密钥verification key(snarkjs setup)。再利用circom生成零知识证明的验证合约Circom-Verify-Contract,并部署到区块链。
210,客户端生成第三公钥和第三私钥。
211,客户端发布第三公钥对应的第三DID、监管机构的DID Doc。
212,客户端调用身份提供方注册服务。
213,身份提供方服务器发布客户端对应的第二VC。
用户生成公私钥信息(第三公私钥信息),把然后把第三公钥信息生成的地址信息即DID和监管机构的DIDDocument上链发布,之后调用身份提供方的注册服务,调用时提交用户身份的相关信息,之后由身份提供方服务器发布该用户VC(Verify Claim),即第二VC,成为被该服务提供方认可的用户。
214,客户端获取零知识证明程序、第二VC、身份属性字段、第一至第三DID、PK。
当用户通过客户端申请访问服务提供方业务时,获取所需证明身份的身份提供方和所需证明的身份属性的字段(比如年龄等),同时也可以获取身份提供方的Proving Key。
身份属性字段,表示身份属性信息的名称,用户看到字段名称,可以输入该名称对应的自身实际的信息,作为待验证的身份属性信息。例如,需要用户输入的属性为年龄,用户实际年龄为40岁,那么身份属性字段即为“年龄”,用户属性信息即为“40岁”。
215,客户端利用零知识证明程序,基于PK+公开输入(第一至第三DID)+隐私输入(身份属性信息、第三私钥),获得证据Proof+签名。
利用身份服务方链上发布的零知识证明程序和ProvingKey,把用户需要验证的身份属性信息、公钥和私钥作为私钥作为隐私输入,把用户身份DID(第三DID)、身份提供方DID(第二DID)、服务提供方DID作为明文输入,来生成该用户属性的零知识证明Proof + 对应用户的签名。
公开输入即明文输入,在一部分实施例中,以第一DID、第二DID和第三DID作为公开输入,以用户的身份属性信息和第三私钥作为隐私输入,通过零知识证明程序,生成证据和签名。也就是PK+公开输入+隐私输入→证据Proof+签名。证据Proof也可以称为证明。签名可以是使用第三私钥进行加密而获得的数字签名。
216,客户端请求访问服务提供方的业务。
该访问请求中可以携带第二VC、Proof+签名等待验证信息。
217,服务提供方服务器请求调用托管合约的验证接口,请求对客户端提交的第二VC进行验证。
Proof和签名信息会发送到区块链的验证合约做存证,同时也可同步给服务提供方。
在一部分实施例中,用户再上传Proof信息时,可选择设置该Proof使用的服务提供方和验证次数。
218,服务提供方服务器在完成VC验证之后,进一步调用区块链上验证合约的验证接口,请求对客户端提交的Proof+签名进行验证。
对于Proof+签名的验证,可以是首先使用第三公钥进行验签,验签通过,再使用零知识证明程序中提供的验证程序对Proof进行验证。
219,验证通过,使用客户端的用户为白名单用户,则向该客户端提供相应的服务。
上述图2所示实施例仅为本申请诸多实施例中的一个示例,依据本申请提供的方案,还可以获得其他多个实施例。例如,基于图3所示的流程逻辑,还可以获得其他多个实施例。
参阅图3所示,本申请实施例提出的基于区块链智能合约的数字身份验证方法,可以按照如下流程执行:
1,监管机构服务器发布监管合约;
2.1,经监管机构服务器授权的身份提供方发布托管合约;
2.2,经监管机构服务器授权的身份提供方发布用户属性零知识证明程序;
用户属性零知识证明程序,即用于验证用户属性信息的零知识证明程序。
3.1,用户通过持有的客户端注册生成DID;
3.2用户通过持有的客户端申请身份凭证;
4.用户通过持有的客户端向服务提供方申请服务(携带身份凭证);
5.身份凭证验证通过,服务提供方服务器向客户端发送证明密钥PK,也就是相当于客户端从服务提供方获取到了证明密钥PK。
6、客户端基于预先部署的零知识证明程序,基于证明密钥PK、身份凭证和用户属性信息,生成证明(即证据Proof),然后上传至区块链;
区块链上部署的验证合约,会对Proof进行验证;
7、Proof的验证结果会同步下发至服务提供方,相当于服务提供方服务器获取到了身份属性证明的验证结果;
8、验证通过,则服务提供方服务器向用户持有的客户端提供服务,客户端即获得了相应的服务。
示例性地,零知识证明程序的数据处理流程架构参阅图4所示。
其中,Flattened Code表示扁平化代码,Witness表示见证,VProof即证据或者证明;Setup即设置,Proving Key即证明密钥,Verification Key即验证密钥。Export-Verifier即导出验证程序,该验证程序可以理解为验证合约。PubKey为公钥,PrivKey为私钥。
本申请实施例还提供一种基于区块链智能合约的数字身份验证系统,参阅图5所述,该系统至少包括:
身份提供方服务器,用于执行以下操作:
在获取到第一VC之后,发布托管合约,以及,至少提供零知识证明程序和验证合约,并部署到区块链;其中,第一VC由监管机构发布以用于验证身份提供方的身份合法性;零知识证明程序,用于基于用户属性信息来验证用户身份的合法性;
客户端,用于执行以下操作:
在获取到第二VC之后,至少获取零知识证明程序;其中,第二VC由身份提供方发布以用于验证客户端的身份合法性;客户端通过零知识证明程序生成证据,证据基于用户属性信息获得;
服务提供方服务器,用于执行以下操作:
基于客户端提交的证据和第二VC,调用区块链上的托管合约和/或验证合约对应的验证接口,以获得第二VC以及证据是否合法的验证结果信息,并基于验证结果信息确定是否向客户端提供目标服务。
本申请实施例还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,电子设备为一台或多台,至少一个处理器执行所述程序时实现如上述任意一项所述的验证方法。
综上,相关技术中,没有给出一个具体的隐私保护的实现架构,更没有共享架构的实现代码。这些架构仍然不同程度存在数字身份的中心化存储和管理、数字身份的自主权特性较差、数字身份的隐私无保障、数字身份的认证过程不公开透明等问题。具体体现为:用户属性信息泄漏、身份服务商不受监管、认证过程不透明、无法全流程可信、认证属性单一、用户无法设置证明信息被谁使用和使用次数、缺少服务于用户/服务方/监管机构的智能设备等。
本申请实施例提供的上述验证方法和系统,提供集成零知识证明相关功能区块链轻节点装置,该装置具有生成零知识程序、验证零知识证明、生成证明密钥和验证密钥、以及与链上合约交互的功能。具体地,该验证方法和系统,可以达到如下技术效果:首先监管身份提供方,保证身份提供方的合法性;由身份提供方提供共享合约和验证服务,从而保证合约提供方的可信度;全流程链上注册、授权、验证;用户属性明文不泄漏。
此外,进一步地,系统核心服务可以采用Rust语言,以获得更高的执行效率;用户管理全流程(注册/授权/验证等)可链上管理;可以提供可信高速硬件装置,加快证明文件的生成;全流程用户数据加密,保证用户信息安全;提供可靠身份验证合约,可多次验证Proof,验证效率高。
上述计算机中的数据处理器的数量可以为一个或多个,并且可选的,存储器的数量也可以是一个或多个,数据处理器和存储器之间可以通过总线或者其他方式连接。存储器作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序、非暂态计算机可执行程序以及模块,如本申请实施例中的设备对应的程序指令/模块。处理器通过运行存储在存储器中的非暂态软件程序、指令以及模块,从而执行各种功能应用以及数据处理,即实现上述任意方法实施例中的防破解方法。存储器可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;以及必要数据等。此外,存储器可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如, DVD)、或者半导体介质(例如固态硬盘 SolidState Disk)等。
本申请实施例中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示单独存在A、同时存在A和B、单独存在B的情况。其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项”及其类似表达,是指的这些项中的任意组合,包括单项或复数项的任意组合。例如,a,b和c中的至少一项可以表示:a, b, c, a-b,a-c, b-c,或a-b-c,其中a, b, c可以是单个,也可以是多个。
以上仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (10)
1.基于区块链智能合约的数字身份验证方法,其特征在于,所述方法包括:
身份提供方服务器在获取到第一VC之后,发布托管合约,以及,至少提供零知识证明程序和验证合约,并部署到所述区块链;其中,所述第一VC由监管机构服务器发布以用于验证所述身份提供方的身份合法性;所述零知识证明程序,用于基于用户属性信息来验证用户身份的合法性;
客户端在获取到第二VC之后,至少获取所述零知识证明程序;其中,所述第二VC由所述身份提供方服务器发布以用于验证持有所述客户端的用户的身份合法性;
所述客户端通过零知识证明程序生成证据,所述证据基于用户属性信息获得;
服务提供方服务器基于客户端提交的所述证据和所述第二VC,调用区块链上的所述托管合约和/或所述验证合约对应的验证接口,以获得所述第二VC以及所述证据是否合法的验证结果信息,并基于所述验证结果信息确定是否向所述用户提供目标服务。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述监管机构服务器发布监管合约,所述监管合约至少用于提供面向机构的第一注册服务;
所述身份提供方服务器调用所述第一注册服务,以获得所述第一VC。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述身份提供方服务器发布托管合约,所述托管合约至少用于提供面向客户端的第二注册服务;
所述客户端调用所述第二注册服务,以获得所述第二VC。
4.根据权利要求1所述的方法,其特征在于,
所述至少提供零知识证明程序和验证合约,并部署到所述区块链,具体包括:
提供零知识证明程序,生成证明密钥PK、验证密钥VK,以及验证合约,并部署到所述区块链。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
所述监管机构服务器,基于非对称加密算法,生成第一公钥和第一私钥,并发布所述第一公钥对应的第一DID信息;
所述身份提供方服务器,基于非对称加密算法,生成第二公钥和第二私钥,并发布所述第二公钥对应的第二DID信息;
所述客户端,基于非对称加密算法,生成第三公钥和第三私钥,并发布所述第三公钥对应的第三DID信息。
6.根据权利要求5所述的方法,其特征在于,
所述至少获取所述零知识证明程序,具体包括:
所述客户端获取所述零知识证明程序、所述证明密钥PK、所述第二VC、身份属性字段、所述第一DID信息至所述第三DID信息;其中,所述身份属性字段表示用户属性信息的名称;
所述客户端通过零知识证明程序生成证据,具体包括:
所述客户端,基于所述证明密钥PK、明文输入和隐私输入,通过部署于客户端的所述零知识证明程序,生成证据和签名;其中,所述明文输入包括所述第一DID信息至所述第三DID信息;所述隐私输入包括用户输入的用户属性信息和第三私钥;所述签名,为采用所述第三私钥进行加密而获得的签名。
7.根据权利要求1-6中任一项所述的方法,其特征在于,
所述客户端提供相应的输入接口,以供用户设置所述合法证据对应的目标服务提供方和验证次数;
所述客户端向所述目标服务提供方请求服务时携带所述验证次数信息;
通过验证后,重置所述验证次数信息。
8.根据权利要求1-6中任一项所述的方法,其特征在于,
所述零知识证明程序为采用circom创建的zk-Snark电路。
9.基于区块链智能合约的数字身份验证系统,其特征在于,所述系统包括:
身份提供方服务器,用于执行以下操作:
在获取到第一VC之后,发布托管合约,以及,至少提供零知识证明程序和验证合约,并部署到所述区块链;其中,所述第一VC由监管机构服务器发布以用于验证所述身份提供方的身份合法性;所述零知识证明程序,用于基于用户属性信息来验证用户身份的合法性;
客户端,用于执行以下操作:
在获取到第二VC之后,至少获取所述零知识证明程序;其中,所述第二VC由所述身份提供方服务器发布以用于验证持有所述客户端的用户的身份合法性;所述客户端通过零知识证明程序生成证据,所述证据基于用户属性信息获得;
服务提供方服务器,用于执行以下操作:
基于客户端提交的所述证据和所述第二VC,调用区块链上的所述托管合约和/或所述验证合约对应的验证接口,以获得所述第二VC以及所述证据是否合法的验证结果信息,并基于所述验证结果信息确定是否向所述客户端提供目标服务。
10.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述电子设备为一台或多台,至少一个所述处理器执行所述程序时实现如权利要求1至8任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211616417.1A CN115622812A (zh) | 2022-12-16 | 2022-12-16 | 基于区块链智能合约的数字身份验证方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211616417.1A CN115622812A (zh) | 2022-12-16 | 2022-12-16 | 基于区块链智能合约的数字身份验证方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115622812A true CN115622812A (zh) | 2023-01-17 |
Family
ID=84879898
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211616417.1A Pending CN115622812A (zh) | 2022-12-16 | 2022-12-16 | 基于区块链智能合约的数字身份验证方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115622812A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116881873A (zh) * | 2023-09-06 | 2023-10-13 | 国网数字科技控股有限公司 | 业务主体的身份认证方法、装置、电子设备和存储介质 |
WO2024169227A1 (zh) * | 2023-02-16 | 2024-08-22 | 腾讯科技(深圳)有限公司 | 身份验证方法、相关装置和介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101730100A (zh) * | 2009-03-17 | 2010-06-09 | 中兴通讯股份有限公司 | 身份提供实体授权服务的监管方法以及监管实体 |
US20170111358A1 (en) * | 2015-10-15 | 2017-04-20 | Id.Me, Inc. | Systems and methods for secure online credential authentication |
CN114186248A (zh) * | 2021-11-13 | 2022-03-15 | 云南财经大学 | 基于区块链智能合约的零知识证明可验证凭证数字身份管理系统及方法 |
CN114938280A (zh) * | 2022-05-24 | 2022-08-23 | 中国科学技术大学 | 一种基于非交互零知识证明与智能合约的认证方法及系统 |
CN115361145A (zh) * | 2022-10-19 | 2022-11-18 | 北京理工大学 | 一种基于零知识证明的支持监管的联盟链隐私保护方法 |
-
2022
- 2022-12-16 CN CN202211616417.1A patent/CN115622812A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101730100A (zh) * | 2009-03-17 | 2010-06-09 | 中兴通讯股份有限公司 | 身份提供实体授权服务的监管方法以及监管实体 |
US20170111358A1 (en) * | 2015-10-15 | 2017-04-20 | Id.Me, Inc. | Systems and methods for secure online credential authentication |
CN114186248A (zh) * | 2021-11-13 | 2022-03-15 | 云南财经大学 | 基于区块链智能合约的零知识证明可验证凭证数字身份管理系统及方法 |
CN114938280A (zh) * | 2022-05-24 | 2022-08-23 | 中国科学技术大学 | 一种基于非交互零知识证明与智能合约的认证方法及系统 |
CN115361145A (zh) * | 2022-10-19 | 2022-11-18 | 北京理工大学 | 一种基于零知识证明的支持监管的联盟链隐私保护方法 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024169227A1 (zh) * | 2023-02-16 | 2024-08-22 | 腾讯科技(深圳)有限公司 | 身份验证方法、相关装置和介质 |
CN116881873A (zh) * | 2023-09-06 | 2023-10-13 | 国网数字科技控股有限公司 | 业务主体的身份认证方法、装置、电子设备和存储介质 |
CN116881873B (zh) * | 2023-09-06 | 2023-12-08 | 国网数字科技控股有限公司 | 业务主体的身份认证方法、装置、电子设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108810029B (zh) | 一种微服务架构服务间鉴权系统及优化方法 | |
US10027670B2 (en) | Distributed authentication | |
US9332008B2 (en) | Time-based one time password (TOTP) for network authentication | |
CN103856477B (zh) | 一种可信计算系统及相应的认证方法和设备 | |
WO2018219056A1 (zh) | 鉴权方法、装置、系统和存储介质 | |
CN112671720B (zh) | 一种云平台资源访问控制的令牌构造方法、装置及设备 | |
WO2017020452A1 (zh) | 认证方法和认证系统 | |
CN114008968B (zh) | 用于计算环境中的许可授权的系统、方法和存储介质 | |
CN111131336B (zh) | 多方授权场景下的资源访问方法、装置、设备及存储介质 | |
CN115622812A (zh) | 基于区块链智能合约的数字身份验证方法及系统 | |
JP2010520518A (ja) | 分散式の委任および検証のための方法、装置、およびシステム | |
CN111698225A (zh) | 一种适用于电力调度控制系统的应用服务认证加密方法 | |
CN110910110B (zh) | 一种数据处理方法、装置及计算机存储介质 | |
CN111241492A (zh) | 一种产品多租户安全授信方法、系统及电子设备 | |
KR20220006234A (ko) | 사용자 권한 관리가 가능한 did 생성 방법 및 이를 이용한 사용자 권한 관리 시스템 | |
CN111414640A (zh) | 秘钥访问控制方法和装置 | |
CN114826572A (zh) | 支持属性隐私保护的去中心化众包方法、系统及终端 | |
CN116561820B (zh) | 可信数据处理方法及相关装置 | |
CN113329003A (zh) | 一种物联网的访问控制方法、用户设备以及系统 | |
CN111131160B (zh) | 一种用户、服务及数据认证系统 | |
CN113328854A (zh) | 基于区块链的业务处理方法及系统 | |
CN113792301A (zh) | 基于区块链的物联网数据访问方法及装置 | |
CN116707983A (zh) | 授权认证方法及装置、接入认证方法及装置、设备、介质 | |
CN116582261A (zh) | 一种区块链隐私合约密钥系统及密钥生成方法、使用方法 | |
Lahmer et al. | Towards a virtual domain based authentication on MapReduce |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20230117 |