WO2018135766A1 - Device and method for managing data by using block chain - Google Patents

Device and method for managing data by using block chain Download PDF

Info

Publication number
WO2018135766A1
WO2018135766A1 PCT/KR2017/015345 KR2017015345W WO2018135766A1 WO 2018135766 A1 WO2018135766 A1 WO 2018135766A1 KR 2017015345 W KR2017015345 W KR 2017015345W WO 2018135766 A1 WO2018135766 A1 WO 2018135766A1
Authority
WO
WIPO (PCT)
Prior art keywords
chain
data
file
information
command
Prior art date
Application number
PCT/KR2017/015345
Other languages
French (fr)
Korean (ko)
Inventor
용창육
김종철
유정석
Original Assignee
주식회사 케이티
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 케이티 filed Critical 주식회사 케이티
Publication of WO2018135766A1 publication Critical patent/WO2018135766A1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0637Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage

Definitions

  • the present invention relates to a data management technology, and more particularly, to an apparatus and method for managing storage, inquiry and deletion of data using a blockchain.
  • a block size (for example, 8 KB) is designated on a disk and used in a formatted state.
  • the typical block size is 8KB on Unix file systems.
  • this is referred to as a cluster.
  • a file is a form of electronic document as a unit of data storage.
  • a file having a file size less than or equal to the block size is stored by the file system, inefficient use of the disk occurs. For example, if a 2KB file is stored on a disk of the 8KB block size, 6KB, 75% of free space is left, and the disk is inefficiently used. The larger the block size, the faster the read / write speed, so you can't reduce the block size to save space.
  • the file system provides only basic file management services, so the user must manage the file's access rights on his own. In addition, the user must manage the backup of the file. In addition to the basic file management service, users need to use a separate dedicated hardware / software device to manage file access and backup.
  • blockchain is a technology for recording data based on cloud technology and P2P technology, and everyone is the subject of data storage and management and records the same information, respectively.
  • the "block” of the block chain means a data storage unit, which is different from the meaning that "block” of the file system is the minimum space in which one file can be allocated on the disk.
  • the blockchain technology does not store data in file units based on the file system, but stores data in block units in a DB of the blockchain according to a distributed database environment.
  • the block unit is not limited to the block size of the file system depending on the OS. That is, a plurality of data units can be stored in one storage area of the blockchain, and the storage space is used only by 2K of file size without being limited by 8K block size, and the above 6KB of empty space remains. Used as space to store other files.
  • Blockchain technology provides security by allowing data access only when the access right to the block, which is the storage unit of data, is granted.
  • Blockchain technology provides backups by synchronizing the writing of blocks in which the same data is stored between nodes that are the storage subjects of the block.
  • blockchain technology can be applied to general-purpose computer equipment, providing a cost-effective deployment without expensive hardware and software equipment.
  • the present invention was created with the knowledge of the prior art as described above, and an object thereof is to provide an apparatus and method for efficiently using a storage space of data using a blockchain technology without limiting the block size of a file system.
  • Another object of the present invention is to provide a service in which a device is set to a mode where only a service provider can access the data without allowing the user to access the data in an open book accessible to anyone. .
  • Another object of the present invention is for the device to manage the data without a fee by eliminating the fee of the service of the open ledger.
  • Another object of the present invention is to perform data validation by simplifying a proof-of-work process of a mining node based on a private mode and a removed fee.
  • Another object of the present invention is to adjust the block generation time by giving a delay to delay the speed of block generation that is accelerated by a simplified mining process, and to generate a block only when a transaction to be stored is generated.
  • a block chain formed by a plurality of node terminals to synchronize and store data, and an apparatus for managing storage, inquiry, and deletion of data of the block chain may be configured using the chain information provided by an inquiry request.
  • a main control unit controlling a management of the data by transmitting a data command for managing the data to the node terminal using a chain command for managing a block chain and mapping information provided by an inquiry request; And receiving the chain information of the chain generated by the chain command from the main controller, storing the chain information in a chain table, querying and providing the stored chain information according to the request, and storing the data stored by the data command from the main controller.
  • a DB management unit which receives the mapping information of the transaction, stores it in the chain table, and searches and provides the stored mapping information according to the request.
  • the blockchain may include a first function of providing a private mode in which data access is permitted only to a user whose authority is defined; A second function that is free of fees for data processing of the blockchain; A third function of removing a verification process of a node and performing a data validation process in a process of proving a mining node's work for a node terminal required for a block chain; A fourth function of delaying a block generation time by giving a delay to delay a generation time of a block shortened by the proof-of-work process; And at least one or more functions of the fifth function of generating a block only when a transaction to be stored is generated and executed in each node terminal.
  • the apparatus further includes a web management unit which provides a user interface through a web page to receive management information of the chain and data, and provide a processing result of the input management information.
  • the apparatus may further include a scheduler configured to register the scheduling information for management and request the main controller to execute a process corresponding to the registered scheduling information, wherein the main controller transmits a command corresponding to the request. do.
  • a scheduler configured to register the scheduling information for management and request the main controller to execute a process corresponding to the registered scheduling information, wherein the main controller transmits a command corresponding to the request. do.
  • the node terminal comprises: a mining API node terminal for generating a block through a mining process and data information of the block chain through an application program interface (API); And a data synchronization node terminal in which data management of the block chain is synchronized by the mining API node terminal.
  • API application program interface
  • the mining API node terminal may include: a chain generation unit configured to receive the chain command, process generation, deletion, and execution of a block chain according to the received chain command, and respond to a processing result; A command processor for receiving the data command, processing the received data command, and responding to the processing result; And a block chain processing unit that executes a data command according to the processing on the block chain.
  • the data synchronization node terminal may include: a chain generation unit configured to receive the chain command, process generation, deletion, and execution of a block chain according to the received chain command, and respond to a processing result; And a block chain processing unit connected to the block chain processing unit of the mining API node terminal in synchronization with the data command transmitted through the connected port.
  • the main controller generates a chain ID from the file information of each data file managed by the block chain, generates a port ID by applying a formula to the generated chain ID, and generates the chain ID. Create a folder path for the files stored in the blockchain.
  • the main control unit receives file information of a data file to be stored, inquires chain information corresponding to the input file information from the chain table, and transmits the data command according to the inquired chain information to the node terminal.
  • Requests data storage receives the storage result of the data command, and the DB manager maps the mapping information including the file ID of the transmitted storage result, the transaction ID generated during the storage by the blockchain, and the storage time. Save to a table.
  • the main control unit transmits the chain command requesting generation and execution of a block chain having the generated chain ID when the chain information generated from the chain information fails to inquire the chain information from the chain table.
  • the DB manager receives the execution result of the chain command, the DB manager generates the chain information including a chain ID, a root directory, and an execution state for each chain by using the transmitted execution result, and generates the generated chain information. Store in the chain table.
  • the main controller receives file information of a data file to be queried, inquires mapping information corresponding to the input file information from the mapping table, and transmits the data command according to the inquired mapping information to the node terminal. Requesting data inquiry, receiving the inquiry file and the inquiry result of the data command, and providing the transmitted file.
  • a blockchain formed by a plurality of node terminals for synchronizing and storing data, and a method for storing a data file by an apparatus managing data of the blockchain may include: from file information of a data file to be stored Generating a chain ID; Querying the chain information from the chain table using the generated chain ID as a key; Generating a data command requesting storage of the file according to the inquired chain information, and transmitting the generated data command and file to the node terminal and storing the data command in the block chain; And storing mapping information of data and transactions in a mapping table by using a result of storing the file received from the node terminal.
  • a blockchain formed by a plurality of node terminals for synchronizing and storing data and a method for inquiring a data file by an apparatus managing data of the blockchain may include an ID of a file to be queried from a user terminal. Receiving an input; Retrieving mapping information from the mapping table using the input file ID as a key; Generating a data command for requesting the inquiry of the file according to the inquired mapping information and transmitting the generated data command to the node terminal; Receiving a data file queried from the node terminal; And transmitting the received file to the user terminal.
  • the data is stored in the storage area of the blockchain from which empty space is removed according to the block size limitation of the file system, thereby enabling efficient data storage in preparation for the storage area.
  • a node terminal by configuring a node terminal with a command node for receiving a command from the management server to provide a mining function and API functions and a synchronization node in which data is synchronized to the command node, data security and data backup Can be provided.
  • 1 to 5 are exemplary diagrams of a blockchain to which the present invention is applied.
  • FIG. 6 is a schematic structural diagram of unique functions set in the blockchain of the present invention.
  • FIG. 7 is a schematic internal configuration diagram of a data management system according to an embodiment of the present invention.
  • FIG. 8 is a schematic flowchart of a method for storing data in a blockchain according to an embodiment of the present invention.
  • FIG. 9 is a schematic flowchart of a data inquiry method according to an embodiment of the present invention.
  • FIG. 1 is an exemplary view of a block chain 100 to which the present invention is applied.
  • the blockchain 100 is a distributed database built on cloud storage and P2P functions. Typically, Bitcoin, Ethereum, etc. are provided on the blockchain.
  • the block chain 100 is composed of blocks 101 of a unit in which data is stored and a chain 102 corresponding to a data link between the blocks.
  • the blockchain 100 is a distributed / relational data DB and stores data using a storage area allocated to the DB independently from the file system as one area. Therefore, it is not limited by the block size dependent on the file system. Therefore, no empty area generated by the limitation of the block size is generated.
  • FIG. 2 is an exemplary diagram of a node terminal 200 in which the blockchain 100 of FIG. 1 is constructed.
  • the node terminal 200 is a computer device that provides a storage space for data.
  • the node terminal 200 is not limited to the specification as long as it has a network function, a storage function, and a processing function as a smart terminal, a notebook computer, a PC, a server, and the like.
  • the computer device is called a node.
  • FIG. 3 illustrates that a plurality of unique chains 300 are installed in the node terminal 200 of FIG. 2.
  • the present invention aims to manage and classify data such as documents, images, and the like, which is not kept in the open book, the distribution of data based on a plurality of chains 300 classified according to the purpose is desirable. Do.
  • FIG. 4 is an exemplary diagram in which three node terminals 200 are synchronized through pairing for four chains.
  • Each node terminal 200 has four unique block chains # 1 to # 4. Each chain establishes pairings 401-404 and data is synchronized. Each chain can be described as consisting of three nodes. That is, each chain # 1 stored in the three node terminals 200 is synchronized by the first pairing 401 to store the same data. When synchronization, processing such as storing or deleting data occurs in the chain # 1 of the first node, the same data processing is performed for the chain # 1 of the second and third nodes remaining in the first pairing 401. Is generated.
  • paired chains communicate using the same port.
  • Each chain of # 1 to # 4 can operate as an independent chain by using unique ports.
  • FIG. 5 is an exemplary diagram of a plurality of node groups operating in the blockchain environment of FIG. 4.
  • the node terminal 200 corresponds to any one node of the node group # 1 500 and the node group # 2 501 including three nodes.
  • node group # 1 500 holds chains # 1 to # 4 for each node, and each chain is paired.
  • Node group # 2 501 holds chains # 5-# 8 for each node, with each chain paired. Pairing connections between each chain are omitted for simplicity.
  • the load may be distributed by separate node groups.
  • resources such as CPU, memory, and storage space are required.
  • loads are concentrated on one node, so that loads can be divided into node groups.
  • load balancing even if one node of a group node physically fails, the influence on service operation can be reduced. If a node storing eight chains fails, data access to the eight chains is disabled.
  • FIG. 6 is a schematic structural diagram of modification functions set for the blockchain of the present invention.
  • the present invention is subject to the unique functions of the blockchain.
  • cost savings can be achieved by using x86 servers and open source to build a system using blockchain technology without expensive equipment or software.
  • the network configuration between the nodes in the blockchain is set to the private mode.
  • the service does not need to be disclosed to other users because only authorized users can use it.
  • Blockchain technology is originally a public database of decentralized powers. Thus, there is a fee for using a public database called blockchain.
  • the present invention is operated as a user-only database rather than a public database, the concept of fees is unnecessary. Therefore, the code should be set up so as not to incur a fee.
  • the POW (Proof of Work) process of the mining node is set to be simplified.
  • Any public blockchain provides financial benefits to nodes that have performed a process called mining to induce voluntary participation as nodes in the chain.
  • This mining process is to maximize the use of HW resources, which is also unnecessary to the type of service to which the present invention applies. Therefore, only the validation part of the data is left during the mining process, and processes such as finding nonce values by random hash calculation are removed so that blocks are generated quickly and resources such as CPU / memory are minimized.
  • the delay is set so that the block can be generated at an appropriate speed because the speed of generating the block is unnecessarily faster in the simplified mining process of the third function.
  • the delay setting delays the generation rate of the block.
  • the conventional blockchain is set to proceed with block generation only when there is a transaction to process because empty blocks are constantly generated even in the absence of a transaction but are unnecessary overhead in the present invention.
  • the blockchain in which the correction functions of the first to fifth functions described above are set is applied to the present invention.
  • the credit card company stores the data file of the signature image generated when the customer pays the card in the blockchain of the present invention.
  • the present invention does not limit the content and format of the data file.
  • the credit card company stores the signature image of the customer transferred from the POS terminal to the VAN company in a separate file.
  • Each file of approval is assigned a serial number assigned by the VAN company.
  • Save the signature image as a black and white bitmap file (e.g. serial number.bmp). It is assumed that the serial number is unique information including the time of occurrence of the card settlement.
  • serial number is unique information including the time of occurrence of the card settlement.
  • Storing 16TB in one chain on one node is inefficient and load-intensive. Therefore, it is efficient to form a plurality of chains to reduce the data size.
  • the chain is generated on a monthly basis of the signature image, and 60 chains stored for 5 years are operated, and the chain after 5 years is operated to be deleted every 1 month.
  • the way data is stored in the blockchain is stored in 'key / value' format.
  • the file name is unique and thus can be utilized as a "key”
  • the image file corresponds to "value”.
  • FIG. 7 is a schematic internal configuration diagram of a data management system 700 according to an embodiment of the present invention.
  • the data management system 700 includes a management server 710, a mining API node terminal 730, and respective computer devices corresponding to the data synchronization node terminal 750.
  • the computer device may include a memory, a memory controller, one or more processors (CPUs), peripheral interfaces, input / output (I / O) subsystems, display devices, input devices, and communication circuits.
  • the memory may include fast random access memory, and may also include one or more magnetic disk storage devices, nonvolatile memory such as flash memory devices, or other nonvolatile semiconductor memory devices. Access to memory by other components such as processors and peripheral interfaces may be controlled by the memory controller.
  • the memory may store various information and program instructions, and the program is executed by the processor.
  • the peripheral interface connects the input and output peripherals of the computer device with the processor and the memory.
  • One or more processors execute a set of instructions stored in various software programs and / or memories to perform various functions and process data for the computer device.
  • I / O subsystems provide an interface between input and output peripherals, such as display devices and input devices, and peripheral interfaces.
  • the display device may use liquid crystal display (LCD) technology or light emitting polymer display (LPD) technology.
  • a processor is a processor configured to perform operations associated with a computer device and to perform instructions, for example, using instructions retrieved from a memory to control the reception and manipulation of input and output data between components of the computer device.
  • the communication circuit performs communication via an external port or communication by an RF signal.
  • the communication circuit converts an electrical signal into an RF signal and vice versa and can communicate with the communication network, other mobile gateway devices and communication devices through the RF signal.
  • the management server 710 is a device of the present invention, and includes a web manager 711, a scheduler 713, a main controller 715, and a DB manager 717. These components 711 to 717 may be implemented in coded software, stored in memory, executed by a processor, or may be implemented in a combination of software and hardware.
  • the web manager 711 provides a data management service using a user UI to a user terminal accessing a web site.
  • the web manager 711 provides a management service to provide the user terminal with the current status of the chain, the current status of the records contained in the chain, and data inquired from the chain.
  • the "data management service” includes creation, inquiry, modification and deletion of each of the chain and the data.
  • the web manager 711 provides a user UI to a user accessing a web site, receives a data management request through the user UI, and transmits the received user's request to the main controller 715.
  • the web manager 711 receives the processing result from the main controller 715, and provides the user with the processing result received through the user UI.
  • the result of processing is the result of the creation, inquiry, modification and deletion of the chain and data.
  • the scheduler 713 registers scheduling information of data management, and requests the main controller 715 to execute a process of registered scheduling information. When the request of the scheduler 713 is processed by the main controller 715, the scheduler 713 receives a processing result of the scheduled process from the main controller 715.
  • the user's reservation information is registered in the scheduler 713 as the scheduling information.
  • the web manager 711 may receive a management request from a user according to a real time or scheduling method.
  • the registered scheduling information includes a time reserved by the user and reserved management information. For example, after a chain created monthly stores data for five years, a process deleted every one month may be registered as scheduling information.
  • the main controller 715 transmits a chain command for managing the block chain and a data command for managing the data to a node. By this transfer, the management of the blockchain and data is controlled.
  • the main controller 715 generates a chain ID and a file ID according to a rule set from a file name of a file to be managed.
  • the main control unit 715 In the case of storage, the main control unit 715 generates a chain ID from the file name of the storage target, and inquires the chain information of the generated chain ID.
  • the path information of the file is identified from the inquired chain information, and a data command and a file requesting that data be stored in the identified path information are transmitted to the node.
  • the node then stores the file in the corresponding chain and path according to the path information.
  • the main controller 715 inquires mapping information corresponding to the file name to be inquired.
  • the data command of the data inquiry including the transaction ID of the inquired mapping information is transmitted to the node.
  • the node inquires a file corresponding to the transaction ID and transmits the inquired file to the main controller 715.
  • the main controller 715 provides the received file to the user terminal through the web manager 711.
  • the node deletes the corresponding file according to the transaction ID.
  • the DB manager 717 manages that the chain information of the generated chain is stored, inquired and deleted in the chain table.
  • the DB manager 717 generates chain information including "chain ID, root directory, and execution status" for each chain using the execution result of the chain generation received through the main controller 715, and generates the generated chain information.
  • a chain ID is information that uniquely identifies a chain.
  • the root directory is the root directory where the chain is stored.
  • the chain ID and root directory form path information that identifies the chain corresponding to the file.
  • the execution state is referenced for the execution of the chain if the chain in which the file is stored for execution of the administrative command is not in the execution state.
  • the DB manager 717 inquires the chain information corresponding to the file to be managed from the chain table according to the inquiry request from the main controller 715.
  • the information on the chain and the access path corresponding to the file is identified from the inquired chain information, and the main controller 715 may issue a data command for storing the file using the identified information.
  • the DB manager 717 manages that the data that has been stored and the mapping information of the stored transaction are stored, inquired, and deleted from the mapping table.
  • the DB management unit 717 uses the storage result of the data storage received through the main control unit 715 to map the mapping information including the file ID and the "file ID, transaction ID and storage time" generated when the data is stored by the blockchain. Save to mapping table.
  • the file ID is a unique key that is generated from the file name and identifies the file.
  • the transaction ID is unique information that the blockchain uniquely generates and accesses to the file by the storage of the file.
  • the storage time is the processing time of the transaction.
  • the DB manager 717 inquires the mapping information corresponding to the file to be managed from the mapping table according to the inquiry request from the main controller 715.
  • Transaction information corresponding to the file is identified from the inquired mapping information, and the main controller 715 may issue a data command for managing the stored file using the identified transaction information.
  • the management server 710 controls the management of the blockchain and data for the mining API node terminal 730 and the data synchronization node terminal 750 connected by WAS port communication.
  • the node terminal 200 corresponds to the mining API node terminal 730 and the data synchronization node terminal 750.
  • the mining API node terminal 730 receives various commands from the main control unit 715 through WAS port communication, generates a block according to the received commands, connects them to the chain, and manages commands (for example, storage / An inquiry, etc.), processes the received command, and responds to the main controller 715 with the processing result.
  • the mining API node terminal 730 includes a chain generation unit 731, a block chain module 733, an instruction processor unit 735, and a block chain processing unit 737.
  • the chain generation unit 731 receives a chain command for managing a chain from the main control unit 715, and performs a generation, execution (drive), and deletion process of a chain corresponding to the received chain command.
  • the "Chain Maker" of the block chain is the chain generation unit 731.
  • the chain generation unit 731 processes the chain command by using the block chain module 733 including distributed executable files and configuration files. If the chain instruction is a delete, the running processor is stopped and the files created due to the chain operation are deleted.
  • the command processor 735 receives a data command for managing data from the main controller 715, and stores, inquires, and deletes data corresponding to the received data command.
  • the command processor 735 transfers the data command received from the main controller 715 to the blockchain process 737.
  • the command processor 735 is connected to an external service to receive a data command, but a secure connection is required.
  • the block chain processor 737 receives a data command from the command processor 735 to perform data management. By performing data management, data is stored, inquired and deleted in the chain. In addition, the block chain processing unit 737 is synchronized with the block chain processing unit 757 of another node through a synchronization port communication by a pairing function.
  • the data synchronization node terminal 750 includes a chain generation unit 751, a block chain module 753, and a block chain processing unit 757.
  • the chain generation unit 751 and the block chain module 753 have the same configuration as the mining API node terminal 730.
  • the block chain processing unit 757 is synchronized with the block chain processing unit 737 of the mining API node terminal 730.
  • the difference between the mining operation and the API operation is performed only in the mining API node terminal 730.
  • the command processor unit 735 may be provided in every node to correspond to the system fail-over.
  • the mining operation and the window of the API operation for the management server 710 are unified to the mining API node terminal 730 to maintain data security, and to pair with the mining API node terminal 730.
  • the data synchronization node terminal 750 is synchronized to provide data backup. That is, in terms of data security, only an authorized user can access the management server 710, and only an authorized management server 710 can access the mining API node terminal 730. Is blocked.
  • the WAS port communication between the main controller 715 and the node terminals 730 and 750 is assumed to be implemented in the form of a Java Servlet, and is performed through a port used by a Web Application Server such as Tomcat and JBOSS. .
  • An RPC (Remote Procedure Call) port is used between the command processor unit 735 and the block chain processing unit 737.
  • the sync port is used for synchronization between the blockchain processing units 737 and 750.
  • the IDs of the Sync and RPC ports can be calculated from the chain ID.
  • FIG. 8 is a schematic flowchart of a method for storing data in a blockchain according to an embodiment of the present invention.
  • An event of file storage occurs in the management server 710.
  • File storage may request the user to save the file through the web site of the web manager 711.
  • an event of file storage may occur by the batch processing or the scheduler 713 or the like.
  • the main control unit 715 receives a notification of event occurrence (S801).
  • the main controller 715 generates a chain ID using file information (eg, file name, file time, etc.) of the file according to the service policy (S811).
  • file information eg, file name, file time, etc.
  • a chain ID, a unique key, a port number, etc. may be generated from the file information.
  • the creation rule involves processing such as extracting, converting, and calculating a unique value from a file name, with no special limitation.
  • a chain ID of year (2) + month (2) is extracted from the file name of the date time and generated. For example, a signature image file generated in January 17, '1701' is included in a file name, and a chain ID of '1701' extracted from the file name is generated. If the unique key has a unique file name, the file name can be used as it is, and the generation rule can be applied.
  • the port number is generated using the following formula.
  • the synchronization port of the block chain processing units 737 and 757 is '11701', and the RPC port of the command processor unit 735 is '14701'.
  • the main controller 715 inquires the chain information by inputting the chain ID to the DB manager 717 (S821).
  • the DB manager 717 inquires the chain table using the chain ID as a key, inquires the chain information including the chain ID, the root directory, and the execution status of the chain, and provides the inquired chain information to the main controller 715.
  • the main controller 715 If the inquiry of the chain information fails (S823), the main controller 715 generates a chain command including a chain name and a path name including a root directory and generating a chain, and generates the chain command of each node. Transmission to the chain generation units 731 and 751 (S825). The chain generation units 731 and 751 generate and execute a chain according to the received path name. When generation of the chain is completed, the chain generation units 731 and 751 respond to the main control unit 715 with the generation result. The main controller 715 stores the chain information in the chain table through the DB manager 717 using the generated result.
  • the path name of the data directory may be '/ CHAIN_DATA / datadir_1701' according to the defined service policy.
  • the main controller 715 In addition, if the execution state of the inquired chain information is not running (S827), the main controller 715 generates a chain command including a chain ID and a path name including the root directory and executes the chain, and generates the generated chain command. Transmission is performed to chain generation units 731 and 751 of each node (S829). The chain generation units 731 and 751 execute the chain according to the received path name. The execution status of the chain table is updated to be executed by the execution of the chain. For processing efficiency, the chain can end execution once processing is complete.
  • the main controller 715 After the chain information of the running chain is inquired, the main controller 715 generates a unique file ID from file information (eg, file name, file time, etc.) of the file.
  • file information eg, file name, file time, etc.
  • the generated file ID corresponds to a key for identifying the file.
  • various conversions, hash processing, and the like may be applied to the file information.
  • the main controller 715 may use the file name as the file ID.
  • the main controller 715 generates a data command including the inquired chain information and the generated file ID, and transmits the generated data command and file to the command processor 735 to store the file (S831).
  • the command processor 735 transmits the received data command to the block chain processing unit 737 and requests that data be stored in the block chain (S833).
  • the file information stored in the blockchain follows the RDB format of the key / value, and other meta information related to the file (such as a unique key) may be further stored.
  • the synchronized blockchain processing unit 757 also receives data commands and files through the synchronization port, and stores the files to synchronize the data.
  • the command processor 735 When file storage is completed, the command processor 735 responds to the result of storing the file including the transaction ID of the stored file by the API operation, and the main controller 715 receives the response information (S841).
  • the transaction ID is uniquely generated when data transactions are stored on the blockchain.
  • the main controller 715 stores the mapping information in the mapping table through the DB manager 717 using the stored storage result (S843).
  • the meta information of the file may be further stored in the mapping table.
  • Steps S801 to S843 are repeated until storage of files stored in the directory of the web site is completed. After the storing of the files is completed, the main controller 715 deletes the stored files from the directory (S845).
  • the main controller 715 transmits the chain command to the node and deletes the chain satisfying the condition according to the service policy (S851).
  • the service policy S851
  • signature images chains that are five years and one month old are automatically deleted from the node.
  • FIG. 9 is a schematic flowchart of a data inquiry method according to an embodiment of the present invention.
  • An event of file inquiry occurs in the management server 710.
  • a corresponding event may be generated by a request of a user connected to a web site, a batch process, or a scheduler 713.
  • the main controller 715 receives the file ID by notifying that the event of file inquiry has occurred (S901).
  • the main controller 715 may search the mapping information of the mapping table and provide the searched mapping information to the web manager 711 to provide a search service for the user to select a file to be queried.
  • the main controller 715 inquires the mapping information from the mapping table using the received file ID as a key (S903). If mapping lookup fails, provide an appropriate error message that no record to delete exists. In addition, depending on the type of service, a function of refusing to provide the data when a specific date has passed may be added at this stage.
  • the main controller 715 When the mapping information is inquired, the main controller 715 generates a data command including a transaction ID of the mapping information and requests for inquiry of data (S911), and transmits the generated data command to the command processor unit 735 to send a file. Request an inquiry (S913).
  • the command processor 735 transmits the received data command to the block chain processing unit 737 to request an inquiry of a file stored in the block chain.
  • the file of the transaction ID is inquired by the blockchain processing unit 737, and the command processor 735 transmits the inquired file and the processing result to the main control unit 715 according to the API operation.
  • the main control unit 715 downloads and receives a file from the command processor unit 735 (S921).
  • the downloaded file is downloaded to the user through the web management unit (S931).
  • Steps S901 through S931 may be repeated until the inquiry of the requested files is completed. After the download service of files is completed, the main controller 715 deletes the downloaded files from the download directory.
  • the main controller 715 may be accompanied by encryption and decryption processing for data security in the process of storing and retrieving the file. It is also possible to provide a service that shows the contents of a document file or an image file according to the service policy of a web site.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

