A Multi-Source Zero-Knowledge Verification Method and System for Distributed Identity
By setting up trusted management in the Zero Knowledge Protocol Center and dynamically managing the Zero Knowledge Protocol, the problem of verifiers being unable to directly verify and the single protocol in zero-knowledge verification is solved, and multi-source management of zero-knowledge protocols and private data security are achieved.
Patent Information
- Application Number
- CN202310223004.5
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2023-03-09
- Publication Date
- 2025-08-05
- Estimated Expiration
- 2043-03-09
AI Technical Summary
In the existing zero-knowledge proof methods, verifiers cannot directly verify the zero-knowledge problem itself, there is a lack of clear solutions for the circuit generation and zero-knowledge proof generation processes, and the system configured zero-knowledge protocol is single, so it cannot flexibly adapt to different demand scenarios.
Set up a trusted zero-knowledge protocol center, store multiple zero-knowledge protocols, and dynamically manage the zero-knowledge protocol through the proof key PK as an index. The user terminal can request the addition or deletion of the protocol, generate zero-knowledge proof, and verify that the zero-knowledge problem matches the scene by the verification terminal.
The multi-source management of the zero-knowledge protocol is realized. Verifiers can directly verify the content of the zero-knowledge proof and confirm the matching of the problem, solving the flexible adaptation problem of the zero-knowledge protocol, avoiding the pre-trust requirement, and ensuring the security of private data.
Smart Images

