A blockchain whitelist method supporting identity anonymity

By introducing one-time addresses and cryptographic accumulators into the blockchain, combined with zero-knowledge proof technology, the contradiction between data transparency and privacy protection in the blockchain is resolved, user identity anonymity is achieved, the system structure is simplified and security is improved.

CN119603034BActive Publication Date: 2025-10-10BEIJING MICROCHIP EDGE COMPUTING RES INST
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
CN202411727273.6
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2024-11-28
Publication Date
2025-10-10
Estimated Expiration
2044-11-28

AI Technical Summary

Technical Problem

While ensuring data transparency, existing blockchain technology cannot effectively protect user privacy, especially in business scenarios involving sensitive information or privacy protection. Deploying system contracts also increases system complexity and potential vulnerabilities.

Method used

Using one-time address technology combined with cryptographic accumulators and zero-knowledge proof, users generate one-time addresses and whitelist proofs through public keys, and business contracts verify their validity to achieve identity anonymity.

Benefits of technology

While ensuring data transparency, it protects user privacy, simplifies the system structure, reduces potential vulnerabilities, and improves system security and performance.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119603034B_ABST
    Figure CN119603034B_ABST
Patent Text Reader

Abstract

The application discloses a blockchain whitelist method supporting identity anonymity, and aims to solve the problem of protecting user privacy while ensuring the transparency of blockchain data in the prior art. The application sets an access whitelist of a public address for a blockchain business smart contract, the whitelist is based on a cryptography accumulator, and the method comprises the following steps: checking whether the public address of the user is in the whitelist; when the public address is in the whitelist, generating a whitelist proof based on the cryptography accumulator by using zero-knowledge proof technology; adding the generated whitelist proof to a transaction for calling the business, signing the transaction by using a private key corresponding to a one-time address; and submitting the signed transaction to a blockchain network. The method provided by the application effectively solves the problem of protecting user privacy while ensuring the transparency of blockchain data.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the field of blockchain technology, and in particular to a blockchain whitelist method. Background Art

[0002] With the rapid development of blockchain technology, its applications are becoming increasingly widespread in fields such as finance, supply chain management, and identity verification. The core characteristics of blockchain technology are decentralization and data immutability, which provide strong guarantees for data transparency and security. However, in the actual application of blockchain, especially in business scenarios involving sensitive information or privacy protection, how to ensure data transparency while protecting user privacy has become a pressing technical challenge.

[0003] The patent document "A method, system and storage medium for controlling the calling authority of a smart contract on a consortium chain" (publication number CN112395570A) discloses a method, system and storage medium for controlling the calling authority of a smart contract on a consortium chain. The method is as follows: before building a consortium chain, a system contract for role management is configured. After building the consortium chain, the management end creates different types of role attributes by calling the system contract, and assigns one or more corresponding types of role attributes to each client; the client performs client authorization settings by calling the system contract to authorize one or more methods in each deployed smart contract to the corresponding type of role attribute; if a smart contract is called, the node determines whether it has the authority to call the corresponding method of the smart contract based on the role attribute corresponding to the identity identifier of the client that initiated the smart contract call. Therefore, the invention can finely control the developer user's access to or call of contracts. However, the invention still has certain shortcomings, such as:

[0004] (1) Identity anonymity is not supported. In the method provided by this invention, each client needs to have a clear identity, and this identity is associated with its role attributes. This means that every time a smart contract is called, the node's verification process will reveal the identity of the client that initiated the call. This may lead to data leakage and user behavior tracking due to insufficient privacy protection. In some application scenarios, such as decentralized finance (DeFi), anonymous voting systems, or privacy-preserving transactions, users may want to remain anonymous. However, since this invention does not support identity anonymity, it cannot be applied to these scenarios, which limits its scope of application.

[0005] (2) System contracts need to be deployed. Deploying a system contract for role management means introducing an additional logic and data processing layer on the consortium chain. This not only increases the complexity of the system, but also may introduce new potential vulnerabilities and failure points; it also leads to increased system maintenance costs and affects performance. Summary of the Invention