Disclosed are a device and a method for managing data stored in a block chain. According to an aspect, a device for managing a block chain established to enable a plurality of node terminals to synchronize and store data, and managing storage, viewing, and deletion of data in the block chain comprises: a main control unit for transmitting a chain command for managing a block chain and a data command for managing data to a node terminal so as to control data management; and a DB management unit for storing, in a chain table, chain information generated by a chain command, and storing data stored by a data command and mapping information of a transaction in a mapping table.

Description

블록 체인을 이용하여 데이터를 관리하는 장치 및 방법Apparatus and method for managing data using blockchain
본 출원은 2017년 01월 19일에 출원된 한국특허출원 2017-0009285호에 기초한 우선권을 주장하며, 해당 출원들의 명세서 및 도면에 개시된 모든 내용은 본 출원에 원용된다.This application claims the priority based on Korean Patent Application No. 2017-0009285, filed on January 19, 2017, and all the contents disclosed in the specification and drawings of those applications are incorporated in this application.
본 발명은 데이터의 관리 기술로서, 보다 구체적으로, 블록 체인을 이용하여 데이터의 저장, 조회 및 삭제 등을 관리하는 장치 및 방법에 관한 것이다.The present invention relates to a data management technology, and more particularly, to an apparatus and method for managing storage, inquiry and deletion of data using a blockchain.
종래의 파일 시스템에서는 디스크에 블록 사이즈(예 : 8KB)를 지정하여 포맷한 상태에서 사용한다. 참고로, 유닉스 파일 시스템에서는 통상적인 블록 크기가 8KB이다. NTFS 파일 시스템에선 이를 클러스터라고 표현한다. 파일은 데이터의 저장 단위로서 전자 문서의 일 형태이다.In a conventional file system, a block size (for example, 8 KB) is designated on a disk and used in a formatted state. For reference, the typical block size is 8KB on Unix file systems. In the NTFS file system, this is referred to as a cluster. A file is a form of electronic document as a unit of data storage.
여기서, 블록 사이즈 이하의 파일 크기를 갖는 파일이 파일 시스템에 의해 저장될 경우, 디스크의 비효율적인 사용이 발생된다. 예를 들면, 2KB의 파일이 상기 8KB의 블록 크기의 디스크에 저장되면, 6KB, 75%의 빈 공간이 남게 되어 디스크가 비효율적으로 사용된다. 블록 크기가 클수록 Read/Write 속도가 빨라지므로 공간 낭비를 줄이자고 무작정 블록 크기를 줄일 수도 없다.Here, if a file having a file size less than or equal to the block size is stored by the file system, inefficient use of the disk occurs. For example, if a 2KB file is stored on a disk of the 8KB block size, 6KB, 75% of free space is left, and the disk is inefficiently used. The larger the block size, the faster the read / write speed, so you can't reduce the block size to save space.
파일 시스템에서는 기본적인 파일 관리의 서비스만 제공되므로, 사용자가 스스로 파일의 접근 권한을 관리해야 한다. 또한, 사용자가 파일의 백업을 관리해야 한다. 기본적인 파일 관리의 서비스 이외에 파일의 접근, 백업 등을 관리하기 위해서는 사용자가 별도의 전용 하드웨어 / 소프트웨어의 장비를 사용해야 하므로, 장비 도입 / 유지에 많은 비용이 발생된다.The file system provides only basic file management services, so the user must manage the file's access rights on his own. In addition, the user must manage the backup of the file. In addition to the basic file management service, users need to use a separate dedicated hardware / software device to manage file access and backup.
한편, 블록 체인은 클라우드 기술 및 P2P 기술에 기반된 데이터의 기록 기술로서 누구나가 데이터의 저장 및 관리의 주체가 되어 동일한 정보를 각각 기록하는 기술이다. 여기서, 블록 체인의 "블록"은 데이터 저장 단위를 의미하는 것으로서, 파일 시스템의 "블록"이 디스크에서 하나의 파일이 할당될 수 있는 최소의 공간이라는 의미와 차이가 있다.On the other hand, blockchain is a technology for recording data based on cloud technology and P2P technology, and everyone is the subject of data storage and management and records the same information, respectively. Here, the "block" of the block chain means a data storage unit, which is different from the meaning that "block" of the file system is the minimum space in which one file can be allocated on the disk.
블록 체인의 기술은 상기 파일 시스템에 기반된 파일 단위로 저장하는 것이 아니라, 분산 데이터베이스 환경에 따른 블록 체인의 DB에 데이터를 블록 단위로 저장한다. 블록 단위는 OS에 따라 종속되는 파일 시스템의 상기 블록 사이즈에 대한 제한을 받지 않는다. 즉, 블록 체인의 1개 단위의 저장 영역에 복수개의 데이터 단위가 저장될 수 있고, 8K의 블록 사이즈의 제한을 받지 않고 파일의 크기 2K만큼만 저장 공간을 사용하고, 상기의 6KB의 빈 공간은 남는 공간으로 활용되어 다른 파일이 저장되는데 사용된다.The blockchain technology does not store data in file units based on the file system, but stores data in block units in a DB of the blockchain according to a distributed database environment. The block unit is not limited to the block size of the file system depending on the OS. That is, a plurality of data units can be stored in one storage area of the blockchain, and the storage space is used only by 2K of file size without being limited by 8K block size, and the above 6KB of empty space remains. Used as space to store other files.
블록 체인의 기술은 데이터의 저장 단위인 블록에 대해 접근 가능 권한이 있는 경우에 한하여 데이터 접근을 허락하므로 보안성을 제공한다.Blockchain technology provides security by allowing data access only when the access right to the block, which is the storage unit of data, is granted.
블록 체인의 기술은 블록의 저장 주체인 노드들간에 동일 데이터가 저장된 블록의 기록을 동기화하므로 백업을 제공한다. Blockchain technology provides backups by synchronizing the writing of blocks in which the same data is stored between nodes that are the storage subjects of the block.
또한, 블록 체인의 기술은 범용 컴퓨터 장비에 적용이 가능하므로 고가의 하드웨어 및 소프트웨어의 장비없이 비용이 절감되는 구축을 제공한다.In addition, blockchain technology can be applied to general-purpose computer equipment, providing a cost-effective deployment without expensive hardware and software equipment.
본 발명은 상기와 같은 종래 기술의 인식하에 창출된 것으로서, 블록 체인 기술을 이용하여 파일 시스템의 블록 사이즈의 제한없이 데이터의 저장 공간을 효율적으로 사용하는 장치 및 방법을 제공하는 것을 목적으로 한다.SUMMARY OF THE INVENTION The present invention was created with the knowledge of the prior art as described above, and an object thereof is to provide an apparatus and method for efficiently using a storage space of data using a blockchain technology without limiting the block size of a file system.
본 발명의 다른 목적은 장치가 누구나 접근 가능한 공개 장부의 서비스를 제공하는 것이 아니라 권한없는 사용자들에게 데이터의 접근이 허락되지 않고 서비스 제공자만 데이터에 접근할 수 있는 모드가 설정되는 서비스를 제공하는데 있다.Another object of the present invention is to provide a service in which a device is set to a mode where only a service provider can access the data without allowing the user to access the data in an open book accessible to anyone. .
본 발명의 다른 목적은 장치가 공개 장부의 서비스의 수수료를 제거하여 수수료가 없이 데이터를 관리하는데 있다.Another object of the present invention is for the device to manage the data without a fee by eliminating the fee of the service of the open ledger.
본 발명의 다른 목적은 Private 모드 및 제거된 수수료를 기반으로 장치가 마이닝 노드의 작업 증명 과정을 단순화하여 데이터의 유효성 검증을 수행하는데 있다.Another object of the present invention is to perform data validation by simplifying a proof-of-work process of a mining node based on a private mode and a removed fee.
본 발명의 또 다른 목적은 단순화된 마이닝 과정에 의해 빨라지는 블록의 생성 속도를 지연시키고자 딜레이를 주어 블록 생성 시간을 조절하고, 보관 대상의 트랜잭션이 발생된 경우에만 블록을 생성하는데 있다.Another object of the present invention is to adjust the block generation time by giving a delay to delay the speed of block generation that is accelerated by a simplified mining process, and to generate a block only when a transaction to be stored is generated.
일 측면에 따른, 복수의 노드 단말들이 데이터를 동기화하여 저장하기 위해 형성한 블록 체인 및 상기 블록 체인의 데이터의 저장, 조회 및 삭제를 관리하는 장치는, 조회 요청에 의해 제공된 체인 정보를 이용하여 상기 블록 체인을 관리하는 체인 명령 및 조회 요청에 의해 제공된 매핑 정보를 이용하여 상기 데이터를 관리하는 데이터 명령을 상기 노드 단말로 전송하여 상기 데이터의 관리를 제어하는 메인 제어부; 및 상기 메인 제어부로부터 상기 체인 명령에 의해 생성된 체인의 상기 체인 정보를 입력받아 체인 테이블에 저장하고, 상기 요청에 따라 저장된 체인 정보를 조회하여 제공하고, 상기 메인 제어부로부터 상기 데이터 명령에 의해 저장된 데이터 및 트랜잭션의 매핑 정보를 입력받아 체인 테이블에 저장하고, 상기 요청에 따라 저장된 매핑 정보를 조회하여 제공하는 DB 관리부를 포함한다.According to an aspect, a block chain formed by a plurality of node terminals to synchronize and store data, and an apparatus for managing storage, inquiry, and deletion of data of the block chain may be configured using the chain information provided by an inquiry request. A main control unit controlling a management of the data by transmitting a data command for managing the data to the node terminal using a chain command for managing a block chain and mapping information provided by an inquiry request; And receiving the chain information of the chain generated by the chain command from the main controller, storing the chain information in a chain table, querying and providing the stored chain information according to the request, and storing the data stored by the data command from the main controller. And a DB management unit which receives the mapping information of the transaction, stores it in the chain table, and searches and provides the stored mapping information according to the request.
상기 블록 체인은, 권한이 정의된 사용자에게만 데이터 접근이 허락되는 Private 모드를 제공하는 제 1기능; 블록 체인의 데이터 처리에 수수료가 없는 제 2기능; 블록 체인에 요구되는 노드 단말에 대한 마이닝 노드의 작업 증명 과정에서 노드의 검증 처리를 제거하고 데이터의 유효성 검증 처리를 수행하는 제 3기능; 상기 작업 증명 과정에 의해 단축된 블록의 생성 시간을 지연시키기 위해 딜레이를 주어 블록 생성 시간을 지연시키는 제 4기능; 및 저장 대상의 트랜잭션이 발생된 경우에만 블록을 생성하는 제 5기능 중에서 적어도 하나 이상의 기능이 설정되어 각각의 노드 단말에서 실행된다.The blockchain may include a first function of providing a private mode in which data access is permitted only to a user whose authority is defined; A second function that is free of fees for data processing of the blockchain; A third function of removing a verification process of a node and performing a data validation process in a process of proving a mining node's work for a node terminal required for a block chain; A fourth function of delaying a block generation time by giving a delay to delay a generation time of a block shortened by the proof-of-work process; And at least one or more functions of the fifth function of generating a block only when a transaction to be stored is generated and executed in each node terminal.
상기 장치는, 웹 페이지를 통해 사용자 인터페이스를 제공하여 상기 체인 및 데이터의 관리 정보를 입력받고, 입력된 관리 정보의 처리 결과를 제공하는 웹 관리부를 더 포함한다.The apparatus further includes a web management unit which provides a user interface through a web page to receive management information of the chain and data, and provide a processing result of the input management information.
상기 장치는, 상기 관리를 위한 스케쥴링 정보를 등록받고, 등록된 스케쥴링 정보에 대응되는 프로세스의 실행을 상기 메인 제어부로 요청하는 스케쥴러부를 더 포함하고, 상기 메인 제어부는 상기 요청에 의해 대응되는 명령을 전송한다.The apparatus may further include a scheduler configured to register the scheduling information for management and request the main controller to execute a process corresponding to the registered scheduling information, wherein the main controller transmits a command corresponding to the request. do.
다른 측면에 따른, 상기 노드 단말은, 블록을 생성해서 체인에 연결하는 마이닝 처리 및 블록 체인의 데이터 정보를 API(Application program interface)를 통해 제공하는 마이닝 API 노드 단말; 및 마이닝 API 노드 단말에 의해 블록 체인의 데이터 관리가 동기화되는 데이터 동기화 노드 단말로 구성된다.According to another aspect, the node terminal comprises: a mining API node terminal for generating a block through a mining process and data information of the block chain through an application program interface (API); And a data synchronization node terminal in which data management of the block chain is synchronized by the mining API node terminal.
상기 마이닝 API 노드 단말은, 상기 체인 명령을 전송받고, 전송받은 체인 명령에 따른 블록 체인의 생성, 삭제 및 실행을 처리하고, 처리 결과를 응답하는 체인 생성부; 상기 데이터 명령을 전송받고, 전송받은 데이터 명령을 처리하고, 처리 결과를 응답하는 명령 프로세서부; 및 상기 처리에 따른 데이터 명령을 블록 체인에 대해 실행하는 블록 체인 처리부를 포함한다.The mining API node terminal may include: a chain generation unit configured to receive the chain command, process generation, deletion, and execution of a block chain according to the received chain command, and respond to a processing result; A command processor for receiving the data command, processing the received data command, and responding to the processing result; And a block chain processing unit that executes a data command according to the processing on the block chain.
상기 데이터 동기화 노드 단말은, 상기 체인 명령을 전송받고, 전송받은 체인 명령에 따른 블록 체인의 생성, 삭제 및 실행을 처리하고, 처리 결과를 응답하는 체인 생성부; 및 상기 마이닝 API 노드 단말의 블록 체인 처리부와 포트 연결되고, 연결된 포트를 통해 전송된 데이터 명령을 동기화하여 실행하는 블록 체인 처리부를 포함한다.The data synchronization node terminal may include: a chain generation unit configured to receive the chain command, process generation, deletion, and execution of a block chain according to the received chain command, and respond to a processing result; And a block chain processing unit connected to the block chain processing unit of the mining API node terminal in synchronization with the data command transmitted through the connected port.
다른 측면에 따르면, 상기 메인 제어부는, 블록 체인에 의해 관리되는 각각의 데이터 파일의 파일 정보로부터 체인 아이디를 생성하고, 생성된 체인 아이디에 수식을 적용하여 포트 아이디를 생성하고, 생성된 체인 아이디를 이용하여 블록 체인에 저장되는 파일의 폴더 경로를 생성한다.According to another aspect, the main controller generates a chain ID from the file information of each data file managed by the block chain, generates a port ID by applying a formula to the generated chain ID, and generates the chain ID. Create a folder path for the files stored in the blockchain.
상기 메인 제어부는, 저장 대상의 데이터 파일의 파일 정보를 입력받고, 입력된 파일 정보에 대응되는 체인 정보를 상기 체인 테이블로부터 조회하고, 조회된 체인 정보에 따른 상기 데이터 명령을 상기 노드 단말로 전송하여 데이터 저장을 요청하고, 상기 데이터 명령의 저장 결과를 전송받고, 상기 DB 관리부는, 전송된 저장 결과의 파일 아이디, 블록 체인에 의해 저장시 생성된 트랜잭션 아이디 및 저장 시간을 포함하는 매핑 정보를 상기 매핑 테이블에 저장한다.The main control unit receives file information of a data file to be stored, inquires chain information corresponding to the input file information from the chain table, and transmits the data command according to the inquired chain information to the node terminal. Requests data storage, receives the storage result of the data command, and the DB manager maps the mapping information including the file ID of the transmitted storage result, the transaction ID generated during the storage by the blockchain, and the storage time. Save to a table.
상기 메인 제어부는, 파일 정보를 이용하여 생성된 체인 아이디를 키로 하여 상기 체인 테이블로부터 체인 정보를 조회하는데 실패할 경우, 생성된 체인 아이디를 갖는 블록 체인의 생성 및 실행을 요청하는 상기 체인 명령을 전송하고, 상기 체인 명령의 실행 결과를 전송받고, 상기 DB 관리부는, 전송된 실행 결과를 이용하여 각 체인별로 체인 아이디, 루트 디렉토리 및 실행 상태를 포함하는 상기 체인 정보를 생성하고, 생성된 체인 정보를 상기 체인 테이블에 저장한다.The main control unit transmits the chain command requesting generation and execution of a block chain having the generated chain ID when the chain information generated from the chain information fails to inquire the chain information from the chain table. Receiving the execution result of the chain command, the DB manager generates the chain information including a chain ID, a root directory, and an execution state for each chain by using the transmitted execution result, and generates the generated chain information. Store in the chain table.
상기 메인 제어부는, 조회 대상의 데이터 파일의 파일 정보를 입력받고, 입력된 파일 정보에 대응되는 매핑 정보를 상기 매핑 테이블로부터 조회하고, 조회된 매핑 정보에 따른 상기 데이터 명령을 상기 노드 단말로 전송하여 데이터 조회를 요청하고, 조회된 파일 및 상기 데이터 명령의 조회 결과를 수신하고, 전송된 파일을 제공하는 것을 특징으로 하는 장치.The main controller receives file information of a data file to be queried, inquires mapping information corresponding to the input file information from the mapping table, and transmits the data command according to the inquired mapping information to the node terminal. Requesting data inquiry, receiving the inquiry file and the inquiry result of the data command, and providing the transmitted file.
또 다른 측면에 따른, 복수의 노드 단말들이 데이터를 동기화하여 저장하기 위해 형성한 블록 체인 및 상기 블록 체인의 데이터를 관리하는 장치가 데이터 파일을 저장하는 방법은, 저장 대상의 데이터 파일의 파일 정보로부터 체인 아이디를 생성하는 단계; 생성된 체인 아이디를 키로 하여 체인 테이블로부터 체인 정보를 조회하는 단계; 조회된 체인 정보에 따라 상기 파일의 저장을 요청하는 데이터 명령을 생성하고, 상기 노드 단말로 생성된 데이터 명령 및 파일을 전송하여 상기 블록 체인에 저장하는 단계; 및 상기 노드 단말로부터 전송받은 파일의 저장 결과를 이용하여 매핑 테이블에 데이터 및 트랜잭션의 매핑 정보를 저장하는 단계를 포함한다.According to yet another aspect, a blockchain formed by a plurality of node terminals for synchronizing and storing data, and a method for storing a data file by an apparatus managing data of the blockchain may include: from file information of a data file to be stored Generating a chain ID; Querying the chain information from the chain table using the generated chain ID as a key; Generating a data command requesting storage of the file according to the inquired chain information, and transmitting the generated data command and file to the node terminal and storing the data command in the block chain; And storing mapping information of data and transactions in a mapping table by using a result of storing the file received from the node terminal.
또 다른 측면에 따른, 복수의 노드 단말들이 데이터를 동기화하여 저장하기 위해 형성한 블록 체인 및 상기 블록 체인의 데이터를 관리하는 장치가 데이터 파일을 조회하는 방법은, 사용자 단말로부터 조회 대상의 파일의 아이디를 입력받는 단계; 입력된 파일 아이디를 키로 하여 매핑 테이블로부터 매핑 정보를 조회하는 단계; 조회된 매핑 정보에 따라 상기 파일의 조회를 요청하는 데이터 명령을 생성하고, 상기 노드 단말로 생성된 데이터 명령을 전송하는 단계; 상기 노드 단말로부터 조회된 데이터 파일을 수신하는 단계; 및 수신된 파일을 상기 사용자 단말로 전송하는 단계를 포함한다.According to another aspect, a blockchain formed by a plurality of node terminals for synchronizing and storing data and a method for inquiring a data file by an apparatus managing data of the blockchain may include an ID of a file to be queried from a user terminal. Receiving an input; Retrieving mapping information from the mapping table using the input file ID as a key; Generating a data command for requesting the inquiry of the file according to the inquired mapping information and transmitting the generated data command to the node terminal; Receiving a data file queried from the node terminal; And transmitting the received file to the user terminal.
본 발명의 일 측면에 따르면, 파일 시스템의 블록 크기 제한에 따라 빈 공간이 제거된 블록 체인의 저장 영역에 데이터를 보관하므로 저장 영역에 대비하여 효율적인 데이터 저장이 가능하다.According to an aspect of the present invention, the data is stored in the storage area of the blockchain from which empty space is removed according to the block size limitation of the file system, thereby enabling efficient data storage in preparation for the storage area.
또한, 본 발명의 다른 측면에 따르면, 블록 체인에 설정된 Private 모드에 의해 권한이 설정된 사용자만 관리 서버를 통해 데이터의 액세스 및 관리가 가능하므로 데이터의 보안이 유지될 수 있다.In addition, according to another aspect of the present invention, since only the user whose authority is set by the private mode set in the blockchain can access and manage the data through the management server, data security can be maintained.
또한, 본 발명의 다른 측면에 따르면, 관리 서버로부터 명령을 수신하여 마이닝 기능 및 API 기능을 제공하는 명령 노드와 상기 명령 노드에 데이터가 동기되는 동기화 노드로 노드 단말을 구성함으로써, 데이터 보안 및 데이터 백업을 제공할 수 있다.Further, according to another aspect of the present invention, by configuring a node terminal with a command node for receiving a command from the management server to provide a mining function and API functions and a synchronization node in which data is synchronized to the command node, data security and data backup Can be provided.
또한, 본 발명의 다른 측면에 따르면, 블록 체인의 트랜잭션 발생에 따른 공개 장부의 서비스의 수수료를 제거하여 수수료가 없이 데이터를 관리하므로 적은 비용으로 블록 체인 기반의 DB의 구축이 가능하다.In addition, according to another aspect of the present invention, it is possible to build a blockchain-based DB at a low cost because by eliminating the fees of the service of the open book according to the transaction of the blockchain to manage data without a fee.
본 명세서에 첨부되는 다음의 도면들은 본 발명의 바람직한 실시예를 예시하는 것이며, 후술한 발명의 상세한 설명과 함께 본 발명의 기술사상을 더욱 이해시키는 역할을 하는 것이므로, 본 발명은 그러한 도면에 기재된 사항에만 한정되어 해석되지 않아야 한다.The following drawings attached to this specification are illustrative of preferred embodiments of the present invention, and together with the detailed description of the invention to serve to further understand the technical spirit of the present invention, the present invention is a matter described in such drawings It should not be construed as limited to.
본 명세서에 첨부되는 다음의 도면들은 본 발명의 바람직한 실시예를 예시하는 것이며, 후술한 발명의 상세한 설명과 함께 본 발명의 기술사상을 더욱 이해시키는 역할을 하는 것이므로, 본 발명은 그러한 도면에 기재된 사항에만 한정되어 해석되지 않아야 한다.The following drawings attached to this specification are illustrative of preferred embodiments of the present invention, and together with the detailed description of the invention to serve to further understand the technical spirit of the present invention, the present invention is a matter described in such drawings It should not be construed as limited to.
도 1 내지 도 5는 본 발명이 적용되는 블록 체인의 예시도이다.1 to 5 are exemplary diagrams of a blockchain to which the present invention is applied.
도 6은 본 발명의 블록 체인에 설정되는 고유 기능들의 개략적 구성도이다.6 is a schematic structural diagram of unique functions set in the blockchain of the present invention.
도 7은 본 발명의 일 실시예에 따른 데이터 관리 시스템의 개략적 내부 구성도이다.7 is a schematic internal configuration diagram of a data management system according to an embodiment of the present invention.
도 8은 본 발명의 일 실시예에 따른 블록 체인에 데이터를 저장하는 방법의 개략적 순서도이다.8 is a schematic flowchart of a method for storing data in a blockchain according to an embodiment of the present invention.
도 9는 본 발명의 일 실시예에 따른 데이터 조회 방법의 개략적 순서도이다.9 is a schematic flowchart of a data inquiry method according to an embodiment of the present invention.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 상세히 설명하기로 한다. 이에 앞서, 본 명세서 및 청구 범위에 사용된 용어나 단어는 통상적이거나 사전적인 의미로 한정해서 해석되어서는 아니되며, 발명자는 그 자신의 발명을 가장 최선의 방법으로 설명하기 위해 용어의 개념을 적절하게 정의할 수 있다는 원칙에 입각하여 본 발명의 기술적 사상에 부합하는 의미와 개념으로 해석되어야만 한다. 따라서, 본 명세서에 기재된 실시예와 도면에 도시된 구성은 본 발명의 가장 바람직한 일 실시예에 불과할 뿐이고 본 발명의 기술적 사상에 모두 대변하는 것은 아니므로, 본 출원 시점에 있어서 이들을 대체할 수 있는 다양한 균등물과 변형예들이 있을 수 있음을 이해하여야 한다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings. Prior to this, terms or words used in the present specification and claims should not be construed as being limited to the common or dictionary meanings, and the inventors should properly explain the concept of terms in order to explain their invention in the best way. Based on the principle that can be defined, it should be interpreted as meaning and concept corresponding to the technical idea of the present invention. Therefore, the embodiments described in the specification and the drawings shown in the drawings are only the most preferred embodiment of the present invention and do not represent all of the technical spirit of the present invention, various modifications that can be substituted at the time of the present application It should be understood that there may be equivalents and variations.
도 1은 본 발명이 적용되는 블록 체인(100)의 예시도이다.1 is an exemplary view of a block chain 100 to which the present invention is applied.
블록 체인(100)은 클라우드 저장 기능과 P2P 기능을 기반으로 구축된 분산형 데이터베이스이다. 대표적으로, 비트 코인, 이더리움 등은 블록 체인을 기반으로 제공된다. 블록 체인(100)은 데이터가 저장되는 단위의 블록(101)들과 블록 사이의 데이터 링크에 해당되는 체인(102)으로 구성된다.The blockchain 100 is a distributed database built on cloud storage and P2P functions. Typically, Bitcoin, Ethereum, etc. are provided on the blockchain. The block chain 100 is composed of blocks 101 of a unit in which data is stored and a chain 102 corresponding to a data link between the blocks.
블록 체인(100)은 분산형/관계형 데이터 DB로서 파일 시스템으로부터 독립되어 DB에 할당된 저장 영역을 하나의 영역으로 하여 데이터를 저장한다. 따라서, 파일 시스템에 종속되는 블록 크기의 제한을 받지 않는다. 따라서, 상기 블록 크기의 제한에 의해 발생되는 빈 영역이 발생되지 않는다.The blockchain 100 is a distributed / relational data DB and stores data using a storage area allocated to the DB independently from the file system as one area. Therefore, it is not limited by the block size dependent on the file system. Therefore, no empty area generated by the limitation of the block size is generated.
도 2는 도 1의 블록 체인(100)이 구축되는 노드 단말(200)의 예시도이다.2 is an exemplary diagram of a node terminal 200 in which the blockchain 100 of FIG. 1 is constructed.
상기 노드 단말(200)은 데이터의 저장 공간을 제공하는 컴퓨터 장치이다. 노드 단말(200)은 스마트 단말, 노트북, PC, 서버 등으로 네트워크 기능, 저장 기능 및 프로세싱 기능을 갖기만 하면 스펙에 제한을 두지 않는다. 블록 체인(100)에서는 상기 컴퓨터 장치를 노드라 한다.The node terminal 200 is a computer device that provides a storage space for data. The node terminal 200 is not limited to the specification as long as it has a network function, a storage function, and a processing function as a smart terminal, a notebook computer, a PC, a server, and the like. In the block chain 100, the computer device is called a node.
도 3은 도 2의 노드 단말(200)에 복수개의 고유한 체인(300)이 설치된 것을 예시한다.3 illustrates that a plurality of unique chains 300 are installed in the node terminal 200 of FIG. 2.
공개 장부 기술의 특성상 한 개의 노드 단말(200)은 한 개의 체인(300)을 관리하는 것이 보편적인 방법이다. 화폐 거래의 장부 기록이 데이터의 신뢰성을 보장받기 위해 한 개의 공개 장부를 두고, 각 노드들이 동기성 및 공개성을 기반으로 동일한 공개 장부를 1개의 체인으로 보관하여 관리하기 때문이다.Due to the nature of open book technology, it is common for one node terminal 200 to manage one chain 300. This is because the book record of the monetary transaction has one open book to ensure the reliability of the data, and each node maintains and manages the same open book in one chain based on synchronization and openness.
하지만, 본 발명은 공개 장부를 보관하는 것이 아닌 지속적으로 증가하는 문서, 이미지 등의 데이터의 관리 및 분류가 목적이기 때문에 그 목적에 따라 분류된 복수개의 체인(300)에 기반된 데이터의 분산화가 바람직하다.However, since the present invention aims to manage and classify data such as documents, images, and the like, which is not kept in the open book, the distribution of data based on a plurality of chains 300 classified according to the purpose is desirable. Do.
도 4는 3개의 노드 단말(200)이 4개의 체인에 대해 페어링을 통해 동기화되는 예시도이다.4 is an exemplary diagram in which three node terminals 200 are synchronized through pairing for four chains.
각 노드 단말(200)은 #1 ~ #4의 4개의 고유한 블록 체인을 갖는다. 각각의 체인은 페어링(401~404)을 맺고 데이터가 동기화된다. 각 체인은 3개의 노드로 구성되어 있다라고 표현할 수 있다. 즉, 3개의 노드 단말(200)에 보관된 각각의 체인 #1은 제 1페어링(401)에 의해 동일한 데이터를 저장하도록 동기화된다. 동기화에 의해, 제 1노드의 체인 #1에 데이터의 저장, 삭제 등의 처리가 발생되면, 제 1페어링(401)을 맺은 나머지 제 2노드 및 제 3노드의 체인 #1도 동일한 데이터의 처리가 발생된다.Each node terminal 200 has four unique block chains # 1 to # 4. Each chain establishes pairings 401-404 and data is synchronized. Each chain can be described as consisting of three nodes. That is, each chain # 1 stored in the three node terminals 200 is synchronized by the first pairing 401 to store the same data. When synchronization, processing such as storing or deleting data occurs in the chain # 1 of the first node, the same data processing is performed for the chain # 1 of the second and third nodes remaining in the first pairing 401. Is generated.
기술적으로, 페어링을 맺는 체인끼리는 동일한 포트를 사용하여 통신을 하게 된다. #1 ~ #4의 체인은 각각 고유한 포트를 사용함으로써 독립된 체인으로 동작할 수 있다.Technically, paired chains communicate using the same port. Each chain of # 1 to # 4 can operate as an independent chain by using unique ports.
도 5는 도 4의 블록 체인 환경에서 운영되는 복수개의 노드 그룹의 예시도이다.5 is an exemplary diagram of a plurality of node groups operating in the blockchain environment of FIG. 4.
노드 단말(200)은 3개의 노드로 구성된 노드 그룹 #1(500) 및 노드 그룹 #2(501)의 어느 한 노드에 해당된다. 체인의 구분에 의해, 노드 그룹 #1(500)은 각 노드마다 체인 #1 ~ #4를 보유하고, 각각의 체인은 페어링된다. 노드 그룹 #2(501)은 각 노드마다 체인 #5 ~ #8을 보유하고, 각각의 체인은 페어링된다. 각 체인간의 페어링 연결은 간략한 표시를 위해 생략된다.The node terminal 200 corresponds to any one node of the node group # 1 500 and the node group # 2 501 including three nodes. By division of the chain, node group # 1 500 holds chains # 1 to # 4 for each node, and each chain is paired. Node group # 2 501 holds chains # 5-# 8 for each node, with each chain paired. Pairing connections between each chain are omitted for simplicity.
한 개의 노드가 #1 ~ #8의 8개 체인을 갖는 것과 비교하면, 분리된 노드 그룹에 의해 부하가 분산될 수 있다. 1개의 체인이 동작하기 위해선 CPU, 메모리, 저장 공간 등의 자원이 필요하게 되는데, 여러 개의 체인을 동시에 실행시키기엔 1개의 노드로 부하가 집중되므로, 노드 그룹으로 분리하여 부하가 분산될 수 있다. 또한, 부하의 분산을 통해, 그룹 노드의 1개의 노드가 물리적으로 고장이 발생할 경우에도 서비스 운용에 미치는 영향을 감소시킬 수 있다. 만약, 8개의 체인을 저장하는 노드가 고장일 경우, 8개의 체인에 대한 데이터 액세스가 불능이 된다.Compared with one node having eight chains of # 1 to # 8, the load may be distributed by separate node groups. In order for one chain to operate, resources such as CPU, memory, and storage space are required. In order to execute several chains simultaneously, loads are concentrated on one node, so that loads can be divided into node groups. In addition, through load balancing, even if one node of a group node physically fails, the influence on service operation can be reduced. If a node storing eight chains fails, data access to the eight chains is disabled.
도 6은 본 발명의 블록 체인의 위해 설정되는 수정 기능들의 개략적 구성도이다.6 is a schematic structural diagram of modification functions set for the blockchain of the present invention.
본 발명은 블록 체인의 고유한 기능을 적용받는다. 첫 번째로, 블록 체인의 DB를 이용하므로 저장 영역의 공간 낭비가 제거된다. 두 번째로, 데이터가 블록 체인의 블록에 포함되므로 이 데이터에 접근하기 위해선 특별한 권한(관리자 계정)을 획득해야만 하므로 보안성이 강화된다. 세 번째로, 블록 체인이 보유한 노드들 간에 동기화가 지원되어 실시간 백업이 가능하여 원본 손실의 위험이 회피된다. 마지막으로, 블록체인 기술을 이용한 시스템을 구축하기 위해 고가의 장비나 소프트웨어 없이도 x86 서버와 오픈 소스를 이용해서도 구현이 가능하므로 비용이 절감된다.The present invention is subject to the unique functions of the blockchain. First, the use of blockchain DBs eliminates waste of storage space. Second, because data is contained in blocks in the blockchain, access to this data requires special privileges (administrator accounts) to increase security. Third, synchronization is supported between the nodes held by the blockchain, enabling real-time backup to avoid the risk of original loss. Finally, cost savings can be achieved by using x86 servers and open source to build a system using blockchain technology without expensive equipment or software.
이때, 비트 코인이나 이더리움 등 블록 체인 기술을 대표하는 종래의 기술을 바로 적용할 수는 없다. 본 발명을 구현하는 데에는 최적화된 별도의 체인이 요구된다. 물론, 종래의 기술을 수정 및 응용하여 본 발명의 블록 체인을 구현하는 것도 가능하다. 바람직하게, 본 발명에서는 이더리움의 블록 체인으로부터 응용될 수 있다. 비트 코인의 경우, 화폐의 유통, 사용이라는 목적에만 최적화되어 있는 기술인데다 이더리움처럼 스마트 컨트랙트 같은 개념도 구현되지 않은 기술이라 본 발명에서 제시하는 일반 데이터 저장에는 적합하지 않다. 물론, 이더리움의 블록 체인 방식도 그대로 사용 가능한 것은 아니며 아래에서 제시한 제 1기능 내지 제 5기능의 수정 기능이 필요하다.At this time, conventional techniques representing blockchain technologies such as Bitcoin or Ethereum cannot be directly applied. Implementation of the present invention requires an optimized separate chain. Of course, it is also possible to implement the blockchain of the present invention by modifying and applying the prior art. Preferably, the present invention can be applied from the blockchain of Ethereum. In the case of bitcoin, the technology is optimized only for the purpose of circulation and use of money, and it is not suitable for general data storage proposed in the present invention because the technology such as smart contract has not been implemented. Of course, Ethereum's blockchain method is not available as it is, and a correction function of the first to fifth functions described below is required.
제 1기능에 의해, 블록 체인의 노드들 사이의 네트워크 구성은 Private 모드로 설정된다. 권한 있는 사용자만 사용할 서비스이기 때문에 타 사용자들에게 공개될 필요는 없다.By the first function, the network configuration between the nodes in the blockchain is set to the private mode. The service does not need to be disclosed to other users because only authorized users can use it.
제 2기능에 의해, 블록 체인의 데이터 처리에 수수료가 없는 것으로 설정된다. 블록 체인이란 기술은 본래 탈중앙 집권을 표방한 공공의 데이터베이스이다. 따라서, 블록 체인이라는 공공의 데이터베이스를 사용하기 위해선 수수료(사용료)가 수반된다. 하지만, 본 발명은 공공의 데이터베이스가 아닌 사용자만의 전용 데이터베이스로 운용되므로 수수료의 개념이 불필요하다. 따라서 코드 수정을 통해 수수료가 발생되지 않도록 설정되어야 한다.By the second function, the data processing of the blockchain is set to have no fee. Blockchain technology is originally a public database of decentralized powers. Thus, there is a fee for using a public database called blockchain. However, since the present invention is operated as a user-only database rather than a public database, the concept of fees is unnecessary. Therefore, the code should be set up so as not to incur a fee.
제 3기능에 의해, 마이닝 노드의 POW(작업증명, Proof of Work) 과정이 단순화되도록 설정된다. 공공의 블록 체인이라면 누구나 자발적으로 체인의 노드로 참여하는 것을 유도하기 위해 마이닝이라는 과정을 수행한 노드에 금전적인 이득을 제공하고 있다. 이 마이닝 과정은 HW 자원을 최대로 사용하도록 되어 있는데 이 역시 본 발명이 적용할 서비스의 형태엔 불필요한 과정이다. 따라서, 마이닝 과정 중 데이터의 유효성 검증 부분만 남기고, 랜덤 해시 계산에 의한 nonce 값 찾기와 같은 과정은 제거됨으로써 블록이 빠르게 생성되고 CPU / 메모리 등의 자원은 최소화되도록 설정된다.By the third function, the POW (Proof of Work) process of the mining node is set to be simplified. Any public blockchain provides financial benefits to nodes that have performed a process called mining to induce voluntary participation as nodes in the chain. This mining process is to maximize the use of HW resources, which is also unnecessary to the type of service to which the present invention applies. Therefore, only the validation part of the data is left during the mining process, and processes such as finding nonce values by random hash calculation are removed so that blocks are generated quickly and resources such as CPU / memory are minimized.
제 4기능에 의해, 제 3기능의 단순화된 마이닝 과정에서 블록의 생성 속도가 불필요하게 빨라지게 되므로 적절한 속도로 블록이 생성될 수 있도록 딜레이가 설정된다. 딜레이 설정에 의해 블록의 생성 속도가 지연된다.By the fourth function, the delay is set so that the block can be generated at an appropriate speed because the speed of generating the block is unnecessarily faster in the simplified mining process of the third function. The delay setting delays the generation rate of the block.
제 5기능에 의해, 종래의 블록 체인은 트랜잭션이 발생하지 않은 상태에서도 빈 블록이 끊임없이 생성되나 본 발명에서는 불필요한 오버헤드이므로 처리할 트랜잭션이 있을 경우에만 블록 생성을 진행하도록 설정된다.By the fifth function, the conventional blockchain is set to proceed with block generation only when there is a transaction to process because empty blocks are constantly generated even in the absence of a transaction but are unnecessary overhead in the present invention.
상기의 제 1기능 내지 제 5기능의 수정 기능이 설정된 블록 체인은 본 발명에 적용된다. 이하에서는, 설명의 편의를 위해 신용카드사가 고객의 카드 결제시 발생되는 서명 이미지의 데이터 파일을 본 발명의 블록 체인에 저장하는 것으로 예시한다. 물론, 본 발명은 데이터 파일의 내용 및 포맷에 제한을 두지 않는다.The blockchain in which the correction functions of the first to fifth functions described above are set is applied to the present invention. Hereinafter, for convenience of description, the credit card company stores the data file of the signature image generated when the customer pays the card in the blockchain of the present invention. Of course, the present invention does not limit the content and format of the data file.
신용카드사는 POS 단말기로부터 VAN사를 거쳐 전달되는 고객의 서명 이미지를 개개의 파일로 저장하는데 각각의 승인 건의 파일마다 VAN사에서 부여하는 일련번호가 할당되고, 이 일련번호를 파일명으로 하여 압축되지 않은 흑백 비트맵 파일(예 : 일련번호.bmp)로 서명 이미지를 저장한다. 일련번호는 카드 결제의 발생 시각을 포함하는 고유 정보라 가정한다. 서명 이미지의 파일은 2KB 내외로 파일 시스템에 의해 저장될 경우, 블록 사이즈의 제한을 받아 6KB의 빈 영역이 남게 되어 비효율적이다.The credit card company stores the signature image of the customer transferred from the POS terminal to the VAN company in a separate file. Each file of approval is assigned a serial number assigned by the VAN company. Save the signature image as a black and white bitmap file (e.g. serial number.bmp). It is assumed that the serial number is unique information including the time of occurrence of the card settlement. When a file of a signature image is stored by a file system of about 2KB, it is inefficient because a 6KB empty area remains due to a block size limitation.
여기서, 하루에 500만 건의 2KB의 서명 이미지 파일이 생성되고, 법 적용을 받아 5년간 보관되는 것으로 가정한다. 5년간 저장되는 파일의 개수는 500만 * 365 * 5 = 9,125,000,000개가 된다. 파일의 크기는 9,125,000,000 * 2 * 1024에 의해, 16TB가 된다.Here, it is assumed that 5 million 2KB signature image files are generated and stored for 5 years under the law. The number of files stored over five years is 5 million * 365 * 5 = 9,125,000,000. The file size is 16TB, with 9,125,000,000 * 2 * 1024.
16TB를 1개의 체인으로 구성하여 1개의 노드에 저장하는 것은 부하가 집중되어 비효율적이다. 때문에, 복수개의 체인을 구성하여 데이터 크기를 줄이는 것이 효율적이다. 본 발명에서는 저장될 데이터가 발생되는 특성을 고려하여 체인의 관리 단위를 정의하는 것이 바람직하다. 본 발명에서는 서명 이미지의 월 단위로 체인이 생성되고, 5년간 보관되는 체인 60개가 운영되고, 5년이 지난 체인은 1개월이 지날 때마다 삭제되는 것으로 운영된다.Storing 16TB in one chain on one node is inefficient and load-intensive. Therefore, it is efficient to form a plurality of chains to reduce the data size. In the present invention, it is preferable to define the management unit of the chain in consideration of the characteristics that the data to be stored is generated. In the present invention, the chain is generated on a monthly basis of the signature image, and 60 chains stored for 5 years are operated, and the chain after 5 years is operated to be deleted every 1 month.
참고로, 블록 체인에 데이터가 저장되는 방식은 '키/밸류' 형식으로 저장된다. 서명 이미지의 파일의 경우, 파일명이 고유하므로 "키"로 활용될 수 있고, 이미지 파일은 "밸류"에 해당된다.For reference, the way data is stored in the blockchain is stored in 'key / value' format. In the case of the file of the signature image, the file name is unique and thus can be utilized as a "key", and the image file corresponds to "value".
도 7은 본 발명의 일 실시예에 따른 데이터 관리 시스템(700)의 개략적 내부 구성도이다.7 is a schematic internal configuration diagram of a data management system 700 according to an embodiment of the present invention.
본 발명의 일 실시예에 따른 데이터 관리 시스템(700)은 관리 서버(710), 마이닝 API 노드 단말(730) 및 데이터 동기화 노드 단말(750)에 해당되는 각 컴퓨터 장치들을 포함하여 구성된다.The data management system 700 according to an exemplary embodiment of the present invention includes a management server 710, a mining API node terminal 730, and respective computer devices corresponding to the data synchronization node terminal 750.
상기 컴퓨터 장치는, 메모리, 메모리 제어기, 하나 이상의 프로세서(CPU), 주변 인터페이스, 입출력(I/O) 서브시스템, 디스플레이 장치, 입력 장치 및 통신 회로를 포함할 수 있다. 메모리는 고속 랜덤 액세스 메모리를 포함할 수 있고, 또한 하나 이상의 자기 디스크 저장 장치, 플래시 메모리 장치와 같은 불휘발성 메모리, 또는 다른 불휘발성 반도체 메모리 장치를 포함할 수 있다. 프로세서 및 주변 인터페이스와 같은 다른 구성요소에 의한 메모리로의 액세스는 메모리 제어기에 의하여 제어될 수 있다. 메모리는 각종 정보와 프로그램 명령어를 저장할 수 있고, 프로그램은 프로세서에 의해 실행된다. The computer device may include a memory, a memory controller, one or more processors (CPUs), peripheral interfaces, input / output (I / O) subsystems, display devices, input devices, and communication circuits. The memory may include fast random access memory, and may also include one or more magnetic disk storage devices, nonvolatile memory such as flash memory devices, or other nonvolatile semiconductor memory devices. Access to memory by other components such as processors and peripheral interfaces may be controlled by the memory controller. The memory may store various information and program instructions, and the program is executed by the processor.
주변 인터페이스는 컴퓨터 장치의 입출력 주변 장치를 프로세서 및 메모리와 연결한다. 하나 이상의 프로세서는 다양한 소프트웨어 프로그램 및/또는 메모리에 저장되어 있는 명령어 세트를 실행하여 컴퓨터 장치를 위한 여러 기능을 수행하고 데이터를 처리한다. I/O 서브시스템은 디스플레이 장치, 입력 장치와 같은 입출력 주변장치와 주변 인터페이스 사이에 인터페이스를 제공한다. 디스플레이 장치는 LCD(liquid crystal display) 기술 또는 LPD(light emitting polymer display) 기술을 사용할 수 있다. The peripheral interface connects the input and output peripherals of the computer device with the processor and the memory. One or more processors execute a set of instructions stored in various software programs and / or memories to perform various functions and process data for the computer device. I / O subsystems provide an interface between input and output peripherals, such as display devices and input devices, and peripheral interfaces. The display device may use liquid crystal display (LCD) technology or light emitting polymer display (LPD) technology.
프로세서는 컴퓨터 장치에 연관된 동작을 수행하고 명령어들을 수행하도록 구성된 프로세서로서, 예를 들어, 메모리로부터 검색된 명령어들을 이용하여, 컴퓨터 장치의 컴포넌트 간의 입력 및 출력 데이터의 수신과 조작을 제어할 수 있다. 통신 회로는 외부 포트를 통한 통신 또는 RF 신호에 의한 통신을 수행한다. 통신 회로는 전기 신호를 RF 신호로 또는 그 반대로 변환하며 이 RF 신호를 통하여 통신 네트워크, 다른 이동형 게이트웨이 장치 및 통신 장치와 통신할 수 있다.A processor is a processor configured to perform operations associated with a computer device and to perform instructions, for example, using instructions retrieved from a memory to control the reception and manipulation of input and output data between components of the computer device. The communication circuit performs communication via an external port or communication by an RF signal. The communication circuit converts an electrical signal into an RF signal and vice versa and can communicate with the communication network, other mobile gateway devices and communication devices through the RF signal.
상기 관리 서버(710)는 본 발명의 장치로서, 웹 관리부(711), 스케쥴러부(713), 메인 제어부(715) 및 DB 관리부(717)를 포함하여 구성된다. 이 구성 요소(711~717)들은 명령어들이 코딩된 소프트웨어로 구현되어 메모리에 저장되어 프로세서에 의해 실행될 수 있고, 또는 소프트웨어와 하드웨어의 조합으로 구현될 수도 있다.The management server 710 is a device of the present invention, and includes a web manager 711, a scheduler 713, a main controller 715, and a DB manager 717. These components 711 to 717 may be implemented in coded software, stored in memory, executed by a processor, or may be implemented in a combination of software and hardware.
상기 웹 관리부(711)는 웹 사이트에 접속한 사용자 단말을 상대로 사용자 UI를 이용하여 데이터 관리 서비스를 제공한다. 웹 관리부(711)는 관리 서비스를 제공하여 체인의 현재 상태, 체인에 담긴 레코드의 현황, 체인으로부터 조회된 데이터를 사용자 단말로 제공한다.The web manager 711 provides a data management service using a user UI to a user terminal accessing a web site. The web manager 711 provides a management service to provide the user terminal with the current status of the chain, the current status of the records contained in the chain, and data inquired from the chain.
여기서, "데이터 관리 서비스"는 체인 및 데이터 각각에 대한 생성, 조회, 수정 및 삭제를 포함한다. 웹 관리부(711)는 웹 사이트에 접속한 사용자에게 사용자 UI를 제공하고, 사용자 UI를 통해 데이터 관리 요청을 수신하고, 수신된 사용자의 요청을 메인 제어부(715)로 전달한다. 메인 제어부(715)에 의해 사용자의 요청이 처리되면, 웹 관리부(711)는 메인 제어부(715)로부터 처리 결과를 수신하고, 사용자 UI를 통해 수신된 처리 결과를 사용자에게 제공한다. 물론, 처리 결과는 체인 및 데이터에 대해 생성, 조회, 수정 및 삭제가 실행된 결과이다.Here, the "data management service" includes creation, inquiry, modification and deletion of each of the chain and the data. The web manager 711 provides a user UI to a user accessing a web site, receives a data management request through the user UI, and transmits the received user's request to the main controller 715. When the user's request is processed by the main controller 715, the web manager 711 receives the processing result from the main controller 715, and provides the user with the processing result received through the user UI. Of course, the result of processing is the result of the creation, inquiry, modification and deletion of the chain and data.
상기 스케쥴러부(713)는 데이터 관리의 스케쥴링 정보를 등록받고, 등록된 스케쥴링 정보의 프로세스의 실행을 메인 제어부(715)로 요청한다. 메인 제어부(715)에 의해 스케쥴러부(713)의 요청이 처리되면, 스케쥴러부(713)는 메인 제어부(715)로부터 스케쥴링된 프로세스의 처리 결과를 수신한다.The scheduler 713 registers scheduling information of data management, and requests the main controller 715 to execute a process of registered scheduling information. When the request of the scheduler 713 is processed by the main controller 715, the scheduler 713 receives a processing result of the scheduled process from the main controller 715.
웹 관리부(711)가 사용자로부터 데이터 관리를 예약받으면, 스케쥴러부(713)에 사용자의 예약 정보가 스케쥴링 정보로서 등록된다. 웹 관리부(711)는 사용자로부터 실시간 또는 스케쥴링의 방식에 따라 관리 요청을 수신할 수 있다. 등록된 스케쥴링 정보는 사용자에 의해 예약된 시간 및 예약된 관리 정보를 포함한다. 예를 들어, 매월 생성된 체인이 5년간 데이터를 저장한 후, 1개월이 경과될 때마다 삭제되는 프로세스가 스케쥴링 정보로서 등록될 수 있다.When the web manager 711 is reserved data management from the user, the user's reservation information is registered in the scheduler 713 as the scheduling information. The web manager 711 may receive a management request from a user according to a real time or scheduling method. The registered scheduling information includes a time reserved by the user and reserved management information. For example, after a chain created monthly stores data for five years, a process deleted every one month may be registered as scheduling information.
상기 메인 제어부(715)는 노드로 상기 블록 체인을 관리하는 체인 명령 및 상기 데이터를 관리하는 데이터 명령을 전송한다. 상기 전송에 의해, 블록 체인 및 데이터의 관리가 제어된다. 메인 제어부(715)는 관리 대상의 파일의 파일명으로부터 설정된 규칙에 따라 체인 아이디 및 파일 아이디를 생성한다.The main controller 715 transmits a chain command for managing the block chain and a data command for managing the data to a node. By this transfer, the management of the blockchain and data is controlled. The main controller 715 generates a chain ID and a file ID according to a rule set from a file name of a file to be managed.
저장의 경우, 메인 제어부(715)는 저장 대상의 파일명으로부터 체인 아이디를 생성하고, 생성된 체인 아이디의 체인 정보를 조회한다. 조회된 체인 정보로부터 파일의 경로 정보를 식별하고, 식별된 경로 정보에 데이터가 저장될 것을 요구하는 데이터 명령 및 파일을 노드로 전송한다. 그러면, 노드는 경로 정보에 따라 대응되는 체인 및 경로에 파일을 저장한다.In the case of storage, the main control unit 715 generates a chain ID from the file name of the storage target, and inquires the chain information of the generated chain ID. The path information of the file is identified from the inquired chain information, and a data command and a file requesting that data be stored in the identified path information are transmitted to the node. The node then stores the file in the corresponding chain and path according to the path information.
조회의 경우, 메인 제어부(715)는 조회 대상의 파일명으로부터 대응되는 매핑 정보를 조회한다. 조회된 매핑 정보의 트랜잭션 아이디가 포함되는 데이터 조회의 데이터 명령을 노드로 전송한다. 그러면, 노드는 트랜잭션 아이디에 따라 대응되는 파일을 조회하고, 조회된 파일을 메인 제어부(715)로 전송한다. 메인 제어부(715)는 전송받은 파일을 웹 관리부(711)를 통해 사용자 단말로 제공한다.In the case of inquiry, the main controller 715 inquires mapping information corresponding to the file name to be inquired. The data command of the data inquiry including the transaction ID of the inquired mapping information is transmitted to the node. Then, the node inquires a file corresponding to the transaction ID and transmits the inquired file to the main controller 715. The main controller 715 provides the received file to the user terminal through the web manager 711.
삭제의 경우, 조회의 데이터 명령 처리를 따르고, 노드는 트랜잭션 아이디에 따라 대응되는 파일을 삭제한다.In the case of deletion, following the data command processing of the inquiry, the node deletes the corresponding file according to the transaction ID.
상기 DB 관리부(717)는 생성된 체인의 체인 정보가 체인 테이블에서 저장, 조회 및 삭제되는 것을 관리한다. DB 관리부(717)는 메인 제어부(715)를 통해 수신된 체인 생성의 실행 결과를 이용하여 각 체인별로 "체인 아이디, 루트 디렉토리 및 실행 상태"를 포함하는 체인 정보를 생성하고, 생성된 체인 정보를 체인 테이블에 저장한다. 체인 아이디는 체인을 고유하게 식별하는 정보이다. 루트 디렉토리는 체인이 저장되는 루트 디렉토리이다. 체인 아이디 및 루트 디렉토리는 파일에 대응되는 체인을 식별하는 경로 정보를 형성한다. 실행 상태는 관리 명령의 실행을 위해 파일이 저장되는 체인이 실행 상태가 아닐 경우, 체인의 실행을 위해 참조된다.The DB manager 717 manages that the chain information of the generated chain is stored, inquired and deleted in the chain table. The DB manager 717 generates chain information including "chain ID, root directory, and execution status" for each chain using the execution result of the chain generation received through the main controller 715, and generates the generated chain information. Store in the chain table. A chain ID is information that uniquely identifies a chain. The root directory is the root directory where the chain is stored. The chain ID and root directory form path information that identifies the chain corresponding to the file. The execution state is referenced for the execution of the chain if the chain in which the file is stored for execution of the administrative command is not in the execution state.
이후, 파일의 저장 요청이 발생되면, DB 관리부(717)는 메인 제어부(715)의 조회 요청에 따라 관리 대상의 파일에 대응되는 체인 정보를 체인 테이블로부터 조회한다. 조회된 체인 정보로부터 파일에 대응되는 체인 및 접근 경로의 정보가 식별되고, 메인 제어부(715)는 식별된 정보를 이용하여 파일의 저장을 위한 데이터 명령을 내릴 수 있다.Subsequently, when a file storage request is generated, the DB manager 717 inquires the chain information corresponding to the file to be managed from the chain table according to the inquiry request from the main controller 715. The information on the chain and the access path corresponding to the file is identified from the inquired chain information, and the main controller 715 may issue a data command for storing the file using the identified information.
또한, 상기 DB 관리부(717)는 저장이 완료된 데이터 및 저장 트랜잭션의 매핑 정보가 매핑 테이블에서 저장, 조회 및 삭제되는 것을 관리한다. DB 관리부(717)는 메인 제어부(715)를 통해 수신된 데이터 저장의 저장 결과를 이용하여 파일 아이디, 블록 체인에 의해 저장시 생성된 "파일 아이디, 트랜잭션 아이디 및 저장 시간"을 포함하는 매핑 정보를 매핑 테이블에 저장한다. 파일 아이디는 파일명으로부터 생성되고 파일을 식별하는 고유 키이다. 트랜잭션 아이디는 파일의 저장에 의해 블록 체인이 고유하게 생성하고 파일에 액세싱하는 고유 정보이다. 저장 시간은 트랜잭션의 처리 시간이다.In addition, the DB manager 717 manages that the data that has been stored and the mapping information of the stored transaction are stored, inquired, and deleted from the mapping table. The DB management unit 717 uses the storage result of the data storage received through the main control unit 715 to map the mapping information including the file ID and the "file ID, transaction ID and storage time" generated when the data is stored by the blockchain. Save to mapping table. The file ID is a unique key that is generated from the file name and identifies the file. The transaction ID is unique information that the blockchain uniquely generates and accesses to the file by the storage of the file. The storage time is the processing time of the transaction.
이후, 저장된 파일의 관리(예 : 조회, 삭제 등) 요청이 발생되면, DB 관리부(717)는 메인 제어부(715)의 조회 요청에 따라 관리 대상의 파일에 대응되는 매핑 정보를 매핑 테이블로부터 조회한다. 조회된 매핑 정보로부터 파일에 대응되는 트랜잭션 정보가 식별되고, 메인 제어부(715)는 식별된 트랜잭션 정보를 이용하여 저장된 파일의 관리를 위한 데이터 명령을 내릴 수 있다.Then, when a request for management (eg, inquiry, deletion, etc.) of the stored file is generated, the DB manager 717 inquires the mapping information corresponding to the file to be managed from the mapping table according to the inquiry request from the main controller 715. . Transaction information corresponding to the file is identified from the inquired mapping information, and the main controller 715 may issue a data command for managing the stored file using the identified transaction information.
관리 서버(710)는 WAS 포트 통신으로 연결된 마이닝 API 노드 단말(730) 및 데이터 동기화 노드 단말(750)에 대해 블록 체인 및 데이터의 관리를 제어한다. 노드 단말(200)은 마이닝 API 노드 단말(730) 및 데이터 동기화 노드 단말(750)에 해당된다.The management server 710 controls the management of the blockchain and data for the mining API node terminal 730 and the data synchronization node terminal 750 connected by WAS port communication. The node terminal 200 corresponds to the mining API node terminal 730 and the data synchronization node terminal 750.
상기 마이닝 API 노드 단말(730)은 WAS 포트 통신을 통해 메인 제어부(715)로부터 각종 명령을 수신하고, 수신된 명령에 따라 블록을 생성해서 체인에 연결하는 Mining 작업과, 관리 명령(예 : 저장 / 조회 등)을 수신하고, 수신된 명령을 처리하고, 처리 결과를 메인 제어부(715)로 응답하는 API 작업을 수행한다. 마이닝 API 노드 단말(730)은 체인 생성부(731), 블록 체인 모듈(733), 명령 프로세서부(735), 블록 체인 처리부(737)를 포함하여 구성된다.The mining API node terminal 730 receives various commands from the main control unit 715 through WAS port communication, generates a block according to the received commands, connects them to the chain, and manages commands (for example, storage / An inquiry, etc.), processes the received command, and responds to the main controller 715 with the processing result. The mining API node terminal 730 includes a chain generation unit 731, a block chain module 733, an instruction processor unit 735, and a block chain processing unit 737.
상기 체인 생성부(731)는 메인 제어부(715)로부터 체인을 관리하는 체인 명령을 수신하고, 수신된 체인 명령에 대응되는 체인의 생성, 실행(구동) 및 삭제 처리를 수행한다. 블록 체인의 "Chain Maker"는 체인 생성부(731)이다.The chain generation unit 731 receives a chain command for managing a chain from the main control unit 715, and performs a generation, execution (drive), and deletion process of a chain corresponding to the received chain command. The "Chain Maker" of the block chain is the chain generation unit 731.
여기서, 노드에 체인이 만들어지기 위해선 체인의 실행 파일과 부수적인 설정 파일들이 각 노드의 약속된 디렉토리에 미리 배포되어 있어야 한다. 체인 생성부(731)는 배포된 실행 파일들과 설정 파일들을 포함하는 블록 체인 모듈(733)을 이용하여 체인 명령을 처리한다. 체인 명령이 삭제인 경우, 실행 중인 프로세서가 중지되고, 체인 운용으로 인해 생성된 파일들이 삭제된다.Here, in order for a chain to be created on a node, the chain's executables and ancillary configuration files must be distributed in advance to the promised directory of each node. The chain generation unit 731 processes the chain command by using the block chain module 733 including distributed executable files and configuration files. If the chain instruction is a delete, the running processor is stopped and the files created due to the chain operation are deleted.
상기 명령 프로세서부(command processor)(735)는 메인 제어부(715)로부터 데이터를 관리하는 데이터 명령을 수신하고, 수신된 데이터 명령에 대응되는 데이터의 저장, 조회 및 삭제 처리를 수행한다. 명령 프로세서부(735)는 메인 제어부(715)로부터 수신된 데이터 명령을 블록체인 프로세스(737)로 전달하는 역할을 한다. 한편, 명령 프로세서부(735)는 외부 서비스에 연결되어 데이터 명령의 수신이 가능하지만, 보안 연결이 요구된다.The command processor 735 receives a data command for managing data from the main controller 715, and stores, inquires, and deletes data corresponding to the received data command. The command processor 735 transfers the data command received from the main controller 715 to the blockchain process 737. On the other hand, the command processor 735 is connected to an external service to receive a data command, but a secure connection is required.
상기 블록 체인 처리부(737)는 명령 프로세서부(735)로부터 데이터 명령을 수신하여 데이터 관리를 수행한다. 데이터 관리의 수행에 의해 데이터가 체인에 저장, 조회 및 삭제된다. 또한, 블록 체인 처리부(737)는 페어링 기능에 의해 타 노드의 블록 체인 처리부(757)와 동기화 포트 통신을 통해 동기된다.The block chain processor 737 receives a data command from the command processor 735 to perform data management. By performing data management, data is stored, inquired and deleted in the chain. In addition, the block chain processing unit 737 is synchronized with the block chain processing unit 757 of another node through a synchronization port communication by a pairing function.
상기 데이터 동기화 노드 단말(750)은 체인 생성부(751), 블록 체인 모듈(753) 및 블록 체인 처리부(757)를 포함하여 구성된다. 체인 생성부(751) 및 블록 체인 모듈(753)은 마이닝 API 노드 단말(730)의 구성과 동일하다. 또한, 블록 체인 처리부(757)는 마이닝 API 노드 단말(730)의 블록 체인 처리부(737)과 동기된다.The data synchronization node terminal 750 includes a chain generation unit 751, a block chain module 753, and a block chain processing unit 757. The chain generation unit 751 and the block chain module 753 have the same configuration as the mining API node terminal 730. In addition, the block chain processing unit 757 is synchronized with the block chain processing unit 737 of the mining API node terminal 730.
상기 Mining 작업과 API 작업은 마이닝 API 노드 단말(730)에서만 수행되는 것이 차이점이다. 물론, 모든 노드에 명령 프로세서부(735)를 두어 시스템 Fail-Over에 대응하도록 구성될 수도 있다. 다만, 본 발명의 실시예에서는 관리 서버(710)에 대한 마이닝 작업과 API 작업의 창구를 마이닝 API 노드 단말(730)로 일원화하여 데이터의 보안을 유지하고, 마이닝 API 노드 단말(730)과 페어링에 의해 데이터 동기화 노드 단말(750)이 동기화되어 데이터 백업을 제공하고자 한다. 즉, 데이터 보안의 측면에서 권한있는 사용자만 관리 서버(710)에 액세싱이 가능하고, 권한있는 관리 서버(710)만 마이닝 API 노드 단말(730)로 액세싱이 가능하므로 외부의 침입이 원천적으로 차단된다.The difference between the mining operation and the API operation is performed only in the mining API node terminal 730. Of course, the command processor unit 735 may be provided in every node to correspond to the system fail-over. However, in the embodiment of the present invention, the mining operation and the window of the API operation for the management server 710 are unified to the mining API node terminal 730 to maintain data security, and to pair with the mining API node terminal 730. By doing so, the data synchronization node terminal 750 is synchronized to provide data backup. That is, in terms of data security, only an authorized user can access the management server 710, and only an authorized management server 710 can access the mining API node terminal 730. Is blocked.
여기서, 메인 제어부(715) 및 노드 단말들(730, 750) 사이의 상기 WAS 포트 통신은 Java Servlet 형태로 구현되었다고 가정하면, Tomcat, JBOSS 등의 Web Application Server)에서 사용하는 포트를 통해 이루어지게 된다.Here, the WAS port communication between the main controller 715 and the node terminals 730 and 750 is assumed to be implemented in the form of a Java Servlet, and is performed through a port used by a Web Application Server such as Tomcat and JBOSS. .
명령 프로세서부(735) 및 블록 체인 처리부(737) 사이는 RPC (Remote Procedure Call) 포트가 사용된다. 블록 체인 처리부들(737, 750) 사이의 동기화를 위해선 Sync 포트가 사용된다. Sync 포트와 RPC 포트의 아이디는 체인 ID를 통해 계산될 수 있다.An RPC (Remote Procedure Call) port is used between the command processor unit 735 and the block chain processing unit 737. The sync port is used for synchronization between the blockchain processing units 737 and 750. The IDs of the Sync and RPC ports can be calculated from the chain ID.
도 8은 본 발명의 일 실시예에 따른 블록 체인에 데이터를 저장하는 방법의 개략적 순서도이다.8 is a schematic flowchart of a method for storing data in a blockchain according to an embodiment of the present invention.
관리 서버(710)에서 파일 저장의 이벤트가 발생한다. 파일 저장은 사용자가 웹 관리부(711)의 웹 사이트를 통해 파일 저장을 요청할 수 있다. 이외에도 배치 처리 또는 스케쥴러부(713) 등에 의해서도 파일 저장의 이벤트가 발생할 수 있다. 저장 대상의 파일이 웹 사이트의 지정된 디렉토리에 저장되면, 메인 제어부(715)가 이벤트 발생의 알림을 수신한다(S801).An event of file storage occurs in the management server 710. File storage may request the user to save the file through the web site of the web manager 711. In addition, an event of file storage may occur by the batch processing or the scheduler 713 or the like. When the file to be stored is stored in the designated directory of the web site, the main control unit 715 receives a notification of event occurrence (S801).
메인 제어부(715)는 서비스 정책에 따라 파일의 파일 정보(예 : 파일명, 파일 시간 등)를 이용하여 체인 아이디를 생성한다(S811). 여기서, 파일 정보로부터 체인 아이디, 고유 키, 포트 번호 등이 생성될 수 있다. 생성 규칙은 파일명으로부터 고유 값의 추출, 변환, 계산 등의 처리가 수반되는 것이며 특별한 제한을 두지 않는다.The main controller 715 generates a chain ID using file information (eg, file name, file time, etc.) of the file according to the service policy (S811). Here, a chain ID, a unique key, a port number, etc. may be generated from the file information. The creation rule involves processing such as extracting, converting, and calculating a unique value from a file name, with no special limitation.
상기 서명 이미지의 경우, 날짜 시간의 파일명으로부터 년(2)+월(2)의 체인 아이디를 추출하여 생성한다. 예를 들어, 17년 1월에 생성된 서명 이미지 파일은 파일명에 '1701'이 포함되고, 파일명으로부터 추출된 '1701'의 체인 아이디가 생성된다. 고유 키는 파일명이 고유할 경우, 파일명을 그대로 사용할 수 있고, 상기 생성 규칙을 적용하는 것도 가능하다. 상기 포트 번호는 아래의 수식을 이용하여 생성된다.In the case of the signature image, a chain ID of year (2) + month (2) is extracted from the file name of the date time and generated. For example, a signature image file generated in January 17, '1701' is included in a file name, and a chain ID of '1701' extracted from the file name is generated. If the unique key has a unique file name, the file name can be used as it is, and the generation rule can be applied. The port number is generated using the following formula.
<수식><Formula>
동기화 포트 = 체인 아이디 + 10000Sync Port = Chain ID + 10000
RPCRPC 포트 = 동기화 포트 + 3000 Port = Sync Port + 3000
그러면, '1701' 체인 아이디의 경우, 블록 체인 처리부들(737, 757)의 동기화 포트는 '11701'이고, 명령 프로세서부(735)의 RPC 포트는 '14701'이다.Then, in the case of the '1701' chain ID, the synchronization port of the block chain processing units 737 and 757 is '11701', and the RPC port of the command processor unit 735 is '14701'.
체인 아이디가 생성되면, 메인 제어부(715)는 DB 관리부(717)로 체인 아이디를 입력하여 체인 정보를 조회한다(S821). DB 관리부(717)는 체인 아이디를 키로 하여 체인 테이블을 조회하고, 체인의 체인 아이디, 루트 디렉토리 및 실행 상태를 포함하는 체인 정보를 조회하고, 조회된 체인 정보를 메인 제어부(715)로 제공한다.When the chain ID is generated, the main controller 715 inquires the chain information by inputting the chain ID to the DB manager 717 (S821). The DB manager 717 inquires the chain table using the chain ID as a key, inquires the chain information including the chain ID, the root directory, and the execution status of the chain, and provides the inquired chain information to the main controller 715.
만약, 체인 정보의 조회가 실패될 경우(S823), 메인 제어부(715)는 체인 아이디 및 루트 디렉토리를 포함하는 경로명이 포함되고 체인을 생성하는 체인 명령을 생성하고, 생성된 체인 명령을 각 노드의 체인 생성부들(731, 751)로 전송한다(S825). 체인 생성부들(731, 751)은 수신된 경로명에 따라 체인을 생성 및 실행한다. 체인의 생성이 완료되면, 체인 생성부들(731, 751)은 생성 결과를 메인 제어부(715)로 응답한다. 메인 제어부(715)는 응답된 생성 결과를 이용하여 DB 관리부(717)를 통해 체인 테이블에 체인 정보를 저장한다. If the inquiry of the chain information fails (S823), the main controller 715 generates a chain command including a chain name and a path name including a root directory and generating a chain, and generates the chain command of each node. Transmission to the chain generation units 731 and 751 (S825). The chain generation units 731 and 751 generate and execute a chain according to the received path name. When generation of the chain is completed, the chain generation units 731 and 751 respond to the main control unit 715 with the generation result. The main controller 715 stores the chain information in the chain table through the DB manager 717 using the generated result.
서명 이미지의 경우, 루트 디렉토리가 '/CHAIN_DATA' 이고 체인 아이디가 '1701'이라면 데이터 디렉토리의 경로명은 정의된 서비스 정책에 따라 '/CHAIN_DATA/datadir_1701' 가 될 수 있다. 매월 단위로 발생된 서명 이미지가 대응되는 체인에 저장되는 경우, 매월 첫 번째 데이터의 저장이 발생될 경우, 체인을 생성하는 체인 명령이 실행된다. 만일, '/CHAIN_DATA'의 체인 저장 공간이 부족해지면 사용자는 이 위치를 '/CHAIN_DATA2'와 같이 다른 스토리지 영역으로 변경해 줌으로써 확장 이슈도 해결하는 것이 가능하다.For the signature image, if the root directory is '/ CHAIN_DATA' and the chain ID is '1701', the path name of the data directory may be '/ CHAIN_DATA / datadir_1701' according to the defined service policy. When the signature image generated on a monthly basis is stored in the corresponding chain, when the storage of the first data of each month occurs, a chain command for generating a chain is executed. If the chain storage space of '/ CHAIN_DATA' is insufficient, the user can solve the extension issue by changing this location to another storage area such as '/ CHAIN_DATA2'.
또한, 조회된 체인 정보의 실행 상태가 실행 중이 아니면(S827), 메인 제어부(715)는 체인 아이디 및 루트 디렉토리를 포함하는 경로명이 포함되고 체인을 실행하는 체인 명령을 생성하고, 생성된 체인 명령을 각 노드의 체인 생성부들(731, 751)로 전송한다(S829). 체인 생성부들(731, 751)은 수신된 경로명에 따라 체인을 실행한다. 체인의 실행에 의해 체인 테이블의 실행 상태는 실행 중으로 업데이트된다. 처리 효율을 위해 체인은 처리가 완료되면 실행이 종료될 수 있다.In addition, if the execution state of the inquired chain information is not running (S827), the main controller 715 generates a chain command including a chain ID and a path name including the root directory and executes the chain, and generates the generated chain command. Transmission is performed to chain generation units 731 and 751 of each node (S829). The chain generation units 731 and 751 execute the chain according to the received path name. The execution status of the chain table is updated to be executed by the execution of the chain. For processing efficiency, the chain can end execution once processing is complete.
실행 중인 체인의 체인 정보가 조회된 후, 메인 제어부(715)는 파일의 파일 정보(예 : 파일명, 파일 시간 등)로부터 고유한 파일 아이디를 생성한다. 생성된 파일 아이디는 파일을 식별하는 키에 해당된다. 파일 아이디의 생성을 위해, 파일 정보에 각종 변환, 해시 처리 등이 적용될 수 있다. 물론, 파일명이 고유할 경우, 메인 제어부(715)는 파일명을 파일 아이디로 할 수 있다. 메인 제어부(715)는 조회된 체인 정보 및 생성된 파일 아이디를 포함하는 데이터 명령을 생성하고, 생성된 데이터 명령 및 파일을 명령 프로세서부(735)로 전송하여 파일을 저장한다(S831).After the chain information of the running chain is inquired, the main controller 715 generates a unique file ID from file information (eg, file name, file time, etc.) of the file. The generated file ID corresponds to a key for identifying the file. In order to generate the file ID, various conversions, hash processing, and the like may be applied to the file information. Of course, if the file name is unique, the main controller 715 may use the file name as the file ID. The main controller 715 generates a data command including the inquired chain information and the generated file ID, and transmits the generated data command and file to the command processor 735 to store the file (S831).
여기서, 명령 프로세서부(735)는 수신된 데이터 명령을 블록 체인 처리부(737)로 전송하여 블록 체인에 데이터가 저장되도록 요청한다(S833). 블록 체인에 저장되는 파일 정보는 키/밸류의 RDB 형식을 따르며, 파일과 관련된 기타 메타 정보(고유키 등)가 더 저장될 수 있다. 블록 체인 처리부(737)에 의해 데이터가 블록 체인에 저장되면, 동기화된 블록 체인 처리부(757)도 데이터 명령 및 파일을 동기화 포트를 통해 전송받고 파일을 저장하여 동기화 처리한다.Here, the command processor 735 transmits the received data command to the block chain processing unit 737 and requests that data be stored in the block chain (S833). The file information stored in the blockchain follows the RDB format of the key / value, and other meta information related to the file (such as a unique key) may be further stored. When data is stored in the blockchain by the blockchain processing unit 737, the synchronized blockchain processing unit 757 also receives data commands and files through the synchronization port, and stores the files to synchronize the data.
파일 저장이 완료되면, API 작업에 의해 명령 프로세서부(735)는 저장된 파일의 트랜잭션 아이디를 포함하는 파일의 저장 결과를 응답하고, 메인 제어부(715)가 응답 정보를 수신한다(S841). 트랜잭션 아이디는 블록 체인에 데이터 트랜잭션이 저장될 경우 고유하게 생성된다. 메인 제어부(715)는 응답된 저장 결과를 이용하여 DB 관리부(717)를 통해 매핑 테이블에 매핑 정보를 저장한다(S843). 매핑 테이블에는 파일의 메타 정보가 더 저장될 수 있다.When file storage is completed, the command processor 735 responds to the result of storing the file including the transaction ID of the stored file by the API operation, and the main controller 715 receives the response information (S841). The transaction ID is uniquely generated when data transactions are stored on the blockchain. The main controller 715 stores the mapping information in the mapping table through the DB manager 717 using the stored storage result (S843). The meta information of the file may be further stored in the mapping table.
상기 단계(S801) 내지 단계(S843)는 웹 사이트의 디렉토리에 저장된 파일들의 저장이 완료될 때까지 반복된다. 파일들의 저장이 완료된 후, 메인 제어부(715)는 저장이 완료된 파일들을 상기 디렉토리에서 삭제한다(S845).Steps S801 to S843 are repeated until storage of files stored in the directory of the web site is completed. After the storing of the files is completed, the main controller 715 deletes the stored files from the directory (S845).
이후, 메인 제어부(715)는 서비스 정책에 따라 조건이 만족된 체인을 체인 명령을 노드로 전송하여 삭제한다(S851). 서명 이미지의 경우, 5년 1개월이 경과된 체인이 노드로부터 자동 삭제된다.Thereafter, the main controller 715 transmits the chain command to the node and deletes the chain satisfying the condition according to the service policy (S851). In the case of signature images, chains that are five years and one month old are automatically deleted from the node.
도 9는 본 발명의 일 실시예에 따른 데이터 조회 방법의 개략적 순서도이다.9 is a schematic flowchart of a data inquiry method according to an embodiment of the present invention.
관리 서버(710)에서 파일 조회의 이벤트가 발생한다. 파일 조회는 웹 사이트에 접속된 사용자의 요청, 배치 처리 또는 스케쥴러부(713) 등에 의해서 해당 이벤트가 발생될 수 있다. 메인 제어부(715)가 파일 조회의 이벤트가 발생되었음을 알리는 알림에 의해 파일 아이디를 수신한다(S901).An event of file inquiry occurs in the management server 710. In the file inquiry, a corresponding event may be generated by a request of a user connected to a web site, a batch process, or a scheduler 713. The main controller 715 receives the file ID by notifying that the event of file inquiry has occurred (S901).
여기서, 메인 제어부(715)는 매핑 테이블의 매핑 정보를 조회하고, 조회된 매핑 정보를 웹 관리부(711)로 제공하여 사용자가 조회 대상의 파일을 선택하도록 검색 서비스를 제공하는 것도 가능하다.Here, the main controller 715 may search the mapping information of the mapping table and provide the searched mapping information to the web manager 711 to provide a search service for the user to select a file to be queried.
메인 제어부(715)는 수신된 파일 아이디를 키로 하여 매핑 테이블로부터 매핑 정보를 조회한다(S903). 매핑 조회에 실패할 경우, 삭제 대상의 레코드가 존재하지 않는다는 적절한 오류 메시지를 제공한다. 또한, 서비스의 형태에 따라 특정 일자가 경과한 데이터일 경우, 제공을 거부하는 기능이 이 단계에서 추가되는 것도 가능하다.The main controller 715 inquires the mapping information from the mapping table using the received file ID as a key (S903). If mapping lookup fails, provide an appropriate error message that no record to delete exists. In addition, depending on the type of service, a function of refusing to provide the data when a specific date has passed may be added at this stage.
매핑 정보가 조회되면, 메인 제어부(715)는 매핑 정보의 트랜잭션 아이디를 포함하고 데이터의 조회를 요청하는 데이터 명령을 생성하고(S911), 생성된 데이터 명령을 명령 프로세서부(735)로 전송하여 파일의 조회를 요청한다(S913).When the mapping information is inquired, the main controller 715 generates a data command including a transaction ID of the mapping information and requests for inquiry of data (S911), and transmits the generated data command to the command processor unit 735 to send a file. Request an inquiry (S913).
여기서, 명령 프로세서부(735)는 수신된 데이터 명령을 블록 체인 처리부(737)로 전송하여 블록 체인에 저장된 파일의 조회를 요청한다. 블록 체인 처리부(737)에 의해 트랜잭션 아이디의 파일이 조회되고, 명령 프로세서부(735)는 조회된 파일 및 처리 결과를 API 작업에 따라 메인 제어부(715)로 전송한다. 메인 제어부(715)는 명령 프로세서부(735)로부터 파일을 다운로드 수신한다(S921). 다운로드 수신된 파일은 웹 관리부를 통해 사용자에게 다운로드 서비스된다(S931).Here, the command processor 735 transmits the received data command to the block chain processing unit 737 to request an inquiry of a file stored in the block chain. The file of the transaction ID is inquired by the blockchain processing unit 737, and the command processor 735 transmits the inquired file and the processing result to the main control unit 715 according to the API operation. The main control unit 715 downloads and receives a file from the command processor unit 735 (S921). The downloaded file is downloaded to the user through the web management unit (S931).
상기 단계(S901) 내지 단계(S931)는 조회 요청된 파일들의 조회가 완료될 때까지 반복될 수 있다. 파일들의 다운로드 서비스가 완료된 후, 메인 제어부(715)는 다운로드가 완료된 파일들을 다운로드 디렉토리에서 삭제한다Steps S901 through S931 may be repeated until the inquiry of the requested files is completed. After the download service of files is completed, the main controller 715 deletes the downloaded files from the download directory.
한편, 파일의 저장 및 조회 과정에서 데이터 보안을 위해 메인 제어부(715)는 암호화 및 복호화 처리를 수반하는 것이 가능하다. 또한, 웹 사이트의 서비스 정책에 따라 문서 파일이나 이미지 파일의 내용을 보여주는 서비스를 제공하는 것도 가능하다.On the other hand, the main controller 715 may be accompanied by encryption and decryption processing for data security in the process of storing and retrieving the file. It is also possible to provide a service that shows the contents of a document file or an image file according to the service policy of a web site.
본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 이것에 의해 한정되지 않으며 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 본 발명의 기술사상과 아래에 기재될 특허청구범위의 균등범위 내에서 다양한 수정 및 변형이 가능함은 물론이다.Although the present invention has been described by way of limited embodiments and drawings, the present invention is not limited thereto, and the technical spirit of the present invention and the claims to be described below by those skilled in the art to which the present invention pertains. Of course, various modifications and variations are possible within the scope of equivalents.

