A data transmission method, device, equipment and storage medium based on zero-knowledge proof

By generating the private and public keys of the data demander, encrypting the data using the ElGamal algorithm, and generating zero-knowledge proof parameters, the data transmission security problem caused by the openness and transparency of blockchain smart contracts is solved, and the security of data transmission and automated execution efficiency is improved.

CN120358029BActive Publication Date: 2025-08-15SHANDONG LANGCHAO YUNTOU INFORMATION TECH CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202510847383.4
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2025-06-24
Publication Date
2025-08-15
Estimated Expiration
2045-06-24

AI Technical Summary

Technical Problem

In the process of data transmission based on zero-knowledge proof, the open and transparent nature of blockchain smart contracts leads to a lack of privacy protection in data transmission, and the inability to verify the authenticity of encrypted data, affecting the security and automated execution of data transmission operations.

Method used

By generating the private and public keys of the data demander, the data is encrypted using the ElGamal algorithm, and zero-knowledge proof parameters are generated, combining the marking method and data delivery method of smart contracts to ensure the security of data transmission.

Benefits of technology

It improves the security of data delivery operations, ensures the authenticity and privacy of data, and improves the efficiency of automated execution of data delivery.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120358029B_ABST
    Figure CN120358029B_ABST
Patent Text Reader

Abstract

The present application discloses a data transmission method, apparatus, device and storage medium based on zero-knowledge proof, which is applied to data providers and relates to the field of cryptography technology, including: obtaining a first private key and a first public key generated by a data demander based on a key generation request, and encrypting the target data to be transmitted using the second public key and the ElGamal algorithm sent to the smart contract by the data platform to obtain the first encrypted data; obtaining the first encrypted data marked as compliant by the data platform in the smart contract, and associating it with the local data to be processed, then encrypting the data to be processed using the first public key, calling a data transmission method using a zero-knowledge proof parameter generated based on the first encrypted data and the obtained second encrypted data, and sending the second encrypted data to the smart contract so that the data demander can use the first private key to decrypt the second encrypted data obtained from the smart contract to obtain the target data. This can improve the security of the data transmission operation.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to the technical field of cryptography, and in particular to a data transmission method, apparatus, device and storage medium based on zero-knowledge proof. Background Art

[0002] Currently, blockchain technology allows smart contracts to automatically execute some data transfer operations during data transmission, streamlining the process. It also ensures that target data is tamper-proof, enhancing the reliability of data transfer operations. However, the open and transparent nature of blockchain smart contracts can compromise the privacy of data transferred during these operations. Therefore, most blockchains only encrypt data before transferring it to blockchain smart contracts. However, this approach introduces new challenges during data transfer: Smart contracts are unable to verify encrypted data, making it difficult to guarantee its authenticity and validity, and hindering the subsequent automated execution of data transfer operations within the smart contract. Furthermore, decrypting and verifying data within the smart contract exposes the plaintext and key, effectively failing to protect data privacy.

[0003] As can be seen from the above, how to improve the security of data transmission operations in the process of data transmission based on zero-knowledge proof is an urgent problem that needs to be solved. Summary of the Invention

[0004] In view of this, the purpose of the present invention is to provide a data transmission method, apparatus, device, and storage medium based on zero-knowledge proof, which can improve the security of data transmission operations during the data transmission process based on zero-knowledge proof. The specific scheme is as follows:

[0005] In a first aspect, the present application provides a data transmission method based on zero-knowledge proof, which is applied to a data provider, including:

[0006] Obtaining a first private key generated by the data requester based on the key generation request and a first public key corresponding to the first private key, and encrypting the target data to be transmitted using the second public key issued to the smart contract by the data platform and the ElGamal algorithm to obtain first encrypted data;

[0007] Obtaining first encrypted data marked as compliant by the data platform using a preset marking method in the smart contract, associating the data with local data to be processed, and then encrypting the data to be processed using the first public key to obtain second encrypted data; the data to be processed is data obtained by the data platform using a second private key corresponding to the second public key to decrypt the first encrypted data;

[0008] A zero-knowledge proof parameter is generated based on the first encrypted data and the second encrypted data, and a data transfer method in the smart contract is called based on the zero-knowledge proof parameter to send the second encrypted data to the smart contract, so that the data demander obtains the second encrypted data from the smart contract and uses the first private key to decrypt the second encrypted data to obtain the target data.

[0009] Optionally, the process of the data requester generating the first private key and the first public key corresponding to the first private key based on the key generation request includes:

[0010] Calling a preset key generation center to determine a target prime number, and determining a target primitive element based on the target prime number, and recording the target prime number and the target primitive element in a smart contract on the blockchain;

[0011] Calling the preset key generation center to generate a first private key using the target prime number;

[0012] A first public key corresponding to the first private key is determined based on the first private key and a preset public key determination formula, and the first private key is sent to the user corresponding to the data demander, and then the first public key is recorded in the smart contract of the blockchain.

[0013] Optionally, the step of encrypting the target data to be transmitted using the second public key sent by the data platform to the smart contract and the ElGamal algorithm to obtain the first encrypted data includes:

[0014] Obtaining from the smart contract a second public key issued by the data platform to the smart contract, and determining a first target integer using a preset integer determination rule, then determining a first ciphertext corresponding to the target data to be transmitted based on the first target integer, the target primitive, and the second public key, and determining a second ciphertext based on the target data to be transmitted, the target prime number, the first target integer, and the second public key, to determine first encrypted data based on the first ciphertext and the second ciphertext;

[0015] Determine whether the current number of data transfer credentials is less than a first preset number. If the current number of data transfer credentials is not less than the first preset number, call a preset evaluation method in the smart contract in the blockchain based on the first encrypted data and the second public key to freeze the first preset number of data transfer credentials of the data provider, so as to use the first preset number of data transfer credentials frozen by the data provider to transfer the target data to be transmitted.

[0016] Optionally, the data platform calls a preset marking method in the smart contract to mark the first encrypted data that has passed verification on the smart contract as compliant, including:

[0017] The data platform monitors the smart contract. If it is monitored that the preset evaluation method in the smart contract is called and the preset evaluation method includes the second public key, the data platform decrypts the first encrypted data using the second private key to obtain the data to be processed;

[0018] Calling the data platform and using the preset evaluation method to evaluate the data to be processed to obtain an evaluation result. If the evaluation result indicates that the data is non-compliant, calling the smart contract to record the data corresponding to the evaluation result and destroying a first preset number of data transfer certificates of the data provider;