[0006] This application provides a blockchain whitelist method that supports identity anonymity, aiming to solve the problem of existing technologies ensuring the transparency of blockchain data while protecting user privacy.

[0007] The present application provides a blockchain whitelist method that supports identity anonymity. The method sets an access whitelist of public addresses for blockchain business smart contracts. The whitelist is based on a cryptographic accumulator. When a user calls a business smart contract, a random one-time address is generated through his or her own public key. The user uses the one-time address to call the business, including steps S1 to S4.

[0008] Step S1, check whether your public address is in the whitelist. When the public address is in the whitelist, use zero-knowledge proof technology to generate a whitelist proof based on the cryptographic accumulator; otherwise, apply to add the public address to the whitelist and update the accumulated value of the cryptographic accumulator.

[0009] Step S2, using zero-knowledge proof technology to generate a whitelist proof based on a cryptographic accumulator, including steps S21 to S23.

[0010] Step S21: Use zero-knowledge proof technology to write constraints related to one-time addresses, public keys, and whitelist verification.

[0011] Step S22: setting the public input and secret input of the zero-knowledge proof algorithm.

[0012] Step S23, performing calculation of the zero-knowledge proof algorithm to obtain a whitelist proof;

[0013] Step S3: Add the generated whitelist certificate to the transaction for calling the service, and sign the transaction using the private key corresponding to the one-time address.

[0014] Step S4: Submit the signed transaction to the blockchain network.

[0015] The above solution may optionally further include: the business smart contract receives the transaction submitted by the user to the blockchain network and verifies the transaction, runs the zero-knowledge proof technology verification algorithm, verifies the validity of the whitelist proof, and if the verification is successful, the business smart contract makes a business call.

[0016] The above scheme may further optionally include: performing calculations of a zero-knowledge proof technology verification algorithm based on constraints related to one-time addresses, public public keys, and whitelist verification written using zero-knowledge proof technology, and public inputs of the zero-knowledge proof technology, to confirm the validity of the whitelist proof.

[0017] In the above solution, optionally, it is included that: the zero-knowledge proof technology is specifically zk-STARK technology.

[0018] In the above solution, optionally, step S21 specifically includes steps S211 to S213.

[0019] Step S211: Write a zero-knowledge proof constraint for calculating a one-time address.

[0020] Step S212: Write a zero-knowledge proof constraint for calculating the public address from the public key.

[0021] Step S213: Write a zero-knowledge proof constraint for the cryptographic accumulator that verifies whether the user's public address is in the whitelist.

[0022] In the above scheme, further optionally, it includes: when the cryptographic accumulator adopts a Merkle tree, the step S213 specifically includes writing a zero-knowledge proof constraint for verifying the Merkle tree proof path.

[0023] In the above solution, optionally, step S22 specifically includes step S221-step S222.

[0024] Step S221: The public input of the zero-knowledge proof technology is set to the one-time address and the accumulated value of the cryptographic accumulator.

[0025] Step S222, setting the secret input to a random number, a public key, a public address, and a cryptographic accumulator proof that the user's public address is in the whitelist; wherein the random number is generated by the user and is used to calculate the one-time public key.

[0026] In the above solution, optionally, when the user calls the business smart contract, a random one-time address is generated by the user's own public key, including steps S01 to S03.

[0027] Step S01: The user generates a random number t and uses his public key P A The one-time public key is calculated using the following formula:

[0028] P one =t·G+P A

[0029] Where G represents the public base point on the elliptic curve.

[0030] Step S02: The user uses his own private key S A , calculate the one-time private key S one , the calculation formula is:

[0031] S one =t+S A

[0032] wherein the private key S A satisfies P A = S A G.

[0033] Step S03, using the one-time public key P one , obtains the one-time address A one , and the calculation formula is:

[0034] A one = Address(P one )

