Communication method, communication device and computing device cluster

Generating zero-knowledge proofs through a blockchain system lowers the technical threshold for provers, improves user experience, and leverages the tamper-proof nature of blockchain to ensure information security, thus solving the problems of high complexity and low security in zero-knowledge proof technology.

CN121864314APending Publication Date: 2026-04-14HUAWEI CLOUD COMPUTING TECHNOLOGIES CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202411433761.6
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-10-14
Publication Date
2026-04-14

AI Technical Summary

Technical Problem

Existing zero-knowledge proof technology requires high professional technical skills from the prover, has high learning and implementation costs, and the security of the proof information is difficult to guarantee.

Method used

By generating zero-knowledge proofs and related material information through the blockchain system, the technical threshold for provers is reduced, and the tamper-proof characteristics of the blockchain are used to ensure information security.

Benefits of technology

It reduces the complexity of zero-knowledge proofs, improves the user experience, and enhances information security, preventing leakage and tampering.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN121864314A_ABST
    Figure CN121864314A_ABST
Patent Text Reader

Abstract

The invention provides a communication method, a communication device and a computing device cluster. In the method, a first node of a block chain system receives a first transaction from a first client, generates first information and / or second information according to a zero-knowledge proof circuit in a first smart contract carried by the first transaction, and sends a first result to the first client, after a second node of the block chain system passes consensus of the first transaction and the first result, the first node receives first block information from the second node, an account book stored by the first node is updated, and the updated account book stored by the first node comprises the first block information. Wherein the first information is used for generating a zero-knowledge proof, the second information is used for verifying the zero-knowledge proof, the first result comprises proof information and a first signature, the proof information comprises one or more of the first information, the second information and the zero-knowledge proof, and the first signature is generated according to the proof information; the first block information comprises the first transaction and the first result.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of computer technology, and in particular to a communication method, a communication device, and a cluster of computing devices. Background Technology

[0002] In applications of zero-knowledge proofs, the prover can demonstrate the truth of a statement to the verifier without revealing any additional information beyond the verifiability of the fact being verified. In some implementations, the prover typically needs to construct information specific to the statement based on the zero-knowledge proof mechanism. This process involves complex mathematical and cryptographic algorithms, demanding a high level of expertise from the prover. Therefore, for users lacking knowledge of zero-knowledge proofs, learning and mastering this technology is relatively difficult and costly, hindering its widespread adoption and implementation to some extent. Summary of the Invention

[0003] This application provides a communication method, a communication device, and a computing device cluster that can solve the above-mentioned problems.

[0004] Firstly, this application provides a communication method. This method can be applied to a blockchain system and specifically may include: a first node of the blockchain system receiving a first transaction from a first client, the first transaction including a first smart contract, the first smart contract including a zero-knowledge proof circuit; the first node generating first information and / or second information based on the zero-knowledge proof circuit, the first information being used to generate a zero-knowledge proof, and the second information being used to verify the zero-knowledge proof; the first node sending a first result to the first client, the first result including proof information and a first signature, the proof information including one or more of the first information, the second information, and a zero-knowledge proof, the first signature being generated based on the proof information; after a second node of the blockchain system reaches consensus on the first transaction and the first result, the first node receiving first block information from the second node and updating the ledger stored by the first node, the updated ledger storing the first node including the first block information, the first block information including the first transaction and the first result.

[0005] In the above scheme, provers in zero-knowledge proof scenarios can generate the required zero-knowledge proof and / or related material information (such as first information and / or second information) through a blockchain system. This method can lower the threshold and cost for provers to use zero-knowledge proof technology and improve the user experience. On the other hand, the tamper-proof characteristics of the blockchain system can ensure the security of the first information, second information, and zero-knowledge proof, thereby preventing the leakage and tampering of the first information, second information, and zero-knowledge proof.

[0006] In one possible implementation, the first information includes a proof key, and the second information includes a verification key.

[0007] In one possible implementation, the first information further includes witness information, the first smart contract further includes input parameters, and the method further includes: the first node inputs the input parameters into a first program for calculation to obtain the witness information, wherein the first program obtains the information by compiling the zero-knowledge proof circuit.

[0008] In one possible implementation, the first information further includes a computational model, which is obtained by transforming the zero-knowledge proof circuit. The method further includes: the first node inputting the first information into a zero-knowledge proof generation library to obtain the zero-knowledge proof output by the zero-knowledge proof generation library.

[0009] In one possible implementation, the second information further includes a second smart contract, and the method further includes: the first node generating the second smart contract based on the zero-knowledge proof and the verification key.

[0010] In one possible implementation, the method further includes: a second node of the blockchain system receiving the first transaction and the first result from the first client or the first node; the second node reaching consensus on the first block information, and after consensus is reached, updating the ledger stored by the second node, the updated ledger including the first block information; and sending the first block information to the first node. In another possible implementation, the method further includes: the first node receiving a second transaction from a second client, the second transaction requesting a call to a second smart contract, the second transaction including the zero-knowledge proof; the first node using the second smart contract to verify the zero-knowledge proof in the second transaction, obtaining a verification result; the first node sending a second result to the second client, the second result including the verification result and a second signature, the second signature being generated based on the verification result; after the second node of the blockchain system reaches consensus on the second transaction and the second result, the first node receiving second block information from the second node and updating the ledger stored by the first node, the updated ledger including the second block information, the second block information including the second transaction and the second result.

[0011] In the above scheme, the second transaction can come from the validator's client, and the first node can verify the zero-knowledge proof from the client through the second smart contract, so that the validator can determine whether the statement proved by the zero-knowledge proof is true.

[0012] In one possible implementation, the method further includes: a second node of the blockchain system receiving the second transaction and the second result from the second client or the first node; the second node generating second block information based on the second transaction and the second result, reaching consensus on the second block information, updating the ledger stored by the second node after consensus is reached, the updated ledger including the second block information; and sending the second block information to the first node.

[0013] Secondly, this application also provides a communication device. The communication device includes a receiving module, a processing module, and a transmitting module.

[0014] The receiving module is used to receive a first transaction from a first client, the first transaction including a first smart contract, and the first smart contract including a zero-knowledge proof circuit.

[0015] The processing module is used to generate first information and / or second information based on the zero-knowledge proof circuit. The first information is used to generate a zero-knowledge proof, and the second information is used to verify the zero-knowledge proof.

[0016] The sending module is used to send a first result to the first client. The first result includes proof information and a first signature. The proof information includes one or more of first information, second information, and zero-knowledge proof. The first signature is generated based on the proof information.