Figure CN116208343B_ABST
Abstract
Description
Technical Field
[0001] The present invention belongs to the technical field of zero-knowledge verification, and in particular relates to a multi-source zero-knowledge verification method and system for distributed identity. Background Art
[0002] Zero-Knowledge Proof was proposed by S. Goldwasser, S. Micali and C. Rackoff in the early 1980s. It is a method by which the prover can convince the verifier that a certain statement is correct without providing any useful information to the verifier.
[0003] Existing zero-knowledge proof methods have the following main problems:
[0004] (1) The proof field in this scheme generally contains signature information, and the verifier cannot directly verify the zero-knowledge problem itself. (2) There is no clear solution for the circuit generation and zero-knowledge proof generation (privacy input) problems in the zero-knowledge proof process. In particular, the current mainstream zero-knowledge technology zk-snark requires a trusted environment to generate public parameters. (3) The system configuration of the zero-knowledge protocol is single and cannot well match the various demand scenarios, nor can it flexibly adapt to the iteration of zero-knowledge technology. Summary of the Invention
[0005] In response to the defects of the existing technology, the present invention provides a multi-source zero-knowledge verification method and system for distributed identity, which can effectively solve the above problems.
[0006] The technical solution adopted in the present invention is as follows:
[0007] The present invention provides a multi-source zero-knowledge verification method for distributed identity, comprising the following steps:
[0008] Step 1: Set up a trusted zero-knowledge protocol center; the zero-knowledge protocol center stores multiple zero-knowledge protocols, and any user terminal requests the zero-knowledge protocol center to add a zero-knowledge protocol corresponding to a zero-knowledge problem, wherein the zero-knowledge protocol includes a zero-knowledge problem description document, a proof key PK, a verification key VK, a zero-knowledge proof executable program, and a zero-knowledge verification executable program; the zero-knowledge protocol center stores the zero-knowledge protocol using the proof key PK as an index;
[0009] Step 2: The user terminal obtains a zero-knowledge protocol corresponding to the zero-knowledge problem through the zero-knowledge protocol center, and then obtains a zero-knowledge proof executable program and a proof key PK; the user terminal inputs the user's private data, public data, and the proof key PK into the zero-knowledge proof executable program, executes the zero-knowledge proof executable program, and thereby generates a zero-knowledge proof corresponding to the zero-knowledge problem;
[0010] In step 3, the user terminal sends the generated zero-knowledge proof to a verification terminal, which verifies the zero-knowledge proof.
[0011] Preferably, the user terminal requests the zero-knowledge protocol center to add a zero-knowledge protocol corresponding to the zero-knowledge problem, specifically comprising the following steps:
[0012] Step 1.1: The user terminal submits a zero-knowledge problem description document and a circuit source file to be compiled to the zero-knowledge protocol center; the circuit source file to be compiled is a programmed file of the zero-knowledge problem description document;
[0013] Step 1.2: The zero-knowledge protocol center checks whether the circuit source file to be compiled is the programmed file of the zero-knowledge problem description document, that is, checks the consistency between the zero-knowledge problem description document and the circuit source file to be compiled. If they are inconsistent, the subsequent process is stopped; if they are consistent, step 1.3 is executed;
[0014] Step 1.3, the zero-knowledge protocol center compiles the circuit source file to be compiled into a zero-knowledge circuit;
[0015] Step 1.4, initializing the zero-knowledge circuit, generating a proof key PK, a verification key VK, a zero-knowledge proof executable program, and a zero-knowledge verification executable program corresponding to the zero-knowledge problem;
[0016] In step 1.5, the zero-knowledge problem description document, the proof key PK, the verification key VK, the zero-knowledge proof executable program, and the zero-knowledge verification executable program form a zero-knowledge protocol corresponding to the zero-knowledge problem; the zero-knowledge protocol center stores the zero-knowledge protocol using the proof key PK as an index.
[0017] Preferably, in step 2, the following steps are used to generate a zero-knowledge proof:
[0018] Step 2.1: The user terminal sends a request to the zero-knowledge protocol center to obtain a zero-knowledge protocol list;
[0019] Step 2.2: The zero-knowledge protocol center returns a zero-knowledge protocol list to the user terminal; the zero-knowledge protocol list is a zero-knowledge problem description document of all zero-knowledge protocols currently stored in the zero-knowledge protocol center;
[0020] Step 2.3: The user terminal selects a required zero-knowledge problem description document from the zero-knowledge protocol list; then, sends a request to the zero-knowledge protocol center to obtain a zero-knowledge protocol corresponding to the selected zero-knowledge problem description document;
[0021] Step 2.4: The zero-knowledge protocol center obtains the corresponding zero-knowledge protocol and sends the zero-knowledge problem description document, the proof key PK, and the zero-knowledge proof executable program in the zero-knowledge protocol to the user terminal;
[0022] In step 2.5, the user terminal inputs the user's private data, public data, and the proof key PK into the zero-knowledge proof executable program, and executes the zero-knowledge proof executable program, thereby generating a zero-knowledge proof corresponding to the zero-knowledge problem.
[0023] Preferably, in step 3, the verification terminal verifies the zero-knowledge proof specifically as follows:
[0024] Step 3.1: The user terminal sends the generated zero-knowledge proof to the verification terminal;
[0025] Step 3.2: The verification terminal parses the proof key PK from the zero-knowledge proof and sends a request to the zero-knowledge protocol center to obtain the zero-knowledge protocol corresponding to the proof key PK;
[0026] In step 3.3, the zero-knowledge protocol center finds the zero-knowledge protocol corresponding to the proof key PK, and then returns the zero-knowledge protocol including the zero-knowledge problem description document, the proof key PK, the verification key VK, the zero-knowledge proof executable program, and the zero-knowledge verification executable program to the verification terminal;
[0027] Step 3.4: The verification terminal verifies whether the zero-knowledge question description document matches the scenario question currently to be verified. If not, the verification fails; if matched, step 3.5 is executed;
[0028] Step 3.5: The verification terminal locally executes the received zero-knowledge proof executable program to verify whether the zero-knowledge proof executable program is correct. If not, the verification fails; if correct, execute step 3.6;
[0029] In step 3.6, the verification terminal inputs the verification key VK, the public data specified in the scenario, and the zero-knowledge proof received in step 3.1 into the zero-knowledge proof verification executable program, executes the zero-knowledge verification executable program, and performs the zero-knowledge problem verification process.
[0030] The present invention also provides a system for a multi-source zero-knowledge verification method of a distributed identity, comprising:
[0031] A zero-knowledge protocol center is configured to store multiple zero-knowledge protocols and receive a request from a user terminal to add a zero-knowledge protocol corresponding to a zero-knowledge problem, wherein the zero-knowledge protocol includes a zero-knowledge problem description document, a proof key PK, a verification key VK, a zero-knowledge proof executable program, and a zero-knowledge verification executable program; the zero-knowledge protocol center stores the zero-knowledge protocol using the proof key PK as an index;
[0032] a zero-knowledge proof generation module, configured to obtain, through the zero-knowledge protocol center, a zero-knowledge protocol corresponding to the zero-knowledge problem, and thereby obtain a zero-knowledge proof executable program and a proof key PK; and a zero-knowledge protocol center, configured to obtain, through the zero-knowledge protocol center, a zero-knowledge protocol corresponding to the zero-knowledge problem, and thereby obtain a zero-knowledge proof executable program and a proof key PK;
[0033] The zero-knowledge proof verification module is used to receive a request for verifying the zero-knowledge proof from a user terminal and verify the zero-knowledge proof.
[0034] The multi-source zero-knowledge verification method and system for distributed identity provided by the present invention have the following advantages:
[0035] The multi-source zero-knowledge verification method and system for distributed identity provided by the present invention integrates the zero-knowledge protocols required by users by establishing a trusted zero-knowledge protocol center. This allows users to use any zero-knowledge protocol of the zero-knowledge protocol center as needed to generate corresponding zero-knowledge proofs for verification by verifiers. The zero-knowledge protocol center can dynamically manage the corresponding zero-knowledge protocols, including but not limited to adding and deleting them. In addition to directly verifying the content of the zero-knowledge proof, verifiers can also query the zero-knowledge protocol center for the corresponding zero-knowledge question description document based on the proof key PK to confirm whether the zero-knowledge question itself matches the scenario question. BRIEF DESCRIPTION OF THE DRAWINGS
[0036] Figure 1 A flowchart of a new zero-knowledge protocol added to the zero-knowledge protocol center provided by the present invention;
[0037] Figure 2 A flowchart of the zero-knowledge proof generation process provided by the present invention;
[0038] Figure 3 This is a flow chart of the verification terminal provided by the present invention verifying zero-knowledge proof. DETAILED DESCRIPTION
[0039] In order to make the technical problems, technical solutions and beneficial effects solved by the present invention more clearly understood, the present invention is further described in detail below with reference to the accompanying drawings and embodiments. It should be understood that the specific embodiments described herein are only used to explain the present invention and are not intended to limit the present invention.
[0040] In order to fully understand the present invention, the following terms are most relevant to the subject matter of the present invention:
[0041] 1. DID, Decentralized Identity, is a new generation of digital identity system built on blockchain technology, with the characteristics of ensuring data authenticity, protecting privacy, strong interoperability and portability.
[0042] 2. VC, or Verifiable Credential, provides a specification for describing certain attributes of an entity, enabling evidence-based trust. DID holders can use Verifiable Credentials to prove to other entities (individuals, organizations, and specific entities) that certain attributes of their identity are trustworthy.
[0043] 3. VP, Verifiable Presentation, or the way of presenting verifiable credentials. In some scenarios, it is not convenient for the holder to show the VC directly to the verifier, or multiple VCs are involved in one verification, so one or more VCs are packaged into VP.
[0044] Zero-knowledge proof means that the prover can convince the verifier that a statement is correct without providing any private information to the verifier.
[0045] The multi-source zero-knowledge verification method and system for distributed identity provided by the present invention integrates the zero-knowledge protocols required by users by establishing a trusted zero-knowledge protocol center. This allows users to use any zero-knowledge protocol of the zero-knowledge protocol center as needed to generate corresponding zero-knowledge proofs for verification by verifiers. The zero-knowledge protocol center can dynamically manage the corresponding zero-knowledge protocols, including but not limited to adding and deleting them. In addition to directly verifying the content of the zero-knowledge proof, verifiers can also query the zero-knowledge protocol center for the corresponding zero-knowledge question description document based on the proof key PK to confirm whether the zero-knowledge question itself matches the scenario question.
[0046] The present invention provides a multi-source zero-knowledge verification method for distributed identity, comprising the following steps:
[0047] Step 1: Set up a trusted zero-knowledge protocol center; the zero-knowledge protocol center stores multiple zero-knowledge protocols, and any user terminal requests the zero-knowledge protocol center to add a zero-knowledge protocol corresponding to a zero-knowledge problem, wherein the zero-knowledge protocol includes a zero-knowledge problem description document, a proof key PK, a verification key VK, a zero-knowledge proof executable program, and a zero-knowledge verification executable program; the zero-knowledge protocol center stores the zero-knowledge protocol using the proof key PK as an index;
[0048] In this step, the zero-knowledge protocol center can add a new zero-knowledge protocol based on the request of the user terminal to support the use of the user terminal in different scenarios.
[0049] The user terminal requests the zero-knowledge protocol center to add a zero-knowledge protocol corresponding to the zero-knowledge problem. Figure 1 , specifically including the following steps:
[0050] In step 1.1, the user terminal submits a zero-knowledge problem description document and a circuit source file to be compiled to the zero-knowledge protocol center; wherein the circuit source file to be compiled is a programmed file of the zero-knowledge problem description document, which is a circuit written according to the circuit library supported by the zero-knowledge protocol center; the zero-knowledge problem description document is an introduction to the zero-knowledge problem itself.
[0051] Step 1.2: The zero-knowledge protocol center checks whether the circuit source file to be compiled is the programmed file of the zero-knowledge problem description document, that is, checks the consistency between the zero-knowledge problem description document and the circuit source file to be compiled. If they are inconsistent, the subsequent process is stopped; if they are consistent, step 1.3 is executed;
[0052] Step 1.3, the zero-knowledge protocol center compiles the circuit source file to be compiled into a zero-knowledge circuit;
[0053] Step 1.4, initializing the zero-knowledge circuit, generating a proof key PK, a verification key VK, a zero-knowledge proof executable program, and a zero-knowledge verification executable program corresponding to the zero-knowledge problem;
[0054] In step 1.5, the zero-knowledge problem description document, the proof key PK, the verification key VK, the zero-knowledge proof executable program, and the zero-knowledge verification executable program form a zero-knowledge protocol corresponding to the zero-knowledge problem; the zero-knowledge protocol center stores the zero-knowledge protocol using the proof key PK as an index.
[0055] After the zero-knowledge protocol is stored in the zero-knowledge protocol center, a notification message of successful addition of the zero-knowledge protocol may be sent to the user terminal.
[0056] This shows that users can add zero-knowledge protocols according to their needs, thereby achieving multi-source zero-knowledge protocols for the entire system. At the same time, since the proof key PK used in initialization is unique, it can be used as an index for zero-knowledge protocols.
[0057] Of course, the zero-knowledge protocol center can also perform deletion operations on the stored zero-knowledge protocols.
[0058] Step 2: The user terminal obtains a zero-knowledge protocol corresponding to the zero-knowledge problem through the zero-knowledge protocol center, and then obtains a zero-knowledge proof executable program and a proof key PK; the user terminal inputs the user's private data, public data, and the proof key PK into the zero-knowledge proof executable program, executes the zero-knowledge proof executable program, and thereby generates a zero-knowledge proof corresponding to the zero-knowledge problem;
[0059] In this step, refer to Figure 2 , use the following steps to generate a zero-knowledge proof:
[0060] Step 2.1: The user terminal sends a request to the zero-knowledge protocol center to obtain a zero-knowledge protocol list;
[0061] Step 2.2: The zero-knowledge protocol center returns a zero-knowledge protocol list to the user terminal; the zero-knowledge protocol list is a zero-knowledge problem description document of all zero-knowledge protocols currently stored in the zero-knowledge protocol center;
[0062] In step 2.3, the user terminal selects the required zero-knowledge problem description document from the zero-knowledge protocol list; then, a request is sent to the zero-knowledge protocol center to obtain the zero-knowledge protocol corresponding to the selected zero-knowledge problem description document; for example, if the user proves that his assets are greater than a certain number based on the zk-snark protocol, he should select a zero-knowledge protocol under the zk-snark protocol that proves that private data is greater than the public parameter category.
[0063] Step 2.4: The zero-knowledge protocol center obtains the corresponding zero-knowledge protocol and sends the zero-knowledge problem description document, the proof key PK, and the zero-knowledge proof executable program in the zero-knowledge protocol to the user terminal;
[0064] In step 2.5, the user terminal inputs the user's private data, public data, and the proof key PK into the zero-knowledge proof executable program, and executes the zero-knowledge proof executable program, thereby generating a zero-knowledge proof corresponding to the zero-knowledge problem.
[0065] In step 3, the user terminal sends the generated zero-knowledge proof to a verification terminal, which verifies the zero-knowledge proof.
[0066] In this step, refer to Figure 3 , the verification terminal verifies the zero-knowledge proof specifically as follows:
[0067] Step 3.1: The user terminal sends the generated zero-knowledge proof to the verification terminal;
[0068] Step 3.2: The verification terminal parses the proof key PK from the zero-knowledge proof and sends a request to the zero-knowledge protocol center to obtain the zero-knowledge protocol corresponding to the proof key PK;
[0069] In step 3.3, the zero-knowledge protocol center finds the zero-knowledge protocol corresponding to the proof key PK, and then returns the zero-knowledge protocol including the zero-knowledge problem description document, the proof key PK, the verification key VK, the zero-knowledge proof executable program, and the zero-knowledge verification executable program to the verification terminal;
[0070] Step 3.4: The verification terminal verifies whether the zero-knowledge problem description document matches the scenario problem currently to be verified. For example, if the scenario requires assets to be greater than 500,000, then the corresponding zero-knowledge problem description document should describe private information greater than a certain public parameter. If they do not match, the verification fails. If they do match, step 3.5 is executed.
[0071] Step 3.5: The verification terminal locally executes the received zero-knowledge proof executable program to verify whether the zero-knowledge proof executable program is correct. If not, the verification fails; if correct, execute step 3.6;
[0072] For example, the verifier prepares test cases to verify the reliability of the zero-knowledge proof executable program. For example, to prove that the private information is greater than a public parameter, the public parameter can be 100, and the private data can be 50 and 150 respectively as two completely different test cases.
[0073] In step 3.6, the verification terminal inputs the verification key VK, the public data specified in the scenario, and the zero-knowledge proof received in step 3.1 into the zero-knowledge proof verification executable program, executes the zero-knowledge verification executable program, and performs the zero-knowledge problem verification process.
[0074] The present invention also provides a multi-source zero-knowledge verification system, comprising:
[0075] A zero-knowledge protocol center is configured to store multiple zero-knowledge protocols and receive a request from a user terminal to add a zero-knowledge protocol corresponding to a zero-knowledge problem, wherein the zero-knowledge protocol includes a zero-knowledge problem description document, a proof key PK, a verification key VK, a zero-knowledge proof executable program, and a zero-knowledge verification executable program; the zero-knowledge protocol center stores the zero-knowledge protocol using the proof key PK as an index;
[0076] a zero-knowledge proof generation module, configured to obtain, through the zero-knowledge protocol center, a zero-knowledge protocol corresponding to the zero-knowledge problem, and thereby obtain a zero-knowledge proof executable program and a proof key PK; and a zero-knowledge protocol center, configured to obtain, through the zero-knowledge protocol center, a zero-knowledge protocol corresponding to the zero-knowledge problem, and thereby obtain a zero-knowledge proof executable program and a proof key PK;
[0077] The zero-knowledge proof verification module is used to receive a request for verifying the zero-knowledge proof from a user terminal and verify the zero-knowledge proof.
[0078] The multi-source zero-knowledge verification method and system for distributed identity provided by the present invention have the following characteristics:
[0079] 1. By setting up a trusted zero-knowledge protocol center, using the proof key PK as an index to store the zero-knowledge protocol, and the zero-knowledge protocol center can dynamically add or delete zero-knowledge protocols to support the use of user terminals in different scenarios.
[0080] Since the zero-knowledge protocol used in the system can be dynamically expanded and deleted, whether it is zk-snark, zk-stark or others, they can all be deployed simultaneously in this distributed identity system.
[0081] 2. The present invention clarifies the sources of data such as public parameters, proof keys PK, verification keys VK, etc. used in zero-knowledge proof.
[0082] 3. In the present invention, the verification terminal can prepare test cases to re-verify the validity of the zero-knowledge proof problem itself, rather than just verifying it through the verification key VK.
[0083] 4. Setting up a trusted zero-knowledge protocol center can solve the problem of zero-knowledge protocols such as zk-snark that require trust in advance. That is, trust that the zero-knowledge protocol center is trustworthy, and there is no need to generate public parameters through toxic waste technology (which has not yet been proven to be safe).
[0084] 5. The holder of the verification key VK still retains his or her private data. There is no risk of privacy leakage on the verification side, realizing the value and significance of introducing zero-knowledge proof.
[0085] 6. During the process, data storage and retrieval can also be achieved through the blockchain network, which can better utilize the existing network architecture.
[0086] The above is only a preferred embodiment of the present invention. It should be pointed out that for ordinary technicians in this technical field, several improvements and modifications can be made without departing from the principles of the present invention. These improvements and modifications should also be considered within the scope of protection of the present invention.
Claims
1. A multi-source zero-knowledge verification method for distributed identity, characterized in that: The following steps are involved: Step 1: Set up a trusted zero-knowledge protocol center; The zero-knowledge protocol center stores multiple zero-knowledge protocols, and any user terminal requests the zero-knowledge protocol center to add a zero-knowledge protocol corresponding to a zero-knowledge problem, wherein the zero-knowledge protocol includes a zero-knowledge problem description document, a proof key PK, a verification key VK, a zero-knowledge proof executable program, and a zero-knowledge verification executable program; The zero-knowledge protocol center stores the zero-knowledge protocol using the proof key PK as an index; Step 2: The user terminal obtains the zero-knowledge protocol corresponding to the zero-knowledge problem through the zero-knowledge protocol center, and then obtains the zero-knowledge proof executable program and the proof key PK; The user terminal inputs user private data, public data and the proof key PK into the zero-knowledge proof executable program, executes the zero-knowledge proof executable program, and thereby generates a zero-knowledge proof corresponding to the zero-knowledge problem; In step 3, the user terminal sends the generated zero-knowledge proof to a verification terminal, which verifies the zero-knowledge proof.
2. The multi-source zero-knowledge verification method for distributed identity according to claim 1, characterized in that: The user terminal requests the zero-knowledge protocol center to add a zero-knowledge protocol corresponding to the zero-knowledge problem, specifically including the following steps: Step 1.1: The user terminal submits a zero-knowledge problem description document and a circuit source file to be compiled to the zero-knowledge protocol center; the circuit source file to be compiled is a programmed file of the zero-knowledge problem description document; Step 1.2: The zero-knowledge protocol center checks whether the circuit source file to be compiled is the programmed file of the zero-knowledge problem description document, that is, checks the consistency between the zero-knowledge problem description document and the circuit source file to be compiled. If they are inconsistent, the subsequent process is stopped; if they are consistent, step 1.3 is executed; Step 1.3, the zero-knowledge protocol center compiles the circuit source file to be compiled into a zero-knowledge circuit; Step 1.4, initializing the zero-knowledge circuit, generating a proof key PK, a verification key VK, a zero-knowledge proof executable program, and a zero-knowledge verification executable program corresponding to the zero-knowledge problem; In step 1.5, the zero-knowledge problem description document, the proof key PK, the verification key VK, the zero-knowledge proof executable program, and the zero-knowledge verification executable program form a zero-knowledge protocol corresponding to the zero-knowledge problem; the zero-knowledge protocol center stores the zero-knowledge protocol using the proof key PK as an index.
3. The multi-source zero-knowledge verification method for distributed identity according to claim 1, characterized in that: In step 2, the following steps are used to generate the zero-knowledge proof: Step 2.1: The user terminal sends a request to the zero-knowledge protocol center to obtain a zero-knowledge protocol list; Step 2.2: The zero-knowledge protocol center returns a zero-knowledge protocol list to the user terminal; The zero-knowledge protocol list is a zero-knowledge problem description document of all zero-knowledge protocols currently stored in the zero-knowledge protocol center; Step 2.3: The user terminal selects a required zero-knowledge problem description document from the zero-knowledge protocol list; Then, a request is sent to the zero-knowledge protocol center to obtain the zero-knowledge protocol corresponding to the selected zero-knowledge problem description document; Step 2.4: The zero-knowledge protocol center obtains the corresponding zero-knowledge protocol and sends the zero-knowledge problem description document, the proof key PK, and the zero-knowledge proof executable program in the zero-knowledge protocol to the user terminal; In step 2.5, the user terminal inputs the user's private data, public data, and the proof key PK into the zero-knowledge proof executable program, and executes the zero-knowledge proof executable program, thereby generating a zero-knowledge proof corresponding to the zero-knowledge problem.
4. The multi-source zero-knowledge verification method for distributed identity according to claim 1, characterized in that: In step 3, the verification terminal verifies the zero-knowledge proof as follows: Step 3.1: The user terminal sends the generated zero-knowledge proof to the verification terminal; Step 3.2: The verification terminal parses the proof key PK from the zero-knowledge proof and sends a request to the zero-knowledge protocol center to obtain the zero-knowledge protocol corresponding to the proof key PK; In step 3.3, the zero-knowledge protocol center finds the zero-knowledge protocol corresponding to the proof key PK, and then returns the zero-knowledge protocol including the zero-knowledge problem description document, the proof key PK, the verification key VK, the zero-knowledge proof executable program, and the zero-knowledge verification executable program to the verification terminal; Step 3.4: The verification terminal verifies whether the zero-knowledge question description document matches the scenario question currently to be verified. If not, the verification fails; if matched, step 3.5 is executed; Step 3.5: the verification terminal locally executes the received zero-knowledge proof executable program to verify whether the zero-knowledge proof executable program is correct. If not, the verification fails. If correct, proceed to step 3.6; In step 3.6, the verification terminal inputs the verification key VK, the public data specified in the scenario, and the zero-knowledge proof received in step 3.1 into the zero-knowledge proof verification executable program, executes the zero-knowledge verification executable program, and performs the zero-knowledge problem verification process.
5. A system using the multi-source zero-knowledge verification method for distributed identity according to any one of claims 1 to 4, characterized in that: include: A zero-knowledge protocol center is configured to store multiple zero-knowledge protocols and receive a request from a user terminal to add a zero-knowledge protocol corresponding to a zero-knowledge problem, wherein the zero-knowledge protocol includes a zero-knowledge problem description document, a proof key PK, a verification key VK, a zero-knowledge proof executable program, and a zero-knowledge verification executable program; The zero-knowledge protocol center stores the zero-knowledge protocol using the proof key PK as an index; A zero-knowledge proof generation module is used to obtain a zero-knowledge protocol corresponding to the zero-knowledge problem through the zero-knowledge protocol center, and then obtain a zero-knowledge proof executable program and a proof key PK; Inputting user private data, public data, and the proof key PK into the zero-knowledge proof executable program, and executing the zero-knowledge proof executable program to generate a zero-knowledge proof corresponding to the zero-knowledge problem; The zero-knowledge proof verification module is used to receive a request for verifying the zero-knowledge proof from a user terminal and verify the zero-knowledge proof.
Citation Information
Patent Citations
Data privacy protection method, device and equipment based on block chain
CN112765268A
KR20210065809A