[0019] If the evaluation result indicates that the data is compliant, the data platform is called and the preset marking method in the smart contract is called based on the data to be processed, the first ciphertext and the first preset number of frozen data transfer certificates, so as to use the preset upload method to pre-mark the first encrypted data corresponding to the data to be processed as compliant in the smart contract, and attach data description information.

[0020] Optionally, encrypting the data to be processed by using the first public key to obtain second encrypted data includes:

[0021] Calling the data requester and determining the required data based on its own needs in the data platform according to the additional data description information, and then calling the smart contract to determine whether the number of data transfer vouchers corresponding to the data requester is less than a second preset number;

[0022] If the number of data transfer vouchers corresponding to the data requester is not less than the second preset number, calling the preset data acquisition method in the smart contract based on the first public key to obtain the data to be processed using the preset data acquisition method, and freezing the second preset number of data transfer vouchers of the data requester, so as to transfer the data to be processed using the second preset number of data transfer vouchers frozen by the data requester;

[0023] A second target integer is determined by the data provider, and a third ciphertext corresponding to the data to be processed is determined based on the second target integer and the target primitive element. A fourth ciphertext is determined based on the data to be processed, the target prime number, and the second target integer, and then second encrypted data is determined based on the third ciphertext and the fourth ciphertext.

[0024] Optionally, generating a zero-knowledge proof parameter based on the first encrypted data and the second encrypted data includes:

[0025] Determining a first random integer based on the target prime number, determining first data to be calculated based on the target prime number, the first random integer, and the first target integer, determining second data to be calculated based on the second target integer, the first random integer, and the target prime number, determining third data to be calculated based on the first random integer, the second target integer, and the target primitive, and determining fourth data to be calculated based on the data to be processed and the first random integer;

[0026] Determining a second random integer based on the target prime number, and determining fifth data to be calculated based on the second random integer, the target prime number, and the first target integer, determining sixth data to be calculated based on the second random integer, the target prime number, and the second target integer, determining seventh data to be calculated based on the second random integer and the target primitive element, and determining eighth data to be calculated based on the data to be processed and the second random integer;

[0027] Using a preset hash function, a hash value is determined based on the first data to be calculated, the second data to be calculated, the third data to be calculated, the fourth data to be calculated, the fifth data to be calculated, the sixth data to be calculated, the seventh data to be calculated and the eighth data to be calculated, and a zero-knowledge proof parameter is determined based on the hash value.

[0028] Optionally, the using a preset hash function and determining a hash value based on the first data to be calculated, the second data to be calculated, the third data to be calculated, the fourth data to be calculated, the fifth data to be calculated, the sixth data to be calculated, the seventh data to be calculated, and the eighth data to be calculated includes:

[0029] using a plurality of preset verification formulas to respectively verify specific combinations of the first data to be calculated, the second data to be calculated, the third data to be calculated, the fourth data to be calculated, the fifth data to be calculated, the sixth data to be calculated, the seventh data to be calculated, and the eighth data to be calculated, to obtain corresponding verification results;

[0030] If all the verification results indicate that the verification is passed, the data provider is called to use a preset hash function, and a hash value is determined based on the first data to be calculated, the second data to be calculated, the third data to be calculated, the fourth data to be calculated, the fifth data to be calculated, the sixth data to be calculated, the seventh data to be calculated and the eighth data to be calculated.

[0031] In a second aspect, the present application provides a data transmission device based on zero-knowledge proof, which is applied to a data provider, including:

[0032] A first encrypted data determination module is configured to obtain a first private key generated by the data requester based on a key generation request and a first public key corresponding to the first private key, and to encrypt the target data to be transmitted using the second public key issued to the smart contract by the data platform and the ElGamal algorithm to obtain first encrypted data;

[0033] a second encrypted data determination module configured to obtain first encrypted data marked as compliant by the data platform using a preset marking method in the smart contract, associate the data with local data to be processed, and then encrypt the data to be processed using the first public key to obtain second encrypted data; the data to be processed is data obtained by the data platform decrypting the first encrypted data using a second private key corresponding to the second public key;

[0034] a target data determination module, configured to generate zero-knowledge proof parameters based on the first encrypted data and the second encrypted data, and to call a data transfer method in the smart contract based on the zero-knowledge proof parameters to deliver the second encrypted data to the smart contract, so that the data demander can obtain the second encrypted data from the smart contract, and decrypt the second encrypted data using the first private key to obtain the target data.

[0035] In a third aspect, the present application provides an electronic device, comprising:

[0036] Memory, used to store computer programs;

[0037] A processor is used to execute the computer program to implement the aforementioned data transmission method based on zero-knowledge proof.

[0038] In a fourth aspect, the present application provides a computer-readable storage medium for storing a computer program, wherein the computer program implements the aforementioned data transmission method based on zero-knowledge proof when executed by a processor.

[0039] As can be seen from the above, before performing data transmission based on zero-knowledge proof, this application needs to generate a private key and a first public key corresponding to the private key based on a key generation request, and call the data platform to generate a second public key, and then call the data provider and use the ElGamal algorithm and the second public key to encrypt the target data to be transmitted to obtain the first encrypted data; call the data platform and use the private key to decrypt the first encrypted data, obtain the original data and verify the compliance, then call the preset marking method in the smart contract to pre-mark the first encrypted data corresponding to the original data as compliant, and attach data description information; call the data demander and The preset data acquisition method in the smart contract is used to obtain the required target data in the data platform according to the additional data description information, and then the target data is encrypted by the data provider using the first public key to obtain second encrypted data; the data provider is called and zero-knowledge proof parameters are generated based on the first encrypted data and the second encrypted data, and the data transfer method in the smart contract is called based on the second encrypted data and the zero-knowledge proof parameters to send the second encrypted data to the data demander, so that the data demander can use the private key to decrypt the second encrypted data to obtain the target data.

