Bone marrow matching management method and blockchain system

By adopting blockchain technology and the public key encryption mechanism of operator nodes in the bone marrow matching system, the problems of false user registration and data tampering are solved, and the security and reliability of the bone marrow matching system are achieved.

CN114329625BActive Publication Date: 2025-03-14CHINA UNITED NETWORK COMM GRP CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202111626672.X
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2021-12-28
Publication Date
2025-03-14
Estimated Expiration
2041-12-28

AI Technical Summary

Technical Problem

There are problems in the existing bone marrow matching system with false user registration, stealing or tampering with user registration information, resulting in the security of matching that cannot be guaranteed.

Method used

The blockchain system is adopted to encrypt the user's identity information and contact information through the public key of the operator node, generate the first encrypted information, and transmit the random challenge string through verification text messages to ensure the authenticity of the user node and the security of data transmission.

Benefits of technology

Effectively prevent false user registration and data tampering, and ensure the safety and reliability of the bone marrow matching system.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN114329625B_ABST
    Figure CN114329625B_ABST
Patent Text Reader

Abstract

The present invention discloses a bone marrow matching management method and a blockchain system, and relates to the field of blockchain technology. The method includes: a user node broadcasts first user registration information including first encrypted information, a user identifier and a public key of the user node to the blockchain system; an operator node sends a verification SMS carrying second encrypted information to the user node according to the contact information of the first user registration information, wherein the second encrypted information includes a random challenge number string; the user node receives and obtains the random challenge number string in the verification SMS, adds the random challenge number string to the first user registration information, obtains the second user registration information, and broadcasts it to the blockchain system; the operator node receives the second user registration information, verifies the identity information and contact information using the data in the operator user database, and then verifies the random challenge number string in the second user registration information, and if the verification passes, broadcasts the saved first user registration information to the blockchain system.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to the field of blockchain technology, and in particular to a bone marrow matching management method and a blockchain system. Background Art

[0002] At present, bone marrow matching is mainly managed by a unified database. After the donor and recipient users register in the bone marrow matching system, the identity information and matching information of the donor and recipient users are stored in the database, and the matching is performed by the system. However, there are currently problems such as false user registration, theft or tampering of user registration information, making the security of bone marrow matching impossible to guarantee. Summary of the invention

[0003] To this end, the present invention provides a bone marrow matching management method and a blockchain system to solve the problem that the security of bone marrow matching cannot be guaranteed in the prior art.

[0004] In order to achieve the above-mentioned object, in a first aspect, the present invention provides a bone marrow matching management method, which is used in a blockchain system, wherein the blockchain system includes a plurality of user nodes and an operator node, wherein the user node includes a donor node and a recipient node; the method includes:

[0005] The user node broadcasts first user registration information corresponding to the user node to the blockchain system, wherein the first user registration information includes: first encrypted information obtained by encrypting identity information and contact information of the user corresponding to the user node according to the public key of the operator node, the user identifier of the user node, and the public key of the user node;

[0006] The operator node receives and stores the first user registration information, and uses its own private key to decrypt the first encrypted information to obtain the contact information;

[0007] The operator node sends a verification SMS message carrying second encrypted information to the user node according to the contact information, wherein the second encrypted information is generated by encrypting a random challenge string generated by the operator node according to the public key of the user node in the first user registration information;

[0008] The user node receives and obtains the second encrypted information in the verification SMS, decrypts the second encrypted information according to its own private key, obtains the random challenge number string, adds the random challenge number string to the first user registration information, obtains the second user registration information, and broadcasts the second user registration information to the blockchain system;

[0009] The operator node receives the second user registration information, decrypts the first encrypted information using its own private key, obtains the identity information and the contact information, and verifies the identity information and the contact information using the data in the operator user database. If the verification is successful, the random challenge number string in the second user registration information is verified. If the verification is successful, the saved first user registration information is broadcast to the blockchain system;

[0010] Each node in the blockchain system receives the first user registration information and verifies the first user registration information. If the verification is successful, the first user registration information is recorded in the blockchain account book.

[0011] In some examples, the verifying the identity information and the contact information using data in an operator user database includes:

[0012] The operator node searches the operator user database for a telephone number that matches the telephone number in the contact information;

[0013] The operator node obtains user information associated with the found matching telephone number, verifies whether the user information is consistent with the identity information, and if so, determines that the identity information and the contact information are verified.

[0014] In some examples, the verifying the random challenge string in the second user registration information includes:

[0015] The operator node determines whether the second user registration information is valid according to a comparison result of the time when the second user registration information is received and a preset time threshold;

[0016] If so, verify the consistency of the sent random challenge number string and the received random challenge number string. If the consistency verification passes, determine that the random challenge number string verification passes.

[0017] In some examples, the blockchain system further includes a founding node; in the case where the user node is a donation node, if the verification is passed, after recording the first user registration information in the blockchain ledger, the method includes:

[0018] The donation node obtains the public key of the founding node, and encrypts its own contact information according to the public key of the founding node to obtain third encrypted information;

[0019] The donation node sorts the preset number of gene loci information of the corresponding donor according to the preset rules;

[0020] The donation node generates a donation gene identifier from the sorted preset number of gene site information through hash calculation;

[0021] The donation node generates donation information according to its own user identifier, the donation gene identifier, and the third encrypted information, and broadcasts it to the blockchain system;

[0022] Each node in the blockchain system receives the donation information and verifies the donation information. If the verification is successful, the donation information is recorded in the blockchain account book.

[0023] In some examples, the blockchain system further includes a timestamp node; for the case where the user node is a donated node, if the verification is passed, after recording the first user registration information in the blockchain ledger, the method includes:

[0024] The recipient node sorts the preset number of gene loci information of the corresponding recipient according to the preset rules;

[0025] The recipient node generates a recipient gene identifier from the sorted preset number of gene site information of the recipient through hash calculation;

[0026] The donated node synchronizes the complete blockchain account book of the blockchain system, and searches the blockchain account book for the donation information that matches the donated gene identifier of the node;

[0027] If so, the donated node sends a query request containing the matching donation information to the originating node;

[0028] The founding node obtains the third encrypted information in the donation information contained in the received query request, and decrypts the third encrypted information according to its own private key to obtain the contact information of the donation node;

[0029] The founding node sends a matching success notification to the donor node through the contact information of the donor node;

[0030] Wherein, in the case where the donated node sends the query request for the first time, the donated node sends the query request containing the matching donation information to the founding node, including:

[0031] The donated node sends the query request to the timestamp node;

[0032] The timestamp node receives the query request, adds the first time of receiving the query request to the donation information, and sends the donation information after adding the first time to the founding node.

[0033] In some examples, the blockchain system further includes a genesis node, the genesis node storing a user identifier and a public key of the operator node; before the user node broadcasts the first user registration information corresponding to the user node to the blockchain system, the method includes:

[0034] The user node obtains the user identifier and the public key of the operator node stored in the genesis node, and encrypts the identity information and contact information of the user corresponding to the user node according to the public key of the operator node to obtain the first encrypted information;

[0035] The user node generates the user identifier according to the identity information through hash calculation;

[0036] The user node generates first user registration information of the user node according to its own public key, the user identification, and the first encrypted information.

[0037] In some examples, each node in the blockchain system receives the first user registration information, and verifies the first user registration information includes:

[0038] Each node in the blockchain system receives the first user registration information and obtains the user identifier therein;

[0039] Each node in the blockchain system queries the blockchain account book to see whether there is a historical user identifier that matches the currently received user identifier;

[0040] If not, it is determined that the verification is successful.

[0041] In a second aspect, the present invention provides a blockchain system, which is applied to bone marrow matching management, and the blockchain system includes multiple user nodes and operator nodes, wherein the user nodes include donor nodes and recipient nodes; wherein,

[0042] The user node is used to broadcast first user registration information corresponding to the user node to the blockchain system, wherein the first user registration information includes: first encrypted information obtained by encrypting identity information and contact information of the user corresponding to the user node according to the public key of the operator node, the user identifier of the user node, and the public key of the user node;

[0043] The operator node is used to receive and store the first user registration information, and use its own private key to decrypt the first encrypted information to obtain the contact information;

[0044] The operator node is further configured to send a verification SMS message carrying second encrypted information to the user node according to the contact information, wherein the second encrypted information is generated by encrypting a random challenge string generated by the operator node according to the public key of the user node in the first user registration information;