[0035] In the formula, Address() represents a function for calculating a one-time address.

[0036] In the above scheme, optionally, adding the public address to the whitelist comprises steps S51-S52.

[0037] Step S51, the user applies to the service party to add the public address to the whitelist.

[0038] Step S52, if approved, the public address is added to the address list of the whitelist in the service smart contract, and the accumulation value of the cryptographic accumulator of the whitelist address list is updated.

[0039] In the above scheme, optionally, removing the public address from the whitelist comprises steps S61-S62.

[0040] Step S61, the user applies to the service party, or the service party initiates, to remove the public address from the whitelist.

[0041] Step S62, if approved, the public address is removed from the address list of the whitelist in the service smart contract, and the accumulation value of the cryptographic accumulator of the whitelist address list is updated.

[0042] Compared with the prior art, the present application has at least the following beneficial effects:

[0043] Based on further analysis and research of the problems of the prior art, it is realized that in the practical application of the blockchain, especially in the business scenarios involving sensitive information or privacy protection, how to protect the privacy of users while ensuring data transparency has become a technical problem to be solved. By introducing one-time address technology, the identity anonymity of users in participating in blockchain business is realized. At the same time, combined with the application of cryptographic accumulators and zero-knowledge proofs, the blockchain can verify whether the anonymous identity is in the whitelist, thereby ensuring the anonymity of the user identity and the effectiveness of the verification.

[0044] Patent document CN112395570A requires the deployment of a system contract. Furthermore, this system contract is the underlying contract of the system, meaning it must be deployed as a "system component" when building a blockchain. If a chain doesn't deploy this contract, the method provided by this patent cannot be used. In contrast to patent document CN112395570A, this application can be used on any chain and requires only the deployment of a standard contract, without requiring the deployment of a system contract. BRIEF DESCRIPTION OF THE DRAWINGS

[0045] Figure 1 A schematic diagram of a business process for calling a blockchain whitelist method that supports identity anonymity is provided for one embodiment of the present application. DETAILED DESCRIPTION

[0046] In order to make the purpose, technical solutions and advantages of this application more clear, the following further describes this application in detail with reference to the accompanying drawings and embodiments. It should be understood that the specific embodiments described herein are only used to explain this application and are not intended to limit this application.

[0047] In the description of the present application, unless otherwise specified, expressions such as “include”, “comprising”, “having”, etc. also mean “not limited to” (certain units, components, materials, steps, etc.).

[0048] Concept definition and explanation:

[0049] Elliptic curve: An elliptic curve is a plane algebraic curve defined as satisfying the equation y 2 =x 3 The set of points where a + ax + b is a real constant. Elliptic curves are widely used in cryptography because they offer efficient and secure encryption due to the computational difficulty of the elliptic curve discrete logarithm problem (ECDLP).

[0050] Public Key: A public key is a cryptographic key that is publicly available in a public-key cryptography system and is used to encrypt messages or verify digital signatures. It is paired with a corresponding private key, where the public key is publicly available and the private key is kept secret, ensuring that only the holder of the private key can decrypt information or generate a valid signature.

[0051] Private key: A private key is a secret key used in public-key cryptography to decrypt messages or generate digital signatures. It exists in pairs with a public key, which is publicly available while the private key must be kept strictly confidential. The security of the private key is crucial because anyone with the private key can decrypt messages encrypted with the public key or forge signatures.

[0052] Address: An address is an identifier used to receive digital assets in a blockchain system. It consists of a string of letters and numbers. The address generation process typically begins with a user-generated public key. First, the user generates a pair of keys: a private key and a public key. The public key is calculated from the private key using elliptic curve cryptography. The public key is then double-hashed (for example, using SHA-256 and then RIPEMD-160) to produce a shorter hash value. Finally, this hash value is encoded using a specific encoding method (such as Base58Check) and prefixed to generate the final address. This address can be publicly used to receive digital assets, while the corresponding private key must be kept confidential to ensure the security of transfers.