[0040] It can be seen that this application first needs to generate a private key and a first public key corresponding to the private key based on a key generation request, and call the data platform to generate a second public key, and then call the data provider and use the ElGamal algorithm and the second public key to encrypt the target data to be transmitted to obtain the first encrypted data; secondly, call the data platform and use the private key to decrypt the first encrypted data, obtain the original data and after reviewing the compliance, call the preset marking method in the smart contract to mark the first encrypted data corresponding to the original data as compliant, and attach data description information; then, call the data demander and use the preset data acquisition method in the smart contract to obtain the required target data in the data platform according to the additional data description information, and then encrypt the target data through the data provider and use the first public key to obtain the second encrypted data; finally, call the data provider and generate zero-knowledge proof parameters based on the first encrypted data and the second encrypted data, and call the data transfer method in the smart contract based on the second encrypted data and the zero-knowledge proof parameters to send the second encrypted data to the data demander, so that the data demander can use the private key to decrypt the second encrypted data to obtain the target data. This improves the security of data transmission operations, thereby increasing the efficiency of the production process and further enhancing the user experience. BRIEF DESCRIPTION OF THE DRAWINGS

[0041] In order to more clearly illustrate the embodiments of the present invention or the technical solutions in the prior art, the following briefly introduces the drawings required for use in the embodiments or the description of the prior art. Obviously, the drawings described below are merely embodiments of the present invention. For ordinary technicians in this field, other drawings can be obtained based on the provided drawings without paying any creative work.

[0042] Figure 1 This is a flow chart of a data transfer method based on zero-knowledge proof disclosed in this application;

[0043] Figure 2 This is a flowchart of information generation during the preparation phase of a key generation system disclosed in this application;

[0044] Figure 3 This is a schematic diagram of the structure of a data transmission device based on zero-knowledge proof disclosed in this application;

[0045] Figure 4 This is a structural diagram of an electronic device disclosed in this application. DETAILED DESCRIPTION

[0046] The following will clearly and completely describe the technical solutions in the embodiments of the present invention in conjunction with the accompanying drawings. Obviously, the described embodiments are only part of the embodiments of the present invention, not all of the embodiments. Based on the embodiments of the present invention, all other embodiments obtained by ordinary technicians in this field without making creative efforts are within the scope of protection of the present invention.

[0047] Currently, in the process of data transmission, the use of blockchain technology can allow smart contracts to automatically execute some data transmission operations to simplify the data transmission process. However, the open and transparent nature of blockchain smart contracts makes the data transmitted in the data transmission operation lack privacy protection. Therefore, most blockchains should only encrypt the data and pass it to the blockchain smart contract. However, this approach will cause the smart contract to be unable to verify the encrypted data, making it difficult to ensure the authenticity and validity of the data, and also affecting the subsequent automated execution of the data transmission operation in the smart contract; if the data is decrypted and verified on the smart contract, it means that the plaintext and key are disclosed, and the data privacy is not protected. To this end, the present application provides a data transmission method based on zero-knowledge proof, which can improve the security of data transmission operations in the data transmission process based on zero-knowledge proof.

[0048] See also Figure 1 As shown, an embodiment of the present invention discloses a data transmission method based on zero-knowledge proof, which is applied to a data provider, including:

[0049] Step S11: Obtain the first private key generated by the data demander based on the key generation request and the first public key corresponding to the first private key, and use the second public key issued by the data platform to the smart contract and the ElGamal algorithm to encrypt the target data to be transmitted to obtain the first encrypted data.

[0050] In this embodiment, in the preparation phase, the key generation system needs to generate public parameters and keys and distribute private keys, and the preparation phase flow chart is as follows: Figure 2 In addition, the data demander can obtain the data exchange certificate in some way. In the process of generating public parameters using the key generation system, a large prime number needs to be randomly selected. , and the above large prime numbers satisfy With large prime factors, then, based on the modulus Determine the corresponding primitive element , and and It is recorded in the smart contract of the blockchain. It is worth mentioning that the calculation formulas for subsequent operations need to be simulated. Operations are not listed in the subsequent calculation formulas in this embodiment.

[0051] In this embodiment, when a new data requester registers, he needs to send a key application request to the key generation system so that the key generation system can select an integer As the private key of the data demander, where the integer The value range must meet , then, the public key corresponding to the data demander is determined based on the public key calculation formula, and the expression of the public key calculation formula is as follows:

[0052] ;

[0053] in, The public key corresponding to the data demander.

[0054] Subsequently, the key generation center needs to generate the private key Securely distribute to the corresponding data demander, and send the first public key corresponding to the data demander The data is recorded in the smart contract of the blockchain, and the smart contract can allocate a certain number of data exchange vouchers to the data demander. Furthermore, the data demander can choose some data exchange voucher acquisition methods to obtain a certain number of data exchange vouchers.

[0055] Specifically, the process of the data demander generating a first private key and a first public key corresponding to the first private key based on a key generation request includes: calling a preset key generation center to determine a target prime number, and determining a target primitive based on the target prime number, and recording the target prime number and the target primitive in the smart contract of the blockchain; calling the preset key generation center to generate a first private key using the target prime number; determining a formula based on the first private key and the preset public key to determine the first public key corresponding to the first private key, and sending the first private key to the user corresponding to the data demander, and then recording the first public key in the smart contract of the blockchain.

[0056] In this embodiment, the encrypted data needs to be evaluated. The data provider must encrypt the encrypted data using the public key corresponding to the data platform, and then synchronize the resulting first ciphertext to the data platform via a blockchain contract. Specifically, encrypting the target data to be transmitted using the second public key issued by the data platform to the smart contract and the ElGamal algorithm to obtain the first encrypted data can include: obtaining the second public key issued by the data platform to the smart contract from the smart contract, determining a first target integer using a preset integer determination rule, then determining a first ciphertext corresponding to the target data to be transmitted based on the first target integer, the target prime number, and the second public key, and determining a second ciphertext based on the target data to be transmitted, the target prime number, the first target integer, and the second public key, thereby determining the first encrypted data based on the first ciphertext and the second ciphertext; and determining whether the current number of data transfer vouchers is less than a first preset number. If the current number of data transfer vouchers is not less than the first preset number, then, based on the first encrypted data and the second public key, invoking a preset evaluation method in the smart contract on the blockchain to freeze the first preset number of data transfer vouchers of the data provider, so that the target data to be transmitted can be transmitted using the frozen first preset number of data transfer vouchers of the data provider.

[0057] In a specific embodiment, the data provider can obtain the second public key corresponding to the data platform through the smart contract of the blockchain. , in order to treat encrypted data Perform ElGamal encryption, where the process of encrypting data is as follows:

[0058] First, pick an integer , and Save to the client's local storage space. The value range of the above integers satisfies:

[0059] ;

[0060] Then, the data to be encrypted is encrypted based on the following encryption algorithm formula: and , thereby obtaining the first encrypted data: .

[0061] Furthermore, the embodiment of the present application can be based on the first encrypted data The second public key corresponding to the data platform Call the evaluation method in the smart contract on the blockchain to lock part of the data exchange credentials of the data provider. If the data provider does not hold enough data exchange credentials, the evaluation method cannot be called.

[0062] Step S12: obtain the first encrypted data marked as compliant by the data platform party calling the preset marking method in the smart contract, associate it with the local data to be processed, and then use the first public key to encrypt the data to be processed to obtain second encrypted data; the data to be processed is the data obtained after the data platform party uses the second private key corresponding to the second public key to decrypt the first encrypted data.

[0063] In this embodiment, the client of the data platform monitors that the evaluation method of the smart contract on the blockchain is called, and the parameters used in the evaluation method include Afterwards, the private key can be used First encrypted data Decryption is performed to obtain the data to be processed, and the decryption expression is as follows:

[0064] .

[0065] Furthermore, the data platform needs to evaluate the data to be processed. If the evaluation result indicates that there is non-compliant data, the data platform needs to call the smart contract of the blockchain to record the non-compliance of the data to be processed and call the smart contract to automatically destroy the locked data provider data exchange certificate; if the evaluation result indicates that the data is compliant, then the data platform needs to use the data exchange certificate and the first encrypted data to automatically destroy the locked data provider data exchange certificate. The preset marking method in the smart contract of the blockchain is called to mark the first encrypted data that has passed the verification on the smart contract as compliant.

[0066] Specifically, the data platform party calls the preset marking method in the smart contract to mark the first encrypted data that has passed the verification on the smart contract as compliant, which may include: the data platform party monitors the smart contract, and if it monitors that the preset evaluation method in the smart contract is called, and the preset evaluation method includes the second public key, the first encrypted data is decrypted using the second private key to obtain the data to be processed; calling the data platform party and using the preset evaluation method to evaluate the data to be processed to obtain an evaluation result. If the evaluation result indicates that the data is non-compliant, the smart contract is called to record the data corresponding to the evaluation result, and the first preset number of data transfer certificates of the data provider are destroyed; if the evaluation result indicates that the data is compliant, the data platform party is called and the preset marking method in the smart contract is called based on the data to be processed, the first ciphertext and the frozen first preset number of data transfer certificates, so as to use the preset marking method to pre-mark the first encrypted data corresponding to the data to be processed as compliant on the smart contract, and attach data description information.

[0067] Step S13: Generate zero-knowledge proof parameters based on the first encrypted data and the second encrypted data, and call the data transfer method in the smart contract based on the zero-knowledge proof parameters to send the second encrypted data to the smart contract, so that the data demander can obtain the second encrypted data from the smart contract and use the first private key to decrypt the second encrypted data to obtain the target data.

[0068] In this embodiment, the data acquirer can review the uploaded and marked data in the blockchain smart contract and determine the data to acquire based on its own needs and additional data information. It then uses the first public key to invoke the blockchain smart contract's data acquisition method to acquire the data. Specifically, the smart contract can query the data acquirer's number of data exchange vouchers. If the number of data exchange vouchers in the acquirer's account is less than the number of data exchange vouchers corresponding to the data to be processed, a failure message is returned, indicating data acquisition failure. Otherwise, the smart contract can lock the corresponding number of data exchange vouchers held by the data acquirer.

[0069] In addition, during the data delivery phase, the data provider needs to encrypt the data to generate the corresponding second encrypted data and proof parameters so that the smart contract can be called based on the second encrypted data and proof. If the smart contract is verified, the data exchange certificate can be provided to the data provider. If the smart contract verification fails, the number of data exchange certificates corresponding to the locked data provider will be cancelled. Furthermore, after the data provider monitors the acquisition method of the smart contract on the blockchain through the client and the acquired data is provided by the data provider, it needs to query the first public key to use the first public key pk b Data In one embodiment, the data is encrypted using the first public key. The encryption process is as follows:

[0070] First, randomly pick an integer , and the value range of satisfy ; Then, based on and Perform a second encrypted data calculation to obtain the second encrypted data .

[0071] Specifically, using the first public key to encrypt the data to be processed to obtain the second encrypted data may include: calling the data demander and determining the required data in the data platform according to the additional data description information based on its own needs, and then calling the smart contract to determine whether the number of data transfer credentials corresponding to the data demander is less than the second preset number; if the number of data transfer credentials corresponding to the data demander is not less than the second preset number, calling the preset data acquisition method in the smart contract based on the first public key to obtain the data to be processed using the preset data acquisition method, and freezing the second preset number of data transfer credentials of the data demander so as to use the frozen second preset number of data transfer credentials of the data demander to transfer the data to be processed; determining the second target integer through the data provider, and determining the third ciphertext corresponding to the data to be processed based on the second target integer and the target primitive element, and determining the fourth ciphertext based on the data to be processed, the target prime number and the second target integer, and then determining the second encrypted data based on the third ciphertext and the fourth ciphertext.

[0072] It is worth mentioning that To use the first public key pk b The data obtained after correct encryption, is the data encrypted using the second public key, and and It is the data obtained by encrypting the same data.

[0073] In this embodiment, the data provider first needs to select a random number , and the random number The value range of is: , then based on as well as , , as well as Calculate and get 、 、 as well as .

[0074] Then, select a random number ,satisfy , then based on 、 、 as well as Sure 、 、 and .

[0075] Furthermore, the embodiment of the present application needs to use a hash function and determine a hash value based on the parameters calculated above, and the hash value is as follows:

[0076] ;

[0077] Specifically, using a preset hash function and determining a hash value based on the first data to be calculated, the second data to be calculated, the third data to be calculated, the fourth data to be calculated, the fifth data to be calculated, the sixth data to be calculated, the seventh data to be calculated and the eighth data to be calculated can include: using several preset verification formulas to verify specific combinations of the first data to be calculated, the second data to be calculated, the third data to be calculated, the fourth data to be calculated, the fifth data to be calculated, the sixth data to be calculated, the seventh data to be calculated and the eighth data to be calculated, respectively, to obtain corresponding verification results; if each verification result indicates that the verification is passed, calling the data provider to use the preset hash function and determine the hash value based on the first data to be calculated, the second data to be calculated, the third data to be calculated, the fourth data to be calculated, the fifth data to be calculated, the sixth data to be calculated, the seventh data to be calculated and the eighth data to be calculated.