[0045] The user node is further configured to receive and obtain the second encrypted information in the verification SMS, decrypt the second encrypted information according to its own private key, obtain the random challenge number string, add the random challenge number string to the first user registration information, obtain the second user registration information, and broadcast the second user registration information to the blockchain system;

[0046] The operator node is further used to receive the second user registration information, decrypt the first encrypted information using its own private key, obtain the identity information and the contact information, and verify the identity information and the contact information using the data in the operator user database. If the verification is successful, verify the random challenge number string in the second user registration information. If the verification is successful, broadcast the saved first user registration information to the blockchain system;

[0047] Each node in the blockchain system is used to receive the first user registration information and verify the first user registration information. If the verification is successful, the first user registration information is recorded in the blockchain account book.

[0048] In a third aspect, the present invention provides an electronic device, comprising:

[0049] at least one processor; and

[0050] a memory communicatively connected to the at least one processor; wherein,

[0051] The memory stores instructions that can be executed by the at least one processor. The instructions are executed by the at least one processor so that the at least one processor can perform the above method.

[0052] In a fourth aspect, the present invention provides a non-transitory computer-readable storage medium storing computer instructions, wherein the computer instructions are used to enable a computer to execute the above method.

[0053] The present invention has at least the following advantages:

[0054] The bone marrow matching management method and blockchain system provided by the embodiment of the present invention use the public key of the operator to encrypt the user's identity information and contact information to obtain the first encrypted information, and then send the first user registration information containing the first encrypted information to the operator node, so that the operator node uses its own private key to decrypt the first encrypted information to obtain the user's identity information and contact information, encrypt the random challenge number string according to the public key of the user node to generate the second encrypted information, and then send the second encrypted information to the user node in the form of a verification SMS according to the acquired contact information. After receiving the verification SMS, the user node decrypts the second encrypted information according to its own private key to obtain the random challenge number string, and then adds the random challenge number string to the first user registration information to obtain the second user registration information and sends it to the operator node. The operator node decrypts the first user registration information by its own private key to obtain the identity information and contact information, verifies it to determine that the user node is not a false user, and then verifies the obtained random challenge number string to determine that the user node can truly receive the verification SMS, and the data sent to the user node has not been tampered with, and each step of the transmission between the user node and the operator needs to be encrypted by the public key of one of the two, so as to further ensure that the data has not been tampered with, thereby ensuring the security of bone marrow matching. BRIEF DESCRIPTION OF THE DRAWINGS

[0055] The accompanying drawings are used to provide further understanding of the present invention and constitute a part of the specification. Together with the following specific embodiments, they are used to explain the present invention, but do not constitute a limitation of the present invention.

[0056] Figure 1 A schematic diagram of the flow chart of the bone marrow matching management method provided in Example 1 of the present invention;

[0057] Figure 2 A schematic diagram of the flow of the bone marrow matching management method provided in Embodiment 2 of the present invention;

[0058] Figure 3 A flowchart of some steps of the bone marrow matching management method provided in Embodiment 2 of the present invention;

[0059] Figure 4 A system structure diagram of the blockchain system provided by the present invention;

[0060] Figure 5 This is a schematic structural diagram of an electronic device provided by the present invention. DETAILED DESCRIPTION

[0061] In order to enable those skilled in the art to better understand the technical solution of the present invention, the present invention is further described in detail below in conjunction with the accompanying drawings and specific implementation methods.

[0062] It should be understood that the specific embodiments and drawings described herein are only used to explain the present invention rather than to limit the present invention.

[0063] It can be understood that, in the absence of conflict, the various embodiments of the present invention and the various features in the embodiments can be combined with each other.

[0064] It can be understood that, for the convenience of description, the drawings of the present invention only show the parts related to the present invention, while the parts irrelevant to the present invention are not shown in the drawings.

[0065] It can be understood that each unit and module involved in the embodiments of the present invention may correspond to only one physical structure, or may be composed of multiple physical structures, or multiple units and modules may be integrated into one physical structure.

[0066] It can be understood that, without conflict, the functions and steps marked in the flowcharts and block diagrams of the present invention may occur in an order different from that marked in the drawings.

[0067] It is understood that the flowcharts and block diagrams of the present invention illustrate the possible architectures, functions, and operations of the systems, devices, equipment, and methods according to the various embodiments of the present invention. Each box in the flowchart or block diagram may represent a unit, module, program segment, or code, which contains executable instructions for implementing the specified functions. Moreover, each box or combination of boxes in the block diagram and flowchart may be implemented by a hardware-based system that implements the specified functions, or may be implemented by a combination of hardware and computer instructions.

[0068] It can be understood that the units and modules involved in the embodiments of the present invention can be implemented by software or hardware. For example, the units and modules can be located in a processor.

[0069] Embodiment 1

[0070] See also Figure 1 , Figure 1 A flow chart of the bone marrow matching management method provided in Example 1 is shown.

[0071] This embodiment provides a bone marrow matching management method, which is used in a blockchain system. The blockchain system includes multiple user nodes, operator nodes, founding nodes, and timestamp nodes, wherein the user nodes include donor nodes and recipient nodes. Among them, the user node is the blockchain node corresponding to the user. The user can access the blockchain system through a terminal (such as a mobile phone) and become a user node; the operator node is the blockchain node corresponding to the supplier who provides network services to the user, and the operator user database of the operator node stores the contact information of each user; the founding node is the first block of the blockchain system, and the founding node records the public key and identifier of the founding node, as well as the public key and identifier of the operator node; the timestamp node is a node used to timestamp information, which can specifically be a server, and can timestamp information according to the time when the information is received. Among them, the users of the user node include recipients and donors, the user node corresponding to the recipient is the recipient node, and the user node corresponding to the donor is the donor node. The method includes the following steps:

[0072] S110. The user node broadcasts first user registration information corresponding to the user node to the blockchain system, wherein the first user registration information includes: first encrypted information obtained by encrypting the identity information and contact information of the user corresponding to the user node according to the public key of the operator node, the user identifier of the user node, and the public key of the user node.

[0073] If bone marrow matching is to be performed, each user (donor or recipient) needs to register on the blockchain system, that is, the user accesses the blockchain system through a terminal, which is called a user node of the blockchain system. The user node broadcasts the first user registration information corresponding to the user node to the blockchain system. After receiving the first user registration information, other nodes in the blockchain system do not record the first registration information in the new block. After the operator node verifies the authenticity of the first user registration information and the verification is passed, each node records the first user registration information in the new block, and then records it in the blockchain account book. Among them, the first user registration information includes the identity information and contact information of the user corresponding to the user node, the user ID of the user node and the public key of the user node. Further, in order to ensure the privacy and security of the user's identity information and contact information, the user node can encrypt the identity information and contact information to generate the first encrypted information. Accordingly, the first user registration information includes the first encrypted information, the user ID of the user node and the public key of the user node. Further, before generating the first encrypted information, the user needs to obtain the user ID and public key of the operator node stored in the founding node, which is specifically obtained in the following way:

[0074] Sub-step 1: The user node sends a first acquisition request to the genesis node.

[0075] Sub-step 2: After receiving the first acquisition request, the founding node sends the public key and user identifier of the operator node stored in the founding node to the user node.

[0076] Afterwards, the user node receives the public key of the operator node and the user identification, and uses the public key of the operator node to encrypt the user's identity information and contact information to obtain first encrypted information.

[0077] It should be noted that after the user node is connected to the blockchain system, it only needs to synchronize the founding block (i.e. the first block) of the blockchain ledger of the blockchain system, without synchronizing the complete blockchain ledger, thereby saving the storage space of the user node.

[0078] S120: The operator node receives and stores the first user registration information, and uses its own private key to decrypt the first encrypted information to obtain contact information.

[0079] The operator node receives and stores the first user registration information, obtains the first encrypted information in the first user registration information, and because the first encrypted information is encrypted using the operator node's public key, the operator node can decrypt the first encrypted information using the operator node's private key to obtain the user's contact information and identity information in the first encrypted information. Encrypting the user's contact information and identity information using the operator node's public key can ensure the privacy and security of the contact information and identity information, and prevent the information from being tampered with. The operator node itself stores its own private key, and can use its own private key for decryption without obtaining other information, thereby reducing the amount of data transmission.