[0053] Hash function: A hash function is an algorithm that converts an arbitrary-length input into a fixed-length output (a hash value). Hash functions are one-way, meaning the original input cannot be derived from the hash value, and the hash values ​​generated for different inputs are almost always different. They are widely used in data integrity verification, digital signatures, and cryptography.

[0054] zk-STARK and related concepts:

[0055] zk-STARK (Zero-Knowledge Scalable Transparent Argument of Knowledge) is a zero-knowledge proof technology that allows a party to prove the authenticity of a piece of knowledge or data without revealing any specific information. zk-STARK is efficient, scalable, and transparent, independent of trusted setups, and capable of rapid verification of large-scale data and complex computations. It has important applications in blockchain and privacy protection.

[0056] Constraints: A set of rules or conditions imposed on each state and transition between states in a computational process in order to verify the correctness of the computational process.

[0057] Public input: Input data that is known to both parties and does not need to be hidden during the proof process. This data is usually used as the starting point of the calculation or the basis for verification.

[0058] Secret input: During the proof process, one party wishes to hide input data that the other party does not want to know. This data is usually sensitive information such as personal privacy or business secrets.

[0059] Proof algorithm: A protocol that does not require a trusted setup. By arithmeticizing the computation process and implementing polynomial commitments, it is possible to prove the correctness of the computation results to the verifier without leaking any private data.

[0060] Verification algorithm: By performing a series of checks and calculations on the proof information provided by the prover, the correctness of the calculation process is verified to ensure that the prover has not cheated.

[0061] Smart Contracts: A smart contract is a self-executing code deployed on a blockchain that automates and enforces contract terms. It runs automatically when specific conditions are met, without human intervention, ensuring transparency and trustworthiness. Smart contracts can handle functions such as asset transfers, automated payments, and condition verification, and are widely used in finance, supply chain, insurance, and other fields. Because they are based on blockchain technology, smart contracts are tamper-resistant and irreversible, ensuring the security and reliability of contract execution.

[0062] In one embodiment, reference Figure 1 , provides a blockchain whitelist method that supports identity anonymity. The method is to set an access whitelist of public addresses for blockchain business smart contracts. The whitelist is based on a cryptographic accumulator. When a user calls a business smart contract, a random one-time address is generated through his or her own public key. The user uses the one-time address to call the business, including steps S1 to S4.

[0063] Step S1: Check whether your public address is in the whitelist. If it is, use zero-knowledge proof technology to generate a whitelist proof based on the cryptographic accumulator. Otherwise, apply to add the public address to the whitelist and update the accumulated value of the cryptographic accumulator.

[0064] Step S2, using zero-knowledge proof technology to generate a whitelist proof based on a cryptographic accumulator, including steps S21 to S23.

[0065] Step S21: Use zero-knowledge proof technology to write constraints related to one-time addresses, public keys, and whitelist verification.

[0066] Step S22: setting the public input and secret input of the zero-knowledge proof algorithm.

[0067] Step S23: Calculate the zero-knowledge proof algorithm to obtain a whitelist certificate.

[0068] Step S3: Add the generated whitelist certificate to the transaction of calling the service, and sign the transaction using the private key corresponding to the one-time address.

[0069] Step S4: Submit the signed transaction to the blockchain network.

[0070] In the embodiment, a blockchain whitelist method supporting identity anonymity is proposed: each user holds a public key and an address of a public identity, a business party sets an access whitelist of a public address for a blockchain business smart contract, and a cryptographic accumulator is used to calculate an accumulated value of the whitelist. Each time the user calls the contract, a random one-time address is generated through the public key of the user's own public identity, and a zero-knowledge "whitelist proof" is generated to prove that the user is in the whitelist while keeping the identity anonymous. The one-time address is used as the sender of the blockchain transaction, and the whitelist proof is uploaded to the chain through the transaction. After the on-chain verification is passed, the one-time address can be allowed to call the business.