[0078] Then, the embodiment of the present application needs to use the corresponding formula to determine 、 and , and the expression is as follows:

[0079] ;

[0080] ;

[0081] ;

[0082] In getting 、 and Afterwards, the embodiment of the present application can use a preset parameter determination formula to determine the zero-knowledge proof parameters, and the expression of the preset parameter determination formula is as follows:

[0083] ;

[0084] It is worth mentioning that after obtaining the zero-knowledge proof parameters, the data provider needs to use the second encrypted data through the client and Call the data transfer method of the smart contract in the blockchain to transfer data.

[0085] Specifically, generating zero-knowledge proof parameters based on the first encrypted data and the second encrypted data may include: determining a first random integer based on a target prime number, and determining first data to be calculated based on the target prime number, the first random integer, and the first target integer, determining second data to be calculated based on the second target integer, the first random integer, and the target prime number, determining third data to be calculated based on the first random integer, the second target integer, and the target primitive, and determining fourth data to be calculated based on the data to be processed and the first random integer; determining a second random integer based on the target prime number, and determining fifth data to be calculated based on the second random integer, the target prime number, and the first target integer, determining sixth data to be calculated based on the second random integer, the target prime number, and the second target integer, determining seventh data to be calculated based on the second random integer and the target primitive, and determining eighth data to be calculated based on the data to be processed and the second random integer; using a preset hash function, determining a hash value based on the first data to be calculated, the second data to be calculated, the third data to be calculated, the fourth data to be calculated, the fifth data to be calculated, the sixth data to be calculated, the seventh data to be calculated, and the eighth data to be calculated, and determining the zero-knowledge proof parameters based on the hash value.

[0086] Furthermore, after obtaining the zero-knowledge proof parameters Afterwards, the embodiment of this application needs to be verified The correctness of is to verify whether the following equations are all true:

[0087] ;

[0088] ;

[0089] ;

[0090] ;

[0091] ;

[0092] ;

[0093] Among them, the first three verification formulas are used to verify whether the random number used by the data provider is the same random number, and to verify Is it The value obtained after randomization, Is it The value obtained after randomization, Is it The value obtained after randomization.

[0094] In addition, the fourth and fifth check formulas are used to verify Is it based on The discrete logarithm with base , and Is it based on The discrete logarithm with base 2, and since the first three check formulas above have been verified 、 is the value obtained after randomization using the same random number, we can get For the original data The value obtained after randomization and the data encrypted twice It is the same data. It is worth mentioning that if the data provider has falsified the data during the data exchange process, that is, using different data After encryption and randomization, we get However, due to the need to use After the calculation, the fourth and fifth check formulas can be passed, which is a difficult discrete logarithm problem. Therefore, if it passes, it can be confirmed and An operation to encrypt the same data.

[0095] Furthermore, the fifth and sixth check formulas are used to verify that the embodiment of the present application uses the same encrypted random number to calculate the two parts of the encrypted data, namely and The corresponding discrete logarithm and and The corresponding discrete logarithm is the same discrete logarithm, indicating that the encrypted data is data calculated according to the preset encryption standard process.

[0096] It is worth mentioning that if all the above formulas are true, then by verifying the parameters, the smart contract can be called to mark the data as delivered, and the data exchange certificate frozen by the data acquirer can be transferred to the data exchange certificate of the data provider; conversely, if one of the equations is not true, the frozen data exchange certificate of the data provider will be destroyed, and the frozen data exchange certificate of the data acquirer will be unfrozen.

[0097] In this embodiment, after the data acquirer obtains the encrypted data, it can use the first private key to decrypt the data to obtain the decrypted data. In a specific embodiment, after the data acquirer monitors the successful call of the data delivery method of the smart contract on the blockchain through the client, it can obtain the second encrypted data in the contract. , and use the first private key Decrypt the second encrypted data to obtain the target data: .

[0098] As can be seen from the above, before performing data transmission based on zero-knowledge proof, the embodiment of the present application first needs to generate a private key and a first public key corresponding to the private key based on a key generation request, and call the data platform to generate a second public key, and then call the data provider and use the ElGamal algorithm and the second public key to encrypt the data to be encrypted to obtain the first encrypted data; secondly, call the data platform and use the private key to decrypt the first encrypted data to obtain the data to be processed, and call the preset marking method in the smart contract to mark the first encrypted data corresponding to the data to be processed as legal, and attach data description information; then, call the data demander and use the preset data acquisition method in the smart contract to obtain the target data in the data platform according to the additional description information, and then encrypt the target data through the data provider and use the first public key to obtain the second encrypted data; finally, call the data provider and generate zero-knowledge proof parameters based on the first encrypted data and the second encrypted data, and call the data transmission method in the smart contract based on the second encrypted data and the zero-knowledge proof parameters to send the second encrypted data to the data demander, so that the data demander can use the private key to decrypt the second encrypted data to obtain the target data. This improves the security of data transmission operations and thus increases the efficiency of the production process.

[0099] Accordingly, see Figure 3 As shown, the present application also provides a data transmission device based on zero-knowledge proof, including:

[0100] The first encrypted data determination module 11 is configured to obtain a first private key generated by the data requester based on a key generation request and a first public key corresponding to the first private key, and encrypt the target data to be transmitted using the second public key issued by the data platform to the smart contract and the ElGamal algorithm to obtain first encrypted data;

[0101] The second encrypted data determination module 12 is configured to obtain the first encrypted data marked as legal in the smart contract by the data platform party using a preset marking method in the smart contract, associate it with the local data to be processed, and then encrypt the data to be processed using the first public key to obtain second encrypted data; the data to be processed is the data obtained by the data platform party decrypting the first encrypted data using the second private key corresponding to the second public key;

[0102] The target data determination module 13 is used to generate zero-knowledge proof parameters based on the first encrypted data and the second encrypted data, and to call the data transfer method in the smart contract based on the zero-knowledge proof parameters to send the second encrypted data to the smart contract, so that the data demander can obtain the second encrypted data from the smart contract and use the first private key to decrypt the second encrypted data to obtain the target data.