[0017] The receiving module is further configured to receive first block information from the second node after the second node has reached a consensus on the first transaction and the first result; the processing module is further configured to update the ledger stored by the first node, wherein the updated ledger stored by the first node includes the first block information, and the first block information includes the first transaction and the first result.

[0018] In one possible implementation, the first information includes a proof key, and the second information includes a verification key.

[0019] In one possible implementation, the first information further includes witness information, and the first smart contract further includes input parameters. The processing module is used to: input the input parameters into a first program for calculation to obtain the witness information, wherein the first program obtains the information by compiling the zero-knowledge proof circuit.

[0020] In one possible implementation, the first information further includes a computational model, which is obtained by transforming the zero-knowledge proof circuit. The processing module is further configured to: input the first information into a zero-knowledge proof generation library to obtain the zero-knowledge proof output by the zero-knowledge proof generation library.

[0021] In one possible implementation, the second information further includes a second smart contract, and the processing module is further configured to: generate the second smart contract based on the zero-knowledge proof and the verification key.

[0022] In one possible implementation, the second node is further configured to receive the first transaction and the first result from the first client or the sending module, generate the first block information based on the first transaction and the first result, reach a consensus on the first block information, update the ledger stored by the second node after the consensus is passed, the updated ledger stored by the second node includes the first block information, and send the first block information to the communication device.

[0023] In one possible implementation, the receiving module is further configured to receive a second transaction from a second client, the second transaction being used to request the invocation of a second smart contract, the second transaction including the zero-knowledge proof; the processing module is further configured to verify the zero-knowledge proof in the second transaction using the second smart contract, obtaining a verification result; the sending module is further configured to send a second result to the second client, the second result including the verification result and a second signature, the second signature being generated based on the verification result; the receiving module is further configured to receive second block information from the second node after the second node has reached a consensus on the second transaction and the second result; the processing module is further configured to update the ledger stored by the first node, the updated ledger including the second block information, the second block information including the second transaction and the second result. In one possible implementation, the second node is further configured to receive the second transaction and the second result from the second client or the communication device, generate second block information based on the second transaction and the second result, reach a consensus on the second block information, update the ledger stored by the second node after the consensus is reached, the updated ledger including the second block information, and send the second block information to the communication device.

[0024] Thirdly, this application also provides a computing device. The computing device includes a processor and a memory. The processor is used to execute a computer program stored in the memory to implement the communication method provided by the first aspect or any possible implementation thereof.

[0025] Fourthly, this application also provides a computing device cluster. The computing device cluster includes at least one computing device, each computing device including a processor and a memory; the processor of the at least one computing device is configured to execute instructions stored in the memory of the at least one computing device, causing the computing device cluster to perform the communication method provided by the first aspect or any possible implementation thereof.

[0026] Fifthly, this application also provides a computer program product containing instructions, including computer program instructions that, when run by a computing device cluster, cause the computing device cluster to perform the communication method provided by the first aspect or any possible implementation thereof.

[0027] In a sixth aspect, this application also provides a computer-readable storage medium including computer program instructions, which, when executed by a cluster of computing devices, enable the cluster of computing devices to perform the communication method provided by the first aspect or any possible implementation thereof.

[0028] Any of the devices, computing equipment, computing equipment clusters, computer storage media, or computer program products provided above are used to execute the communication methods provided above. Therefore, the beneficial effects they can achieve can be referred to the beneficial effects of the corresponding solutions in the corresponding methods provided above, and will not be repeated here. Attached Figure Description

[0029] Figure 1 This is a schematic diagram of a zero-knowledge proof scenario provided in an embodiment of this application;

[0030] Figure 2 This is a flowchart illustrating a communication method applied to a blockchain system, as provided in an embodiment of this application.

[0031] Figure 3 and Figure 4 This application provides an implementation of a blockchain system. Figure 2 A schematic diagram of the method shown;

[0032] Figure 5 This is a schematic diagram of the structure of a first smart contract provided in an embodiment of this application;

[0033] Figure 6 This is a schematic diagram of the components included in a node of a blockchain system and the functions implemented by those components, provided in an embodiment of this application.

[0034] Figure 7 This is a flowchart of another communication method applied to a blockchain system provided in the embodiments of this application;

[0035] Figure 8 This application provides an implementation of a blockchain system. Figure 7 A schematic diagram of the method shown;

[0036] Figure 9 This is a schematic diagram of a communication device provided in an embodiment of this application;

[0037] Figure 10 This is a schematic diagram of the structure of a computing device provided in an embodiment of this application;

[0038] Figure 11 This is a schematic diagram of the structure of a computing device cluster provided in an embodiment of this application;

[0039] Figure 12 This application provides an embodiment of a computing device cluster deployment Figure 9 A schematic diagram of the device shown. Detailed Implementation

[0040] To make the objectives, technical solutions, and advantages of the embodiments of this application clearer, the technical solutions in the embodiments of this application will be described below with reference to the accompanying drawings.

[0041] In the description of the embodiments of this application, the words "exemplary," "for example," or "for instance" are used to indicate examples, illustrations, or explanations. Any embodiment or design described as "exemplary," "for example," or "for instance" in the embodiments of this application should not be construed as being more preferred or advantageous than other embodiments or designs. Specifically, the use of the words "exemplary," "for example," or "for instance" is intended to present the relevant concepts in a specific manner.

[0042] In the description of the embodiments in this application, the term "and / or" is merely a description of the association relationship between related objects, indicating that three relationships can exist. For example, A and / or B can represent: A existing alone, B existing alone, and A and B existing simultaneously. Furthermore, unless otherwise stated, the term "multiple" means two or more. For example, multiple systems refer to two or more systems, and multiple screen terminals refer to two or more screen terminals.

[0043] Furthermore, the terms "first" and "second" are used for descriptive purposes only and should not be construed as indicating or implying relative importance or implicitly specifying the indicated technical features. Thus, a feature defined as "first" or "second" may explicitly or implicitly include one or more of that feature. The terms "comprising," "including," "having," and their variations all mean "including but not limited to," unless otherwise specifically emphasized.

[0044] Before introducing the embodiments of this application, the technical terms mentioned in the embodiments of this application will be introduced below.

[0045] A blockchain system is a new distributed infrastructure and computing paradigm that uses a block-chain data structure to verify and store data, a distributed node consensus algorithm to generate and update data, cryptography to ensure the security of data transmission and access, and smart contracts composed of automated script code to program and manipulate data.

[0046] A smart contract is a type of automated script code that runs on a blockchain system. It is a special computer program that can automatically execute corresponding operations based on pre-defined rules and conditions, when specific conditions are met. Smart contracts are typically designed to automate and securely execute and verify various transactions and agreements within a contract without the need for third-party intervention or trust.