Claims (21)

  1. 복수의 노드 단말들이 데이터를 동기화하여 저장하기 위해 형성한 블록 체인 및 상기 블록 체인의 데이터의 저장, 조회 및 삭제를 관리하는 장치에 있어서,An apparatus for managing storage, inquiry, and deletion of a block chain formed by a plurality of node terminals to synchronize and store data, and data of the block chain,
    조회 요청에 의해 제공된 체인 정보를 이용하여 상기 블록 체인을 관리하는 체인 명령 및 조회 요청에 의해 제공된 매핑 정보를 이용하여 상기 데이터를 관리하는 데이터 명령을 상기 노드 단말로 전송하여 상기 데이터의 관리를 제어하는 메인 제어부; 및A chain command for managing the block chain using the chain information provided by the inquiry request and a data command for managing the data using the mapping information provided by the inquiry request to the node terminal to control the management of the data. Main controller; And
    상기 메인 제어부로부터 상기 체인 명령에 의해 생성된 체인의 상기 체인 정보를 입력받아 체인 테이블에 저장하고, 상기 요청에 따라 저장된 체인 정보를 조회하여 제공하고, 상기 메인 제어부로부터 상기 데이터 명령에 의해 저장된 데이터 및 트랜잭션의 매핑 정보를 입력받아 체인 테이블에 저장하고, 상기 요청에 따라 저장된 매핑 정보를 조회하여 제공하는 DB 관리부Receiving the chain information of the chain generated by the chain command from the main control unit and storing the chain information in the chain table, querying and providing the stored chain information according to the request, and storing the data stored by the data command from the main control unit; DB management unit that receives the mapping information of the transaction and stores it in the chain table, and provides the stored mapping information in response to the request
    를 포함하는 장치.Device comprising a.
  2. 제 1항에 있어서,The method of claim 1,
    상기 블록 체인은,The block chain,
    권한이 정의된 사용자에게만 데이터 접근이 허락되는 Private 모드를 제공하는 제 1기능;A first function of providing a private mode in which data access is permitted only to a user whose authority is defined;
    블록 체인의 데이터 처리에 수수료가 없는 제 2기능;A second function that is free of fees for data processing of the blockchain;
    블록 체인에 요구되는 노드 단말에 대한 마이닝 노드의 작업 증명 과정에서 노드의 검증 처리를 제거하고 데이터의 유효성 검증 처리를 수행하는 제 3기능;A third function of removing a verification process of a node and performing a data validation process in a process of proving a mining node's work for a node terminal required for a block chain;
    상기 작업 증명 과정에 의해 단축된 블록의 생성 시간을 지연시키기 위해 딜레이를 주어 블록 생성 시간을 지연시키는 제 4기능; 및A fourth function of delaying a block generation time by giving a delay to delay a generation time of a block shortened by the proof-of-work process; And
    저장 대상의 트랜잭션이 발생된 경우에만 블록을 생성하는 제 5기능The fifth function of generating a block only when a transaction of a save target occurs
    중에서 적어도 하나 이상의 기능이 설정되어 각각의 노드 단말에서 실행되는 것을 특징으로 하는 장치.At least one or more functions are set and executed in each node terminal.
  3. 제 1항에 있어서,The method of claim 1,
    웹 페이지를 통해 사용자 인터페이스를 제공하여 상기 체인 및 데이터의 관리 정보를 입력받고, 입력된 관리 정보의 처리 결과를 제공하는 웹 관리부를 더 포함하는 것을 특징으로 하는 장치.And a web manager configured to provide a user interface through a web page to receive management information of the chain and data, and to provide a result of processing the input management information.
  4. 제 1항에 있어서,The method of claim 1,
    상기 관리를 위한 스케쥴링 정보를 등록받고, 등록된 스케쥴링 정보에 대응되는 프로세스의 실행을 상기 메인 제어부로 요청하는 스케쥴러부를 더 포함하고, The scheduler unit may be configured to register the scheduling information for management and to request the main controller to execute a process corresponding to the registered scheduling information.
    상기 메인 제어부는 상기 요청에 의해 대응되는 명령을 전송하는 것을 특징으로 하는 장치.The main control unit is characterized in that for transmitting the command corresponding to the request.
  5. 제 1항에 있어서,The method of claim 1,
    상기 노드 단말은,The node terminal,
    블록을 생성해서 체인에 연결하는 마이닝 처리 및 블록 체인의 데이터 정보를 API(Application program interface)를 통해 제공하는 마이닝 API 노드 단말; 및A mining API node terminal which generates a block and connects it to the chain and provides data information of the block chain through an application program interface (API); And
    마이닝 API 노드 단말에 의해 블록 체인의 데이터 관리가 동기화되는 데이터 동기화 노드 단말Data synchronization node terminal in which data management of the blockchain is synchronized by the mining API node terminal.
    로 구성되는 것을 특징으로 하는 장치.Device characterized in that consisting of.
  6. 제 5항에 있어서,The method of claim 5,
    상기 마이닝 API 노드 단말은,The mining API node terminal,
    상기 체인 명령을 전송받고, 전송받은 체인 명령에 따른 블록 체인의 생성, 삭제 및 실행을 처리하고, 처리 결과를 응답하는 체인 생성부A chain generation unit that receives the chain command, processes generation, deletion, and execution of a block chain according to the received chain command, and responds to the processing result.
    상기 데이터 명령을 전송받고, 전송받은 데이터 명령을 처리하고, 처리 결과를 응답하는 명령 프로세서부; 및A command processor for receiving the data command, processing the received data command, and responding to the processing result; And
    상기 처리에 따른 데이터 명령을 블록 체인에 대해 실행하는 블록 체인 처리부Blockchain processing unit for executing a data command according to the above processing on the blockchain
    를 포함하는 것을 특징으로 하는 장치. Apparatus comprising a.
  7. 제 6항에 있어서,The method of claim 6,
    상기 데이터 동기화 노드 단말은,The data synchronization node terminal,
    상기 체인 명령을 전송받고, 전송받은 체인 명령에 따른 블록 체인의 생성, 삭제 및 실행을 처리하고, 처리 결과를 응답하는 체인 생성부; 및A chain generation unit configured to receive the chain command, process generation, deletion, and execution of a block chain according to the received chain command, and respond to a processing result; And
    상기 마이닝 API 노드 단말의 블록 체인 처리부와 포트 연결되고, 연결된 포트를 통해 전송된 데이터 명령을 동기화하여 실행하는 블록 체인 처리부A block chain processing unit connected to the block chain processing unit of the mining API node terminal and executing data commands transmitted through the connected port in synchronization.
    를 포함하는 것을 특징으로 하는 장치.Apparatus comprising a.
  8. 제 1항에 있어서,The method of claim 1,
    상기 메인 제어부는,The main control unit,
    블록 체인에 의해 관리되는 각각의 데이터 파일의 파일 정보로부터 체인 아이디를 생성하고, 생성된 체인 아이디에 수식을 적용하여 포트 아이디를 생성하고, 생성된 체인 아이디를 이용하여 블록 체인에 저장되는 파일의 폴더 경로를 생성하는 것을 특징으로 하는 장치.A chain ID is generated from file information of each data file managed by the blockchain, a port ID is generated by applying a formula to the generated chain ID, and a folder of a file stored in the blockchain using the generated chain ID. Device for generating a route.
  9. 제 1항에 있어서,The method of claim 1,
    상기 메인 제어부는,The main control unit,
    저장 대상의 데이터 파일의 파일 정보를 입력받고, 입력된 파일 정보에 대응되는 체인 정보를 상기 체인 테이블로부터 조회하고, 조회된 체인 정보에 따른 상기 데이터 명령을 상기 노드 단말로 전송하여 데이터 저장을 요청하고, 상기 데이터 명령의 저장 결과를 전송받고,Receives file information of a data file to be stored, inquires chain information corresponding to the input file information from the chain table, and transmits the data command according to the inquired chain information to the node terminal to request data storage; Receiving the result of storing the data command,
    상기 DB 관리부는,The DB management unit,
    전송된 저장 결과의 파일 아이디, 블록 체인에 의해 저장시 생성된 트랜잭션 아이디 및 저장 시간을 포함하는 매핑 정보를 상기 매핑 테이블에 저장하는 것을 특징으로 하는 장치.And mapping information including a file ID of the transmitted storage result, a transaction ID generated when the block is stored by the block chain, and a storage time, in the mapping table.
  10. 제 9항에 있어서,The method of claim 9,
    상기 메인 제어부는,The main control unit,
    파일 정보를 이용하여 생성된 체인 아이디를 키로 하여 상기 체인 테이블로부터 체인 정보를 조회하는데 실패할 경우, 생성된 체인 아이디를 갖는 블록 체인의 생성 및 실행을 요청하는 상기 체인 명령을 전송하고, 상기 체인 명령의 실행 결과를 전송받고,If it fails to look up the chain information from the chain table using the chain ID generated by using the file information as a key, the chain command requesting the creation and execution of the block chain having the generated chain ID is transmitted, and the chain command Receive the execution result of,
    상기 DB 관리부는,The DB management unit,
    전송된 실행 결과를 이용하여 각 체인별로 체인 아이디, 루트 디렉토리 및 실행 상태를 포함하는 상기 체인 정보를 생성하고, 생성된 체인 정보를 상기 체인 테이블에 저장하는 것을 특징으로 하는 장치.And generating the chain information including a chain ID, a root directory, and an execution state for each chain by using the transmitted execution result, and storing the generated chain information in the chain table.
  11. 제 9항에 있어서,The method of claim 9,
    상기 메인 제어부는,The main control unit,
    조회 대상의 데이터 파일의 파일 정보를 입력받고, 입력된 파일 정보에 대응되는 매핑 정보를 상기 매핑 테이블로부터 조회하고, 조회된 매핑 정보에 따른 상기 데이터 명령을 상기 노드 단말로 전송하여 데이터 조회를 요청하고, 조회된 파일 및 상기 데이터 명령의 조회 결과를 수신하고, 전송된 파일을 제공하는 것을 특징으로 하는 장치.Receives file information of a data file to be queried, inquires mapping information corresponding to the input file information from the mapping table, and transmits the data command according to the inquired mapping information to the node terminal to request data inquiry; And receiving the inquired file and the inquiry result of the data command and providing the transmitted file.
  12. 복수의 노드 단말들이 데이터를 동기화하여 저장하기 위해 형성한 블록 체인 및 상기 블록 체인의 데이터를 관리하는 장치가 데이터 파일을 저장하는 방법에 있어서,In a block chain formed by a plurality of node terminals to synchronize and store data, and a method of storing data files by a device managing data of the block chain,
    저장 대상의 데이터 파일의 파일 정보로부터 체인 아이디를 생성하는 단계;Generating a chain ID from file information of a data file to be stored;
    생성된 체인 아이디를 키로 하여 체인 테이블로부터 체인 정보를 조회하는 단계;Querying the chain information from the chain table using the generated chain ID as a key;
    조회된 체인 정보에 따라 상기 파일의 저장을 요청하는 데이터 명령을 생성하고, 상기 노드 단말로 생성된 데이터 명령 및 파일을 전송하여 상기 블록 체인에 저장하는 단계; 및Generating a data command requesting storage of the file according to the inquired chain information, and transmitting the generated data command and file to the node terminal and storing the data command in the block chain; And
    상기 노드 단말로부터 전송받은 파일의 저장 결과를 이용하여 매핑 테이블에 데이터 및 트랜잭션의 매핑 정보를 저장하는 단계Storing mapping information of data and transactions in a mapping table by using a result of storing a file received from the node terminal
    를 포함하는 방법.How to include.
  13. 제 12항에 있어서,The method of claim 12,
    상기 블록 체인은,The block chain,
    권한이 정의된 사용자에게만 데이터 접근이 허락되는 Private 모드를 제공하는 제 1기능;A first function of providing a private mode in which data access is permitted only to a user whose authority is defined;
    블록 체인의 데이터 처리에 수수료가 없는 제 2기능;A second function that is free of fees for data processing of the blockchain;
    블록 체인에 요구되는 노드 단말에 대한 마이닝 노드의 작업 증명 과정에서 노드의 검증 처리를 제거하고 데이터의 유효성 검증 처리를 수행하는 제 3기능;A third function of removing a verification process of a node and performing a data validation process in a process of proving a mining node's work for a node terminal required for a block chain;
    상기 작업 증명 과정에 의해 단축된 블록의 생성 시간을 지연시키기 위해 딜레이를 주어 블록 생성 시간을 지연시키는 제 4기능; 및A fourth function of delaying a block generation time by giving a delay to delay a generation time of a block shortened by the proof-of-work process; And
    저장 대상의 트랜잭션이 발생된 경우에만 블록을 생성하는 제 5기능The fifth function of generating a block only when a transaction of a save target occurs
    중에서 적어도 하나 이상의 기능이 설정되어 각각의 노드 단말에서 실행되는 것을 특징으로 하는 방법.Wherein at least one or more functions are set and executed in each node terminal.
  14. 제 12항에 있어서,The method of claim 12,
    상기 체인 아이디를 생성하는 단계는,Generating the chain ID,
    상기 파일의 파일명을 이용하여 고유한 체인 아이디를 생성하는 단계인 것을 특징으로 하는 방법.Generating a unique chain ID using the file name of the file.
  15. 제 12항에 있어서,The method of claim 12,
    상기 체인 정보를 조회하는 단계는,Inquiry of the chain information,
    상기 체인 테이블로부터 상기 체인 아이디, 루트 디렉토리 및 실행 상태를 포함하는 상기 체인 정보를 조회하는 단계인 것을 특징으로 하는 방법.Querying the chain information including the chain ID, a root directory, and an execution state from the chain table.
  16. 제 15항에 있어서,The method of claim 15,
    상기 체인 정보를 조회하는 단계는,Inquiry of the chain information,
    상기 체인 정보의 조회가 실패될 경우, 상기 체인 아이디를 갖는 블록 체인의 생성 및 실행을 요청하는 상기 체인 명령을 상기 노드 단말로 전송하고, 상기 노드 단말로부터 상기 체인 명령의 실행 결과를 전송받고, 전송된 실행 결과를 이용하여 상기 체인 정보를 생성하고, 생성된 체인 정보를 상기 체인 테이블에 저장하는 단계인 것을 특징으로 하는 방법.When the inquiry of the chain information fails, the chain command requesting generation and execution of the block chain having the chain ID is transmitted to the node terminal, and the execution result of the chain command is received from the node terminal, and the transmission is performed. Generating the chain information by using the result of the execution and storing the generated chain information in the chain table.
  17. 제 15항에 있어서,The method of claim 15,
    상기 체인 정보를 조회하는 단계는,Inquiry of the chain information,
    조회된 실행 상태가 실행 중이 아닐 경우, 상기 체인 아이디를 갖는 블록 체인의 실행을 요청하는 상기 체인 명령을 상기 노드 단말로 전송하고, 상기 노드 단말로부터 상기 체인 명령의 실행 결과를 전송받고, 전송된 실행 결과를 이용하여 상기 실행 상태를 실행 중인 것으로 업데이트하는 단계인 것을 특징으로 하는 방법.When the inquired execution state is not running, the chain command requesting execution of the block chain having the chain ID is transmitted to the node terminal, and the execution result of the chain command is received from the node terminal, and the transmitted execution Updating the execution state to a running state using a result.
  18. 제 12항에 있어서,The method of claim 12,
    상기 노드 단말은,The node terminal,
    상기 장치로부터 체인 명령 및 데이터 명령을 수신하여 처리하는 마이닝 API 단말 및 상기 장치로부터 체인 명령을 수신하여 처리하고, 상기 마이닝 API 단말의 데이터 명령이 동기화 처리되는 데이터 동기화 단말로 구성되고,A mining API terminal for receiving and processing a chain command and a data command from the device, and a data synchronization terminal for receiving and processing a chain command from the device, and synchronizing a data command of the mining API terminal,
    상기 블록 체인에 저장하는 단계는,Storing in the blockchain,
    상기 마이닝 API 단말이 장치로부터 상기 체인 정보 및 파일 아이디를 포함하는 데이터 명령을 전송받고, 전송받은 데이터 명령의 실행에 의해 블록 체인에 상기 파일을 저장하는 단계;Receiving, by the mining API terminal, a data command including the chain information and a file ID from a device, and storing the file in the block chain by executing the received data command;
    상기 데이터 동기화 단말이 상기 마이닝 API 단말에 연결된 포트를 통해 전송된 데이터 명령의 동기화 실행에 의해 블록 체인에 상기 파일을 저장하는 단계; 및Storing, by the data synchronization terminal, the file in a blockchain by performing synchronization of a data command transmitted through a port connected to the mining API terminal; And
    상기 마이닝 API 단말이 실행된 데이터 명령에 의한 상기 저장 결과를 장치로 전송하는 단계Transmitting the storage result by the data command executed by the mining API terminal to a device;
    를 포함하는 것을 특징으로 하는 방법.Method comprising a.
  19. 제 12항에 있어서,The method of claim 12,
    상기 매핑 정보를 저장하는 단계는,The storing of the mapping information may include:
    상기 저장 결과의 파일 아이디, 블록 체인에 의해 저장시 생성된 트랜잭션 아이디 및 저장 시간을 포함하는 매핑 정보를 상기 매핑 테이블에 저장하는 단계인 것을 특징으로 하는 방법.And storing mapping information including a file ID of the storage result, a transaction ID generated at the time of storing by the block chain, and a storage time in the mapping table.
  20. 제 12항에 있어서,The method of claim 12,
    상기 매핑 정보를 저장하는 단계 이후로,After storing the mapping information,
    스케쥴러에 의해 설정된 조건이 만족되면, 조건이 만족된 블록 체인 및 데이터를 삭제하는 단계를 포함하는 것을 특징으로 하는 방법.If the condition set by the scheduler is satisfied, deleting the block chain and data in which the condition is satisfied.
  21. 복수의 노드 단말들이 데이터를 동기화하여 저장하기 위해 형성한 블록 체인 및 상기 블록 체인의 데이터를 관리하는 장치가 데이터 파일을 조회하는 방법에 있어서,In a block chain formed by a plurality of node terminals for synchronizing and storing data and a method for inquiring a data file by a device managing data of the block chain,
    사용자 단말로부터 조회 대상의 파일의 아이디를 입력받는 단계;Receiving an ID of a file to be searched from a user terminal;
    입력된 파일 아이디를 키로 하여 매핑 테이블로부터 매핑 정보를 조회하는 단계;Retrieving mapping information from the mapping table using the input file ID as a key;
    조회된 매핑 정보에 따라 상기 파일의 조회를 요청하는 데이터 명령을 생성하고, 상기 노드 단말로 생성된 데이터 명령을 전송하는 단계;Generating a data command for requesting the inquiry of the file according to the inquired mapping information and transmitting the generated data command to the node terminal;
    상기 노드 단말로부터 조회된 데이터 파일을 수신하는 단계; 및Receiving a data file queried from the node terminal; And
    수신된 파일을 상기 사용자 단말로 전송하는 단계Transmitting the received file to the user terminal
    를 포함하는 방법.How to include.