[0103] As can be seen from the above, before performing data transmission based on zero-knowledge proof, the embodiment of the present application first needs to generate a private key and a first public key corresponding to the private key based on a key generation request, and call the data platform to generate a second public key, and then call the data provider and use the ElGamal algorithm and the second public key to encrypt the data to be encrypted to obtain the first encrypted data; secondly, call the data platform and use the private key to decrypt the first encrypted data to obtain the data to be processed, and call the preset marking method in the smart contract to mark the first ciphertext data corresponding to the data to be processed as compliant on the smart contract, and attach data description information; then, call the data demander and use the preset data acquisition method in the smart contract to obtain the target data in the data platform according to the attached data description information, and then encrypt the target data through the data provider and use the first public key to obtain the second encrypted data; finally, call the data provider and generate zero-knowledge proof parameters based on the first encrypted data and the second encrypted data, and call the data transmission method in the smart contract based on the second encrypted data and the zero-knowledge proof parameters to send the second encrypted data to the data demander, so that the data demander can use the private key to decrypt the second encrypted data to obtain the target data. This improves the security of data transmission operations and thus increases the efficiency of the production process.

[0104] In some specific implementations, the first encrypted data determination module 11 may specifically include:

[0105] a prime number determination unit, configured to call a preset key generation center to determine a target prime number, determine a target primitive element based on the target prime number, and record the target prime number and the target primitive element in a smart contract on the blockchain;

[0106] A first private key determination unit, configured to call the preset key generation center to generate a first private key using the target prime number;

[0107] A public key recording unit is used to determine a first public key corresponding to the first private key based on the first private key and a preset public key determination formula, and to send the first private key to the user corresponding to the data demander, and then record the first public key in the smart contract of the blockchain.

[0108] In some specific implementations, the first encrypted data determination module 11 may specifically include:

[0109] a first encrypted data determination subunit, configured to obtain, from the smart contract, a second public key issued by the data platform to the smart contract, and determine a first target integer using a preset integer determination rule, and then determine a first ciphertext corresponding to the target data to be transmitted based on the first target integer, the target primitive, and the second public key, and then determine a second ciphertext based on the target data to be transmitted, the target prime number, the first target integer, and the second public key, so as to determine first encrypted data based on the first ciphertext and the second ciphertext;

[0110] The first voucher quantity judgment unit is used to judge whether the current number of data transfer vouchers is less than a first preset number. If the current number of data transfer vouchers is not less than the first preset number, a preset evaluation method in the smart contract in the blockchain is called based on the first encrypted data and the second public key to freeze the first preset number of data transfer vouchers of the data provider, so as to use the first preset number of data transfer vouchers frozen by the data provider to transfer the target data to be transmitted.

[0111] In some specific implementations, the second encrypted data determination module 12 may specifically include:

[0112] a data decryption unit, configured to monitor the smart contract by the data platform, and if it is monitored that the preset evaluation method in the smart contract is called and the preset evaluation method includes the second public key, decrypt the first encrypted data using the second private key to obtain data to be processed;

[0113] An evaluation result determination unit is configured to call the data platform and evaluate the data to be processed using the preset evaluation method to obtain an evaluation result. If the evaluation result indicates that the data is non-compliant, the smart contract is called to record the data corresponding to the evaluation result and a first preset number of data transfer vouchers of the data provider are destroyed.

[0114] A marking method calling unit is used to call the data platform and call the preset marking method in the smart contract based on the data to be processed, the first ciphertext and the first preset number of frozen data transfer certificates if the evaluation result indicates that the data is compliant, so as to use the preset marking method to pre-mark the first ciphertext data corresponding to the data to be processed as compliant on the smart contract and attach data description information.

[0115] In some specific implementations, the target data determination module 13 may specifically include:

[0116] A second voucher quantity determination unit is configured to call the data requester and determine the required data in the data platform according to the attached data description information based on its own needs, and then call the smart contract to determine whether the number of data transfer vouchers corresponding to the data requester is less than a second preset number;

[0117] a transfer voucher freezing unit, configured to, if the number of data transfer vouchers corresponding to the data requester is not less than the second preset number, call a preset data acquisition method in the smart contract based on the first public key to obtain the data to be processed using the preset data acquisition method, and freeze the second preset number of data transfer vouchers of the data requester, so as to transfer the data to be processed using the second preset number of frozen data transfer vouchers of the data requester;

[0118] a second encrypted data determination subunit, configured to determine a second target integer through the data provider, determine a third ciphertext corresponding to the data to be processed based on the second target integer and the target primitive, determine a fourth ciphertext based on the data to be processed, the target prime number, and the second target integer, and then determine second encrypted data based on the third ciphertext and the fourth ciphertext.

[0119] In some specific implementations, the target data determination module 13 may specifically include:

[0120] a first to-be-processed data determining unit, configured to determine a first random integer based on the target prime number, determine first to-be-calculated data based on the target prime number, the first random integer, and the first target integer, determine second to-be-calculated data based on the second target integer, the first random integer, and the target prime number, determine third to-be-calculated data based on the first random integer, the second target integer, and the target primitive element, and determine fourth to-be-calculated data based on the to-be-processed data and the first random integer;

[0121] a second to-be-processed data determining unit, configured to determine a second random integer based on the target prime number, determine fifth to-be-calculated data based on the second random integer, the target prime number, and the first target integer, determine sixth to-be-calculated data based on the second random integer, the target prime number, and the second target integer, determine seventh to-be-calculated data based on the second random integer and the target primitive element, and determine eighth to-be-calculated data based on the to-be-processed data and the second random integer;

[0122] a zero-knowledge proof parameter determination unit, configured to use a preset hash function and determine a hash value based on the first data to be calculated, the second data to be calculated, the third data to be calculated, the fourth data to be calculated, the fifth data to be calculated, the sixth data to be calculated, the seventh data to be calculated, and the eighth data to be calculated, and to determine a zero-knowledge proof parameter based on the hash value.

[0123] In some specific implementations, the target data determination module 13 may specifically include:

[0124] a verification result determining unit, configured to verify specific combinations of the first data to be calculated, the second data to be calculated, the third data to be calculated, the fourth data to be calculated, the fifth data to be calculated, the sixth data to be calculated, the seventh data to be calculated, and the eighth data to be calculated using a plurality of preset verification formulas, to obtain corresponding verification results;