[0080] S130. The operator node sends a verification SMS message carrying second encrypted information to the user node according to the contact information, wherein the second encrypted information is generated by encrypting a random challenge string generated by the operator node according to the public key of the user node in the first user registration information.

[0081] The contact information of the user node includes at least the user's phone number and may also include the user's contact address. After the operator node decrypts the first encrypted information to obtain the user's contact information, it obtains the phone number in the contact information, and then sends a verification SMS carrying the second encrypted information to the user node based on the phone number in the contact information. The second encrypted information is generated in the following manner:

[0082] Sub-step 1: The operator node uses a preset algorithm to generate a random challenge number string.

[0083] The preset algorithm may be any random number generation algorithm, such as the square median method, the Mersenne twister algorithm, the linear congruential algorithm, and the like.

[0084] Sub-step 2: The operator node obtains the public key of the user node in the first user registration information stored in itself, and uses the public key of the user node to encrypt the random challenge number string to obtain the second encrypted information.

[0085] It should be noted that the verification SMS method is more secure because it is sent through the signaling channel of the operator's mobile switching network. Compared with the Internet method, it has higher security to avoid data tampering or interception.

[0086] S140. The user node receives and obtains the second encrypted information in the verification SMS, decrypts the second encrypted information according to its own private key, obtains a random challenge number string, adds the random challenge number string to the first user registration information, obtains the second user registration information, and broadcasts the second user registration information to the blockchain system.

[0087] The user node receives the second encrypted information through the verification SMS. Since the second encrypted information is encrypted with the public key of the user node, the user node can decrypt the second encrypted information with the private key of the user node to obtain the random challenge number string in the second encrypted information. Encrypting the random challenge number string with the public key of the user node can ensure the transmission security of the random challenge number string and prevent the random challenge number string from being tampered with. The user node itself stores its own private key and can use its own private key for decryption without obtaining other information, thereby reducing the amount of data transmission.

[0088] The user node obtains the random challenge string, and then adds the random challenge string to the first user registration information to obtain the second user registration information, that is, the second user registration information includes: the first encrypted information, the user ID of the user node, the public key of the user node and the random challenge string. The user node broadcasts the second user registration information to the blockchain system. After receiving the second user registration information, other nodes in the blockchain system do not record it first, and wait for the operator node to verify the authenticity of the second user registration information.

[0089] S150. The operator node receives the second user registration information, uses its own private key to decrypt the first encrypted information, obtains the identity information and contact information, and uses the data in the operator user database to verify the identity information and contact information. If the verification is successful, the random challenge number string in the second user registration information is verified. If the verification is successful, the saved first user registration information is broadcast to the blockchain system.

[0090] The operator node receives the second user registration information, which includes the first encrypted information. Since the first encrypted information is encrypted using the public key of the operator node, the operator node can decrypt the first encrypted information with the private key of the operator node to obtain the user's contact information and identity information in the first encrypted information, and use the data in the operator user database to verify the identity information and contact information to determine the authenticity of the contact information and / or identity information, and further determine the authenticity of the user node to avoid false registration; and verify the random challenge number string in the second user registration information to ensure that the random challenge number string sent to the user node can be truly received by the user node and has not been tampered with, and further determine the authenticity of the user and the security of transmission. If the user node is determined to be authentic and reliable after double verification, the operator node will broadcast the first user registration information saved in S120 to the blockchain system so that each node in the blockchain system can save it.

[0091] In some examples, in this broadcast, in order to identify that the first user registration information broadcasted this time is the first user registration information verified by the operator node, the operator node may add a verification identifier to the first user registration information.

[0092] S160. Each node in the blockchain system receives the first user registration information and verifies the first user registration information. If the verification is successful, the first user registration information is recorded in the blockchain account book.

[0093] Each node in the blockchain system (including other user nodes, operator nodes, and founding nodes) receives the first user registration information, verifies the first user registration information, obtains the user ID of the user in the first user registration information, and searches the blockchain account book stored in itself for a historical user ID that is the same as the currently received user ID. If there is no historical user ID that is the same as the currently received user ID, it is determined that the verification is passed and the first user registration information is recorded in the blockchain account book. Each person's matching information is fixed, so only one registration is allowed. For existing user registrations (historical user IDs), a second registration is not allowed. By verifying whether there is a historical user ID that is the same as the currently received user ID in the blockchain account book, it can be ensured that a user node can only be registered once, thereby preventing a large number of repeated registrations or malicious registration attacks.

[0094] In some examples, when the operator node adds a verification identifier to the first user registration information, each node in the blockchain system in S160 receives the first user registration information, including: each node in the blockchain system receives the first user registration information and verifies whether the verification identifier is included therein; if the verification identifier is included, the first user registration information is verified; if the verification identifier is not included, the first user registration information is not saved.

[0095] It should be noted that no matter the user node is the recipient node corresponding to the recipient, or the donor node corresponding to the donor, it can be registered to the blockchain system in the above manner.

[0096] The bone marrow matching management provided in this embodiment uses the public key of the operator to encrypt the user's identity information and contact information to obtain the first encrypted information, and then sends the first user registration information containing the first encrypted information to the operator node, so that the operator node uses its own private key to decrypt the first encrypted information to obtain the user's identity information and contact information, encrypts the random challenge number string according to the public key of the user node to generate the second encrypted information, and then sends the second encrypted information to the user node in the form of a verification SMS according to the acquired contact information. After receiving the verification SMS, the user node decrypts the second encrypted information according to its own private key to obtain the random challenge number string, and then adds the random challenge number string to the first user registration information to obtain the second user registration information and sends it to the operator node. The operator node decrypts the first user registration information by its own private key to obtain the identity information and contact information, verifies it to determine that the user node is not a false user, and then verifies the obtained random challenge number string to determine that the user node can truly receive the verification SMS and the data sent to the user node has not been tampered with. In addition, each step of the transmission between the user node and the operator needs to be encrypted using the public key of one of the two, so as to further ensure that the data has not been tampered with, thereby ensuring the security of bone marrow matching.

[0097] Embodiment 2

[0098] See also Figure 2 , Figure 2 A flow chart of the bone marrow matching management method provided in Example 2 is shown.

[0099] This embodiment provides a bone marrow matching management method, which is applied to a blockchain system, wherein the blockchain system includes multiple user nodes, operator nodes, founding nodes, and timestamp nodes, wherein the user nodes include donor nodes and recipient nodes. The founding node is the first block of the blockchain system, and the founding node records the public key and identifier of the founding node, as well as the public key and identifier of the operator node. The method includes the following steps:

[0100] S210: The user node obtains the user identifier and public key of the operator node stored in the founding node, and encrypts the identity information and contact information of the user corresponding to the user node according to the public key of the operator node to obtain first encrypted information.

[0101] The user node obtains the user identification and public key of the operator node stored in the founding node including:

[0102] Sub-step 1: The user node sends a first acquisition request to the genesis node.

[0103] Sub-step 2: After receiving the first acquisition request, the founding node sends the public key and user identifier of the operator node stored in the founding node to the user node.

[0104] Among them, the identity information includes at least one of the user's ID number, name, and gender; the contact information includes at least the user's phone number and may also include the user's contact address. Encrypting the identity information and contact information can ensure the privacy and security of the identity information and contact information.

[0105] S220: The user node generates a user ID according to the identity information through hash calculation.

[0106] Specifically, the user node uses a preset hash algorithm to perform a hash calculation using the ID number in the identity information to generate a hash value, and uses the hash value as the user ID of the user node. Since the ID number is unique, the user ID generated in this way is also unique.

[0107] S230: The user node generates first user registration information of the user node according to its own public key, user identification, and first encrypted information.

[0108] S240: The user node broadcasts the first user registration information corresponding to the user node to the blockchain system.

[0109] Among them, S240 specifically includes: the user node signs the first user registration information using its own private key, and then broadcasts the signed first user registration information to the blockchain system. After receiving the first user registration information, other nodes in the blockchain system do not record the first registration information into a new block. After the operator node verifies the authenticity of the first user registration information and the verification passes, each node records the first user registration information into a new block, and then records it into the blockchain ledger.

[0110] S250: The operator node receives and stores the first user registration information, and uses its own private key to decrypt the first encrypted information to obtain contact information.