PCT/KR2017/015345 2017-01-19 2017-12-22 Device and method for managing data by using block chain WO2018135766A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2017-0009285 2017-01-19
KR1020170009285A KR102026225B1 (en) 2017-01-19 2017-01-19 Apparatus for managing data using block chain and method thereof

Publications (1)

Publication Number Publication Date
WO2018135766A1 true WO2018135766A1 (en) 2018-07-26

Family

ID=62908775

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2017/015345 WO2018135766A1 (en) 2017-01-19 2017-12-22 Device and method for managing data by using block chain

Country Status (2)

Country Link
KR (1) KR102026225B1 (en)
WO (1) WO2018135766A1 (en)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109347935A (en) * 2018-09-30 2019-02-15 珠海信达九州科技有限公司 A method of real-time communication message synchronization is realized based on block chain
CN109766342A (en) * 2018-12-28 2019-05-17 国云科技股份有限公司 A kind of data storage and querying method based on block chain
CN110190963A (en) * 2019-04-04 2019-08-30 阿里巴巴集团控股有限公司 A kind of monitoring method, device and equipment for the request of time service certificates constructing
CN110310202A (en) * 2019-05-20 2019-10-08 平安科技(深圳)有限公司 Distributed storage method, device, equipment and storage medium based on intelligent contract
CN110489486A (en) * 2019-08-02 2019-11-22 腾讯科技(深圳)有限公司 Generate method, seed node and the medium of block chain network
CN110532198A (en) * 2019-09-09 2019-12-03 成都西山居互动娱乐科技有限公司 A kind of method and device of memory allocation
CN110609839A (en) * 2019-09-17 2019-12-24 北京海益同展信息科技有限公司 Method, device and equipment for processing block chain data and readable storage medium
CN111813866A (en) * 2020-07-30 2020-10-23 河南中盾云安信息科技有限公司 Improved block chain account book synchronization method
TWI723622B (en) * 2019-11-08 2021-04-01 許毓展 Data management method and system capable of safely accessing and deleting data
US10979233B2 (en) 2019-04-04 2021-04-13 Advanced New Technologies Co., Ltd. Monitoring time certificate generation requests
WO2021095890A1 (en) * 2019-11-11 2021-05-20 주식회사 빅스터 Security enhanced blockchain system based on data double encryption and decryption
CN113852687A (en) * 2021-09-24 2021-12-28 成都质数斯达克科技有限公司 File transmission method between block chain link points