[0071] By introducing the one-time address technology, the identity anonymity of the user in participating in the blockchain business is realized. At the same time, in combination with the application of the cryptographic accumulator and the zero-knowledge proof, the blockchain can verify whether the anonymous identity is in the whitelist, thereby ensuring the anonymity of the user's identity and the effectiveness of the verification.

[0072] In one embodiment, according to the constraints related to the one-time address, the public key, and the whitelist verification written by the zero-knowledge proof technology, and the public input of the zero-knowledge proof technology, the calculation of the zero-knowledge proof technology verification algorithm is performed to confirm the validity of the whitelist proof.

[0073] In one embodiment, the zero-knowledge proof technology is specifically the zk-STARK technology. The user can also use other zero-knowledge proof technologies according to specific circumstances, which are not limited in the present application.

[0074] In one embodiment, step S21 is to write constraints related to the one-time address, the public key, and the whitelist verification based on the cryptographic accumulator. Step S21 specifically includes steps S211-S213.

[0075] Step S211 is to write zero-knowledge proof constraints for calculating the one-time address.

[0076] Step S212 is to write zero-knowledge proof constraints for calculating the public address from the public key.

[0077] Step S213 is to write zero-knowledge proof constraints for verifying the cryptographic accumulator proof that the user's public address is in the whitelist.

[0078] In one embodiment, when the cryptographic accumulator adopts a Merkle tree, step S213 specifically includes writing zero-knowledge proof constraints for verifying the Merkle tree proof path.

[0079] In one embodiment, step S22 is to set the public input and the secret input of the zero-knowledge proof technology proof algorithm. Step S22 specifically includes steps S221-S222.

[0080] Step S221: The public input of the zero-knowledge proof technology is set to the one-time address and the accumulated value of the cryptographic accumulator.

[0081] Step S222, setting the secret input to a random number, a public key, a public address, and a cryptographic accumulator proof that the user's public address is in the whitelist; wherein the random number is generated by the user and is used to calculate the one-time public key.

[0082] In this embodiment, the user's one-time address A one The process of calling a business is as follows:

[0083] 1. If the user's public address A is not in the whitelist, add it to the whitelist.

[0084] 2. Use zk-STARK technology to generate a whitelist certificate. The process includes:

[0085] (1) Write a zk-STARK constraint for computing a one-time address.

[0086] (2) Write a zk-STARK constraint that computes the public address from the public key.

[0087] (3) Write a zk-STARK constraint that verifies the cryptographic accumulator proof that the user’s public address is in the whitelist. For example, if the cryptographic accumulator uses a Merkle tree, write a zk-STARK constraint that verifies the Merkle tree proof path.

[0088] (4) The zk-STARK public input is set to the one-time address and the cumulative value of the cryptographic accumulator; the secret input is set to the random number t, the public public key, the public address, and the cryptographic accumulator proof that the user's public address is in the whitelist.

[0089] (5) Perform calculations using the zk-STARK proof algorithm to obtain a whitelist proof.

[0090] 3. The user adds the whitelist certificate to the transaction calling the service and uses the one-time address A one The corresponding private key signs the transaction.

[0091] In one embodiment, the business smart contract receives transactions submitted by users to the blockchain network and verifies the transactions, runs a zero-knowledge proof technology verification algorithm, and verifies the validity of the whitelist proof. If the verification is successful, the business smart contract makes a business call.

[0092] In this example, the user posts the above transaction to the blockchain. The business smart contract receives and verifies the transaction, which includes running the zk-STARK verification algorithm to verify the validity of the whitelist proof. The verification algorithm is as follows:

[0093] Based on the above zk-STARK constraints and public input (no secret input is required), the zk-STARK verification algorithm is calculated to obtain a valid or invalid result.

[0094] If the verification is successful, it proves that the user is allowed to call the service. The service call is made in the smart contract.