[0111] Specifically, the operator node in S250 receives and saves the first user registration information, which specifically includes: the operator node receives the first user registration information, obtains the public key of the user node therein, and uses the public key of the user node to verify the signature of the first user registration information. If the verification passes (that is, the public key and the private key match successfully), the first user registration information is saved.

[0112] Furthermore, the operator node obtains the first encrypted information in the first user registration information. Since the first encrypted information is encrypted using the public key of the operator node, the operator node can decrypt the first encrypted information using the private key of the operator node to obtain the user's contact information and identity information in the first encrypted information. Encrypting the user's contact information and identity information using the public key of the operator node can ensure the privacy and security of the contact information and identity information and prevent the information from being tampered with. The operator node itself stores its own private key and can use its own private key for decryption without obtaining other information, thereby reducing the amount of data transmission.

[0113] S260. The operator node sends a verification SMS message carrying second encrypted information to the user node according to the contact information, wherein the second encrypted information is generated by encrypting a random challenge string generated by the operator node according to the public key of the user node in the first user registration information.

[0114] Specifically, after the operator node decrypts the first encrypted information to obtain the user's contact information, it obtains the phone number in the contact information, and then sends a verification SMS message carrying the second encrypted information to the user node based on the phone number in the contact information. The second encrypted information is generated in the following manner:

[0115] Sub-step 1: The operator node uses a preset algorithm to generate a random challenge number string.

[0116] The preset algorithm may be any random number generation algorithm, such as the square median method, the Mersenne twister algorithm, the linear congruential algorithm, and the like.

[0117] Sub-step 2: The operator node obtains the public key of the user node in the first user registration information stored in itself, and uses the public key of the user node to encrypt the random challenge number string to obtain the second encrypted information.

[0118] In this step, the verification SMS method is used. Since the verification SMS is sent through the signaling channel of the operator's mobile switching network, it is more secure. Compared with the method of using the Internet, it has higher security to avoid data tampering or interception.

[0119] S270, the user node receives and obtains the second encrypted information in the verification SMS, decrypts the second encrypted information according to its own private key, obtains a random challenge number string, adds the random challenge number string to the first user registration information, obtains the second user registration information, and broadcasts the second user registration information to the blockchain system.

[0120] The user node receives the second encrypted information through the verification SMS. Since the second encrypted information is encrypted with the public key of the user node, the user node can decrypt the second encrypted information with the private key of the user node to obtain the random challenge number string in the second encrypted information. Encrypting the random challenge number string with the public key of the user node can ensure the transmission security of the random challenge number string and prevent the random challenge number string from being tampered with. The user node itself stores its own private key and can use its own private key for decryption without obtaining other information, thereby reducing the amount of data transmission.

[0121] The user node obtains a random challenge string, and then adds the random challenge string to the first user registration information to obtain the second user registration information, that is, the second user registration information includes: the first encrypted information, the user identifier of the user node, the public key of the user node and the random challenge string. The user node broadcasts the second user registration information to the blockchain system.

[0122] Furthermore, in S270, the user node broadcasts the second user registration information to the blockchain system, including: the user node signs the second user registration information using its own private key, and then broadcasts the signed second user registration information to the blockchain system. After receiving the second user registration information, other nodes in the blockchain system do not record it first, and wait for the operator node to verify the authenticity of the second user registration information.

[0123] S280: The operator node receives the second user registration information, and uses its own private key to decrypt the first encrypted information to obtain identity information and contact information.

[0124] Specifically, the operator node receiving the second user registration information in S280 specifically includes: the operator node receives the second user registration information, obtains the public key of the user node therein, and uses the public key of the user node to verify the signature of the second user registration information. If the public key and the private key match successfully, it is determined that the verification is successful.

[0125] Furthermore, the operator node obtains the first encrypted information in the second user registration information. Since the first encrypted information is encrypted using the public key of the operator node, the operator node can decrypt the first encrypted information using the private key of the operator node to obtain the user's contact information and identity information in the first encrypted information.

[0126] S281. The operator node searches the operator user database for a phone number that matches the phone number in the contact information.

[0127] Specifically, the operator user database is used to store users registered in the operator network. After receiving the contact information of the user node, the phone number in the contact information is obtained, and then the operator user data is searched for a phone number stored in the operator user database that is the same as the phone number in the contact information.

[0128] S282. The operator node obtains user information associated with the found matching phone number and verifies whether the user information is consistent with the identity information. If so, it is determined that the identity information and contact information verification are successful.

[0129] Specifically, a telephone number that is identical to the telephone number in the contact information and stored in the operator's user database is found, and user information associated with the telephone number is obtained. In other words, the user information of the user corresponding to the telephone number is obtained, and it is determined whether the user information is consistent with the identity information of the user node. Specifically, the ID number in the user information can be compared with the ID number in the identity information of the user node to see if they are consistent. Further, the contact address in the user information can be compared with the contact address in the identity information of the user node to see if they are consistent, so as to determine the authenticity of the identity information and / or contact information, and further determine the authenticity of the user node to avoid false registration. If they are consistent, it is determined that the identity information and contact information verification have passed.

[0130] S283: The operator node determines whether the second user registration information is valid according to a comparison result of the time when the second user registration information is received and a preset time threshold.

[0131] Specifically, a preset time threshold is set in the operator node, which represents the time interval between the operator node sending a verification SMS carrying a random challenge number string in S260 and receiving the second user registration information carrying a random challenge number string in S280. In order to ensure the security and reliability of the received second user registration information, it is necessary to limit the interval time between sending and receiving. Therefore, after the operator node receives the second registration information in S280, it obtains the sending and receiving time interval based on the time when the verification SMS is sent in S260, and then compares the sending and receiving time interval with the preset time threshold. If the sending and receiving time interval is less than or equal to the preset time threshold, it is determined that the second user registration information is valid.

[0132] S284: If yes, verify the consistency between the sent random challenge number string and the received random challenge number string. If the consistency verification passes, determine that the random challenge number string verification passes.

[0133] Specifically, the operator node verifies the random challenge string in the second user registration information. Specifically, the random challenge string of the sender in S360 can be compared with the random challenge string received in S280. If they are consistent, it is determined that the random challenge string verification is passed to ensure that the random challenge string sent to the user node can be truly received by the user node and has not been tampered with, further determining the authenticity of the user and the security of the transmission. If the user node is determined to be authentic and reliable after triple verification, the operator node broadcasts the first user registration information saved in S120 to the blockchain system, so that each node in the blockchain system saves the first user registration information.

[0134] S285. Broadcast the saved first user registration information to the blockchain system.

[0135] In some examples, in order to further ensure the reliability of the first user registration information, when the user node in S270 signs the first user registration information once, S285 includes: the operator node uses the private key of the operator node to sign the first user registration information for a second time, and then broadcasts the second signed first user registration information to the blockchain system.

[0136] In some examples, in this broadcast, in order to identify that the first user registration information broadcasted this time is the first user registration information verified by the operator node, the operator node may add a verification identifier to the first user registration information.

[0137] Among them, S280-S285 is an implementation method of S150 in Example 1; S281 and S282 are specific steps in S150 for verifying identity information and contact information using data in the operator user database; S283 and S284 are steps in S150 for verifying the random challenge number string in the second user registration information. S150 has other implementation methods, which are not limited here.

[0138] S290. Each node in the blockchain system receives the first user registration information and obtains the user identifier therein.

[0139] Specifically, each node in the blockchain system receives the first user registration information and obtains the user identifier of the user node in the first user registration information.

[0140] In some examples, when the user node in S270 signs the first user registration information once and the operator node in S285 signs the first user registration information twice, each node in the blockchain system in S290 receives the first user registration information including:

[0141] Sub-step 1: Each node in the blockchain system obtains the public key of the operator node from the founding node, and uses the public key to verify the first user registration information (corresponding to the private key signature of the operator node).

[0142] Sub-step 2: If the verification passes, obtain the public key of the user node from the first user registration information, and use the public key to perform a second verification on the first user registration information (corresponding to the private key signature of the user node). If the verification passes, it is determined that the signature verification of the first user registration information passes, and the user identification therein is obtained.

[0143] S291. Each node in the blockchain system queries the blockchain ledger to see whether there is a historical user ID that matches the currently received user ID.

