Method and system for generating random numbers on blockchain based on threshold encryption
By using a method based on threshold encryption on the blockchain, random numbers are generated, and the problem of unsafe random number generation in the prior art is solved, and effective protection of random number results is achieved.
Patent Information
- Application Number
- CN202111667293.5
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2021-12-31
- Publication Date
- 2025-05-16
- Estimated Expiration
- 2041-12-31
AI Technical Summary
It is difficult to securely generate random numbers on the blockchain, and existing solutions may lead to participating nodes or users being able to influence or predict random numbers results, or to repent random results.
A method based on threshold encryption is adopted, and a threshold encryption public-private key pair with a threshold of F+1 is generated for the participating node through a trusted third party. The participating node generates random seeds and encrypts them. After the user collects the ciphertext of F+1 legal response, the random seeds are solved through the threshold encryption algorithm to generate the final random number.
Ensure that any participants and users who do not exceed the fault tolerance number F cannot affect or predict the random number results, prevent remorse and improve the security of random number generation.
Smart Images

Figure CN114329566B_ABST
Abstract
Description
Technical Field
[0001] The present invention belongs to the technical field of blockchain, and in particular relates to a method and system for generating random numbers on a blockchain based on threshold encryption. Background Art
[0002] Blockchain is a decentralized distributed system. It is very difficult to generate a random number securely in such a system. The security here is mainly reflected in the following aspects: (1) Even if the participating nodes with less than the fault tolerance number work together to commit evil, they cannot predict or influence the result of the random number. (2) Once the result is generated, it cannot be reversed. Usually, a random number refers to a number that satisfies the following properties: (1) Its value satisfies a certain statistical relationship (distribution column); (2) Its value is independent of the previous value.
[0003] Existing solutions have more or less the possibility that participating nodes or users may influence or predict random numbers and go back on the random results. For example, in some solutions, participating nodes first disclose the hash of the random seed, and then require participating nodes to disclose the random seed within a certain time limit. If the time limit is exceeded, they will not participate in the random number generation. However, in this case, the last person to disclose can influence the random number result by choosing whether to disclose his or her own random seed. There are also some solutions that allow users to generate random numbers through verifiable random functions. Users can go back on their word by refusing to disclose the random result if the random result is unfavorable to them. Summary of the invention
[0004] In view of the above problems, the present invention provides a method and system for generating random numbers on a blockchain based on threshold encryption, which are used to ensure the security of random number generation.
[0005] In order to solve the above technical problems, the present invention adopts the following technical solutions:
[0006] In a first aspect, an embodiment of the present invention provides a method for generating random numbers on a blockchain based on threshold encryption, comprising the following steps:
[0007] Initially, a trusted third party generates a threshold encrypted public-private key pair with a threshold of F+1 for participating nodes, where F is the fault tolerance number and F is a positive integer. The public key of each public-private key pair is made public, and the private key is kept by each participating node.
[0008] Receive the random seed generation request sent by the user to multiple participating nodes and collect at least F+1 legal responses. After receiving the request, the participating node generates a random seed, encrypts it with the public key of the threshold encryption to obtain a ciphertext, and then signs the ciphertext with the private key and returns it to the user;
[0009] When a participating node monitors an on-chain event, it verifies the legitimacy of the ciphertexts and signatures of all threshold-encrypted random seeds in the transaction that generated the on-chain event, and verifies that the ciphertexts come from F+1 different participating nodes; after completing the verification, the participating node decrypts all random seed ciphertexts using its own threshold-encrypted private key to obtain partial decrypted ciphertexts of all random seeds, and publicly broadcasts the partial decrypted ciphertexts of all random seeds;
[0010] When the user or participating node collects the partially decrypted ciphertexts of all random seeds broadcasted by other nodes, it verifies the legitimacy of these partially decrypted ciphertexts. After collecting F+1 legal partially decrypted ciphertexts from different participating nodes, it sends the F+1 partially decrypted ciphertexts to the chain.
[0011] After receiving the partially decrypted ciphertext on the chain, all random seeds are decrypted through the threshold encryption algorithm, all random seeds are concatenated together and hashed to obtain the final random seed to generate a random number.
[0012] In a possible design of the first aspect, the on-chain event is that after the user receives a response to the request, the user verifies the legitimacy of the ciphertext of the threshold-encrypted random seed in the response and the legitimacy of the signature. After collecting F+1 legitimate random seed ciphertexts from different participants, the random seed ciphertext together with the signature is sent to the chain as a transaction for consensus. After the consensus is completed, an on-chain event is generated to notify the participating nodes.
[0013] In a possible design of the first aspect, after the user receives responses to F+1 legal random number generation requests, the responses are combined and sent to the chain for consensus before setting a deposit. If the user does not submit the decryption result within the time limit, any third party can submit the decryption result to obtain the deposit.
[0014] In a possible design of the first aspect, the participating node is a consensus node of the blockchain.
[0015] In a possible design of the first aspect, the participating node is an endorsement node in the Hyperledger consortium chain.
[0016] In a second aspect, an embodiment of the present invention provides a random number generation system on a blockchain based on threshold encryption, comprising:
[0017] A private key storage unit is used to store the private key; the private key generation process is that a trusted third party generates a threshold encrypted public-private key pair with a threshold of F+1 for the participating nodes, where F is a fault tolerance number and F is a positive integer, the public key of each public-private key pair is made public, and the private key is stored by each participating node;
[0018] The ciphertext generation unit is used to receive the random seed generation request sent by the user to multiple participating nodes and collect at least F+1 legal responses. After receiving the request, the participating node generates a random seed, encrypts it with the public key of the threshold encryption to obtain the ciphertext, and then signs the ciphertext with the private key and returns it to the user;
[0019] The ciphertext verification unit is used to verify the legitimacy of the ciphertext and signature of all threshold-encrypted random seeds in the transaction that generated the on-chain event after the participating node monitors the on-chain event, and verify that the ciphertext comes from F+1 different participating nodes;
[0020] The partial decryption unit is used to decrypt all random seed ciphertexts using their own threshold encrypted private keys after verification, and obtain partial decrypted ciphertexts of all random seeds, and publicly broadcast the partial decrypted ciphertexts of all random seeds;
[0021] The partially decrypted ciphertext verification unit is used to verify the legitimacy of the partially decrypted ciphertexts of all random seeds broadcast by other nodes after the user or participating node collects them. After collecting F+1 legal partially decrypted ciphertexts from different participating nodes, the F+1 partially decrypted ciphertexts are sent to the chain.
[0022] The random number generation unit is used to decrypt all random seeds through a threshold encryption algorithm after receiving the partially decrypted ciphertext on the chain, concatenate all random seeds together and perform hashing to obtain the final random seed, and generate a random number.
[0023] In a possible design of the second aspect, the on-chain event is that after the user receives the response to the request, the legitimacy of the ciphertext of the random seed after threshold encryption and the legitimacy of the signature in the response are verified. After F+1 legal random seed ciphertexts from different participants are collected, the random seed ciphertext together with the signature are sent to the chain as a transaction for consensus. After the consensus is completed, an on-chain event is generated to notify the participating nodes.
[0024] In a possible design of the second aspect, after the user receives responses to F+1 legal random number generation requests, the responses are combined and sent to the chain for consensus to set a deposit. If the user does not submit the decryption result within the time limit, any third party can submit the decryption result to obtain the deposit.
[0025] In a possible design of the second aspect, the participating node is a consensus node of the blockchain.
[0026] In a possible design of the second aspect, the participating node is an endorsement node in the Hyperledger consortium chain.
[0027] In a third aspect, an embodiment of the present invention provides a computer device, comprising at least a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein when the processor executes the program, a method for generating random numbers on a blockchain based on threshold encryption as described above is implemented.
[0028] In a fourth aspect, an embodiment of the present invention provides a computer-readable storage medium, on which a computer program is stored, and the program is executed by a processor to implement any of the methods for generating random numbers on a blockchain based on threshold encryption as described above.
[0029] The use of the present invention has the following beneficial effects: any participants not exceeding the fault tolerance number F and any number of users, no matter how they collaborate to do evil, cannot influence or predict the random number results, nor can they prevent others from knowing the random number results, thereby ensuring the security of random number generation. BRIEF DESCRIPTION OF THE DRAWINGS
[0030] Figure 1 This is a flowchart of a method for generating random numbers on a blockchain based on threshold encryption according to an embodiment of the present invention;
[0031] Figure 2 This is a schematic diagram of the structure of a random number generation system on a blockchain based on threshold encryption according to an embodiment of the present invention;
[0032] Figure 3 The figure is a schematic diagram of the structure of a computer device according to an embodiment of the present invention. DETAILED DESCRIPTION
[0033] The following will be combined with the drawings in the embodiments of the present invention to clearly and completely describe the technical solutions in the embodiments of the present invention. Obviously, the described embodiments are 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 creative work are within the scope of protection of the present invention.
[0034] Reference Figure 1 , which is a flowchart of a method for generating random numbers on a blockchain based on threshold encryption according to an embodiment of the present invention, comprising the following steps:
[0035] S10, initial setting, a trusted third party generates a threshold encrypted public-private key pair with a threshold of F+1 for the participating nodes, where F is the fault tolerance number and F is a positive integer. The public key of each public-private key pair is made public, and the private key is saved by each participating node. The threshold is set to F+1 here to avoid collaboration among F malicious nodes.
[0036] S20, receiving a random seed generation request sent by a user to multiple participating nodes and collecting at least F+1 legitimate responses. After receiving the request, the participating node generates a random seed, encrypts it with the public key of the threshold encryption to obtain a ciphertext, and then signs the ciphertext with the private key and returns it to the user. The number of participating nodes here can be set to at least 2F+1, because at least F+1 participants need to respond, but F malicious nodes may not respond.
[0037] S30, when the participating node monitors the on-chain event, it verifies the legitimacy of the ciphertext and signature of all threshold-encrypted random seeds in the transaction that generated the on-chain event, and verifies that the ciphertext comes from F+1 different participating nodes; after completing the verification, the participating node decrypts all random seed ciphertexts using its own threshold-encrypted private key to obtain the partially decrypted ciphertext of all random seeds, and publicly broadcasts the partially decrypted ciphertext of all random seeds;
[0038] S40, after the user or participating node collects the partially decrypted ciphertexts of all random seeds broadcasted by other nodes, it verifies the legitimacy of the partially decrypted ciphertexts, and after collecting F+1 legal partially decrypted ciphertexts from different participating nodes, it sends the F+1 partially decrypted ciphertexts to the chain;
[0039] S50, after receiving the partially decrypted ciphertext on the chain, all random seeds are decrypted through the threshold encryption algorithm, all random seeds are concatenated together and hashed to obtain the final random seed, and a random number is generated.
[0040] Through the above-set method of generating random numbers on the blockchain based on threshold encryption, any participants not exceeding the fault tolerance number F and any number of users, no matter how they collaborate to do evil, cannot influence or predict the random number results, nor can they prevent others from knowing the random number results, thereby ensuring the security of random number generation.
[0041] In a method for generating random numbers on a blockchain based on threshold encryption in one embodiment of the present invention, the on-chain event is that after the user receives the response to the request, the legitimacy of the ciphertext of the random seed after threshold encryption in the response and the legitimacy of the signature are verified. After collecting F+1 legal random seed ciphertexts from different participants, the random seed ciphertext together with the signature are sent to the chain as a transaction for consensus. After the consensus is completed, an on-chain event is generated to notify the participating nodes. Here, the transaction is sent to the chain to ensure that the decrypted objects are the same, otherwise the user may create multiple groups of request responses and select the desired ones from them after decryption.
[0042] A method for generating random numbers on a blockchain based on threshold encryption according to an embodiment of the present invention further includes: after a user receives responses to F+1 legal requests for generating random numbers, the responses are merged and sent to the chain for consensus before setting a deposit. If the user does not submit the decryption result within the time limit, any third party can submit the decryption result to obtain the deposit, thereby preventing users from initiating malicious requests and occupying chain resources.
[0043] In an embodiment of the present invention, a method for generating random numbers on a blockchain based on threshold encryption is provided. The participating nodes may be consensus nodes of a general blockchain, endorsement nodes in a hyperledger consortium chain, or even any group of people recognized by users who use the random number. For example, the user may be the author of a smart contract or the person who calls a smart contract.
[0044] Corresponding to the embodiment of the method of the present invention, see Figure 2 , shown is a random number generation system on a blockchain based on threshold encryption provided by an embodiment of the present invention, comprising:
[0045] The private key storage unit 101 is used to store the private key; the private key generation process is that a trusted third party generates a threshold-encrypted public-private key pair with a threshold of F+1 for the participating nodes, where F is the fault tolerance number and F is a positive integer. The public key of each public-private key pair is made public, and the private key is stored by each participating node. The threshold is set to F+1 here to avoid collaboration among F malicious nodes.
[0046] The ciphertext generation unit 102 receives a random seed generation request sent by a user to multiple participating nodes and collects at least F+1 legal responses. After receiving the request, the participating node generates a random seed, encrypts it with a threshold encryption public key to obtain a ciphertext, and then signs the ciphertext with a private key and returns it to the user. The multiple participating nodes here can be set to at least 2F+1, because at least F+1 participants need to respond, but F malicious nodes may not respond.
[0047] The ciphertext verification unit 103 is used to verify the legitimacy of the ciphertext and signature of all threshold-encrypted random seeds in the transaction that generated the on-chain event after the participating node monitors the on-chain event, and verify that the ciphertext comes from F+1 different participating nodes;
[0048] The partial decryption unit 104 is used to, after completing the verification, decrypt all random seed ciphertexts using their own threshold encrypted private keys to obtain partial decrypted ciphertexts of all random seeds, and publicly broadcast the partial decrypted ciphertexts of all random seeds;
[0049] The partially decrypted ciphertext verification unit 105 is used to verify the legitimacy of the partially decrypted ciphertexts of all random seeds broadcasted by other nodes after the user or participating node collects them. After collecting F+1 legal partially decrypted ciphertexts from different participating nodes, the F+1 partially decrypted ciphertexts are sent to the chain.
[0050] The random number generation unit 106 is used to decrypt all random seeds through a threshold encryption algorithm after receiving the partially decrypted ciphertext on the chain, concatenate all random seeds together and perform hashing to obtain a final random seed, and generate a random number.
[0051] Through the random number generation system on the blockchain based on threshold encryption set up above, any participants not exceeding the fault tolerance number F and any number of users, no matter how they collaborate to do evil, cannot influence or predict the random number results, nor can they prevent others from knowing the random number results, thus ensuring the security of random number generation.
[0052] Figure 3 A more specific hardware structure diagram of a computing device provided in an embodiment of this specification is shown, and the computer device may include: a processor 201, a memory 202, an input / output interface 203, a communication interface 204, and a bus 205. The processor 201, the memory 202, the input / output interface 203, and the communication interface 204 are connected to each other in communication within the device through the bus 205.
[0053] The processor 201 can be implemented by a general-purpose CPU (Central Processing Unit), a microprocessor, an application-specific integrated circuit (ASIC), or one or more integrated circuits, and is used to execute relevant programs to implement the technical solutions provided in the embodiments of this specification.
[0054] The memory 202 can be implemented in the form of ROM (Read Only Memory), RAM (Random Access Memory), static storage device, dynamic storage device, etc. The memory 202 can store an operating system and other application programs. When the technical solutions provided in the embodiments of this specification are implemented by software or firmware, the relevant program codes are stored in the memory 202 and called and executed by the processor 201.
[0055] A person of ordinary skill in the art will appreciate that all or part of the steps in the various methods of the above embodiments may be completed by instructions, or by controlling related hardware through instructions. The instructions may be stored in a computer-readable storage medium and loaded and executed by a processor.
[0056] To this end, an embodiment of the present application provides a computer-readable storage medium, in which a plurality of computer programs are stored, and the computer program can be loaded by a processor to execute the steps in any method of reducing transaction read-write conflicts by using placeholders provided in the embodiment of the present application. For example, the computer program can execute the following steps:
[0057] In the initial setting, a trusted third party generates a threshold encrypted public-private key pair with a threshold of F+1 for the participating nodes, where F is the fault tolerance number and F is a positive integer. The public key of each public-private key pair is made public, and the private key is kept by each participating node. The threshold is set to F+1 here to avoid collaboration among F malicious nodes.
[0058] Receive the random seed generation request sent by the user to multiple participating nodes and collect at least F+1 legal responses. After receiving the request, the participating node generates a random seed, encrypts it with the threshold encryption public key to obtain the ciphertext, and then signs the ciphertext with the private key and returns it to the user. The multiple participating nodes here can be set to at least 2F+1, because at least F+1 participants need to respond, but F malicious nodes may not respond;
[0059] When the participating nodes monitor the on-chain events, they verify the legitimacy of the ciphertexts and signatures of all threshold-encrypted random seeds in the transactions that generated the on-chain events, and verify that the ciphertexts come from F+1 different participating nodes. After the verification is completed, the participating nodes decrypt all random seed ciphertexts using their own threshold-encrypted private keys to obtain partial decrypted ciphertexts of all random seeds, and publicly broadcast the partial decrypted ciphertexts of all random seeds.
[0060] When the user or participating node collects the partially decrypted ciphertexts of all random seeds broadcasted by other nodes, it verifies the legitimacy of the partially decrypted ciphertexts. After collecting F+1 legal partially decrypted ciphertexts from different participating nodes, it sends the F+1 partially decrypted ciphertexts to the chain.
[0061] After receiving the partially decrypted ciphertext on the chain, all random seeds are decrypted through the threshold encryption algorithm, all random seeds are spliced together and hashed to obtain the final random seed to generate a random number.
[0062] The specific implementation of the above steps can be found in the above method embodiments, which will not be repeated here.
[0063] Computer readable media include permanent and non-permanent, removable and non-removable media that can be implemented by any method or technology to store information. Information can be computer readable instructions, data structures, program modules or other data. Examples of computer storage media include, but are not limited to, phase change memory (PRAM), static random access memory (SRAM), dynamic random access memory (DRAM), other types of random access memory (RAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), flash memory or other memory technology, compact disk read-only memory (CD-ROM), digital versatile disk (DVD) or other optical storage, magnetic cassettes, magnetic tape magnetic disk storage or other magnetic storage devices or any other non-transmission media that can be used to store information that can be accessed by a computing device.
[0064] Since the computer program stored in the storage medium can execute the steps of any method for reducing transaction read-write conflicts through placeholders provided in the embodiments of the present application, the beneficial effects that can be achieved by any method for reducing transaction read-write conflicts through placeholders provided in the embodiments of the present application can be achieved. Please see the above embodiments for details and will not be repeated here.
[0065] It should be understood that the exemplary embodiments described herein are illustrative rather than restrictive. Although one or more embodiments of the present invention have been described in conjunction with the accompanying drawings, it should be understood by those skilled in the art that various changes in form and detail may be made without departing from the spirit and scope of the present invention as defined by the appended claims.
Claims
1. A method for generating random numbers on a blockchain based on threshold encryption, characterized in that: The following steps are involved: Initially, a trusted third party generates a threshold encrypted public-private key pair with a threshold of F+1 for participating nodes, where F is the fault tolerance number and F is a positive integer. The public key of each public-private key pair is made public, and the private key is kept by each participating node. Receive the random seed generation request sent by the user to multiple participating nodes and collect at least F+1 legal responses. After receiving the request, the participating node generates a random seed, encrypts it with the public key of the threshold encryption to obtain a ciphertext, and then signs the ciphertext with the private key and returns it to the user; When a participating node monitors an on-chain event, it verifies the legitimacy of the ciphertexts and signatures of all threshold-encrypted random seeds in the transaction that generated the on-chain event, and verifies that the ciphertexts come from F+1 different participating nodes; after completing the verification, the participating node decrypts all random seed ciphertexts using its own threshold-encrypted private key to obtain partial decrypted ciphertexts of all random seeds, and publicly broadcasts the partial decrypted ciphertexts of all random seeds; When the user or participating node collects the partially decrypted ciphertexts of all random seeds broadcasted by other nodes, it verifies the legitimacy of the partially decrypted ciphertexts. After collecting F+1 legal partially decrypted ciphertexts from different participating nodes, it sends the F+1 partially decrypted ciphertexts to the chain. After receiving the partially decrypted ciphertext on the chain, all random seeds are decrypted using the threshold encryption algorithm, all random seeds are concatenated together and hashed to obtain the final random seed, generating a random number; The on-chain event is that after the user receives the response to the request, the legitimacy of the ciphertext of the threshold-encrypted random seed in the response and the legitimacy of the signature are verified. After collecting F+1 legal random seed ciphertexts from different participants, the random seed ciphertext together with the signature are sent to the chain as a transaction for consensus. After the consensus is completed, an on-chain event is generated to notify the participating nodes.
2. The method for generating random numbers on a blockchain based on threshold encryption as claimed in claim 1, characterized in that: After the user receives responses to F+1 legal random number generation requests, the responses are combined and sent to the chain for consensus before setting a deposit. If the user does not submit the decryption result within the time limit, any third party can submit the decryption result to obtain the deposit.
3. The method for generating random numbers on a blockchain based on threshold encryption as claimed in claim 1 or 2, characterized in that: The participating nodes are consensus nodes of the blockchain.
4. The method for generating random numbers on a blockchain based on threshold encryption as claimed in claim 1 or 2, characterized in that: The participating nodes are the endorsement nodes in the Hyperledger consortium chain.
5. A random number generation system on a blockchain based on threshold encryption, characterized in that: include: A private key storage unit is used to store the private key; the private key generation process is that a trusted third party generates a threshold encrypted public-private key pair with a threshold of F+1 for the participating nodes, where F is a fault tolerance number and F is a positive integer, the public key of each public-private key pair is made public, and the private key is stored by each participating node; The ciphertext generation unit is used to receive the random seed generation request sent by the user to multiple participating nodes and collect at least F+1 legal responses. After receiving the request, the participating node generates a random seed, encrypts it with the public key of the threshold encryption to obtain the ciphertext, and then signs the ciphertext with the private key and returns it to the user; The ciphertext verification unit is used to verify the legitimacy of the ciphertext and signature of all threshold-encrypted random seeds in the transaction that generated the on-chain event after the participating node monitors the on-chain event, and verify that the ciphertext comes from F+1 different participating nodes; The partial decryption unit is used to decrypt all random seed ciphertexts using their own threshold encrypted private keys after verification, and obtain partial decrypted ciphertexts of all random seeds, and publicly broadcast the partial decrypted ciphertexts of all random seeds; The partially decrypted ciphertext verification unit is used to verify the legitimacy of the partially decrypted ciphertexts of all random seeds broadcast by other nodes after the user or participating node collects them. After collecting F+1 legal partially decrypted ciphertexts from different participating nodes, the F+1 partially decrypted ciphertexts are sent to the chain. A random number generation unit is used to, after receiving the partially decrypted ciphertext on the chain, decrypt all random seeds using a threshold encryption algorithm, concatenate all random seeds together and perform hashing to obtain a final random seed, thereby generating a random number; The on-chain event is that after the user receives the response to the request, the legitimacy of the ciphertext of the threshold-encrypted random seed in the response and the legitimacy of the signature are verified. After collecting F+1 legal random seed ciphertexts from different participants, the random seed ciphertext together with the signature are sent to the chain as a transaction for consensus. After the consensus is completed, an on-chain event is generated to notify the participating nodes.
6. The random number generation system on the blockchain based on threshold encryption as claimed in claim 5, characterized in that: After the user receives responses to F+1 legal random number generation requests, the responses are combined and sent to the chain for consensus before setting a deposit. If the user does not submit the decryption result within the time limit, any third party can submit the decryption result to obtain the deposit.
7. The random number generation system on the blockchain based on threshold encryption as described in claim 5 or 6, characterized in that: The participating nodes are consensus nodes of the blockchain.
8. The random number generation system on the blockchain based on threshold encryption as described in claim 5 or 6, characterized in that: The participating nodes are the endorsement nodes in the Hyperledger consortium chain.
9. A computer device, characterized in that: The method comprises at least a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein when the processor executes the program, the method for generating random numbers on a blockchain based on threshold encryption according to any one of claims 1 to 4 is implemented.
10. A computer-readable storage medium, characterized in that: The computer-readable storage medium stores a computer program, which is executed by a processor to implement the method for generating random numbers on a blockchain based on threshold encryption as described in any one of claims 1 to 4.
Citation Information
Patent Citations
Distributed verifiable random number generation method based on CP-ABE
CN109981263A
Random number generation method and device and storage medium
CN110213059A