[0095] In one embodiment, when a user calls a business smart contract, a random one-time address is generated by the user's public key, including steps S01 to S03.

[0096] Step S01: The user generates a random number t and uses his public key P A The one-time public key is calculated using the following formula:

[0097] P one =t·G+P A

[0098] Where G represents the public base point on the elliptic curve.

[0099] Step S02: The user uses his own private key S A , calculate the one-time private key S one , the calculation formula is:

[0100] S one =t+S A

[0101] Among them, the private key S A Satisfy P A =S A G.

[0102] Step S03, use the one-time public key P one , get the one-time address A one , the calculation formula is:

[0103] A one =Address(P one )

[0104] Where Address() represents a function for calculating a one-time address.

[0105] In this embodiment, Address() represents a function for calculating a one-time address. According to the actual design, hash calculation can be performed first, and then a prefix can be added after encoding conversion.

[0106] In one embodiment, adding a public address to a whitelist includes steps S51 and S52.

[0107] In step S51, the user applies to the service provider to add the public address to the whitelist.

[0108] Step S52: If passed, the public address is added to the whitelist address list in the business smart contract, and the accumulated value of the cryptographic accumulator of the whitelist address list is updated.

[0109] In this embodiment, the process of adding address A to the whitelist is as follows (Address A=Address(P A )):

[0110] 1. The user applies to the business party to add the address to the whitelist.

[0111] 2. If approved, address A is added to the whitelist in the business smart contract.

[0112] 3. If approved, the business smart contract updates the accumulated value of the cryptographic accumulator for the whitelist address list. The cryptographic accumulator can use a Merkle tree, and the accumulated value is the Merkle root.

[0113] In one embodiment, removing the public address from the whitelist includes steps S61 and S62.

[0114] In step S61, the user applies to the business party, or the business party proactively removes the public address from the whitelist.

[0115] Step S62: If passed, the public address is removed from the whitelist address list in the business smart contract, and the accumulated value of the cryptographic accumulator of the whitelist address list is updated.

[0116] In this embodiment, the process of removing address A from the whitelist is as follows:

[0117] 1. The user applies to the business entity, or the business entity proactively removes address A from the whitelist.

[0118] 2. If approved, address A will be removed from the whitelist in the business smart contract.

[0119] 3. If approved, the business smart contract updates the accumulated value of the cryptographic accumulator for the whitelist address list. The cryptographic accumulator can use a Merkle tree, and the accumulated value is the Merkle root.

[0120] This application introduces one-time address technology to achieve user anonymity when participating in blockchain business; through the combined application of cryptographic accumulators and zero-knowledge proofs, the blockchain can verify whether the anonymous identity is in the whitelist while maintaining the anonymity of the identity.

[0121] In one embodiment, a computer-readable storage medium is further provided, on which a computer program is stored. When the computer program is executed by a processor, the steps of the method in the above embodiment are implemented.

[0122] In one embodiment, a computer program product is also provided, including a computer program / instruction, which implements the steps of the above-mentioned embodiment method when executed by a processor.

[0123] The technical features of the above embodiments can be combined arbitrarily. To make the description concise, not all possible combinations of the technical features in the above embodiments are described. However, as long as there is no contradiction in the combination of these technical features, they should be considered to be within the scope of this specification.

Claims

1. A blockchain whitelist method supporting identity anonymity, characterized in that: The method sets a whitelist of public addresses for access to blockchain business smart contracts. The whitelist is based on a cryptographic accumulator. When a user calls a business smart contract, a random one-time address is generated using their public key. The user uses the one-time address to call the business, including: Step S1: Check whether the public address is in the whitelist. If the public address is in the whitelist, use zero-knowledge proof technology to generate a whitelist proof based on the cryptographic accumulator; otherwise, apply to add the public address to the whitelist and update the accumulated value of the cryptographic accumulator. Step S2: Generate a whitelist certificate based on a cryptographic accumulator using zero-knowledge proof technology, including: Step S21: Use zero-knowledge proof technology to write constraints related to one-time addresses, public keys, and whitelist verification; Step S22, setting the public input and secret input of the zero-knowledge proof algorithm; Step S23, performing calculation of the zero-knowledge proof algorithm to obtain a whitelist proof; Step S3: Add the generated whitelist certificate to the transaction for calling the service, and sign the transaction using the private key corresponding to the one-time address; Step S4: Submit the signed transaction to the blockchain network.