[0144] If there is no user identifier that matches the currently received user, it is determined that the first user registration information has been verified. Each node in the blockchain system searches its own stored blockchain account book to see if there is a historical user identifier that is identical to the currently received user identifier. If there is no historical user identifier that is identical to the currently received user identifier, it is determined that the verification has been passed and the first user registration information is recorded in the blockchain account book. Each person's matching information is fixed, so only one registration is allowed. For existing user registrations (historical user identifiers), a second registration is not allowed. By verifying whether there is a historical user identifier that is identical to the currently received user identifier in the blockchain account book, it can be ensured that a user node can only be registered once, thereby preventing a large number of duplicate registrations or malicious registration attacks.

[0145] S292. Each node in the blockchain system records the first user's registration information in the blockchain account book.

[0146] Each node in the blockchain system records the first user registration information in the blockchain ledger, specifically, including writing the user ID of the user node, the corresponding relationship between the user ID and the public key into the new block, and then writing it into the blockchain ledger. The user ID becomes a historical user ID.

[0147] Among them, S290-S292 is an implementation method of S160 in Example 1, S290 and S291 are specific steps for verifying the first user registration information in S160, and S160 has other implementation methods, which are not limited here.

[0148] It should be noted that no matter the user node is the recipient node corresponding to the recipient, or the donor node corresponding to the donor, the above method can be used to register to the blockchain system. The above steps are for the registration process of the user node. All the information in the above steps is stored in a confidential manner and is not displayed to the public to protect the privacy of the user. For the matching information of the recipient node corresponding to the recipient and the donor node corresponding to the donor, the following steps are used for entry:

[0149] See also Figure 3 , Figure 3 S310-S314 in FIG. 1 shows a flow chart of the method after S292 when the user node is a donation node. For the case where the user node is a donation node, after S292, the method further includes:

[0150] S310: The donor node obtains the public key of the founding node, and encrypts its own contact information according to the public key of the founding node to obtain third encrypted information.

[0151] Among them, the public key of the founding node obtained by the donation node includes:

[0152] Sub-step 1: The user node sends a second acquisition request to the genesis node.

[0153] Sub-step 2: After receiving the second acquisition request, the founding node sends the founding node's public key to the user node.

[0154] After the donor node obtains the public key of the founding node, it encrypts its own contact information according to the founding node's public key to obtain the third encrypted information, where only the contact information is encrypted but not the identity information, so as to keep the donor's identity information confidential after the matching is successful.

[0155] S311. The donation node sorts the preset number of gene loci information of its corresponding donors according to preset rules.

[0156] Among them, the matching information of the donor is not only related to the gene locus information, but also related to its sorting. Therefore, after obtaining the preset number of gene locus information of the donor, the gene locus information is first sorted according to the preset rules, wherein the preset number can be set as needed, for example, 10.

[0157] S312: The donation node generates a donation gene identifier from the sorted preset number of gene site information through hash calculation.

[0158] The donor node performs hash calculation on the sorted preset number of gene loci information according to the preset hash algorithm to generate a hash value, and uses the hash value as the donor gene identifier of the donor node. Here, the preset number of gene loci information is stored through the hash algorithm instead of directly, which can effectively protect the donor's gene information.

[0159] S313. The donation node generates donation information according to its own user ID, donation gene ID, and third encrypted information, and broadcasts it to the blockchain system.

[0160] In some examples, S313 includes: the donation node generates donation information based on the user identifier of the donation node, the donation gene identifier, and the third encrypted information, signs it with the private key of the donation node, and broadcasts the signed donation information to the blockchain system.

[0161] S314. Each node in the blockchain system receives the donation information and verifies the donation information. If the verification is successful, the donation information is recorded in the blockchain account book.

[0162] Each node in the blockchain system obtains the public key of the donation node and verifies the signature of the donation information. If the verification is successful, the donation information will be recorded in the blockchain account book. After the donation node successfully enters its own donation information according to the above steps, it does not need to synchronize the blockchain system account book information in real time and can be offline. If the matching is successful later, the donor will be notified through the contact information of the donation node.

[0163] Continue to see Figure 3 , Figure 3 S320-S325 show the flow chart of the method after S292 when the user node is a donated node.

[0164] In the case where the user node is a donated node, after S292, the method further includes:

[0165] S320: The recipient node sorts the preset number of gene loci information of its corresponding recipients according to preset rules.

[0166] Among them, the matching information of the recipient is not only related to the gene locus information, but also related to its sorting. Therefore, after obtaining the preset number of gene locus information of the recipient, the gene locus information is first sorted according to the preset rules, wherein the preset number can be set as needed, for example, 10. It should be noted that the sorting rule of the donor node in S311 is consistent with the sorting rule of the recipient node in this step, so as to ensure that the gene locus information of the donor and the recipient is sorted according to the same rule.

[0167] S321. The recipient node generates a recipient gene identifier from the preset number of gene site information of the sorted recipients through hash calculation.

[0168] Among them, the recipient node performs hash calculation on the preset number of gene site information of the sorted recipient according to the preset hash algorithm to generate a hash value, and uses the hash value as the donated gene identifier of the recipient node. Here, the preset number of gene site information is stored by the hash algorithm instead of directly storing it, which can effectively protect the gene information of the recipient. It should be noted that the hash algorithm in S312 is consistent with the hash algorithm in this step to ensure that the hash calculation of the gene site information of the donor and the recipient is performed according to the same algorithm.

[0169] S322. The recipient node synchronizes the complete blockchain account book of the blockchain system, and searches the blockchain account book for donation information that matches its own recipient gene identifier.

[0170] After completing the input of the donation information of the donor node and generating the donated gene identifier of the recipient node, the matching step can be performed. Specifically, the recipient node synchronizes the complete blockchain account book of the blockchain system, which records the donation information of each donor node, including the donation gene identifier of each donor node, and searches the blockchain account book for a donor gene identifier that matches its own recipient gene identifier for bone marrow matching.

[0171] S323: If yes, the recipient node sends a query request containing matching donation information to the founding node.

[0172] If a donation gene identifier that matches the donated gene identifier of the recipient node is found, the donation information corresponding to the donation gene identifier is determined, and a query request containing the matching donation information (including the user identifier of the donation node, the donation gene identifier, and the third encrypted information) is generated. The query request is signed with the private key of the recipient node and sent to the founding node.

[0173] Wherein, for the case where the donated node sends a query request for the first time, S323 includes:

[0174] Sub-step 1: The donated node sends a query request to the timestamp node.

[0175] Sub-step 2: The timestamp node receives the query request, adds the donation information at the first time the query request is received, and sends the donation information after the first time is added to the founding node.

[0176] The timestamp node will record the time when the recipient node first sends a query request and timestamp the query request (first time) to ensure that if there are multiple recipient nodes with successful matching, the priority of multiple recipients with successful matching can be assigned according to the timestamp time, that is, the earlier the first time, the higher the priority.

[0177] S324. The founding node obtains the third encrypted information in the donation information contained in the received query request, and decrypts the third encrypted information according to its own private key to obtain the contact information of the donation node.

[0178] Among them, after receiving the query request, the founding node uses the user ID of the donated node (carried in the query request) to query the public key of the donated node corresponding to the user ID of the donated node in the blockchain account book, and uses the public key to verify the signature information of the query request. If the verification is successful, the third encrypted information in the donation information is obtained. Since the third encrypted information is encrypted using the public key of the founding node, the founding node decrypts the third encrypted information according to the founding node's own public key to obtain the contact information of the donating node.

[0179] S325. The founding node sends a matching success notification to the donor node through the donor node's contact information.

[0180] The founding node sends a matching success notification to the donation node through the phone number of the donation node's contact information. Specifically, the matching success notification can be sent via SMS or phone call.

[0181] Continue to see Figure 3 , Figure 3 S410-S430 show the bone marrow matching negotiation process. After S325 or S314, the method includes the following steps:

[0182] S410: The donating node negotiates a quotation with the donated node.

[0183] Wherein, S410 includes the following steps:

[0184] Sub-step 1: The donation node responds to the successful matching notification, connects to the blockchain system, and broadcasts the donation consent notification signed by its own private key to the blockchain system, where the donation consent notification includes the donation quotation.

[0185] Sub-step 2: The patient node corresponding to the donation consent information receives the donation consent notification and obtains the donation quotation therein. If the donation quotation is accepted, the consent quotation notification signed by its own private key is broadcast to the blockchain system, and the donation node is transferred according to the donation quotation.

