Data sharing method based on multiple blockchains
By building a data sharing platform using blockchain technology, the security and reliability issues in individual data sharing are solved, enabling secure and transparent data transactions and management, and promoting the development of precision medicine.
Patent Information
- Application Number
- CN201811533720.9
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2018-03-28
- Filing Date
- 2018-12-14
- Publication Date
- 2025-01-14
- Estimated Expiration
- 2038-12-14
AI Technical Summary
Existing technologies make it difficult to securely share and manage individual personal data, posing security risks such as hacking and manipulation of idle resources, and making it difficult to effectively collect and verify the reliability of transaction records.
A data sharing platform is built using blockchain technology. Through user registration, data storage, metadata management, and points trading, it enables secure data sharing and management, ensures the transparency and flexibility of transactions, solves the security problems of data hacking and manipulation, and provides a verification-based data trading system.
It has created a win-win economic system for individuals and data users, improved data accessibility and management efficiency, ensured data security and reliability, reduced costs and time consumption, and promoted the development of precision medicine.
Smart Images

Figure CN110322240B_ABST
Abstract
Description
[0001] CROSS-REFERENCE TO RELATED APPLICATIONS
[0002] This application claims the benefit under 35 USC 119(a) of Korean Patent Application No. 10-2018-0035570 filed in the Korean Intellectual Property Office on Mar. 28, 2018, the disclosure of which is incorporated herein by reference in its entirety for all purposes. Technical Field
[0003] The following description relates to a data sharing method based on multiple blockchains. The following description relates to a platform for data transaction relay and data sharing based on the sharing economy, and more specifically, to a method for sharing data owned by individuals between subjects of a transaction, which is used to integrate management as a transaction relay platform between data providers and data users. Background Art
[0004] Digital information is increasing as existing information and communication technologies combine with the recent paradigm shift from owning to sharing. For example, the sharing economy is spreading with the booming of peer-to-peer (P2P) transactions, which are interpersonal transactions for collaborative consumption.
[0005] The sharing economy is an economic model based on cooperative consumption, in which idle resources are not owned by individuals, but shared among multiple trading entities. The sharing economy is a transaction relay system between resource providers and resource users. On the sharing economy platform, users pay resource usage fees and use as many resources as needed, and resource providers receive rewards for the idle resources he or she provides. In addition, the platform that relays the transaction receives a commission. Summary of the invention
[0006] This Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used as an aid in determining the scope of the claimed subject matter.
[0007] When blockchain technology is applied to this sharing economy, all participants can securely register, maintain and share idle resources together, solve security issues such as hacker attacks and manipulation of idle resources, and ensure the reliability of transaction records through verification.
[0008] Data can be composed of various types of information. For example, data may include specific genomic information, treatment information, and life information of various organisms (including humans). Since the probability of disease can be estimated from human data, customized precision medicine can be implemented to provide the most appropriate treatment for each patient. Among the various types of data related to precision medicine, it may be difficult to collect genomic information and treatment information for a specific group due to various loopholes in rules and systems, high costs, time consumption, etc. In addition, life information is a record of a unique life, such as a lifestyle and environment that varies according to an individual, and it may be difficult to collect life information unless an individual provides their information. Since the personal data of an individual can be de-identified and then securely shared, these problems can be solved by an integrated data management platform based on blockchain, and researchers and research institutions using personal data can obtain reliable data on the integrated data management platform based on blockchain.
[0009] In other words, individuals are rewarded for providing and lending their personal information and personal data as their idle resources, and data users obtain necessary data by paying for the use of necessary data, thereby establishing a win-win economic system. When researchers and institutions develop customized medical treatments and procedures through various research results based on these idle resources, new medical sciences can be developed, and as medical costs are reduced, social burdens can be reduced. Therefore, high added value can be created by enhancing public medical care.
[0010] The following embodiments may accelerate data sharing and use by applying blockchain technology to platforms based on the sharing economy, and may improve user data accessibility and management efficiency by promoting the use of public domain software sources. In addition, the following embodiments may ensure security, reliability, and timeliness through a systematic security system that is able to transparently and flexibly respond to the risk of hacker attacks, the increase in data volume, and enable sharing when managing big data as a large amount of integrated data. In addition, the following embodiments may enable the construction of an economic incentive system based on rewards and royalties, so that user participation may increase and a reduction in cost and time may be expected.
[0011] The following embodiments introduce blockchain technology to securely register, maintain and share data as idle resources shared among all participants, solve security issues of data hacking and manipulation, and provide a verification-based data transaction system and method.
[0012] The following embodiments provide a data sharing transaction system and method, in which individuals are rewarded for providing and lending data as their idle resources, and data users obtain necessary data by paying usage fees for necessary data, so that both individuals and data users can benefit from the system and method.
[0013] The following embodiments provide a blockchain system and method, wherein functions are implemented through blockchain so that data owners can store and register data as idle resources in a shared storage server, or delete data in the shared storage server personally or through an organization.
[0014] The following embodiments provide an integrated management system and method for blockchain-based shared data, wherein a borrower can search the shared data to obtain necessary data and receive the necessary data from a storage.
[0015] According to an embodiment of the present disclosure, an integrated management method for data sharing is provided, the method comprising: a) inputting basic information through users (including data owners / providers and data borrowers / users) and registering the basic information in a personal information blockchain; b) storing personal data in a data storage server through data providers, and registering and deleting personal data in data information and data blockchain; c) searching the data storage server through data users to obtain necessary personal data of providers; d) paying usage fees for necessary personal data of providers through data users, and receiving corresponding data from the data storage server; e) delivering usage fees for shared genomic / medical information data to data providers.
[0016] Operation a) may include: receiving identification information of a user, such as name, date of birth, and email address, as basic information, and registering the basic information in a user information blockchain; performing user authentication through the user information blockchain; and creating a virtual account through which usage fees can be deposited and withdrawn.
[0017] Operation b) may include: registering the metadata of the data in the metadata blockchain by the data provider; personally transmitting the data to the data storage server by the data provider; and deleting personal data and information by the data provider. At the same time, b) may include requesting the data production company to transmit the data to the storage server by the data provider.
[0018] Operation c) may include searching the metadata blockchain by a data user to obtain meta information of necessary data.
[0019] Operation d) may include: converting data usage fees into virtual currency (e.g., points, membership miles, or actual cash) by a data user; registering the virtual currency in a virtual account through an information and data blockchain; and requesting necessary data from a data storage server by a data user and receiving the necessary data.
[0020] Operation e) may include: transmitting virtual currency to a virtual account registered in the genome / medical information data blockchain, and converting the received virtual currency into a usage fee for the data. BRIEF DESCRIPTION OF THE DRAWINGS
[0021] Figure 1 shows an example of a data sharing model;
[0022] Figure 2 An example of a data sharing system is shown;
[0023] Figure 3 An example of a flow chart illustrating a data sharing process;
[0024] Figure 4 An example of a sequence diagram showing a user information registration and authentication process;
[0025] Figure 5 An example of a sequence diagram showing a points transaction process;
[0026] Figure 6 An example of a sequence diagram illustrating a process of managing metadata for data;
[0027] Figure 7 An example of a sequence diagram showing the data storage and deletion process;
[0028] Figure 8 An example of a sequence diagram showing a data search and transfer process;
[0029] Fig. 9 An example of a sequence diagram illustrating a process of identifying data based on metadata;
[0030] Fig.10 An example of a sequence diagram showing a data sharing process including an encryption process; and
[0031] Fig.11 Another example of a sequence diagram of a data sharing process including an encryption process is shown.
[0032] Throughout the drawings and detailed description, unless otherwise described, the same reference numerals will be understood to refer to the same elements, features, and structures. The drawings may not be drawn to scale, and the relative sizes, proportions, and depictions of elements in the drawings may be exaggerated for clarity, illustration, and convenience. DETAILED DESCRIPTION
[0033] The techniques described below are related to data provision or sharing services. Although bioinformatics data is described below, the techniques below are applicable to a variety of data provision services regardless of the data type.
[0034] Terms used in the following description will be described.
[0035] Genomic data refers to data obtained from a sample (sample) and an organism (human, animal, microorganism, etc.) of a specific user. For example, genomic data may include base sequences obtained from deoxyribonucleic acid (DNA), ribonucleic acid (RNA), proteins, etc. of a cell, a piece of tissue, etc., gene expression data, genetic variation of standard genomic data, deoxyribonucleic acid (DNA) methylation, etc. Typically, genomic data includes sequence information obtained by analyzing a specific sample. Genomic data can generally be represented as digital data. This corresponds to sequence data obtained by a next-generation sequencing (NGS) analysis instrument, etc.
[0036] Genomic analysis data or simply analysis data refers to information obtained by analyzing genomic data. For example, analysis data includes diagnosis results, disease prediction results, disease risks, paternity test results, means of curing diseases, candidate materials for new drugs, etc. obtained by analyzing genomic data.
[0037] Medical data refers to data that can be used to determine the health status of a specific user (e.g., a patient). For example, the medical data may include electronic medical record (EMR) data of a hospital. In other words, the medical data may include examination results (clinical information) of a medical instrument, diagnosis results of a medical staff, etc. In addition, for example, the medical data may include medical image data measured or captured by a medical instrument, etc. In addition, for example, the medical data may include bio-signal data acquired by a mobile terminal (e.g., a healthcare device) capable of measuring bio-signals.
[0038] Hereinafter, data refers to a digital source including various pieces of information, regardless of the data format or type. Data may include personal information, information generated by an individual, information obtained by analyzing personal data, individual test data, etc. For example, data may include at least one of the above-mentioned genomic data, analytical data, and medical data. Data may be generated by each object (person, company, institute, school, hospital, etc.) as a biological or social subject.
[0039] Metadata can be identification data derived from the process of data generation or manipulation. Metadata corresponds to data used to identify or otherwise describe data. Metadata can be a reference for searching for specific data. For example, metadata can include genomic data format, production method for genomic data, sequencing machine information, sample information, definitions in molecular biotechnology, production, results and statistics on data quality analysis, production date, etc. For example, metadata can include the generation date of medical data, generation agency, patient information (identification code, etc.), disease information, inspection technology, type of inspection instrument, data format, etc.
[0040] A provider refers to a user who generates or processes data and provides data. A provider can be a user who provides data so that the data can be shared. A provider can provide data generated by him or her personally or by others.
[0041] Recipients refer to users who receive data shared by providers. Recipients can use the data for research, analysis, etc.
[0042] A user includes a specific subject such as an individual or an organization. A user terminal or terminal can be a computing device and represents a client device used by a user. In the system, a user can be designated as a user terminal.
[0043] The computing device refers to a device that analyzes input source data using a computing unit such as a central processing unit (CPU), an application processor (AP), etc. The computing device generally includes a computing unit, a memory, an input-output unit, a communication interface unit, etc. The computing device can be implemented as a server, a personal computer (PC), a tablet PC, a smart phone, etc.
[0044] A hash key may be a value used to identify a user in a blockchain network. A hash key may be generated in various ways. Representative hash key generation algorithms are MD5, SHA-256, etc. A hash key may be a unique value for a specific user. A hash key may be a key consisting of a variable length string.
[0045] Public keys and encryption keys are keys used to encrypt and transmit data in a blockchain network. Public keys and encryption keys are used for encryption known as public key cryptography. A public key can be a key used to encrypt data, and an encryption key can be a key used to decrypt data. Public keys and encryption keys can be paired with each other and can be randomly generated using various public key cryptography methods (e.g., Rivest-Shamir-Adleman (RSA), elliptic curve cryptography, etc.).
[0046] Blockchain refers to a distributed data storage environment based on chain links, in which small data segments called "blocks" are generated from the data to be managed in a peer-to-peer (P2P) manner. Blockchain network refers to the network components that constitute the blockchain.
[0047] Figure 1 An example of a data sharing model is shown. Figure 1 There are shown a user terminal 10 used by provider A, a user terminal 20 used by recipient B, a management server 30, and a blockchain set 40. For ease of description, the user terminal used by provider A and the user terminal used by recipient B will be referred to as a first terminal 10 and a second terminal 20, respectively.
[0048] Data may be input to the first terminal 10. In addition, the first terminal 10 may generate data. In addition, the first terminal 10 may receive data from another object. The first terminal 10 transmits the data to the management server 30.
[0049] The management server 30 manages the entire process for data sharing. The management server 30 may be managed by a service provider of the data sharing service. It can be seen that the management server 30 and the blockchain set 40 constitute a system for data sharing.
[0050] Data sharing can be performed through blockchain. Data sharing adopts multiple blockchains (blockchain sets). The respective blockchains of the blockchain set can be associated with different processes or functions for data sharing. The blockchain set 40 includes a user information blockchain, a points information blockchain, a metadata blockchain, and a data storage blockchain. Their details will be described below.
[0051] The management server 30 registers information about the user in the user information blockchain in advance. The management server 30 can use the user information blockchain to authenticate a specific user. The management server 30 registers metadata of the data received from the first terminal 10 in the metadata blockchain. The management server 30 builds a data storage blockchain by storing the data received from the first terminal 10 in the storage server. In addition, the management server 30 manages the user's point information (generation, use, transfer, discard, etc. of points) using the point information blockchain.
[0052] The management server 30 receives a data request from the second terminal 20. The management server 30 may query the requested data using metadata. In some cases, the management server 30 may query the data stored in the storage server. When the requested data exists, the management server 30 transmits the storage information of the corresponding data to the second terminal 20. Subsequently, the second terminal 20 may receive data from the storage server using the storage information.
[0053] The blockchain network has roughly two types of components. One element can be a blockchain node, and the other element can be a client. From the user's perspective, the node of the blockchain is used as the backend for ordinary business, and the client of the blockchain is used as the client. When the client generates a new transaction, the node shares the transaction through a distributed consensus process and executes the transaction. The client can see the result of the transaction. Figure 1 In FIG. 1 , user terminal 10 and user terminal 20 correspond to clients. Figure 1 In the blockchain, a blockchain node corresponds to a node connected to the network.
[0054] Figure 2An example of a data sharing system 100 is shown. The data sharing system 100 includes a management server 110 and a plurality of blockchains 120, 130, 140, and 150. The management server 110 corresponds to Figure 1 management server 30.
[0055] The user terminal includes a first terminal 10 on the provider side and a second terminal 20 on the receiver side.
[0056] Figure 2 A total of four blockchains are shown, blockchain 120 to blockchain 150. A blockchain may be composed of multiple blockchain nodes. Four blockchains are described below. In some cases, the system may also include blockchains for additional items, which will be described below.
[0057] The user information blockchain 120 has user information. The user information blockchain 120 stores hash keys for users and user information. For example, the user information may include the user's identification code, identity (ID), contact information, email address, name, gender, organization, date of birth, etc. The user information blockchain 120 may have user information encrypted using a public key.
[0058] The points information blockchain 130 has points information. Points can be incentives for data sharing. In addition, points correspond to data usage fees. In addition, points can also be commissions for data brokers. Points can be virtual currencies based on blockchains. Alternatively, points can be unique currencies (cyber money, cash, mileage, etc.) of non-blockchain-based sharing services. Points can be converted into currencies used in the real world through a separate system or service. The points information blockchain 130 has information on remaining points of individual users, details of point transactions, etc.
[0059] The metadata blockchain 140 has metadata of the data. The metadata blockchain 140 may have metadata encrypted using a specific public key.
[0060] The data storage blockchain 150 has storage information of data stored in the storage server. The storage information may include an identifier of the storage server, a file name, a location where the data is stored in the storage medium of the storage server, a file size, file segmentation information, a verification key, etc.
[0061] The storage server 155 stores data. The storage server 155 may be a single server. Alternatively, Figure 2As shown in , the storage server 155 may include n servers, storage server 1, ..., and storage server n. When there are multiple storage servers, data can be stored in a distributed manner. In addition, when there are multiple storage servers, one server (primary storage server) can store the generated data as is, and other servers (secondary storage servers) can store data in a distributed (separate) manner. When multiple servers are used, multiple storage servers or multiple secondary storage servers can be nodes constituting a blockchain, so that multiple storage servers can constitute a blockchain. The data storage blockchain 150 has storage information for the entire retained data.
[0062] The management server 110 stores user information, point transaction information, metadata, and data in the blockchain network. The management server 110 is used to transmit the data to the second terminal 20 that requests the data.
[0063] The management server 110 may have a user management function. In other words, the management server 110 may receive information about a user and store the information in the user information blockchain network, and perform user authentication based on the stored user information.
[0064] The management server 110 may have a points management function. In other words, the management server 110 may store and query details of user points purchase or sale, details of point transactions accompanying transactions between users, and remaining points of users through the blockchain network.
[0065] The management server 110 may have a metadata management function. The management server 110 stores metadata received from a data provider in the blockchain network. The management server 110 may search for data based on the metadata and create a data group corresponding to the search result.
[0066] The management server 110 may have a data storage management function. The management server 110 may receive data from a provider, store the received data in the storage server 155, and transmit a group created by collecting the data to a recipient.
[0067] Figure 3 An example of a flow diagram of a data sharing process 200 is shown. Figure 3 Schematic process of data sharing is shown. The user (provider and receiver) performs user registration in advance (210). The management server 110 registers the user information and the hash key in the user information blockchain. After the user registration, the management server 110 may authenticate the user who performs or requests the data providing process, the data sharing process, the points transaction process, etc. before starting the corresponding process. The management server 110 may perform user authentication using the user information blockchain.
[0068] The provider provides data to the management server 110, and the management server 110 builds the data storage blockchain 150 while storing the data in the storage server 155 (220). Figure 3 Although not shown, the management server 110 may register metadata of the data in the metadata blockchain 140.
[0069] The receiver requests necessary data to the management server 110. The management server 110 searches for the requested data (230). The management server 110 may search for data using metadata.
[0070] Before providing the data to the recipient, the management server 110 processes the points associated with the data usage (240). The management server 110 registers the details of the point transaction (point change, point transfer, point purchase, etc.) in the point information blockchain 130. For example, the recipient's points can be transferred to the provider through this process.
[0071] Finally, the management server 110 provides the storage information of the requested data to the recipient. The recipient can use the storage information to receive data from the storage server 155. The management server 110 will transmit (share) the requested data to the recipient by providing the storage information of the requested data (250).
[0072] At the same time, data used in the process of user information registration, data storage, metadata registration, points transaction, etc. can be encrypted using the public key method.
[0073] Figure 4 An example of a sequence diagram of the user information registration and authentication process 300 is shown. Figure 4 Both the user registration process and the user authentication process are shown.
[0074] Next, the user registration process is described. Figure 4 In FIG. 1 , the user terminal refers to the first terminal 10 and / or the second terminal 20. The provider or the receiver may be required to perform user registration in advance in order to provide or request data.
[0075] The user information PI may be input to the user terminal 10 / 20 (301). The user terminal 10 / 20 may transmit the user information PI to the management server 110 (302).
[0076] The management server 110 may generate a hash key. The management server 110 uses the user information PI to generate a hash key H for the user who requested the generation of the hash key. k (311). Hash key H k It is used as the identification code of the user (terminal) who currently requests to generate the hash key. kThe management server 110 generates a hash key H by inputting the input user information PI into a certain hash function. k The algorithm or hash function used to generate the hash key may be varied.
[0077] The management server 110 may encrypt the received user information PI (to generate PI') (312). The management server 110 may encrypt the user information using the public key received from the user terminal 10 / 20. At the same time, the user terminal 10 / 20 may transmit the user information PI' encrypted using the public key to the management server 110.
[0078] The management server 110 generates the hash key H k The user terminal 10 / 20 (321) that requested the hash key. The user terminal 10 / 20 passes the hash key H k Stored in a storage medium (322).
[0079] The management server 110 will include the hash key H k The user block data of the encrypted user information PI' is transmitted to the user information blockchain 120 (331). The user information blockchain 120 registers the received hash key H k and encrypted user information PI' (332). Here, the management server 110 may additionally transmit the public key used for encryption to the user information blockchain 120. In this case, the user information blockchain 120 may additionally register the public key. The above operations 301 to 332 correspond to the user information registration process.
[0080] Next, the user authentication process is described. A specific operation or each operation of the data sharing service may require user authentication. Only authenticated users are allowed to proceed with subsequent operations.
[0081] For authentication, the user information PI may be input to the user terminal 10 / 20 (351). The user terminal 10 / 20 converts the user information PI or its stored hash key H k The management server 110 may generate encrypted user information PI' by encrypting the received user information using the public key. The management server 110 uses the received user information PI (or PI') or the hash key H k The management server 110 uses the received information to query the user information transmitted to the user information blockchain 120. The management server 110 uses the obtained user information or hash key H k Transmit to the user information blockchain 120 (362).
[0082] The user information blockchain 120 may identify the user information based on the received information (371). For example, the user information blockchain 120 may identify the user information based on the hash key H k The user information blockchain 120 transmits the identified user information to the management server 110 (372).
[0083] The management server 110 may perform user authentication by comparing the user information PI' received from the user information blockchain 120 with the user information PI' received from the user terminal 10 / 20. In addition, the management server 110 may generate an authentication token (381). Here, the management server 110 may encrypt the authentication token using a public key. The management server 110 transmits the user authentication token to the user terminal 10 / 20 (382).
[0084] The user terminal 10 / 20 stores the user authentication token (383). The user terminal 10 / 20 may decrypt the encrypted user authentication token and store the decrypted user authentication token. Subsequently, the user terminal 10 / 20 may use the authentication token in the process of communicating with the management server 110. The management server 110 requiring authentication may only provide specific data to the user terminal that passes a valid authentication token.
[0085] During the user registration process, a virtual account creation operation may be performed for an individual user. Virtual account creation involves the operation of creating a user's account (wallet) in the points information blockchain 130. Virtual account creation may adopt the methods commonly used in blockchain-based virtual currency services. Figure 5 The description is based on the scenario that a specific user virtual account has been created.
[0086] Figure 5 An example of a sequence diagram of the points transaction process 400 is shown. Figure 5 An example of a process for processing and managing user points is shown.
[0087] User point transaction information may be input into the user terminal 10 / 20 (401). The point transaction information may include information required for the point transaction. For example, the point transaction information includes counterparty information (user information or hash key), purchased point information, information about point deposits and withdrawals, remaining point information, transaction volume information, etc. The user terminal 10 / 20 may transmit the point transaction information to the management server 110 (411). The user terminal 10 / 20 may encrypt the point transaction information using a public key and transmit the encrypted information.
[0088] The management server 110 may authenticate the user who has transmitted the points transaction information (420). Subsequent processes may be continued only for the authenticated user. The management server 110 may authenticate the user using the authentication token received from the user terminal 10 / 20. Figure 4 Authentication tokens are described.
[0089] The management server 110 may query the details of the requested points transaction (421). For example, the management server 110 may query a specific block corresponding to the ledger where the transaction details have been recorded. The management server 110 transmits the points transaction information to the confirmed points information blockchain 130 (422).
[0090] The points information blockchain 130 queries information about points transactions and registers the requested transaction information (431). For example, the points information blockchain 130 may reduce points from a ledger of a specific user (recipient) and add points to a ledger of another user (provider). The points information blockchain 130 records information related to transaction details in a block. Then, the points information blockchain 130 transmits the changed points transaction information to the management server 110 (432).
[0091] The management server 110 may verify whether the transaction information received from the points information blockchain 130 and the transaction information received from the user terminal 10 / 20 are consistent with each other (441). When the verification is successful, the management server 110 transmits the changed points transaction information to the user terminal 10 / 20 (442). The user terminal 10 / 20 stores the changed user points transaction information (451).
[0092] Figure 6 An example of a sequence diagram illustrating a process 500 of managing metadata for data. Figure 6 Includes the process of registering metadata and the process of deleting metadata.
[0093] First, the process of registering metadata is described. Data may be input to the first terminal 10 (511). Alternatively, metadata of the data may be input to the user terminal 10 / 20. The first terminal 10 transmits the input or acquired data or metadata to the management server 110 (512).
[0094] The management server 110 may authenticate the user who has transmitted the data or metadata (520). Subsequent processes may be continued only for the authenticated user. The management server 110 may authenticate the user using the authentication token received from the user terminal 10 / 20. Figure 4 Authentication tokens are described.
[0095] When receiving the data, the management server 110 may identify metadata from the data (521). When receiving the data, the management server 110 may also verify whether the data conforms to a predetermined format or standard. Alternatively, the management server 110 may use a specific verification key to verify the data. The verification key represents information for verifying an electronic signature. In this case, the data is required to include an electronic signature in advance. The provider transmits the data including the electronic signature.
[0096] The data may include information about metadata in a specific format. In this case, the management server 110 may extract the metadata from the data. When the management server 110 receives the metadata directly from the first terminal 10, no identification process is required. The management server 110 transmits the metadata to the metadata blockchain 140 (522). The metadata blockchain 140 registers the metadata associated with the data as block data (531). When the recipient requests the data, the metadata registered in the metadata blockchain 140 can be used to determine whether the requested data exists.
[0097] The process of deleting metadata is described. The first terminal 10 requests to delete metadata (551). The first terminal 10 transmits a metadata deletion message to the management server 110 (552). The deletion message may include an identifier of the data, an identifier of the metadata to be deleted, an integral of the metadata generation time, etc. Alternatively, the deletion message may include all metadata. The management server 110 verifies the received metadata deletion message (561). The management server 110 may verify the deletion message using a specific verification key. Independently of this, the management server 110 may authenticate the user who has transmitted the deletion message (560). The authentication may be performed based on whether the authentication token transmitted from the first terminal 10 is valid. The management server 110 transmits the deletion message to the metadata blockchain 140 (562). The metadata blockchain 140 deletes the metadata using the information included in the deletion message (571). Subsequently, the metadata blockchain 140 transmits a deletion confirmation message to the management server 110 (581). The management server 110 may transmit the deletion confirmation message to the first terminal 10 (582).
[0098] Figure 7 An example of a sequence diagram of a data storage and deletion process 600 is shown.
[0099] First, the data storage process is described. Data may be input to the first terminal 10 (601). The first terminal 10 may generate data by itself, or information generated by a third party may be input to the first terminal 10. The first terminal 10 may encrypt the generated data using a public key (602). In some cases, the management server 110 may encrypt the data using the public key of the first terminal 10.
[0100] The first terminal 10 transmits the data to the management server 110 (611). The management server 110 may verify the received data based on certain standards (612). For example, when the data has a specific format, the management server 110 may verify whether the data meets the standard of the format. Alternatively, the management server 110 may verify the data using a verification key for the data.
[0101] The management server 110 may authenticate the user who has transmitted the data (620). Subsequent processes may be continued only for the authenticated user. The management server 110 may authenticate the user using the authentication token received from the user terminal 10 / 20. Figure 4 Authentication tokens are described.
[0102] The first terminal 10 sends the encrypted data to the storage server 155 (621). The storage server 155 stores the received data (622). As described above, the storage server 155 may include multiple servers. In this case, the data may be stored in multiple servers in a distributed or separate manner. One or more servers pass their data storage information to the data storage blockchain 150 (631). The data storage blockchain 150 registers the storage information of the data stored in the storage server 155 in an integrated manner (632). Although each storage server 155 only has information retained therein, the data storage blockchain 150 has the storage information of all data. As described above, the storage information may include an identifier of the storage server, a file name, a location where the data is stored in the storage medium of the storage server, a file size, file splitting information, a verification key, etc. The data storage blockchain 150 transmits the data storage information to the management server 110 (641). The management server 110 registers the storage information of the data (642). In other words, the management server 110 has the storage information of all data.
[0103] The data deletion process is described. The first terminal 10 requests data deletion (651). The first terminal 10 transmits a data deletion message to the management server 110 (652). The management server 110 verifies the deletion message (661). The deletion message may include a name, an identifier, etc. of the data to be deleted. The management server 110 may verify the deletion message using a verification key. In addition, the management server 110 may authenticate the user (the first terminal 10) who has transmitted the deletion message through a separate process.
[0104] The management server 110 may authenticate the user who has transmitted the deletion message (670). Subsequent processes may be continued only for the authenticated user. The management server 110 may authenticate the user using the authentication token received from the user terminal 10 / 20. Figure 4 Authentication tokens are described.
[0105] The management server 110 transmits the data deletion message to the storage server 155 (671). Since the management server 110 has storage information, it can transmit the deletion message to the storage server 155 storing the deletion target (671). The storage server 155 deletes the data requested for deletion (681). Figure 7 Although not shown, the storage server 155 deletes the data and registers the changed information in the data storage blockchain 150. The data storage blockchain 150 updates the storage data. The storage server 155 transmits a deletion confirmation message to the management server 110 (691). The management server 110 may transmit the deletion confirmation message to the first terminal 10 (692).
[0106] Meanwhile, when the first terminal 10 deletes data, the metadata of the deleted data may also be deleted. Therefore, the deletion message transmitted by the first terminal 10 may include deletion information for the data and the metadata of the data.
[0107] Figure 8 An example of a sequence diagram of a data search and transfer process 700 is shown. Figure 8 Corresponding to the process of the receiver receiving the shared data. The data search item may be input to the second terminal 20 (711). The data search item may be composed of various information segments. For example, the data search item may include an identifier of a specific target person, an identifier of a specific genome, an identifier of a specific disease, an identifier of a specific organ, a data generation time, a data update time, etc. The data search item may include metadata of the data. The second terminal 20 transmits the data search item to the management server 110 (712).
[0108] The management server 110 may authenticate the user who has transmitted the search term (720). Subsequent processes may be continued only for the authenticated user. The management server 110 may authenticate the user using the authentication token received from the user terminal 10 / 20. Figure 4 Authentication tokens are described.
[0109] The management server 110 first determines whether the requested data exists in the storage server 155 (721). The management server 110 may use the information included in the search term to determine whether the corresponding data exists in the storage server 155. For example, the management server 110 may use an identifier of the data to determine whether the corresponding data is currently located in the storage server 155. In addition, the management server 110 may use the metadata included in the search term to determine whether the corresponding data is located in the metadata blockchain 140. The management server 110 may use information such as data generation technology, data generation time, and specific disease type to search for information in the metadata blockchain 140, and determine whether there is data that meets the corresponding conditions.
[0110] When the requested data exists, the management server 110 queries the points and processes the points (731). Figure 5 Points transactions are described. The management server 110 checks whether the recipient has points in the points information blockchain 130. When the recipient has remaining points corresponding to the reward for data sharing, the management server 110 reduces the points of the recipient and increases the provider of the corresponding data. In addition, the management server 110 may withdraw some of the recipient's points to the manager's account as a commission for the data relay service.
[0111] The management server 110 identifies the storage information of the requested data (741). At the same time, the management server 110 may identify a plurality of data segments that satisfy the search expression included in the search term and create a group having the data segments. In this case, the management server 110 identifies the total storage information of the data segments in the group. The management server 110 transmits the identified storage information to the second terminal 20 (742).
[0112] The second terminal 20 stores the received storage information and generates a transmission request message for requesting transmission from the corresponding storage server (751). The transmission request message may include an identifier (address) of the storage server, an identifier of the data, a storage location of the data, etc. The second terminal 20 transmits the transmission request message to the corresponding storage server 155 (752).
[0113] The storage server 155 uses the information included in the transmission request message to identify the requested data and the data stored at the specific location (761). The storage server 155 transmits the identified data to the second terminal 20 (762). The second terminal 20 receives the data and decrypts the data using the encryption key (771). Therefore, the second terminal 20 may need to pre-acquire an encryption key for decrypting data encrypted using a public key. To this end, the user information blockchain 120 may have an encryption key for a specific user. The second terminal 20 may pre-acquire an encryption key for a specific user through the management server 110.
[0114] Fig. 9 An example of a sequence diagram of a process of identifying data based on metadata is shown. If a recipient wants to receive data shared by a provider, the recipient requests data that meets the conditions from the management server 110. A search term may be input to the second terminal 20 (811). The second terminal 20 transmits the search term to the management server 110 (812). The search term includes information for identifying a specific type of data that the recipient wants. For example, the search term may include at least some of the metadata of the data.
[0115] The management server 110 may authenticate the user who has transmitted the search term as described above (820). In addition, the management server 110 may verify the received search term using the verification key (821). Alternatively, the management server 110 may simply verify whether the search term consists of a valid search term that conforms to a specific format. When the authentication and verification are successful, the management server 110 transmits the search term to the metadata blockchain 140 (822).
[0116] The metadata blockchain 140 extracts metadata related to the received search term (831). The metadata blockchain 140 may extract all metadata including a specific metadata segment. Then, the metadata blockchain 140 may transmit the extracted metadata to the management server 110 (832). The metadata may include an identifier of the data.
[0117] The management server 110 may identify a specific data segment in the received metadata. In addition, when multiple data segments are related to the search term, the management server 110 may create a group with the data segment (841). The management server 110 extracts storage information of the identified one or more data segments (842). As described above, the management server 110 has storage information of data stored in the storage server 155. In some cases, a separate server or blockchain may manage the storage information.
[0118] The management server 110 transmits the identified storage information to the second terminal 20 (851).
[0119] Fig.10 An example of a sequence diagram showing a data sharing process including an encryption process is shown. Fig.10 This corresponds to a process in which the first terminal 10 provides data and the second terminal 20 receives the provided data.
[0120] The management server 110 sends its own public key P s The first terminal 10 uses the public key P s The data is encrypted (911). The first terminal 10 transmits the encrypted data to the management server 110 (912).
[0121] Different from Fig.10 According to the process shown in FIG. 1 , the management server 110 may encrypt the data transmitted from the first terminal 10 using its own public key and proceed with subsequent processes.
[0122] The management server 110 may verify the data using the verification key (921). The management server 110 transmits the encrypted data to the storage server 155 (922). One or more storage servers 155 store the encrypted data (931). As described above, a plurality of storage servers 155 may constitute the data storage blockchain 150. The storage server 155 transmits the storage information of the stored data to the management server 110 (932).
[0123] Then, the second terminal 20 requests the data of interest from the management server 110 (941). At this time, the second terminal 20 may transmit its own public key P ue2 (941).
[0124] The management server 110 searches for data through the above-described process (951). The management server 110 may request the found data from the storage server 155 (952). The storage server 155 transmits the requested data to the management server 110 (953).
[0125] The management server 110 uses its public key P s The received data is decrypted using the corresponding encryption key, and the public key P of the second terminal can then be used. ue2 The decrypted data is encrypted again (961). The management server 110 transmits the encrypted data to the second terminal 20 (971). The second terminal 20 decrypts the received data using its encryption key (981).
[0126] Fig.11 Another example of a sequence diagram of a data sharing process including an encryption process is shown. Fig.11 This corresponds to a process in which the first terminal 11 provides data and the second terminal 20 receives the provided data.
[0127] The management server 110 sends its own public key P s The first terminal 10 uses the public key P s The data is encrypted (1011). The first terminal 10 transmits the encrypted data to the management server 110 (1012).
[0128] The management server 110 may decrypt the received data using its encryption key (1021). The management server 110 transmits the decrypted data to the storage server 155 (1022). One or more storage servers 155 store the decrypted data (1031). As described above, a plurality of storage servers 155 may constitute the data storage blockchain 150. The storage server 155 transmits the storage information of the stored data to the management server 110 (1032).
[0129] Then, the second terminal 20 requests the data of interest from the management server 110 (1041). The management server 110 searches for the data through the above-described process (1051). The management server 110 transmits the storage information of the found data to the second terminal 20 (1052).
[0130] The second terminal 20 may use the storage information to request specific data from the storage server 155 (1061). At this time, the second terminal 20 may use its public key P ue2 Transmitted to storage server 155 (1061).
[0131] The storage server 155 may search for the requested data and use the public key P ue2 The data is encrypted (1062). The storage server 155 transmits the encrypted data to the second terminal 20 (1063). The second terminal 20 can decrypt the received data using its encryption key (1071).
[0132] The above method can be written as a computer program, a piece of code, an instruction, or some combination thereof, for independently or jointly indicating or configuring a processing device to operate as required. Software and data can be implemented permanently or temporarily in any type of machine, component, physical or virtual instrument, computer storage medium, or device that can provide instructions or data to a processing device or be interpreted by a processing device. Software can also be distributed on a computer system connected to a network so that the software is stored and executed in a distributed manner. Specifically, software and data can be stored by one or more non-transitory computer-readable recording media. The medium can also include software program instructions, data files, data structures, etc. alone or in combination with them. Non-transitory computer-readable recording media may include any data storage device that can store data that can be read by a computer system or processing device afterwards. Examples of non-transitory computer-readable recording media include read-only memory (ROM), random access memory (RAM), compact disk read-only memory (CD-ROM), tape, USB, floppy disk, hard disk, optical recording medium (e.g., CD-ROM or DVD) and PC interface (e.g., PCI, PCI-Express, WiFi, etc.). In addition, functional programs, codes, and code segments for implementing the examples disclosed herein can be construed by programmers skilled in the art based on the flowcharts and block diagrams of the drawings and corresponding descriptions provided herein.
[0133] Although the present disclosure includes specific examples, it is obvious to those of ordinary skill in the art that various changes in form and detail may be made in these examples without departing from the spirit and scope of the claims and their equivalents. The examples described herein should be understood in a descriptive sense only and not for the purpose of limitation. The description of the features or aspects in each example should be understood to be applicable to similar features or aspects in other examples. If the described techniques are performed in a different order, and / or if the components in the described systems, architectures, devices, or circuits are combined in different ways and / or replaced or supplemented by other components or their equivalents, appropriate results can be achieved. Therefore, the scope of the present disclosure is not limited by specific embodiments, but by the claims and their equivalents, and all variations within the scope of the claims and their equivalents will be interpreted as included in the present disclosure.
Claims
1. A data sharing method based on multiple blockchains, the method comprising: registering user block data in a user information blockchain by a management server, wherein the user block data includes user information and a hash key for each of a plurality of users, the plurality of users including a first user and a second user; receiving, by the management server, storage information of the data provided by the first user from a storage server; registering metadata of the provided data in a metadata blockchain by the management server; receiving, by the management server, a request from the second user for specific data in the provided data; and identifying, by the management server, the specific data based on a comparison result between the information included in the request and the metadata in the metadata blockchain, and transmitting the storage information of the specific data to the second user, wherein the management server uses the information stored in the user information blockchain to authenticate the first user and the second user, and the management server transmits the storage information of the specific data when the second user is successfully authenticated, and The storage information includes an identifier of the memory and a storage location of the data in the memory.
2. The data sharing method according to claim 1, wherein: At least one of the information segments included in the request is communicated to the metadata blockchain by the management server to identify the specific data.
3. The data sharing method according to claim 1, wherein: The management server registers details of the point transaction accompanying the sharing of the specific data in a point information blockchain that manages the points of the second user and the points of the first user.
4. The data sharing method according to claim 1, wherein: The storage information also includes at least one of an identifier of the provided data, a verification key, a file size, and file splitting information.
5. The data sharing method according to claim 1, wherein: The number of the storage servers is multiple, and The plurality of storage servers constitute a data storage blockchain having the storage information of the provided data.
6. The data sharing method according to claim 1 further includes identifying a corresponding user in the user information blockchain by using the user information of the first user or the second user, thereby authenticating the corresponding user through the management server and transmitting an authentication token to the first user or the second user.
7. A data sharing method based on multiple blockchains, the method comprising: registering user block data in a user information blockchain by a management server, wherein the user block data includes user information and a hash key for each of a plurality of users, the plurality of users including a first user and a second user; delivering, through the management server, the data provided by the first user to a data storage blockchain composed of at least one of the storage servers, and receiving storage information of the provided data from the storage server; receiving identification information of specific data from the second user through the management server; extracting, by the management server, storage information of the specific data from the previously obtained storage information based on a comparison result of the identification information with the metadata in the metadata blockchain, and delivering the extracted storage information to the second user, wherein the management server uses the information stored in the user information blockchain to authenticate the first user and the second user, and the management server transmits the stored information of the specific data when the second user is successfully authenticated, and The storage information includes an identifier of the memory and a storage location of the data in the memory.
8. The data sharing method according to claim 7, wherein: The management server receives user information of each of the plurality of users, and generates a hash key based on the received user information.
9. The data sharing method according to claim 8, further comprising performing user authentication by the management server by comparing the information stored in the user information blockchain with the user information transmitted by the plurality of users.
10. The data sharing method according to claim 7, further comprising registering metadata of the provided data in the metadata blockchain by the management server.
11. The data sharing method according to claim 10, wherein: The information included in the identification information is transmitted to the metadata blockchain by the management server to identify the specific data.
12. The data sharing method according to claim 7, wherein: The management server registers details of the point transaction accompanied by the sharing of the specific data in a point information blockchain that manages the points of the plurality of users.
13. The data sharing method according to claim 7, wherein: Extracting the storage information of the specific data includes: identifying, by the management server, the metadata of the specific data received from the metadata blockchain in response to the identification information being communicated to the metadata blockchain, and The storage information of the specific data is extracted based on the metadata of the specific data. 14 . The data sharing method according to claim 7 , further comprising receiving, by the second user, the specific data from the storage server using the storage information.
15. The data sharing method according to claim 7, wherein: The storage information also includes at least one of an identifier of the provided data, a verification key, a file size, and file splitting information.
Citation Information
Patent Citations
Method of Producing Transparent Conductive Film
KR1020180035570A
Blockchain-enhanced database
US20170228371A1
System and method for facilitating blockchain-based validation
US20170344988A1