2. The blockchain whitelist method supporting identity anonymity according to claim 1, characterized in that: Also includes: The business smart contract receives transactions submitted by users to the blockchain network and verifies the transactions, runs the zero-knowledge proof technology verification algorithm, and verifies the validity of the whitelist proof. If the verification is successful, the business smart contract will make a business call.

3. The blockchain whitelist method supporting identity anonymity according to claim 2, characterized in that: include: Based on the constraints related to one-time addresses, public keys, and whitelist verification written using zero-knowledge proof technology, as well as the public input of the zero-knowledge proof technology, the zero-knowledge proof technology verification algorithm is calculated to confirm the validity of the whitelist proof.

4. The blockchain whitelist method supporting identity anonymity according to claim 1, characterized in that: include: The zero-knowledge proof technology is specifically zk-STARK technology.

5. The blockchain whitelist method supporting identity anonymity according to claim 1, characterized in that: The step S21 specifically includes: Step S211, write a zero-knowledge proof constraint for calculating a one-time address; Step S212, write a zero-knowledge proof constraint for calculating the public address from the public key; Step S213: Write a zero-knowledge proof constraint for the cryptographic accumulator that verifies whether the user's public address is in the whitelist.

6. The blockchain whitelist method supporting identity anonymity according to claim 5, characterized in that: include: When the cryptographic accumulator adopts a Merkle tree, step S213 specifically includes writing a zero-knowledge proof constraint for verifying the Merkle tree proof path.

7. The blockchain whitelist method supporting identity anonymity according to claim 1, characterized in that: The step S22 specifically includes: Step S221, setting the public input of the zero-knowledge proof technology to the one-time address and the accumulated value of the cryptographic accumulator; Step S222, setting the secret input to a random number, a public key, a public address, and a cryptographic accumulator proof that the user's public address is in the whitelist; wherein the random number is generated by the user and is used to calculate the one-time public key.

8. The blockchain whitelist method supporting identity anonymity according to claim 1, characterized in that: When the user calls the business smart contract, a random one-time address is generated by his public key, including: Step S01: The user generates a random number t and uses his public key P A The one-time public key is calculated using the following formula: P one =t·G+P A Where G represents the public base point on the elliptic curve; Step S02: The user uses his own private key S A , calculate the one-time private key S one , the calculation formula is: S one =t+S A Among them, the private key S A Satisfy P A =S A G; Step S03, use the one-time public key P one , get the one-time address A one : A one =Address(P one ) Where Address() represents a function for calculating a one-time address.

9. The blockchain whitelist method supporting identity anonymity according to claim 1, characterized in that: Whitelisting public addresses includes: Step S51: The user applies to the service provider to add the public address to the whitelist; Step S52: If passed, the public address is added to the whitelist address list in the business smart contract, and the accumulated value of the cryptographic accumulator of the whitelist address list is updated.

10. The blockchain whitelist method supporting identity anonymity according to claim 1, characterized in that: Removing public addresses from the whitelist includes: Step S61: The user applies to the business entity, or the business entity proactively removes the public address from the whitelist; Step S62: If passed, the public address is removed from the whitelist address list in the business smart contract, and the accumulated value of the cryptographic accumulator of the whitelist address list is updated.

Citation Information

Patent Citations

  • Alliance chain intelligent contract calling permission control method and system and storage medium

    CN112395570A

  • Cross-domain anonymous authentication method and system based on block chain

    CN112039872A

  • Digital identity verification method and system based on block chain smart contract

    CN115622812A