[0186] S420: The donating node and the donated node confirm the physical examination information.

[0187] Wherein, S420 includes the following steps:

[0188] Sub-step 1: The donation node obtains the physical examination information of the donor, encrypts the physical examination information, signs the encrypted physical examination information with its own private key, and broadcasts the signed physical examination information to the blockchain system.

[0189] The encryption processing of the physical examination information by the donation node includes: removing the identity information and contact information of the donor in the physical examination information; obtaining the public key of the recipient node, and encrypting the physical examination information using the public key of the recipient node.

[0190] Sub-step 2: The donated node receives the physical examination information and uses its own public key to verify the signature of the physical examination information. If the verification is successful, the physical examination information is decrypted.

[0191] The donated node decrypts the physical examination information including: using the private key of the donated node to decrypt the physical examination information. If the physical examination information is confirmed to be compliant (meets medical requirements), the subsequent signing steps are performed.

[0192] S430: The donating node and the receiving node sign a donation contract.

[0193] Wherein, S430 includes the following steps:

[0194] Sub-step 1: The recipient node generates a smart contract, signs it with its own private key, and sends it to the donor node.

[0195] The smart contract includes: the user ID of the donating node, the user ID of the receiving node, the donation quotation, the duration of the default, and the transfer time limit. The terms of the smart contract include: the default amount that the donating node needs to transfer to the public account of the blockchain system, the default conditions, and the transfer conditions.

[0196] The default amount is a preset multiple of the donation quotation, which can be set by yourself, for example, ten times. The default condition is, for example: after the recipient's entry time corresponding to the recipient node is longer than the preset default time, if the donation node receives a rejection notification of the donation initiation, it is confirmed that the donation node has triggered the default condition; if the donation node triggers the default condition, the default amount is transferred to the recipient node's account. The entry time is the time it takes for the recipient to enter the warehouse and start the major chemotherapy and clearing, and the default time is the time it takes for the recipient who can accept the default to enter the warehouse and start the major chemotherapy and clearing.

[0197] The transfer conditions are, for example, if the waiting time for payment after the donor corresponding to the donation node uploads the donation certificate is longer than the transfer time limit, the transfer condition is determined to be triggered. After completing the donation operation, the donor will obtain the donation certificate, and the recipient node should transfer the money to the donor node according to the donation quotation, wherein a certain transfer time limit is set. If the waiting time is longer than the transfer time limit, the amount transferred by the recipient node to the public account of the blockchain system according to the donation quotation will be automatically transferred to the account of the donor node.

[0198] Sub-step 2: The donation node receives the smart contract and confirms the terms of the smart contract. If it agrees to the terms, it uses its own private key to re-sign the smart contract and broadcast it to the blockchain system, and transfers the default amount in the smart contract to the public account of the blockchain system.

[0199] Sub-step three: Each node in the blockchain receives the smart contract, obtains the public keys of the donor node and the recipient node based on their user IDs in the smart contract, verifies the secondary signatures of the smart contract respectively, and if the verification is successful, obtains the terms of the smart contract and jointly executes the smart contract.

[0200] The joint execution of the smart contract includes: if it is determined that the donation node triggers a default condition, the default amount will be transferred to the account of the donated node, and / or, if it is determined that the donated node triggers, the amount transferred by the donated node to the public account of the blockchain system according to the donation quotation will be transferred to the account of the donation node.

[0201] It should be noted that the receiving node can transfer the amount corresponding to the donation quotation to the public account of the blockchain when sending the smart contract in sub-step one, or it can transfer the amount corresponding to the donation quotation to the public account of the blockchain after receiving the smart contract with a second signature (i.e. confirming that the donating node agrees to the donation) after sub-step two.

[0202] It should be noted that after the donor corresponding to the donation node completes the donation operation and obtains the donation certificate, the donation node needs to send the donation certificate to the donation node, and the donation node will then sign the donation certificate according to its own private key and broadcast it to the blockchain system, so that each node in the blockchain system can determine the waiting time for payment according to the time of receiving the donation certificate. Among them, the donation certificate includes at least one of the bone marrow donation operation record sheet and the stem cell extraction record sheet.

[0203] Those skilled in the art can flexibly adjust the execution order of the above steps, and can split the above steps into more steps, or combine them into fewer steps, and can also delete some of the steps. In addition, the above embodiment 1 and embodiment 2 can be combined with each other, and the present invention does not limit this.

[0204] The bone marrow matching management method provided in this embodiment uses the public key of the operator to encrypt the user's identity information and contact information to obtain the first encrypted information, then sends the first user registration information containing the first encrypted information to the operator node, so that the operator node uses its own private key to decrypt the first encrypted information to obtain the user's identity information and contact information, encrypts the random challenge number string according to the public key of the user node to generate the second encrypted information, and then sends the second encrypted information to the user node in the form of a verification SMS according to the acquired contact information. After receiving the verification SMS, the user node decrypts the second encrypted information according to its own private key to obtain the random challenge number string, and then adds the random challenge number string to the first user registration information to obtain the second user registration information and sends it to the operator node. The operator node decrypts the first user registration information by its own private key to obtain the identity information and contact information, verifies the information to determine that the user node is not a false user, and then verifies the obtained random challenge number string to determine that the data sent to the user node has not been tampered with, and confirms the time of sending and receiving the random challenge number string to ensure the reliability of the random challenge number string at the receiving point, and each step of the transmission between the user node and the operator needs to be encrypted by the public key of one of the two, so as to further ensure that the data has not been tampered with, thereby ensuring the security of bone marrow matching. In addition, the gene locus information of the donor and the recipient is protected and matched after being hashed, and the identity information of the donor is protected, further ensuring the security of bone marrow matching.

[0205] Embodiment 3

[0206] See also Figure 4 , Figure 4 A system architecture diagram of a blockchain system of this embodiment is shown.

[0207] This embodiment provides a blockchain system, which is applied to bone marrow matching management. The blockchain system includes multiple user nodes 01, operator nodes 02, founding nodes 03, and timestamp nodes 04, wherein the user node 01 includes a donation node and a recipient node.

[0208] The user node is used to broadcast the first user registration information corresponding to the user node to the blockchain system, wherein the first user registration information includes: first encrypted information obtained by encrypting the identity information and contact information of the user corresponding to the user node according to the public key of the operator node, the user identifier of the user node, and the public key of the user node;

[0209] The operator node is used to receive and store the first user registration information, and use its own private key to decrypt the first encrypted information to obtain the contact information;

[0210] The operator node is further used to send a verification SMS message carrying second encrypted information to the user node according to the contact information, wherein the second encrypted information is generated by encrypting the random challenge string generated by the operator node according to the public key of the user node in the first user registration information;

[0211] The user node is also used to receive and obtain the second encrypted information in the verification SMS, decrypt the second encrypted information according to its own private key, obtain a random challenge string, add the random challenge string to the first user registration information, obtain the second user registration information, and broadcast the second user registration information to the blockchain system;

[0212] The operator node is also used to receive the second user registration information, use its own private key to decrypt the first encrypted information, obtain the identity information and contact information, and use the data in the operator user database to verify the identity information and contact information. If the verification is successful, the random challenge number string in the second user registration information is verified. If the verification is successful, the saved first user registration information is broadcast to the blockchain system;

[0213] Each node in the blockchain system is used to receive the first user registration information and verify the first user registration information. If the verification is successful, the first user registration information is recorded in the blockchain account book.

[0214] In some examples, the operator node is further configured to look up a telephone number in an operator user database that matches the telephone number in the contact information.

[0215] The operator node is also used to obtain user information associated with the found matching phone number, verify whether the user information is consistent with the identity information, and if so, determine that the identity information and contact information verification is successful.

[0216] In some examples, the operator node is further configured to determine whether the second user registration information is valid based on a comparison result between a time when the second user registration information is received and a preset time threshold.

[0217] If so, verify the consistency of the sent random challenge number string and the received random challenge number string. If the consistency verification passes, determine that the random challenge number string verification passes.

[0218] In some examples, the blockchain system further includes a founding node. In the case where the user node is a donation node, the donation node is used to obtain the public key of the founding node and encrypt its own contact information according to the public key of the founding node to obtain the third encrypted information.

[0219] The donation node is also used to sort the preset number of gene locus information of the corresponding donor according to the preset rules.