[0125] a hash value determination unit, configured to, if all of the verification results indicate that the verification has passed, call the data provider to use a preset hash function, and determine a hash value based on the first data to be calculated, the second data to be calculated, the third data to be calculated, the fourth data to be calculated, the fifth data to be calculated, the sixth data to be calculated, the seventh data to be calculated, and the eighth data to be calculated.

[0126] Furthermore, the embodiment of the present application also discloses an electronic device, Figure 4 This is a structural diagram of an electronic device 20 according to an exemplary embodiment. The content in the diagram should not be considered as any limitation on the scope of use of this application. The electronic device 20 may specifically include: at least one processor 21, at least one memory 22, a power supply 23, a communication interface 24, an input / output interface 25, and a communication bus 26. The memory 22 is used to store a computer program, which is loaded and executed by the processor 21 to implement the relevant steps in the data transfer method based on zero-knowledge proof disclosed in any of the aforementioned embodiments. In addition, the electronic device 20 in this embodiment may specifically be an electronic computer.

[0127] In this embodiment, the power supply 23 is used to provide operating voltage for each hardware device on the electronic device 20; the communication interface 24 can create a data transmission channel between the electronic device 20 and the external device. The communication protocol it follows is any communication protocol that can be applied to the technical solution of this application and is not specifically limited here; the input and output interface 25 is used to obtain external input data or output data to the outside world. Its specific interface type can be selected according to specific application needs and is not specifically limited here.

[0128] In addition, the memory 22, as a carrier for resource storage, can be a read-only memory, random access memory, disk or CD, etc. The resources stored thereon can include an operating system 221, a computer program 222, etc., and the storage method can be temporary storage or permanent storage.

[0129] The operating system 221 is used to manage and control the hardware devices on the electronic device 20 and the computer program 222, and can be Windows Server, Netware, Unix, Linux, etc. In addition to including a computer program capable of implementing the zero-knowledge proof-based data transfer method disclosed in any of the aforementioned embodiments and executed by the electronic device 20, the computer program 222 may further include a computer program capable of implementing other specific tasks.

[0130] Furthermore, this application also discloses a computer-readable storage medium for storing a computer program; wherein, when executed by a processor, the computer program implements the aforementioned zero-knowledge proof-based data transfer method. The specific steps of this method can be referred to the corresponding content disclosed in the aforementioned embodiments and will not be repeated here.

[0131] The various embodiments in this specification are described in a progressive manner, with each embodiment focusing on its differences from the other embodiments. Reference can be made to the descriptions of the identical or similar parts between the various embodiments. For the devices disclosed in the embodiments, since they correspond to the methods disclosed in the embodiments, the descriptions are relatively simple, and the relevant parts can be referred to the descriptions of the methods.

[0132] Professionals may further appreciate that the units and algorithm steps of each example described in conjunction with the embodiments disclosed herein can be implemented in electronic hardware, computer software, or a combination of the two. In order to clearly illustrate the interchangeability of hardware and software, the above description has generally described the components and steps of each example according to their functions. Whether these functions are performed in hardware or software depends on the specific application and design constraints of the technical solution. Professionals and technicians may use different methods to implement the described functions for each specific application, but such implementation should not be considered beyond the scope of this application.

[0133] The steps of the methods or algorithms described in conjunction with the embodiments disclosed herein may be implemented directly using hardware, a software module executed by a processor, or a combination of the two. The software module may be placed in random access memory (RAM), internal memory, read-only memory (ROM), electrically programmable ROM, electrically erasable programmable ROM, registers, a hard disk, a removable disk, a CD-ROM, or any other form of storage medium known in the art.

[0134] Finally, it should be noted that, in this document, relational terms such as first and second, etc., are used only to distinguish one entity or operation from another entity or operation, and do not necessarily require or imply any actual relationship or order between these entities or operations. Moreover, the terms "comprises," "comprising," or any other variations thereof are intended to cover non-exclusive inclusion, such that a process, method, article, or device comprising a series of elements includes not only those elements, but also other elements not explicitly listed, or elements inherent to such process, method, article, or device. In the absence of further limitations, an element defined by the phrase "comprising a ..." does not exclude the presence of additional identical elements in the process, method, article, or device comprising the element.

[0135] The above is a detailed introduction to the technical solution provided by the present application. Specific examples are used herein to illustrate the principles and implementation methods of the present application. The description of the above embodiments is only used to help understand the method of the present application and its core idea. At the same time, for those skilled in the art, according to the ideas of the present application, there may be changes in the specific implementation methods and application scope. In summary, the content of this specification should not be understood as a limitation on the present application.

Claims

1. A data transmission method based on zero-knowledge proof, characterized in that: Applicable to data providers, including: Obtaining a first private key generated by the data requester based on the key generation request and a first public key corresponding to the first private key, and encrypting the target data to be transmitted using the second public key issued to the smart contract by the data platform and the ElGamal algorithm to obtain first encrypted data; Obtaining first encrypted data marked as compliant by the data platform using a preset marking method in the smart contract, associating the data with local data to be processed, and then encrypting the data to be processed using the first public key to obtain second encrypted data; the data to be processed is data obtained by the data platform using a second private key corresponding to the second public key to decrypt the first encrypted data; A zero-knowledge proof parameter is generated based on the first encrypted data and the second encrypted data, and a data transfer method in the smart contract is called based on the zero-knowledge proof parameter to send the second encrypted data to the smart contract, so that the data demander obtains the second encrypted data from the smart contract and uses the first private key to decrypt the second encrypted data to obtain the target data.

2. The data transmission method based on zero-knowledge proof according to claim 1, characterized in that: The process of the data requester generating a first private key and a first public key corresponding to the first private key based on the key generation request includes: Calling a preset key generation center to determine a target prime number, and determining a target primitive element based on the target prime number, and recording the target prime number and the target primitive element in a smart contract on the blockchain; Calling the preset key generation center to generate a first private key using the target prime number; A first public key corresponding to the first private key is determined based on the first private key and a preset public key determination formula, and the first private key is sent to the user corresponding to the data demander, and then the first public key is recorded in the smart contract of the blockchain.