Families Citing this family (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102475435B1 (en) * 2017-01-19 2022-12-06 주식회사 케이티 Apparatus for managing data using block chain and method thereof
KR102084855B1 (en) * 2018-07-31 2020-03-04 전자부품연구원 Device for generating Hash chain and Method for generating Hash chain
KR102180062B1 (en) * 2018-08-14 2020-11-17 주식회사 와이즈웨일 Information flow management System among users and method thereof
KR102066439B1 (en) * 2018-08-14 2020-01-15 주식회사 한컴지엠디 Digital data management system and method for managing the same
KR20200021194A (en) 2018-08-20 2020-02-28 주식회사 원더풀플랫폼 Smart contract method and system based block chain
KR102116373B1 (en) * 2018-08-30 2020-06-03 에이치닥 테크놀로지 아게 Smart Contract System in a virtual environment and processing method thereof
CN109299336B (en) * 2018-09-30 2022-07-01 腾讯科技(深圳)有限公司 Data backup method and device, storage medium and computing equipment
KR102424197B1 (en) * 2018-10-30 2022-07-21 삼성에스디에스 주식회사 Method for managing data based on blockchain, apparatus and system for the same
KR102448787B1 (en) * 2018-10-30 2022-09-28 삼성에스디에스 주식회사 System for providing retrieval service based on blockchain and method of the same
KR102631875B1 (en) 2018-10-30 2024-02-01 서강대학교산학협력단 Method for managing wallet address of blockchain system and processing transaction based on domain
WO2020096072A1 (en) * 2018-11-05 2020-05-14 라인플러스 주식회사 Method and system for efficiently processing, in block-chain, high transaction throughput required by dapp
KR102626699B1 (en) * 2018-11-07 2024-01-19 주식회사 디지털존 Business plan distribution management method, server and system based on blockchain
KR102207072B1 (en) * 2019-01-02 2021-01-25 주식회사 체커 System for auditing data access based on block chain and the method thereof
KR102607875B1 (en) * 2019-02-18 2023-11-29 아주대학교산학협력단 Blockchain Network Node and Method for Controlling Access
KR102002509B1 (en) * 2019-04-04 2019-07-22 주식회사 한국정보보호경영연구소 Privite blockchain system including notarizing center and notarial method thereof
KR102221350B1 (en) 2019-04-18 2021-03-02 주식회사 웨이투빗 Method and device for restoring blockchain network with its credibility on backup data maintained by using delayed synchronization
KR102221366B1 (en) * 2019-04-18 2021-03-02 주식회사 웨이투빗 Method and device for restoring blockchain network with its credibility on backup data maintained and minimizing resource usage by using delayed synchronization recycling nodes
KR102204605B1 (en) 2019-04-25 2021-01-19 주식회사 웨이투빗 Method and device for providing blockchain capable of optimizing storages of each node included therein
KR102083757B1 (en) 2019-05-17 2020-03-02 김성완 Node device constituting a block-chain network and an operation method of the node device
CN110288445B (en) * 2019-06-28 2024-03-05 杭州复杂美科技有限公司 Decentralised storage method, device and storage medium
KR102257368B1 (en) 2019-07-29 2021-05-27 고려대학교 산학협력단 Blockchain system for transaction scheduling and method for transaction scheduling using the same
KR102277506B1 (en) * 2019-07-31 2021-07-13 김태욱 System for processing financial information using blockchain platform
KR102281901B1 (en) * 2019-08-13 2021-07-23 건국대학교 산학협력단 Apparatus and method for managing data using blockchain
KR102348741B1 (en) 2019-09-16 2022-01-07 손종희 Apparatus and method for managing electronic receipt based on block chain
KR102282788B1 (en) 2019-09-26 2021-07-29 (주)하이퍼서트 Blockchain system for supporting change of plain text data included in transaction
KR102348739B1 (en) 2019-10-04 2022-01-10 주식회사 더리얼마케팅 Apparatus and method for storaging electronic receipt based on block chain
KR102275389B1 (en) * 2019-10-22 2021-07-08 한국항공대학교산학협력단 Block chain data mapping method and node device using distributed file system to omit block sync process and to provide remote storage
KR102125042B1 (en) * 2019-11-12 2020-06-19 주식회사 이노티움 Node device constituting a block-chain network and an operation method of the node device
KR102089912B1 (en) * 2019-11-13 2020-05-26 주식회사 스마트엠투엠 Method and system for managing mobile devices based on private blockchain
KR102274493B1 (en) * 2019-11-15 2021-07-07 주식회사 이노티움 Node device constituting a block-chain network and an operation method of the node device
KR102145813B1 (en) * 2019-12-11 2020-08-19 주식회사 에스비이엔씨 Home Appliances Remote Control Method by Using Block Chain and Method thereof
US11323246B2 (en) 2019-12-11 2022-05-03 The Bank Of New York Mellon Ring chain architecture
KR102145812B1 (en) * 2019-12-11 2020-08-28 주식회사 에스비이엔씨 Home Appliances Remote Control System by Using Block Chain and Method thereof
KR102295471B1 (en) * 2019-12-12 2021-08-31 주식회사 스마트엠투엠 METHOD AND SYSTEM FOR AUTHENTICATING TOKEN FOR IoT DEVICE BASED ON PRIVATE BLOCKCHAIN
KR102198256B1 (en) * 2020-06-04 2021-01-04 주식회사 엘커넥티드 Wall-Pad and Smart Home System Including the Same
KR102149998B1 (en) * 2020-07-20 2020-08-31 주식회사 지비시코리아 System Providing Mergers and Acquisitions Service based on Block Chain using multi-chain layer and Method for operating the same
KR102149999B1 (en) * 2020-07-20 2020-08-31 주식회사 지비시코리아 System Providing Mergers and Acquisitions Service based on Block Chain using heterogeneous virtual currency and Method for operating the same
KR102544008B1 (en) * 2022-11-30 2023-06-15 주식회사 엔터프라이즈블록체인 Electronic device including aggregator manager managing a plurality of aggregators and method thereof

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101590076B1 (en) * 2015-11-18 2016-02-01 주식회사 웨이브스트링 Method for managing personal information
KR101628005B1 (en) * 2015-02-05 2016-06-13 주식회사 코인플러그 Copyright detection system that is based on the block chain
KR101637854B1 (en) * 2015-10-16 2016-07-08 주식회사 코인플러그 Certificate issuance system and method based on block chain, certificate authentication system and method based on block chain
US20160292672A1 (en) * 2015-03-31 2016-10-06 Nasdaq, Inc. Systems and methods of blockchain transaction recordation
US20170005804A1 (en) * 2015-07-02 2017-01-05 Nasdaq, Inc. Systems and methods of secure provenance for distributed transaction databases

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101637868B1 (en) 2016-02-22 2016-07-08 주식회사 코인플러그 Financial institution document verification system that is based on the block chain

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101628005B1 (en) * 2015-02-05 2016-06-13 주식회사 코인플러그 Copyright detection system that is based on the block chain
US20160292672A1 (en) * 2015-03-31 2016-10-06 Nasdaq, Inc. Systems and methods of blockchain transaction recordation
US20170005804A1 (en) * 2015-07-02 2017-01-05 Nasdaq, Inc. Systems and methods of secure provenance for distributed transaction databases
KR101637854B1 (en) * 2015-10-16 2016-07-08 주식회사 코인플러그 Certificate issuance system and method based on block chain, certificate authentication system and method based on block chain
KR101590076B1 (en) * 2015-11-18 2016-02-01 주식회사 웨이브스트링 Method for managing personal information

Cited By (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109347935A (en) * 2018-09-30 2019-02-15 珠海信达九州科技有限公司 A method of real-time communication message synchronization is realized based on block chain
CN109347935B (en) * 2018-09-30 2021-08-03 珠海信达九州科技有限公司 Method for realizing real-time communication message synchronization based on block chain
CN109766342A (en) * 2018-12-28 2019-05-17 国云科技股份有限公司 A kind of data storage and querying method based on block chain
CN109766342B (en) * 2018-12-28 2023-05-30 国云科技股份有限公司 Data storage and query method based on block chain
US10979233B2 (en) 2019-04-04 2021-04-13 Advanced New Technologies Co., Ltd. Monitoring time certificate generation requests
CN110190963A (en) * 2019-04-04 2019-08-30 阿里巴巴集团控股有限公司 A kind of monitoring method, device and equipment for the request of time service certificates constructing
CN110190963B (en) * 2019-04-04 2020-09-01 阿里巴巴集团控股有限公司 Monitoring method, device and equipment for time service certificate generation request
CN110310202A (en) * 2019-05-20 2019-10-08 平安科技(深圳)有限公司 Distributed storage method, device, equipment and storage medium based on intelligent contract
CN110489486A (en) * 2019-08-02 2019-11-22 腾讯科技(深圳)有限公司 Generate method, seed node and the medium of block chain network
CN110489486B (en) * 2019-08-02 2020-12-18 腾讯科技(深圳)有限公司 Method, seed node and medium for generating block chain network
CN110532198A (en) * 2019-09-09 2019-12-03 成都西山居互动娱乐科技有限公司 A kind of method and device of memory allocation
CN110532198B (en) * 2019-09-09 2023-08-08 成都西山居互动娱乐科技有限公司 Storage space allocation method and device
CN110609839B (en) * 2019-09-17 2021-05-25 北京海益同展信息科技有限公司 Method, device and equipment for processing block chain data and readable storage medium
CN110609839A (en) * 2019-09-17 2019-12-24 北京海益同展信息科技有限公司 Method, device and equipment for processing block chain data and readable storage medium
US11966412B2 (en) 2019-09-17 2024-04-23 Jingdong Technology Information Technology Co., Ltd. Blockchain data processing method and apparatus, device, and readable storage medium
TWI723622B (en) * 2019-11-08 2021-04-01 許毓展 Data management method and system capable of safely accessing and deleting data
WO2021095890A1 (en) * 2019-11-11 2021-05-20 주식회사 빅스터 Security enhanced blockchain system based on data double encryption and decryption
CN111813866B (en) * 2020-07-30 2021-03-16 河南中盾云安信息科技有限公司 Improved block chain account book synchronization method
CN111813866A (en) * 2020-07-30 2020-10-23 河南中盾云安信息科技有限公司 Improved block chain account book synchronization method
CN113852687A (en) * 2021-09-24 2021-12-28 成都质数斯达克科技有限公司 File transmission method between block chain link points
CN113852687B (en) * 2021-09-24 2023-12-01 成都质数斯达克科技有限公司 File transmission method between block chain nodes

Also Published As

Publication number Publication date
KR20180085570A (en) 2018-07-27
KR102026225B1 (en) 2019-09-27

Similar Documents

Publication Publication Date Title
WO2018135766A1 (en) Device and method for managing data by using block chain
US10880287B2 (en) Out of box experience application API integration
US11469964B2 (en) Extension resource groups of provider network services
WO2012057581A4 (en) Cloud computing system and data synchronization method therefor
WO2014069787A1 (en) Security through metadata orchestrators
US11442897B2 (en) Optimizing content storage through stubbing
KR20190110082A (en) Apparatus for managing data using block chain and method thereof
US10209976B2 (en) Automated application installation
US20200159555A1 (en) Provider network service extensions
WO2014069827A1 (en) System and method for providing data analysis service in a cloud environment
CN109656886B (en) Key value pair-based file system implementation method, device, equipment and storage medium
WO2013028009A2 (en) Smart office system, server for operation, and operation method
US20230092069A1 (en) Server apparatus
WO2018212456A1 (en) Data distribution-type integrated management system
WO2021225329A1 (en) Method and system for detecting forgery of mobile application by using user identifier and signature collection
WO2013125883A1 (en) Drm/cas service device and method using security context
WO2019156279A1 (en) Apparatus for lan booting environment-based file security and centralization, method therefor, and computer-readable recording medium on which program for performing same method is recorded
KR102086088B1 (en) Terminal, device manager application and service application for changing access point name
WO2012026700A9 (en) File-transmitting method, and apparatuses for performing the method
WO2016076533A1 (en) Smart card open applet updating method for guaranteeing lossless data
WO2010030133A2 (en) Security file transmission system and transmission method using api in executable file format
WO2022075519A1 (en) Method for content distribution service for management of access control, and computing apparatus and system for performing same
WO2023096057A1 (en) Protocol-based copyright transaction credential issuance system and method
US11954074B2 (en) Method and apparatus for efficient file/folder synchronization
WO2024071890A1 (en) Apparatus for processing non-fungible token

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 17892089

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 17892089

Country of ref document: EP

Kind code of ref document: A1