[0220] The donation node is also used to generate a donation gene identifier from the sorted preset number of gene site information through hash calculation.

[0221] The donation node is also used to generate donation information based on its own user ID, donation gene ID, and third encrypted information, and broadcast it to the blockchain system.

[0222] Each node in the blockchain system is used to receive donation information and verify it. If the verification is passed, the donation information will be recorded in the blockchain ledger.

[0223] In some examples, the blockchain system also includes a timestamp node. In the case where the user node is a recipient node, the recipient node is used to sort the preset number of gene site information of the corresponding recipient according to a preset rule.

[0224] The recipient node is also used to generate a recipient gene identifier from the preset number of gene site information of the sorted recipients through hash calculation.

[0225] The donated node is also used to synchronize the complete blockchain ledger of the blockchain system and search the blockchain ledger for donation information that matches its own donated gene identifier.

[0226] If so, the recipient node is also used to send a query request containing matching donation information to the founding node.

[0227] The founding node is used to obtain the third encrypted information in the donation information contained in the received query request, and decrypt the third encrypted information according to its own private key to obtain the contact information of the donation node.

[0228] The founding node is also used to send a matching success notification to the donor node through the donor node's contact information.

[0229] Wherein, in case that the donated node sends a query request for the first time, the donated node is also used to send a query request to the timestamp node.

[0230] The timestamp node is used to receive the query request, add the donation information at the first time the query request is received, and send the donation information after the first time is added to the founding node.

[0231] In some examples, the genesis node stores a user identifier and a public key of an operator node of the operator node. The user node is also used to obtain the user identifier and the public key of the operator node stored in the genesis node, and encrypt the identity information and contact information of the user corresponding to the user node according to the public key of the operator node to obtain the first encrypted information.

[0232] The user node is also used to generate a user ID based on identity information through hash calculation.

[0233] The user node is also used to generate first user registration information of the user node according to its own public key, user identification, and first encrypted information.

[0234] In some examples, each node in the blockchain system is used to receive the first user registration information and obtain the user identification therein.

[0235] Each node in the blockchain system is also used to query the blockchain ledger to see if there is a historical user identifier that matches the currently received user identifier.

[0236] If not, it is determined that the verification is successful.

[0237] The blockchain system provided in this embodiment uses the public key of the operator to encrypt the user's identity information and contact information to obtain the first encrypted information, and then sends the first user registration information containing the first encrypted information to the operator node, so that the operator node uses its own private key to decrypt the first encrypted information to obtain the user's identity information and contact information, encrypts the random challenge number string according to the public key of the user node to generate the second encrypted information, and then sends the second encrypted information to the user node in the form of a verification SMS according to the acquired contact information. After receiving the verification SMS, the user node decrypts the second encrypted information according to its own private key to obtain the random challenge number string, and then adds the random challenge number string to the first user registration information to obtain the second user registration information and sends it to the operator node. The operator node decrypts the first user registration information by its own private key to obtain the identity information and contact information, verifies it to determine that the user node is not a false user, and then verifies the obtained random challenge number string to determine that the data sent to the user node has not been tampered with, and each step of the transmission between the user node and the operator needs to be encrypted using the public key of one of the two, so as to further ensure that the data has not been tampered with, thereby ensuring the security of bone marrow matching.

[0238] Embodiment 4:

[0239] The present invention provides an electronic device, comprising:

[0240] At least one processor. And

[0241] A memory in communication with at least one processor.

[0242] The memory stores instructions that can be executed by at least one processor, and the instructions are executed by at least one processor so that the at least one processor can execute the above-mentioned bone marrow matching management method.

[0243] In the technical solution disclosed herein, the acquisition, storage and application of user personal information involved are in compliance with the provisions of relevant laws and regulations and do not violate public order and good morals.

[0244] See also Figure 5 , Figure 5 A schematic block diagram of an example electronic device 800 that can be used to implement an embodiment of the present disclosure is shown. The electronic device is intended to represent various forms of digital computers, such as laptop computers, desktop computers, workstations, personal digital assistants, servers, blade servers, mainframe computers, and other suitable computers. The electronic device can also represent various forms of mobile devices, such as personal digital processing, cellular phones, smart phones, wearable devices, and other similar computing devices. The components shown herein, their connections and relationships, and their functions are merely examples and are not intended to limit the implementation of the present disclosure described and / or required herein.

[0245] like Figure 5 As shown, the device 800 includes a computing unit 801, which can perform various appropriate actions and processes according to a computer program stored in a read-only memory (ROM) 802 or a computer program loaded from a storage unit 808 into a random access memory (RAM) 803. In the RAM 803, various programs and data required for the operation of the device 800 can also be stored. The computing unit 801, the ROM 802, and the RAM 803 are connected to each other via a bus 804. An input / output (I / O) interface 805 is also connected to the bus 804.

[0246] A number of components in the device 800 are connected to the I / O interface 805, including: an input unit 806, such as a keyboard, a mouse, etc. An output unit 807, such as various types of displays, speakers, etc. A storage unit 808, such as a disk, an optical disk, etc. And a communication unit 809, such as a network card, a modem, a wireless communication transceiver, etc. The communication unit 809 allows the device 800 to exchange information / data with other devices through a computer network such as the Internet and / or various telecommunication networks.

[0247] The computing unit 801 may be a variety of general and / or special processing components with processing and computing capabilities. Some examples of the computing unit 801 include, but are not limited to, a central processing unit (CPU), a graphics processing unit (GPU), various dedicated artificial intelligence (AI) computing chips, various computing units running machine learning model algorithms, digital signal processors (DSPs), and any appropriate processors, controllers, microcontrollers, etc. The computing unit 801 performs the various methods and processes described above, such as a bone marrow matching management method. For example, in some embodiments, the bone marrow matching management method may be implemented as a computer software program, which is tangibly contained in a machine-readable medium, such as a storage unit 808. In some embodiments, part or all of the computer program may be loaded and / or installed on the device 800 via ROM 802 and / or a communication unit 809. When the computer program is loaded into RAM 803 and executed by the computing unit 801, one or more steps of the bone marrow matching management method described above may be performed. Alternatively, in other embodiments, the computing unit 801 may be configured to perform the bone marrow matching management method in any other appropriate manner (e.g., by means of firmware).

[0248] Various implementations of the systems and techniques described above herein can be implemented in digital electronic circuit systems, integrated circuit systems, field programmable gate arrays (FPGAs), application specific integrated circuits (ASICs), application specific standard products (ASSPs), systems on chips (SOCs), load programmable logic devices (CPLDs), computer hardware, firmware, software, and / or combinations thereof. These various implementations can include: being implemented in one or more computer programs that can be executed and / or interpreted on a programmable system including at least one programmable processor, which can be a special purpose or general purpose programmable processor that can receive data and instructions from a storage system, at least one input device, and at least one output device, and transmit data and instructions to the storage system, the at least one input device, and the at least one output device.

[0249] The program code for implementing the method of the present disclosure may be written in any combination of one or more programming languages. These program codes may be provided to a processor or controller of a general-purpose computer, a special-purpose computer, or other programmable data processing device, so that the program code, when executed by the processor or controller, enables the functions / operations specified in the flow chart and / or block diagram to be implemented. The program code may be executed entirely on the machine, partially on the machine, partially on the machine and partially on a remote machine as a stand-alone software package, or entirely on a remote machine or server.

[0250] Embodiment 5

[0251] The present invention provides a non-transitory computer-readable storage medium storing computer instructions, wherein the computer instructions are used to enable a computer to execute the above method.

[0252] In the context of the present disclosure, a machine-readable medium may be a tangible medium that may contain or store a program for use by or in conjunction with an instruction execution system, device, or equipment. A machine-readable medium may be a machine-readable signal medium or a machine-readable storage medium. A machine-readable medium may include, but is not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, device, or equipment, or any suitable combination of the foregoing. A more specific example of a machine-readable storage medium may include an electrical connection based on one or more lines, a portable computer disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), an optical fiber, a portable compact disk read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing.

[0253] To provide interaction with a user, the systems and techniques described herein may be implemented on a computer having: a display device (e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor) for displaying information to the user. As well as a keyboard and a pointing device (e.g., a mouse or trackball) through which the user can provide input to the computer. Other types of devices may also be used to provide interaction with the user. For example, the feedback provided to the user may be any form of sensory feedback (e.g., visual feedback, auditory feedback, or tactile feedback). And input from the user may be received in any form (including acoustic input, voice input, or tactile input).