3. The data transmission method based on zero-knowledge proof according to claim 2, characterized in that: The method of encrypting the target data to be transmitted by using the second public key issued by the data platform to the smart contract and the ElGamal algorithm to obtain the first encrypted data includes: Obtaining from the smart contract a second public key issued by the data platform to the smart contract, and determining a first target integer using a preset integer determination rule, then determining a first ciphertext corresponding to the target data to be transmitted based on the first target integer, the target primitive, and the second public key, and determining a second ciphertext based on the target data to be transmitted, the target prime number, the first target integer, and the second public key, to determine first encrypted data based on the first ciphertext and the second ciphertext; Determine whether the current number of data transfer credentials is less than a first preset number. If the current number of data transfer credentials is not less than the first preset number, call a preset evaluation method in the smart contract in the blockchain based on the first encrypted data and the second public key to freeze the first preset number of data transfer credentials of the data provider, so as to use the first preset number of data transfer credentials frozen by the data provider to transfer the target data to be transmitted.

4. The data transmission method based on zero-knowledge proof according to claim 3, characterized in that: The data platform calls a preset marking method in the smart contract to mark the first encrypted data that has passed verification on the smart contract as compliant, including: The data platform monitors the smart contract. If it is monitored that the preset evaluation method in the smart contract is called and the preset evaluation method includes the second public key, the data platform decrypts the first encrypted data using the second private key to obtain the data to be processed; Calling the data platform and using the preset evaluation method to evaluate the data to be processed to obtain an evaluation result. If the evaluation result indicates that the data is non-compliant, calling the smart contract to record the data corresponding to the evaluation result and destroying a first preset number of data transfer certificates of the data provider; If the evaluation result indicates that the data is compliant, the data platform is called and the preset marking method in the smart contract is called based on the data to be processed, the first ciphertext and the first preset number of frozen data transfer certificates, so as to use the preset marking method to pre-mark the first encrypted data corresponding to the data to be processed as compliant in the smart contract and attach data description information.

5. The data transmission method based on zero-knowledge proof according to claim 4, characterized in that: The step of encrypting the data to be processed by using the first public key to obtain second encrypted data includes: Calling the data requester and determining the required data based on its own needs in the data platform according to the additional data description information, and then calling the smart contract to determine whether the number of data transfer vouchers corresponding to the data requester is less than a second preset number; If the number of data transfer vouchers corresponding to the data requester is not less than the second preset number, calling the preset data acquisition method in the smart contract based on the first public key to obtain the data to be processed using the preset data acquisition method, and freezing the second preset number of data transfer vouchers of the data requester, so as to transfer the data to be processed using the second preset number of data transfer vouchers frozen by the data requester; A second target integer is determined by the data provider, and a third ciphertext corresponding to the data to be processed is determined based on the second target integer and the target primitive element. A fourth ciphertext is determined based on the data to be processed, the target prime number, and the second target integer, and then second encrypted data is determined based on the third ciphertext and the fourth ciphertext.

6. The data transmission method based on zero-knowledge proof according to claim 5, characterized in that: The generating of a zero-knowledge proof parameter based on the first encrypted data and the second encrypted data includes: Determining a first random integer based on the target prime number, determining first data to be calculated based on the target prime number, the first random integer, and the first target integer, determining second data to be calculated based on the second target integer, the first random integer, and the target prime number, determining third data to be calculated based on the first random integer, the second target integer, and the target primitive, and determining fourth data to be calculated based on the data to be processed and the first random integer; Determining a second random integer based on the target prime number, and determining fifth data to be calculated based on the second random integer, the target prime number, and the first target integer, determining sixth data to be calculated based on the second random integer, the target prime number, and the second target integer, determining seventh data to be calculated based on the second random integer and the target primitive element, and determining eighth data to be calculated based on the data to be processed and the second random integer; Using a preset hash function, a hash value is determined based on the first data to be calculated, the second data to be calculated, the third data to be calculated, the fourth data to be calculated, the fifth data to be calculated, the sixth data to be calculated, the seventh data to be calculated and the eighth data to be calculated, and a zero-knowledge proof parameter is determined based on the hash value.

7. The data transmission method based on zero-knowledge proof according to claim 6, characterized in that: The using a preset hash function and determining a hash value based on the first data to be calculated, the second data to be calculated, the third data to be calculated, the fourth data to be calculated, the fifth data to be calculated, the sixth data to be calculated, the seventh data to be calculated, and the eighth data to be calculated includes: using a plurality of preset verification formulas to respectively verify specific combinations of the first data to be calculated, the second data to be calculated, the third data to be calculated, the fourth data to be calculated, the fifth data to be calculated, the sixth data to be calculated, the seventh data to be calculated, and the eighth data to be calculated, to obtain corresponding verification results; If all the verification results indicate that the verification is passed, the data provider is called to use a preset hash function, and a hash value is determined based on the first data to be calculated, the second data to be calculated, the third data to be calculated, the fourth data to be calculated, the fifth data to be calculated, the sixth data to be calculated, the seventh data to be calculated and the eighth data to be calculated.

8. A data transmission device based on zero-knowledge proof, characterized in that: Applicable to data providers, including: A first encrypted data determination module is configured to obtain a first private key generated by the data requester based on a key generation request and a first public key corresponding to the first private key, and to encrypt the target data to be transmitted using the second public key issued to the smart contract by the data platform and the ElGamal algorithm to obtain first encrypted data; a second encrypted data determination module configured to obtain first encrypted data marked as compliant by the data platform using a preset marking method in the smart contract, associate the data with local data to be processed, and then encrypt the data to be processed using the first public key to obtain second encrypted data; the data to be processed is data obtained by the data platform decrypting the first encrypted data using a second private key corresponding to the second public key; a target data determination module, configured to generate zero-knowledge proof parameters based on the first encrypted data and the second encrypted data, and to call a data transfer method in the smart contract based on the zero-knowledge proof parameters to deliver the second encrypted data to the smart contract, so that the data demander can obtain the second encrypted data from the smart contract, and decrypt the second encrypted data using the first private key to obtain the target data.

9. An electronic device, characterized in that: include: Memory, used to store computer programs; A processor, configured to execute the computer program to implement the data transmission method based on zero-knowledge proof as described in any one of claims 1 to 7.

10. A computer-readable storage medium, characterized in that Used to store a computer program, wherein when the computer program is executed by a processor, the data transmission method based on zero-knowledge proof according to any one of claims 1 to 7 is implemented.

Citation Information

Patent Citations

  • Block chain-based private data mapping method and device, medium and electronic equipment

    CN113536384A

  • Homomorphic encryption system meeting zero knowledge proof

    CN116015592A