[0047] Zero-knowledge proof (ZKP) is a cryptographic protocol that allows one party (the prover) to prove a statement to another party (the verifier) ​​that it is true, without revealing any information other than the statement's truthfulness. In other words, the prover only discloses the statement and the proof that it is true, without disclosing any other information. The core of ZKP lies in its "zero-knowledge" characteristic, meaning the verifier cannot obtain any additional information beyond the fact that the statement is true through the proof process. The core value of ZKP lies in protecting privacy and security, especially in scenarios involving sensitive information or data ownership. ZKP is widely used in identity verification, digital rights management, blockchain technology (such as privacy-preserving transactions), and data privacy protection. Through ZKP, users can prove their identity, asset ownership, or fulfill certain preset conditions without disclosing personal information, thereby enhancing system security and user privacy.

[0048] A zero-knowledge proof generation library is a set of pre-compiled code or components that are implemented based on specific zero-knowledge proof generation algorithms and are used to generate the required zero-knowledge proofs in practical applications. In other words, a zero-knowledge proof generation library is a concrete implementation of a zero-knowledge proof generation algorithm.

[0049] A zero-knowledge proof circuit is a core component of zero-knowledge proof technology. It represents a computational logic that defines the steps or logical operations required to verify a statement as true. In some embodiments, the zero-knowledge proof circuit can be written by the verifier based on Boolean functions or some arithmetic operations.

[0050] The proof information in a zero-knowledge proof scenario can include the zero-knowledge proof itself, first information, and second information. First information refers to the information used to generate the zero-knowledge proof, which may include, for example, a proving key (PK), witness information, and a computational model. Second information refers to the information used to verify the zero-knowledge proof, which may include, for example, a verification key (VK) and a zero-knowledge proof verification contract. In some contexts, the first and second information can also be referred to as material information related to the zero-knowledge proof. The computational model is the easily processed mathematical form of the zero-knowledge proof circuit after conversion, and may include, but is not limited to, a rank-1 constraint system (R1CS) model. The witness information is the set of values ​​of all variables during the evaluation process of the zero-knowledge proof circuit, indicating how the computational logic represented by the zero-knowledge proof circuit is satisfied. The zero-knowledge proof verification contract is a smart contract in a blockchain system used to verify the zero-knowledge proof.

[0051] In some application scenarios of zero-knowledge proofs, the process of generating the proof is quite complex. Specifically, the prover needs to write a zero-knowledge proof circuit using a specialized circuit language. After writing the circuit, further operations are required based on the circuit to generate the aforementioned proof information. These application scenarios also place high demands on the prover's technical skills and expertise, making the use of zero-knowledge proof technology by ordinary users both difficult and costly. Furthermore, the security of the proof information cannot be guaranteed in these application scenarios, as there is a risk of leakage. On the other hand, when errors occur in a zero-knowledge proof, it is impossible to trace the source and determine which stage of the proof generation process went wrong.

[0052] To address the aforementioned problems, embodiments of this application provide a communication method. This communication method can be applied to blockchain systems. For example... Figure 1 As shown, the blockchain system can provide proof information to the client based on the client's zero-knowledge proof requirements. This proof information can include one or more of the zero-knowledge proof itself and related material information. This method reduces the complexity for provers using zero-knowledge proof technology and improves the user experience. Furthermore, the proof information is generated and stored within the blockchain system, and the blockchain's tamper-proof characteristics ensure that the proof information cannot be leaked or altered, thereby enhancing its security.

[0053] Next, combined Figure 2 The communication method provided in the embodiments of this application will be described in detail.

[0054] Figure 2 This is a flowchart illustrating a communication method provided in an embodiment of this application. This method can be executed by the first node in a blockchain system. The blockchain system may include, but is not limited to, a consortium blockchain system, a public blockchain system, or other types of blockchain systems. For example, a consortium blockchain system may include… Figure 3 The structure shown may specifically include multiple nodes such as endorsement nodes 11 to 13 and consensus node 21. A public blockchain system may include, for example, […]. Figure 4 The structure shown may specifically include multiple nodes, such as nodes 31 to 33. It should be noted that this application does not impose specific limitations on the type of blockchain system or the type and number of nodes included in the blockchain system. For example, in some embodiments, the consortium blockchain system may also include endorsement nodes, ordering nodes, and commit nodes, wherein the ordering nodes and commit nodes can work together. Figure 3 The functions implemented by consensus node 21 in the consortium blockchain system shown.

[0055] like Figure 2As shown, the method may include S201-S204. The following describes... Figure 2 The steps in the communication method shown will be described in detail.

[0056] S201, the first node receives a first transaction from the first client, the first transaction including a first smart contract, the first smart contract including a zero-knowledge proof circuit.

[0057] In this step, the prover can pre-write a first smart contract and send a first transaction (referred to as transaction T1) carrying this first smart contract to the first node in the blockchain system through a first client (referred to as client 1). The first node can then receive transaction T1 from client 1. This first smart contract can also be called a zero-knowledge proof circuit contract.

[0058] by Figure 3 Taking the consortium blockchain system shown as an example, the prover can submit a tester's application to client 1. Figure 3 The one or more endorsing nodes shown send transaction T1. These one or more endorsing nodes include the first node, for example, when the first node is... Figure 3 When endorsing node 11 is shown, endorsing node 11 can receive transaction T1 from client 1. This embodiment of the application does not impose a specific limit on the number of endorsing nodes receiving transaction T1. In practical applications, the consortium blockchain system can set the number of endorsing nodes that the client needs to endorse according to actual requirements. It should be noted that... Figure 3 The symbols ① to ⑥ shown are examples of embodiments of this application used to illustrate... Figure 3 The sequence of steps performed by each entity (including nodes and clients) to achieve the purpose of this application.

[0059] by Figure 4 Taking the public blockchain system shown as an example, when the first node is Figure 4 When node 31 is shown, the prover can send the first transaction to node 31 through client 1, thereby node 31 can receive transaction T1 from client 1. Similarly, Figure 4 The symbols ① to ④ shown are examples of embodiments of this application used to illustrate the following. Figure 4 The sequence of steps performed by each entity (including nodes and clients) to achieve the purpose of this application.

[0060] The first smart contract mentioned above may include a zero-knowledge proof circuit and input parameters.

[0061] In this embodiment, the prover can use the smart contract language of the blockchain system to write zero-knowledge proof circuits. This eliminates the need for the prover to master a specialized zero-knowledge proof circuit language, reducing the complexity of using zero-knowledge proof technology at the programming language level and improving the prover's convenience.