[0254] The systems and techniques described herein may be implemented in a computing system that includes back-end components (e.g., as a data server), or a computing system that includes middleware components (e.g., an application server), or a computing system that includes front-end components (e.g., a user computer with a graphical user interface or a web browser through which a user can interact with implementations of the systems and techniques described herein), or a computing system that includes any combination of such back-end components, middleware components, or front-end components. The components of the system may be interconnected by any form or medium of digital data communication (e.g., a communication network). Examples of communication networks include: a local area network (LAN), a wide area network (WAN), and the Internet.

[0255] A computer system may include a client and a server. The client and the server are generally remote from each other and usually interact through a communication network. The relationship of client and server is generated by computer programs running on respective computers and having a client-server relationship with each other. The server may be a cloud server, a server of a distributed system, or a server combined with a blockchain.

[0256] It should be understood that the various forms of processes shown above can be used to reorder, add or delete steps. For example, the steps recorded in this disclosure can be executed in parallel, sequentially or in different orders, as long as the desired results of the technical solutions disclosed in this disclosure can be achieved, and this document does not limit this.

[0257] It is to be understood that the above embodiments are merely exemplary embodiments used to illustrate the principles of the present invention, but the present invention is not limited thereto. For those of ordinary skill in the art, various modifications and improvements can be made without departing from the spirit and essence of the present invention, and these modifications and improvements are also considered to be within the scope of protection of the present invention.

Claims

1. A bone marrow matching management method, characterized in that: The method is used in a blockchain system, the blockchain system includes a plurality of user nodes and an operator node, wherein the user node includes a donation node and a donation recipient node; the method includes: The user node broadcasts first user registration information corresponding to the user node to the blockchain system, wherein the first user registration information includes: first encrypted information obtained by encrypting identity information and contact information of the user corresponding to the user node according to the public key of the operator node, the user identifier of the user node, and the public key of the user node; The operator node receives and stores the first user registration information, and uses its own private key to decrypt the first encrypted information to obtain the contact information; The operator node sends a verification SMS message carrying second encrypted information to the user node according to the contact information, wherein the second encrypted information is generated by encrypting a random challenge string generated by the operator node according to the public key of the user node in the first user registration information; The user node receives and obtains the second encrypted information in the verification SMS, decrypts the second encrypted information according to its own private key, obtains the random challenge number string, adds the random challenge number string to the first user registration information, obtains the second user registration information, and broadcasts the second user registration information to the blockchain system; The operator node receives the second user registration information, decrypts the first encrypted information using its own private key, obtains the identity information and the contact information, and verifies the identity information and the contact information using the data in the operator user database. If the verification is successful, the random challenge number string in the second user registration information is verified. If the verification is successful, the saved first user registration information is broadcast to the blockchain system; Each node in the blockchain system receives the first user registration information and verifies the first user registration information. If the verification is successful, the first user registration information is recorded in the blockchain account book.

2. The method according to claim 1, characterized in that The verifying the identity information and the contact information by using the data in the operator user database includes: The operator node searches the operator user database for a telephone number that matches the telephone number in the contact information; The operator node obtains user information associated with the found matching telephone number, verifies whether the user information is consistent with the identity information, and if so, determines that the identity information and the contact information are verified.

3. The method according to claim 1, characterized in that The verifying the random challenge string in the second user registration information includes: The operator node determines whether the second user registration information is valid according to a comparison result of the time when the second user registration information is received and a preset time threshold; If so, verify the consistency of the sent random challenge number string and the received random challenge number string. If the consistency verification passes, determine that the random challenge number string verification passes.

4. The method according to any one of claims 1 to 3, characterized in that: The blockchain system also includes a founding node; in the case where the user node is a donation node, if the verification is passed, after the first user registration information is recorded in the blockchain account book, the method includes: The donation node obtains the public key of the founding node, and encrypts its own contact information according to the public key of the founding node to obtain third encrypted information; The donation node sorts the preset number of gene loci information of the corresponding donor according to the preset rules; The donation node generates a donation gene identifier from the sorted preset number of gene site information through hash calculation; The donation node generates donation information according to its own user identifier, the donation gene identifier, and the third encrypted information, and broadcasts it to the blockchain system; Each node in the blockchain system receives the donation information and verifies the donation information. If the verification is successful, the donation information is recorded in the blockchain account book.

5. The method according to claim 4, characterized in that The blockchain system further includes a timestamp node; in the case where the user node is a donated node, if the verification is passed, after the first user registration information is recorded in the blockchain account book, the method includes: The recipient node sorts the preset number of gene loci information of the corresponding recipient according to the preset rules; The recipient node generates a recipient gene identifier from the sorted preset number of gene site information of the recipient through hash calculation; The donated node synchronizes the complete blockchain account book of the blockchain system, and searches the blockchain account book for the donation information that matches the donated gene identifier of the node; If so, the donated node sends a query request containing the matching donation information to the originating node; The founding node obtains the third encrypted information in the donation information contained in the received query request, and decrypts the third encrypted information according to its own private key to obtain the contact information of the donation node; The founding node sends a matching success notification to the donor node through the contact information of the donor node; Wherein, in the case where the donated node sends the query request for the first time, the donated node sends the query request containing the matching donation information to the founding node, including: The donated node sends the query request to the timestamp node; The timestamp node receives the query request, adds the first time of receiving the query request to the donation information, and sends the donation information after adding the first time to the founding node.

6. The method according to any one of claims 1 to 3, characterized in that: The blockchain system also includes a founding node, which stores a user identifier and a public key of the operator node; Before the user node broadcasts the first user registration information corresponding to the user node to the blockchain system, the method includes: The user node obtains the user identifier and the public key of the operator node stored in the genesis node, and encrypts the identity information and contact information of the user corresponding to the user node according to the public key of the operator node to obtain the first encrypted information; The user node generates the user identifier according to the identity information through hash calculation; The user node generates first user registration information of the user node according to its own public key, the user identification, and the first encrypted information.

7. The method according to any one of claims 1 to 3, characterized in that: Each node in the blockchain system receives the first user registration information, and verifies the first user registration information, including: Each node in the blockchain system receives the first user registration information and obtains the user identifier therein; Each node in the blockchain system queries the blockchain account book to see whether there is a historical user identifier that matches the currently received user identifier; If not, it is determined that the verification is successful.

8. A blockchain system, characterized in that: The blockchain system is applied to bone marrow matching management, and the blockchain system includes multiple user nodes and operator nodes, wherein the user nodes include donor nodes and recipient nodes; wherein, The user node is used to broadcast first user registration information corresponding to the user node to the blockchain system, wherein the first user registration information includes: first encrypted information obtained by encrypting identity information and contact information of the user corresponding to the user node according to the public key of the operator node, the user identifier of the user node, and the public key of the user node; The operator node is used to receive and store the first user registration information, and use its own private key to decrypt the first encrypted information to obtain the contact information; The operator node is further configured to send a verification SMS message carrying second encrypted information to the user node according to the contact information, wherein the second encrypted information is generated by encrypting a random challenge string generated by the operator node according to the public key of the user node in the first user registration information; The user node is further configured to receive and obtain the second encrypted information in the verification SMS, decrypt the second encrypted information according to its own private key, obtain the random challenge number string, add the random challenge number string to the first user registration information, obtain the second user registration information, and broadcast the second user registration information to the blockchain system; The operator node is further used to receive the second user registration information, decrypt the first encrypted information using its own private key, obtain the identity information and the contact information, and verify the identity information and the contact information using the data in the operator user database. If the verification is successful, verify the random challenge number string in the second user registration information. If the verification is successful, broadcast the saved first user registration information to the blockchain system; Each node in the blockchain system is used to receive the first user registration information and verify the first user registration information. If the verification is successful, the first user registration information is recorded in the blockchain account book.

9. An electronic device, comprising: at least one processor; as well as a memory communicatively connected to the at least one processor; wherein, The memory stores instructions that can be executed by the at least one processor, and the instructions are executed by the at least one processor to enable the at least one processor to perform the method according to any one of claims 1 to 7.

10. A non-transitory computer-readable storage medium storing computer instructions, wherein: The computer instructions are used to make a computer execute the method according to any one of claims 1 to 7.