[0062] In some possible embodiments, the first smart contract language may include a start identifier and an end identifier for a zero-knowledge proof circuit, which the first node can determine based on. For example, the first smart contract written by the prover may include... Figure 5 The code structure shown. In Figure 5 In the first smart contract, in addition to including zero-knowledge proof circuits (i.e., Figure 5 In addition to the `def zklogic` part and input parameters, the first smart contract can also include the identifiers "#zkp start" (start identifier) ​​and "#zkp end" (end identifier). The prover can write the first smart contract between these two identifiers. Nodes in the blockchain system can determine that the code between the two identifiers constitutes a zero-knowledge proof circuit based on the start and end identifiers, and then perform subsequent processing on the zero-knowledge proof circuit. Figure 5 The specific content of the zero-knowledge proof circuit and input parameters in the first smart contract shown can be determined according to the actual situation, and this application embodiment does not impose specific limitations. Furthermore, the first smart contract can also specify the types of variables required by the first smart contract (…). Figure 5 (Not shown in the image) is declared for use in subsequent processing.

[0063] In this embodiment, the input parameters may include public input and private input. In some embodiments, the first node in the blockchain system can provide a trusted execution environment (TEE). In this case, when the prover writes the first smart contract, they can encrypt the private input using the public key of the first node's TEE. After receiving the private input from the first smart contract, the first node's TEE decrypts it using its private key. The TEE is a secure area in the blockchain system jointly constructed by hardware and software, protecting the code and data loaded within it from attacks or tampering by external malware. Therefore, after receiving transaction T1, the first node can also process transaction T1 through its TEE. That is, the steps after the first node receives the transaction can be executed by its TEE.

[0064] S202, the first node generates first information and / or second information based on the zero-knowledge proof circuit.

[0065] After receiving transaction T1, the first node performs calculations based on the zero-knowledge proof circuit and input parameters in transaction T1 to obtain first information and / or second information. The first information refers to the information used to generate the zero-knowledge proof, which may include one or more of the following: proof key, witness information, computational model, etc. The second information refers to the information used to verify the zero-knowledge proof, which may include one or more of the following: verification key, zero-knowledge proof verification contract, etc.

[0066] When the first node is Figure 3 When endorsing node 11 is shown, it can perform endorsement processing based on the zero-knowledge proof circuit and input parameters in transaction T1 to obtain the first and second information. The following is combined with... Figure 6 The functional components shown illustrate the endorsement process of endorsement node 11.

[0067] Endorsement node 11 may include, for example: Figure 6 The compilation component shown. Endorsing node 11 can use this compilation component to compile and transform the form of the first smart contract, thereby facilitating further processing by subsequent components. Specifically, as... Figure 6 As shown, endorsement node 11 can use the compilation component to compile the zero-knowledge proof circuit carried by the first smart contract into a computer-executable first program, and to convert the zero-knowledge proof circuit and input parameters into a computer-recognizable form. The computer-recognizable form obtained after the conversion of the zero-knowledge proof circuit is a computational model (e.g., Figure 6 The R1CS model shown.

[0068] Endorsement node 11 may also include Figure 6 The key generation component is shown. Endorsement node 11 can use this key generation component to generate the proof key PK and the verification key VK based on the processing results of the compilation component. Specifically, as shown... Figure 6 As shown, after obtaining the R1CS model through the compilation component, the endorsement node 11 can generate the proof key PK and the verification key VK according to the R1CS model through the key generation component.

[0069] Endorsement node 11 may also include Figure 6 The witness calculation component is shown. Specifically, the endorsement node 11 can use this witness calculation component to input the formally transformed input parameters into the first program for calculation to obtain the witness information.

[0070] Endorsement node 11 may also include Figure 6The zero-knowledge proof generation component is shown. Specifically, the endorsement node 11 can input the witness information, proof key PK, and computation model into the zero-knowledge proof generation library through the zero-knowledge proof generation component to obtain the zero-knowledge proof generated by the zero-knowledge proof generation library.

[0071] Endorsement node 11 may also include Figure 6 The verification contract generation component is shown. Endorsing node 11 can generate a second smart contract using the verification contract generation component based on the zero-knowledge proof and the verification key VK. This second smart contract is used to verify the zero-knowledge proof; it can also be called a zero-knowledge proof verification contract.

[0072] Endorsement node 11 may also include Figure 6 The contract execution component is shown. When any validator calls the second smart contract to verify the zero-knowledge proof, endorsement node 11 can run the second smart contract through the contract execution component to obtain the verification result. The specific process will be described in detail later. Figure 7 Let me introduce it.

[0073] Endorsement node 11 through the above Figure 6 The various functional components shown can generate the zero-knowledge proofs and related material information required by the prover.

[0074] Furthermore, in some other embodiments, the prover can also generate material information related to the zero-knowledge proof through the blockchain system, such as generating one or more of first information and / or second information. In these embodiments, the prover can generate the zero-knowledge proof outside the blockchain system. This application does not impose specific limitations on the specific process by which the prover generates the zero-knowledge proof outside the blockchain system.

[0075] In other embodiments described above, the first smart contract may further include function instructions, allowing the endorsing node 11 to determine the category of material information related to zero-knowledge proofs generated by the blockchain system based on these function instructions. For example, when the first smart contract includes function instructions, the endorsing node 11 can... Figure 6 The compilation and key generation components shown obtain the proof key and verification key. For example, when the first smart contract includes function instructions, the endorsing node 11 can... Figure 6 The compilation component, key generation component, and witness calculation component shown obtain the proof key, verification key, and witness information.

[0076] In other embodiments described above, the first smart contract may further include a target parameter, and the endorsing node 11 can determine the category of the first information and / or the second information based on the value of the target parameter. For example, when the value of the target parameter is the first value, the endorsing node 11 can... Figure 6 The compilation and key generation components shown obtain the proof key and verification key. For example, when the target parameter has a second value, endorsement node 11 can... Figure 6 The compilation component, key generation component, and witness calculation component shown obtain the proof key, verification key, and witness information.

[0077] When the first node is Figure 4 Taking node 31 as an example, the components and processing of node 31 can be referred to the above description of the components and corresponding processes of the endorsement node 11, which will not be repeated here.

[0078] As described above, after executing S202, the first node can obtain the zero-knowledge proof and / or material information related to the zero-knowledge proof required by the prover. After this, the first node can send the proof information to the first client, as detailed in the following description of S203.

[0079] S203, the first node sends the first result to the first client.

[0080] The first node can send a first result to the first client, which includes proof information and a first signature. The proof information may include one or more of first information, second information, and zero-knowledge proofs, and the first signature is generated based on the proof information.

[0081] When the first node is Figure 3 When endorsing node 11 is shown, the first result is the first endorsement result of endorsing node 11, and the first signature is the first endorsement signature of endorsing node 11. That is, endorsing node 11 can send the first endorsement result to client 1. The first endorsement result includes proof information and the first endorsement signature. Specifically, the first endorsement signature is generated by endorsing node 11 based on the proof information. Specifically, endorsing node 11 can encrypt the proof information using its private key, and obtain the first endorsement signature based on the encryption result.

[0082] When the first node is Figure 4 When node 31 is shown, the first result is the first transaction result of node 31, and the first signature is the first transaction signature of node 31. That is, node 31 can send the first transaction result to client 1. The first transaction result includes proof information and the first transaction signature. The first transaction signature is generated by node 31 based on the proof information. Specifically, node 31 can encrypt the proof information using its private key, and obtain the first transaction signature based on the encryption result.

[0083] It should be noted that if the first smart contract does not include the aforementioned functional instructions and / or target parameters, the proof information may include first information, second information, and zero-knowledge proofs. If the first smart contract includes functional instructions and / or target parameters, the content of the proof information shall be determined according to the actual situation.

[0084] For example, when the first smart contract includes function instructions, the proof information may include a proof key and a verification key. As another example, when the first smart contract includes function instructions, the proof information may include a proof key, a verification key, and witness information.

[0085] For example, when the target parameter has a first value, the proof information may include a proof key and a verification key. As another example, when the target parameter has a second value, the proof information may include a proof key, a verification key, and witness information.

[0086] S204: After the second node in the blockchain system reaches consensus on the first transaction and the first result, the first node receives the first block information from the second node and updates its stored ledger. The updated ledger includes the first block information, which in turn includes the first transaction and the first result.

[0087] In a consortium blockchain system, after a prover receives the endorsement result from the first node (endorsing node) through client 1, they can send transaction T1 and the endorsement results of each endorsing node for transaction T1 to the second node (consensus node) in the consortium blockchain system through client 1, thereby achieving consensus through the second node. After consensus is reached, transaction T1 and the endorsement results of each endorsing node for transaction T1 are stored in the ledger of the consortium blockchain system.

[0088] by Figure 3 For example, after receiving the first endorsement result from the endorsing node 11, client 1 can send transaction T1 and the endorsement results of each endorsing node for transaction T1 to consensus node 21 in the blockchain system. The endorsement results of each endorsing node for transaction T1 include the first endorsement result of endorsing node 11.

[0089] After receiving transaction T1 and the endorsement results of each endorsing node for transaction T1, consensus node 21, as follows: Figure 3As shown, consensus node 21 can reach a consensus on transaction T1 and the endorsement results of each endorsing node for transaction T1. The consensus process of consensus node 21 may include verifying transaction T1. After transaction T1 is verified, consensus node 21 sorts multiple transactions and their endorsement results from one or more clients and generates a first block. This first block contains transaction T1 and the endorsement results of each endorsing node for transaction T1. After all transactions and their endorsement results in the first block are verified, consensus node 21 updates its stored ledger according to the first block and then sends the first block to other nodes in the blockchain system so that other nodes can update their stored ledgers.

[0090] Taking endorsement node 11 as an example, after receiving the first block information from consensus node 21, endorsement node 11 updates its ledger based on this information. The updated ledger includes transaction T1 and the endorsement results of each endorser node for transaction T1. Since the first endorsement result of each endorser node includes proof information, the updated ledgers of each node store both transaction T1 and the first endorsement result, and also indicate that proof information is stored. Figure 3 During the process of updating the ledger at the node shown, Figure 3 The node shown can store transaction T1 in Figure 3 The blockchain-based storage structure shown stores the endorsement result of transaction T1 in... Figure 3 The world state is stored as shown.

[0091] In a non-consortium blockchain system, before sending the first transaction result to the client, the first node can send transaction T1 and the first transaction result to the second node (consensus node) in the blockchain system, thereby achieving consensus through the second node. After consensus is reached, transaction T1 and the first transaction result are stored in the blockchain system's ledger. The first node can also send transaction T1 and the first transaction result to the client after consensus is reached.

[0092] Taking the first node as Figure 4 Taking node 31 in the blockchain system shown as an example, Figure 4As shown, before sending the first transaction result to client 1, node 31 can send transaction T1 and its first transaction result to node 32 in the blockchain system. After receiving transaction T1 and its first transaction result, node 32 performs consensus on transaction T1 and its first transaction result. The consensus process of node 32 can refer to the consensus process of consensus node 21 described above, and will not be repeated here. After updating the ledger stored by node 32, node 32 can send the first block information to other nodes in the blockchain system so that other nodes can update their stored ledgers. Taking node 31 as an example, after receiving the first block information from node 32, node 31 updates its stored ledger according to the first block information. The updated ledger stored by node 31 includes the first block information. Since the first transaction result includes proof information, the updated ledgers stored by each node include proof information. Figure 4 During the process of updating the ledger at the node shown, Figure 4 The node shown can store transaction T1 in Figure 4 The blockchain-based storage structure shown stores the first transaction result of transaction T1 in... Figure 4 The world state is stored as shown.

[0093] In the above Figure 2 In the illustrated method embodiment, the proof information is generated on the blockchain system, which reduces the complexity for the prover using zero-knowledge proof technology and improves the convenience for the prover to generate zero-knowledge proofs, thereby enhancing the user experience. Furthermore, the tamper-proof nature of the blockchain system also improves the security of the proof information. Moreover, when the first node sends the first information to the prover, if the zero-knowledge proof in the ledger stored by the first node differs from the zero-knowledge proof obtained by the prover, the prover can trace the source based on the first information to determine which step in the generation of the zero-knowledge proof went wrong.

[0094] This application also provides another communication method for verifying zero-knowledge proofs from verifiers.

[0095] Figure 7 This is a flowchart of another communication method provided in an embodiment of this application. For example... Figure 7 As shown, the method includes S701 to S704. The following uses... Figure 1 Taking the first node in the blockchain system shown as an example, let's compare... Figure 7 The steps shown will be explained.

[0096] S701, the first node receives the second transaction from the second client.

[0097] After receiving a zero-knowledge proof of a statement from the prover, the verifier, such as Figure 8As shown, a second transaction (referred to as transaction T2) can be sent to the blockchain system through a second client (referred to as client 2). For example, a validator can send transaction T2 to the first node in the blockchain system through client 2. This transaction T2 is used to request the invocation of a second smart contract to verify the obtained zero-knowledge proof. The zero-knowledge proof can be included in transaction T2. ​​The validator can then... Figure 2 The method shown is used to obtain this zero-knowledge proof.

[0098] S702, the first node uses the second smart contract to verify the zero-knowledge proof in the second transaction and obtains the verification result.

[0099] The first node can verify the zero-knowledge proof in transaction T2 through the second smart contract and obtain the verification result. The verifier can then determine whether the statement proved by the zero-knowledge proof is true based on the verification result.

[0100] S703, the first node sends the second result to the second client.

[0101] The second result includes the verification result and the second signature, which is generated by the first node based on the verification result.

[0102] Taking the first node as Figure 8 Taking the endorsement node 11 as an example, the second result is the second endorsement result, and the second signature is the second endorsement signature generated by the endorsement node 11 based on the verification result. That is to say, after endorsing transaction T2, the endorsement node 11 sends the second endorsement result to the client 2.

[0103] Taking the first node as Figure 4 Taking node 31 as an example, the second result is the second transaction result, and the second signature is generated by node 31 based on the verification result.

[0104] S704 After the second node reaches a consensus on the second transaction and the result of the second transaction, the first node receives the second block information from the second node and updates the ledger stored by the first node. The updated ledger stored by the first node includes the second block information, which includes the second transaction and the second result.

[0105] In a consortium blockchain system, after a validator receives the endorsement results from a certain number of endorsing nodes through client 2, such as... Figure 8As shown, the second transaction and its various endorsement results can be sent to consensus node 21. Consensus node 21 generates second block information based on the second transaction and its various endorsement results, reaches consensus on the second block information, and after consensus is reached, updates the ledger stored by consensus node 21, including the second block information. Then, consensus node 21 sends the second block information to endorsement node 11. Endorsement node 11 receives the second block information from consensus node 21 and updates its ledger, including the second block information.

[0106] exist Figure 4 In the system shown, before sending transaction T2 and the second transaction result to the validator's client 2, node 31 sends transaction T2 and the second transaction result to node 32 in the system. After receiving transaction T2 and the second transaction result, node 32 generates second block information based on transaction T2 and the second transaction result, and reaches consensus on the second block information. After consensus is reached, node 32 updates its stored ledger and sends the second block information to node 31. Node 31 receives the second block information from node 32 and updates its stored ledger, which now includes the second block information.

[0107] based on Figure 2 and Figure 7 The method shown in this application embodiment also provides a communication device. This communication device is used to perform... Figure 2 and / or Figure 7 The steps shown.

[0108] Figure 9 This is a structural schematic diagram of a communication device 900 provided in this embodiment. For example... Figure 9 As shown, the communication device 900 includes a receiving module 901, a transmitting module 903, and a processing module 902.

[0109] When the communication device 900 is used to perform Figure 2 Each module may include the following functions during the various steps shown.

[0110] The receiving module 901 is used to receive a first transaction from a first client, the first transaction including a first smart contract, and the first smart contract including a zero-knowledge proof circuit.

[0111] The processing module 902 is used to generate first information and / or second information based on the zero-knowledge proof circuit. The first information is used to generate a zero-knowledge proof, and the second information is used to verify the zero-knowledge proof.

[0112] The sending module 903 is used to send proof information, which includes one or more of first information, second information, and zero-knowledge proof. The first information and the second information are generated according to the zero-knowledge proof circuit. The first information is used to generate the zero-knowledge proof, and the second information is used to verify the zero-knowledge proof.

[0113] The receiving module 901 is further configured to receive the first block information from the second node after the second node has reached a consensus on the first transaction and the first result. The processing module 902 is further configured to update the ledger stored by the first node, wherein the updated ledger includes the first block information, and the first block information includes the first transaction and the first result.

[0114] When the communication device 900 is used to perform Figure 7 Each module may include the following functions during the various steps shown.

[0115] The receiving module 901 is used to receive a second transaction from a second client. The second transaction is used to request the invocation of a second smart contract and includes a zero-knowledge proof.

[0116] The processing module 902 is used to verify the zero-knowledge proof in the second transaction using the second smart contract and obtain the verification result.

[0117] The sending module 903 is used to send a second result to a second client. The second result includes a verification result and a second signature, which is generated based on the verification result.

[0118] The receiving module 901 is further configured to receive second block information from the second node after the second node has reached a consensus on the second transaction and the second result. The processing module 902 is further configured to update the ledger stored by the first node, wherein the updated ledger includes the second block information, which in turn includes the second transaction and the second result.

[0119] It should be noted that, Figure 9 The communication device 900 provided in the illustrated embodiment, when executing the communication method, is only illustrated by the division of the above-described functional modules. In practical applications, the above functions can be assigned to different functional modules as needed, that is, the internal structure of the device can be divided into different functional modules to complete all or part of the functions described above. Furthermore, the communication device 900 provided in the above embodiment and... Figure 2 or Figure 7 The communication method embodiments shown belong to the same concept, and their specific implementation process can be found in the method embodiments, which will not be repeated here.

[0120] When the above-described module is used as an example of a software functional unit, the communication device 900 may include code running on a computing instance. The computing instance may be at least one of a physical host (computing device), a virtual machine, a container, or other computing devices. Further, the aforementioned computing device may be one or more. For example, the communication device 900 may include code running on multiple hosts / virtual machines / containers. It should be noted that the multiple hosts / virtual machines / containers used to run the application may be distributed in the same region or in different regions. The multiple hosts / virtual machines / containers used to run the code may be distributed in the same availability zone (AZ) or in different AZs, each AZ including one or more geographically proximate data centers. Typically, a region may include multiple AZs.

[0121] Similarly, multiple hosts / virtual machines / containers used to run this code can be distributed within the same Virtual Private Cloud (VPC) or across multiple VPCs. Typically, a VPC is set up within a region. Communication between two VPCs within the same region, as well as between VPCs in different regions, requires a communication gateway to be set up within each VPC to enable interconnection between VPCs.

[0122] When the above-mentioned module is used as an example of a hardware functional unit, the module may include at least one computing device, such as a server. Alternatively, the module may also be a device implemented using an application-specific integrated circuit (ASIC) or a programmable logic device (PLD). The PLD may be implemented using a complex programmable logical device (CPLD), a field-programmable gate array (FPGA), generic array logic (GAL), or any combination thereof.

[0123] The multiple computing devices included in a module can be distributed within the same region or in different regions. Similarly, the multiple computing devices included in a module can be distributed within the same Availability Zone (AZ) or in different AZs. Likewise, the multiple computing devices included in a module can be distributed within the same Virtual Private Cloud (VPC) or multiple VPCs. These multiple computing devices can be any combination of computing devices such as servers, ASICs, PLDs, CPLDs, FPGAs, and GALs.

[0124] It should be noted that, in other embodiments, the receiving module 901, the sending module 903, and the processing module 902 can be used to perform... Figure 2 and / or Figure 7 Any step in the method shown. The steps implemented by the receiving module 901, the sending module 903, and the processing module 902 can be specified as needed and implemented by the receiving module 901, the sending module 903, and the processing module 902 respectively. Figure 2 and / or Figure 7 The different steps in the method shown enable the full functionality of the communication device 900.

[0125] This application also provides a computing device 1000. For example... Figure 10 As shown, the computing device 1000 includes a processor 1001, a memory 1002, a communication interface 1003, and a bus 1004. The processor 1001, memory 1002, and communication interface 1003 communicate with each other via the bus 1004. The computing device 1000 can be a server or a terminal device. It should be understood that this application does not limit the number of processors and memories in the computing device 1000.

[0126] Bus 1004 can be a Peripheral Component Interconnect (PCI) bus or an Extended Industry Standard Architecture (EISA) bus, etc. Buses can be categorized as address buses, data buses, control buses, etc. For ease of representation, Figure 10 The bus 104 may be represented by a single line, but this does not mean that there is only one bus or one type of bus. The bus 104 may include a path for transmitting information between various components of the computing device 1000 (e.g., memory 1002, processor 1001, communication interface 1003).

[0127] The processor 1001 may include any one or more processors such as a central processing unit (CPU), a graphics processing unit (GPU), a microprocessor (MP), or a digital signal processor (DSP).

[0128] The memory 1002 may include volatile memory, such as random access memory (RAM). The processor 1001 may also include non-volatile memory, such as read-only memory (ROM), flash memory, hard disk drive (HDD), or solid state drive (SSD).

[0129] The memory 1002 stores executable program code, and the processor 1001 executes the executable program code to implement the functions of the aforementioned receiving module 901, transmitting module 903, and processing module 902, thereby achieving... Figure 2 The method shown. That is, the memory 1002 stores the method for execution. Figure 2 The instructions for the method shown. And / or, executable code is stored in memory 1002, and processor 1001 executes this executable code to implement the functions of the aforementioned receiving module 901, transmitting module 903, and processing module 902, thereby achieving... Figure 7 The method shown. That is, the memory 1002 stores the method for execution. Figure 7 The instructions for the method shown.

[0130] The communication interface 103 uses modules such as, but not limited to, network interface cards and transceivers to enable communication between the computing device 1000 and other devices or communication networks.

[0131] This application also provides a computing device cluster. This computing device cluster 1100 may include the aforementioned blockchain system. For example... Figure 11 As shown, the computing device cluster 1100 includes at least one computing device 1000. This computing device can be a server, such as a central server, an edge server, or a local server in a local data center. In some embodiments, the computing device can also be a terminal device such as a desktop computer, a laptop computer, or a smartphone. The memory 1002 of one or more computing devices 1000 in the computing device cluster can store the same memory for executing... Figure 2 The instructions for the method shown. Alternatively, the memory 1002 of one or more computing devices 1000 in a computing device cluster may store the same instructions for executing... Figure 7 The instructions for the method shown.

[0132] In some possible implementations, the memory 1002 of one or more computing devices 1000 in the computing device cluster may also store memory for execution. Figure 2 The instructions of the method shown are partial. In other words, a combination of one or more computing devices 1000 can jointly execute instructions for performing... Figure 2 The instructions for the method shown.

[0133] In some possible implementations, the memory 1002 of one or more computing devices 1000 in the computing device cluster may also store memory for execution. Figure 7 The instructions of the method shown are partial. In other words, a combination of one or more computing devices 1000 can jointly execute instructions for performing... Figure 7 The instructions for the method shown.

[0134] It should be noted that the memory 1002 in different computing devices 1000 within the computing device cluster can store different instructions, which are used to execute some functions of the communication device 900. That is, the instructions stored in the memory 1002 of different computing devices 1000 can implement the functions of one or more modules among the receiving module 901, the sending module 903, and the processing module 902.

[0135] In some possible implementations, one or more computing devices in a computing device cluster can be connected via a network. This network can be a wide area network (WAN), a local area network (LAN), or similar. Figure 12 One possible implementation is shown. For example... Figure 12 As shown, two computing devices 1000A and 1000B are connected via a network. Specifically, they are connected to the network through communication interfaces in each computing device. In this possible implementation, the memory 1002 in computing device 1000A stores instructions for performing the functions of the receiving module 901 and the transmitting module 903. Simultaneously, the memory 1002 in computing device 1000B stores instructions for performing the functions of the processing module 902. Figure 12 The connection method between the computing device clusters shown can be considered because the communication method provided in this application requires a large amount of storage and computing resources (e.g., storing a large amount of entity messages). Therefore, the functions implemented by the processing module 902 are considered to be executed by the computing device 1000B. It should be understood that... Figure 12The functions of computing device 1000A shown can also be performed by multiple computing devices 1000. Similarly, the functions of computing device 1000B can also be performed by multiple computing devices 1000.

[0136] This application also provides a computer program product containing instructions. The computer program product may be a software or program product containing instructions, capable of running on a computing device or stored on any usable medium. When the computer program product is run on at least one computing device, it causes the at least one computing device to perform... Figure 2 and / or Figure 7 The communication method shown.

[0137] This application also provides a computer-readable storage medium. The computer-readable storage medium can be any available medium that a computing device can store, or a data storage device such as a data center containing one or more available media. The available medium can be a magnetic medium (e.g., floppy disk, hard disk, magnetic tape), an optical medium (e.g., DVD), or a semiconductor medium (e.g., solid-state drive). The computer-readable storage medium includes instructions that instruct the computing device to execute... Figure 2 and / or Figure 7 The communication method shown.

[0138] Finally, it should be noted that the above embodiments are only used to illustrate the technical solutions of the present invention, and not to limit them; although the present invention has been described in detail with reference to the foregoing embodiments, those skilled in the art should understand that modifications can still be made to the technical solutions described in the foregoing embodiments, or equivalent substitutions can be made to some of the technical features; and these modifications or substitutions do not cause the essence of the corresponding technical solutions to deviate from the protection scope of the technical solutions of the embodiments of the present invention.

Claims

1. A communication method, characterized in that, The method includes: The first node of the blockchain system receives a first transaction from a first client, the first transaction including a first smart contract, and the first smart contract including a zero-knowledge proof circuit; The first node generates first information and / or second information based on the zero-knowledge proof circuit. The first information is used to generate a zero-knowledge proof, and the second information is used to verify the zero-knowledge proof. The first node sends a first result to the first client. The first result includes proof information and a first signature. The proof information includes one or more of first information, second information, and zero-knowledge proof. The first signature is generated based on the proof information. After the second node in the blockchain system reaches a consensus on the first transaction and the first result, the first node receives the first block information from the second node and updates the ledger stored by the first node. The updated ledger stored by the first node includes the first block information, which includes the first transaction and the first result.

2. The method according to claim 1, characterized in that, The first information includes a proof key, and the second information includes a verification key.

3. The method according to claim 1 or 2, characterized in that, The first information also includes witness information, the first smart contract also includes input parameters, and the method further includes: The first node inputs the input parameters into the first program for calculation to obtain the witness information, which is obtained by compiling the zero-knowledge proof circuit.

4. The method according to any one of claims 1-3, characterized in that, The first information also includes a computational model, which is obtained by transforming the zero-knowledge proof circuit; the method further includes: The first node inputs the first information into the zero-knowledge proof generation library to obtain the zero-knowledge proof output by the zero-knowledge proof generation library.

5. The method according to any one of claims 1-4, characterized in that, The second information also includes a second smart contract, and the method further includes: The first node generates the second smart contract based on the zero-knowledge proof and the verification key.

6. The method according to any one of claims 1-5, characterized in that, The method further includes: The second node of the blockchain system receives the first transaction and the first result from the first client or the first node; The second node generates the first block information based on the first transaction and the first result, reaches a consensus on the first block information, and updates the ledger stored by the second node after the consensus is passed. The updated ledger stored by the second node includes the first block information. Send the first block information to the first node.

7. The method according to any one of claims 1-6, characterized in that, The method further includes: The first node receives a second transaction from the second client, the second transaction being used to request the invocation of the second smart contract, and the second transaction including the zero-knowledge proof; The first node uses the second smart contract to verify the zero-knowledge proof in the second transaction and obtains the verification result. The first node sends a second result to the second client, the second result including the verification result and a second signature, the second signature being generated based on the verification result; After the second node in the blockchain system reaches a consensus on the second transaction and the second result, the first node receives the second block information from the second node and updates the ledger stored by the first node. The updated ledger stored by the first node includes the second block information, which includes the second transaction and the second result.

8. The method according to claim 7, characterized in that, The method further includes: The second node of the blockchain system receives the second transaction and the second result from the second client or the first node; The second node generates the second block information based on the second transaction and the second result, reaches a consensus on the second block information, and updates the ledger stored by the second node after the consensus is passed. The updated ledger stored by the second node includes the second block information. Send the second block information to the first node.

9. A communication device, characterized in that, The communication device, used as the first node in a blockchain system, includes: A receiving module is used to receive a first transaction from a first client, wherein the first transaction includes a first smart contract, and the first smart contract includes a zero-knowledge proof circuit. The processing module is configured to generate first information and / or second information based on the zero-knowledge proof circuit, wherein the first information is used to generate a zero-knowledge proof and the second information is used to verify the zero-knowledge proof; A sending module is configured to send a first result to the first client. The first result includes proof information and a first signature. The proof information includes one or more of first information, second information, and zero-knowledge proof. The first signature is generated based on the proof information. The receiving module is further configured to receive first block information from the second node after the second node in the blockchain system has reached a consensus on the first transaction and the first result; The processing module is further configured to update the ledger stored by the first node, wherein the updated ledger includes the first block information, and the first block information includes the first transaction and the first result.

10. The apparatus according to claim 9, characterized in that, The first information includes a proof key, and the second information includes a verification key.

11. The apparatus according to claim 9 or 11, characterized in that, The first information also includes witness information, and the first smart contract also includes input parameters. The processing module is used to: input the input parameters into a first program for calculation to obtain the witness information. The first program obtains the witness information by compiling the zero-knowledge proof circuit.

12. The apparatus according to any one of claims 9-11, characterized in that, The first information also includes a computational model, which is obtained by transforming the zero-knowledge proof circuit. The processing module is further configured to: input the first information into a zero-knowledge proof generation library to obtain the zero-knowledge proof output by the zero-knowledge proof generation library.

13. The apparatus according to any one of claims 9-12, characterized in that, The second information also includes a second smart contract, and the processing module is further configured to: generate the second smart contract based on the zero-knowledge proof and the verification key.

14. The apparatus according to any one of claims 9-13, characterized in that, The second node is also configured to receive the first transaction and the first result from the first client or the sending module, generate the first block information based on the first transaction and the first result, reach a consensus on the first block information, update the ledger stored by the second node after the consensus is passed, the updated ledger stored by the second node includes the first block information, and send the first block information to the communication device.

15. The apparatus according to any one of claims 9-14, characterized in that, The receiving module is also configured to receive a second transaction from a second client, the second transaction being used to request the invocation of a second smart contract, and the second transaction including the zero-knowledge proof; The processing module is also used to verify the zero-knowledge proof in the second transaction using the second smart contract, and obtain the verification result; The sending module is further configured to send a second result to the second client, the second result including the verification result and a second signature, the second signature being generated based on the verification result; The receiving module is further configured to receive second block information from the second node after the second node has reached a consensus on the second transaction and the second result; The processing module is also used to update the ledger stored by the first node. The updated ledger stored by the first node includes the second block information, and the second block information includes the second transaction and the second result.

16. The apparatus according to claim 15, characterized in that, The second node is also configured to receive the second transaction and the second result from the second client or the communication device, generate the second block information based on the second transaction and the second result, reach a consensus on the second block information, update the ledger stored by the second node after the consensus is passed, the updated ledger stored by the second node includes the second block information, and send the second block information to the communication device.

17. A computing device cluster, characterized in that, It includes at least one computing device, each computing device including a processor and memory; The processor of the at least one computing device is configured to execute instructions stored in the memory of the at least one computing device to cause the cluster of computing devices to perform the method as described in claims 1-8.

18. A computer program product containing instructions, characterized in that, Includes computer program instructions that, when executed by a cluster of computing devices, cause the cluster of computing devices to perform the method as described in claims 1-8.

19. A computer-readable storage medium, characterized in that, It includes computer program instructions, which, when executed by a cluster of computing devices, perform the method as described in claims 1-8.