WO2018207974A1 - Blockchain system and method for managing data using blockchain - Google Patents
Blockchain system and method for managing data using blockchain Download PDFInfo
- Publication number
- WO2018207974A1 WO2018207974A1 PCT/KR2017/010017 KR2017010017W WO2018207974A1 WO 2018207974 A1 WO2018207974 A1 WO 2018207974A1 KR 2017010017 W KR2017010017 W KR 2017010017W WO 2018207974 A1 WO2018207974 A1 WO 2018207974A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- type
- block
- data
- event
- branch
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
Definitions
- the present invention relates to a blockchain system and a data management method using a blockchain, and more particularly, to a blockchain system including a plurality of branches and a data management method using such a blockchain.
- Blockchain is known as a concept introduced in Bitcoin, a cryptocurrency that is a kind of distributed database. Unlike the conventional storage and management of digital contents such as transaction books and documents in a centralized server, the blockchain system stores and manages the accumulated digital contents in devices (nodes) of a plurality of participants connected through a network. Such a blockchain system has the advantage that digital content itself is open to the public through the Internet, and since verification is frequently performed by a large number of participants, forgery or tampering is very difficult.
- Such a blockchain system is used for storing a transaction record of a virtual currency system such as Bitcoin or a financial institution. Recently, such blockchain systems have also been used for electronic document management and original verification.
- Nodes participating in the blockchain must store and maintain the data of the entire blockchain on the device. This is not a problem if the total blockchain size is not large because there are few accumulated transactions, but as the number of blocks increases as the number of new events such as transactions accumulate, the size of the entire blockchain gradually increases.
- the overall blockchain size of Bitcoin, a representative blockchain system is now several tens of Gbytes.
- nodes participating in the blockchain need a high level of storage and computing devices capable of storing and maintaining such a large amount of data.
- a typical personal computer may not reach this level of performance.
- personal mobile devices such as smartphones and tablet computers are not able to reach this level of performance.
- An object of the present invention is to provide a blockchain system capable of efficiently and systematically constructing a blockchain by connecting blocks in multiple dimensions.
- Another object of the present invention is to provide a blockchain system capable of constructing a blockchain in two dimensions by dividing the data contained in the block into two types.
- Another object of the present invention is to provide a method for efficiently and systematically managing data using a multi-dimensionally connected blockchain.
- the data is first type data not based on other data.
- first type blocks that are divided into second type data based on the first type data, and include first type blocks including the first type data, wherein the first type blocks are connected to each other according to a generation order of the blocks;
- At least one second type of block of the one of the sub-branch is doedoe connection according to the order of creation of each of the blocks, the second block of the first type generated by the single sub-branch is coupled to the root block.
- one first type block in the main branch may include a hash value of at least a portion of the first type block just generated.
- the second type block first generated in the one sub branch may include a hash value of at least a portion of the root block to be connected.
- the second type block that is not first generated in the one sub branch may include a hash value of at least a portion of the second type block that is included in the sub branch and immediately generated.
- the first type data is data for creating new data
- the second type data is at least one of modifying, changing, deleting, discarding, inquiring and transferring existing data. Can be done.
- the data may be information about digital content
- the first type data may be information about new digital content
- the second type data may be information based on already generated digital content.
- the second type of data may be information regarding at least one of modification, change, deletion, discard, inquiry, and transmission of already generated digital content.
- the data may be information about a document
- the first type data may be information about a new document generation
- the second type data may be information based on a document that has already been generated.
- the second type of data may be information regarding at least one of the modification, modification, deletion, discarding, inquiry, and transmission of the already generated document.
- the data may be information about an account
- the first type data may be information about creating a new account
- the second type data may be information about a transaction of an already created account.
- the event for two or more data using the blockchain may be divided into a first type event based on existing data and a second type event based on existing data, and providing a main branch to which at least one block is connected in the order of block generation, respectively, Searching for a root block including data on which the second type event is based in the main branch when the type event occurs; if there is no sub branch starting from the root block and distinguished from the main branch, the second branch; A sub branch is generated by creating a block including data according to a type event to be connected to the root block. And a step of sex.
- the generating of the sub branch may include inserting a hash value of at least a portion of the root block into a block header of a block to be generated.
- the generating of the sub branch may include determining whether there is a sub branch starting from the root block and distinguished from the main branch.
- a block including data according to the second type event is connected to the last block of the sub branch.
- the method may further include extending the sub branch.
- extending the sub branch may include inserting a hash value of at least a portion of the last block of the sub branch into a block header of a block to be generated.
- the extending of the sub branch may include determining whether there is a sub branch starting from the root block and distinguished from the main branch.
- generating the block including data according to the first type event to be connected to the last block of the main branch to further extend the main branch may include.
- extending the main branch may include inserting a hash value of at least a portion of the last block of the main branch into a block header of a block to be generated.
- the type 1 event is an event related to creating new material
- the type 2 event is one of modifying, changing, deleting, discarding, inquiring and transferring existing material. It may be an event about performing.
- the data is information about digital content
- the first type event is an event related to creating a new digital content
- the second type event is an event based on already generated digital content. Can be.
- the second type event may be an event related to performing at least one of the modification, change, deletion, discard, inquiry, and delivery of already generated digital content.
- the data may be information about a document
- the first type event may be an event related to creating a new document
- the second type event may be an event based on a document already generated.
- the second type event may be an event related to performing at least one of the modification, change, deletion, inquiry and delivery of the already generated document.
- the first type event may be an event related to creating a new account
- the second type event may be an event related to a transaction of an already created account
- the blockchain system according to an embodiment of the present invention has an advantage of efficiently and systematically constructing a blockchain by connecting blocks in multiple dimensions.
- the blockchain system according to an embodiment of the present invention has an advantage in that the blockchain can be multi-dimensionally divided into two types of data included in the block.
- the data management method using a blockchain has the advantage that it is possible to efficiently and systematically manage data using a blockchain connected in multiple dimensions.
- FIG. 1 illustrates a configuration of individual blocks of a blockchain system according to an embodiment of the present invention.
- Figure 2 shows that two blocks of the blockchain system according to an embodiment of the present invention are connected.
- 3 to 6 are diagrams for explaining data of a blockchain system according to an embodiment of the present invention.
- FIG. 7 is a diagram for describing a method of displaying a block in a blockchain.
- FIG. 8 is an exemplary diagram of a blockchain system according to an embodiment of the present invention.
- FIG. 9 is a diagram for an example of using a blockchain system according to an embodiment of the present invention.
- FIG. 10 is a flowchart illustrating a data management method using a blockchain according to an embodiment of the present invention.
- 11 to 15 are diagrams for an example of a blockchain for explaining a data management method using a blockchain according to an embodiment of the present invention.
- FIG. 1 illustrates a configuration of individual blocks of a blockchain system according to an embodiment of the present invention.
- Figure 2 shows that two blocks of the blockchain system according to an embodiment of the present invention are connected.
- one block 100 includes a block header 110 and a block body 120.
- the block header 110 may include a title of a block, a hash value of a previous block, a hash value of a block body, a time stamp, a difficulty goal, and a nonce.
- the information included in the block header 110 may be configured in various ways.
- the title of the block refers to identification information that can distinguish the block 100 from other blocks.
- the title of a block may be determined according to a connection relationship with another block.
- the hash value of the immediately preceding block is a hash value of a block generated before the block in the branch and connected to the block.
- the hash value of the immediately preceding block may be a hash value of all or selected portions of information of the immediately preceding block.
- the hash value of the immediately preceding block may be defined as being a hash value of information of the block header of the immediately preceding block.
- the hash value of the block body is a hash value of data included in the block body 120 of the block.
- the block body 120 includes data.
- the hash value of the block body may be a hash value of all or selected portions of data included in the block body.
- the hash value of the block body can be determined in various ways.
- the hash value of the block body may be a hash value for the root of the Merkle tree generated from the data of the block body 120.
- the hash value of the block body corresponds to a summary of the data of the block body 120, and enables the efficient management and verification of the data of the relatively large block body 120.
- a time stamp is information about a generation time of a corresponding block.
- the difficulty goal is the difficulty goal for the proof-of-work algorithm of the block. This is information about determining the hashing power needed to find the nonce of the block.
- the nonce is counter information used in the proof-of-work algorithm of the block.
- the block header 110 may exclude some of the above-described information, or may further include other information.
- the block body 120 includes data stored and managed by the block 100.
- Data corresponds to digital data.
- the data can be in various forms.
- the data may be digital content, document information, account information, transaction information, personnel information, production history information, design and drawing of a product or building, sound information, and the like, but is not limited to a specific form.
- Data included in the block body 120 may be limited in type or size depending on the block. This limitation of data may be applied to all blocks in common, or may be selectively applied to only a few specific blocks. In addition, the limitation of such data may be changed as necessary.
- two blocks may be connected to each other.
- the plurality of blocks may be sequentially connected to form a branch.
- a branch means a set of blocks in which a plurality of blocks are linearly connected to each other. 2 shows a state in which any two blocks in this branch are connected.
- any one block 200 in a branch is to be connected to a block 100 just created in the branch.
- the block 200 is connected via including the hash value of the block 100 just generated.
- the block 200 may be connected to the block header 210 by including a hash value of the block 100 generated immediately before.
- the hash value of the block 100 generated immediately before may be a hash value of all or selected portions of information of the immediately preceding block 100 as described above.
- a hash value of the immediately preceding block 100 may be defined as a hash value of information of the block header 110 of the immediately preceding block.
- the hash value of the immediately preceding block may be variously changed according to the preference and judgment of the person designing the block.
- the blockchain system of the present invention includes a plurality of blocks.
- One block contains one data.
- data means a unit set of information included in one block.
- the block body of the block may include data.
- Data included in the block of the blockchain system may be classified into first type data and second type data.
- Type 1 data corresponds to data that is not based on other data.
- Type 2 data corresponds to data based on type 1 data.
- the first type data 10 may be data about generating new data.
- the second type data 20 may be data about performing at least one of modifying, changing, deleting, discarding, inquiring, and transferring existing data.
- the existing data means data generated by the first type data 10.
- data may be information regarding digital content.
- Digital content refers to all types of content composed of digital information.
- Digital content may be, for example, images, images, sounds, text, programming code, spreadsheets, and the like, but is not limited to those listed above.
- the first type data 10 may be information about new digital content
- the second type data 20 may be information based on already generated digital content.
- the second type data 20 may be, for example, information regarding at least one of modification, change, deletion, disposal, inquiry, and transmission of already generated digital content.
- the already generated digital content means digital content generated by the first type data 10.
- the data may be information about a document.
- Document means any type of document composed of digital information.
- the document may include text, images, tables, and the like.
- the document may include information on the settlement and settlement of the parties concerned.
- the first type data 10 may be information about creating a new document
- the second type data 20 may be information information based on a document that has already been generated.
- the second type data 20 may be, for example, information regarding at least one of modification, change, deletion, discarding, inquiry, and transmission of the already generated document.
- the second type data 20 may be information regarding payment, agreement, return, and the like, for the already generated document.
- the already generated document means a document generated by the first type data 10.
- the data may be information about an account.
- the first type data 10 may be information about creating a new account
- the second type data 20 may be information about a transaction of an already created account.
- the account already created means an account created by the first type data 10.
- the data may be transactions, personnel, production history, design, drawings, sound, programming code, and the like.
- Type 1 data and type 2 data may also be classified according to these various types.
- the first type data and the second type data are not limited to those described above.
- FIG. 7 the blocks constituting the blockchain shown in FIGS. 8 to 9 and 11 to 15 will be briefly described.
- the block includes a block header and a block body, as described with reference to FIGS. 1 and 2. However, for convenience of description, the individual blocks are shown in FIGS. 8 to 9 and 11 to 15 in the manner shown in FIG. 7.
- the title of the block, the hash value of the previous block, the hash value of the block, and the data included in the block are displayed.
- the title of the block is displayed in the first column
- the hash value of the previous block is displayed in the second column
- the hash value of the block is displayed in the third column
- the data is displayed in the last column. do.
- the title of the block is expressed in the form B n or B nm .
- the title of the block B n means that the block is the n th block of the main branch.
- the title of the block is B nm means that the block is the m-th type 2 block of the sub branch branched from the n-th block of the main branch.
- the m-th second type block of any sub branch corresponds to the m + 1 th block of the sub branch.
- the hash value of a block is indicated using the symbol H.
- H For example, it is to be the title of the block hash value of the block B is represented by H nm nm.
- the immediately preceding block of the block whose title is B nm is a block whose title is B n (m-1)
- the hash value of the immediately preceding block is H n (m-1) .
- FIG. 8 is an exemplary diagram of a blockchain system according to an embodiment of the present invention.
- the blockchain system of the present invention includes a plurality of blocks.
- One block contains one data.
- the data may be divided into the first type data 10 and the second type data 20.
- the block may be divided into a first type block 100-1 and a second type block 100-2 according to the type of data to be included.
- the first type block 100-1 corresponds to a block including the first type data 10.
- the second type block 100-2 corresponds to a block including the second type data 20.
- the blockchain system of the present invention includes a main branch 1000 and at least one sub branch 2000.
- a branch means a set of blocks in which a plurality of blocks are linearly connected to each other.
- the main branch 1000 includes a generation block initially generated and at least one connection block connected thereto.
- the main branch 1000 is connected to the connection block without branching in one direction in the first generated block.
- branches may be formed in the main branch 1000 to form other branches, the branched blocks are not included in the main branch 1000.
- the branched blocks may be included in the sub branch 2000 to be described later, which will be described below.
- the main branch 1000 is composed of first type blocks 100-1. That is, the first generated block and the connection block included in the main branch 1000 correspond to the first type block 100-1.
- the blocks included in the main branch 1000 are connected in order according to the generated order.
- the concatenation of the blocks is accomplished by including the hash values of at least some of the blocks created just before that block. This type of connection is indicated by the arrows between the blocks in FIG. 8.
- one first type block includes a hash value of at least a portion of the first type block just generated.
- the sub branch 2000 is a branch formed by branching from the main branch 1000.
- the sub branch 2000 includes a root block and at least one connection block connected thereto.
- the root block is also included in the main branch 1000 and is a block at which branching of the sub branch 2000 begins.
- the root block corresponds to a generation block first generated in the sub branch 2000.
- the root block corresponds to the first type block 100-1.
- the connection block included in the sub branch 2000 corresponds to the second type block 100-2.
- Blocks included in one sub branch 2000 are connected in order according to the order in which they are created. The concatenation of the blocks is accomplished by including the hash values of at least some of the blocks created just before that block.
- the connection block (second type block) first generated in one sub branch 2000 includes a hash value of at least a portion of the root block to which the sub branch 2000 is connected.
- the connection block (second type block) that is not initially generated in one sub branch 2000 includes a hash value of at least a portion of the second type block that is included in the sub branch 2000 and immediately generated. This type of connection is indicated by the arrows between the blocks in FIG. 8.
- the sub branch 2000 is conditioned to include at least one connection block.
- a subbranch having a height (length) of one block in which there is no connection block and only a root block exists, but in this specification, such a subbranch is defined as not present in this case. That is, for convenience of description, the sub branch 2000 defines that there is one root block and at least one connection block connected thereto.
- One or more sub branches 2000 may be formed.
- the sub branch 2000 may be formed in a shape in which one or two or more extend in one root block.
- only one sub branch 2000 is formed in one root block.
- this description does not exclude that two or more subbranches 2000 are extended in one root block in the present invention.
- the sub branch 2000 may be formed up to the maximum number of blocks of the main branch 1000.
- the blockchain system is composed of a main branch and a sub branch, and the blocks are composed of a first type block and a second type block.
- the block chain system is composed of a main branch, a sub branch, and a sub-sub branch.
- the blocks may also be composed of a first type block, a second type block, and a third type block.
- the sub-sub branch refers to a branch branched from the sub branch again, with the sub branch as the main branch.
- the root block of the sub-sub branch may be a second type block included in the sub branch.
- the connection block of the sub-sub branch may be a third type block.
- the main branch and the subbranch are relative, and the subbranches may be serially generated.
- the entire blockchain data may not be stored and used for verification of a specific block.
- the node may verify the specific block using only blockchain data of the main branch.
- the specific block is the second type block
- the node may verify the specific block using only the blockchain data of the sub branch and the main branch including the specific block. This reduces the size of blocks that nodes need to store and verify.
- FIG. 9 illustrates an example in which data included in a block of a blockchain is information on a document, type 1 data is information on creating a new document, and type 2 data is information based on a document that has already been generated.
- the second type data may be, for example, information about at least one of modification, change, deletion, discarding, inquiry, and transfer of the already generated document.
- the blockchain system shown in FIG. 9 stores data about seven different documents. As seven documents (No. 1 to 7) are newly generated, seven first type blocks B 1 to B 7 are generated, and the seven first type blocks B 1 to B 7 are respectively generated. It stores data about the creation of a new document. The seven first type blocks B 1 to B 7 are connected in the generated order to form the main branch 1000.
- the blockchain system shown in FIG. 9 includes five subbranches extending from five blocks B 1 , B 2 , B 3 , B 4 , and B 6 of the seven first type blocks.
- a node participating in this blockchain system is assumed to be a node related only to the third document.
- Node A may want to verify the data for the last modification of document # 3.
- the node A may store only the block included in the third branch 2300 and the block included in the main branch 1000, and verify data about the last change of the third document by using the same.
- Node A needs to store and verify.
- node A only needs to store and verify 12 blocks (seven first type blocks of the main branch 1000 and five second type blocks of the third sub branch 2300).
- the entire blockchain must be stored and verified.
- node A in the above-described example should store up to 26 blocks and verify this. Therefore, the blockchain system of the present invention has the effect of reducing the storage space burden and computing burden of the nodes participating in the blockchain.
- a data management method using a blockchain to be described below relates to a method of managing data using the blockchain system described above with reference to FIGS. 1 to 9. Therefore, for convenience of description, some of the contents overlapping with the description of the blockchain system will be omitted.
- the data management method using the blockchain of the present invention is a method of managing events for data using the blockchain.
- an event means that a node has performed some operation on data.
- the data management method using the blockchain of the present invention is a method of storing and managing data generated according to the above-described event through the blockchain.
- Events managed by the blockchain can be divided into type 1 events and type 2 events.
- Type 1 events correspond to events that are not based on existing data.
- Type 2 events correspond to events based on existing data.
- the type 1 event may be an event related to generating new material
- the type 2 event may be an event related to performing at least one of modifying, changing, deleting, discarding, inquiring, and transferring existing data.
- the data may be information about digital content.
- the first type event may be an event related to generating new digital content
- the second type event may be an event based on already generated digital content.
- the type 2 event may be, for example, an event related to performing at least one of the modification, change, deletion, discard, inquiry, and delivery of already generated digital content.
- the data may be information about the document.
- the type 1 event may be an event related to generating a new document
- the type 2 event may be an event based on an already generated document.
- the second type event may be an event related to performing at least one of the modification, change, deletion, discarding, inquiry, and delivery of an already generated document.
- the data may also be information about the account.
- the type 1 event may be an event relating to creating a new account
- the type 2 event may be an event relating to a transaction of an already created account.
- Type 1 events and type 2 events may also be classified according to these various types. Type 1 events and type 2 events are not limited to those described above.
- FIG. 10 is a flowchart illustrating a data management method using a blockchain according to an embodiment of the present invention.
- the method may include: preparing a main branch (S100), determining a type of an event (S200), extending a main branch (S510), and searching for a root block. Step S300, determining the existence of the sub branch S400, generating the sub branch S520, and extending the sub branch S530.
- 11 to 15 show that data is information about a document as an example.
- the preparing of the main branch (S100) is a preparing of the main branch to which at least one block is connected according to the generation order of the blocks.
- the main branch is composed of first type blocks containing first type data.
- the blockchain is provided with a main branch. Specifically, the block chain is in a state where a main branch composed of six first type blocks B 1 to B 6 is provided.
- data according to an event in which six documents (Nos. 1 to 6) are generated is managed in each block.
- the data management method using the blockchain of the present invention relates to a method of managing data according to the generated event using the blockchain when a new event occurs while a main branch is provided.
- step S200 of determining the type of event is performed.
- the event may be a type 1 event or a type 2 event.
- Extending the main branch (S510) is a step of generating a block including data according to the first type event that occurred, to be connected to the last block of the main branch.
- the newly created block is connected to the existing main branch so that the main branch is extended.
- the node to generate a block generates a block body including data according to the type 1 event that has occurred.
- the hash value of the block body is inserted into the block header.
- a hash value of at least a part of the last block of the existing main branch may be inserted into the block header of the block to be newly created.
- the block header includes a hash value of the block body and a hash value of at least a part of the last block of the existing main branch.
- the node to generate a block searches for a nonce that satisfies the block generation condition, and inserts the found nonce into the block header to generate the block.
- FIG. 12 is a diagram for describing a method of managing data according to a first type event in which seven new documents are generated in the blockchain state of FIG. 11.
- a block B 7 including data according to the first type event in which document 7 is generated is newly generated.
- the generated block B 7 is connected to the last block B 6 of the existing main branch to extend the main branch.
- the newly generated block B 7 includes a hash value H 6 of at least a portion of the last block of the existing main branch.
- the step S300 of searching for the root block is performed.
- Searching for the root block (S300) is a step of searching for a block including data based on the generated second type event.
- the root block may be one of the blocks included in the main branch.
- a step (S400) of determining whether there is a sub branch starting from the found root block and distinguished from the main branch is performed. If the sub branch does not exist, generating a sub branch (S520) is performed. If there is a sub branch, the step (S530) of extending the sub branch is performed.
- the generating of the sub branch (S520) is a step of generating a block including data according to the generated second type event to be connected to the root block.
- the newly created block is connected to the root convex to create a sub branch.
- the node to create a block generates a block body including data according to the type 2 event that has occurred.
- the hash value of the block body is inserted into the block header.
- a hash value of at least a portion of the root block may be inserted into a block header of a block to be newly generated.
- the block header includes a hash value of the block body, a hash value of at least a part of the root block, and the like.
- the node to generate a block searches for a nonce that satisfies the block generation condition, and inserts the found nonce into the block header to generate the block.
- FIG. 13 is a diagram for describing a method of managing data according to a case in which a second type event in which five documents are modified in the blockchain state of FIG. 12 occurs.
- a step (S300) of searching for a root block including data based on the generated type 2 event is performed. Referring to FIG. 13, a block B 5 including data according to an event in which document 5 is generated as a root block is searched for in step S300.
- step S400 When the root block is searched, a step (S400) of determining whether there is a sub branch starting from the found root block B 5 and distinguished from the main branch is performed. Referring to FIG. 13, in step S400, it is determined that there is no sub branch starting from the root block B 5 .
- generating a sub branch (S510) is performed.
- a block B 51 including data according to the second type event in which document 5 is modified is newly generated.
- the generated block B 51 is connected to the searched root block B 5 to generate a sub branch.
- the newly generated block B 51 includes a hash value H 5 of at least a portion of the root block.
- Extending the sub branch (S520) is a step of generating a block including data according to the generated second type event to be connected to the end of the sub branch. The newly created block is connected to the sub branch so that the sub branch is extended.
- the node to create a block generates a block body including data according to the type 2 event that has occurred.
- the hash value of the block body is inserted into the block header.
- a hash value of at least a portion of the last block of the sub branch may be inserted into the block header of the block to be newly generated.
- the block header includes a hash value of the block body and a hash value of at least a part of the last block of the sub branch.
- the node to generate a block searches for a nonce that satisfies the block generation condition, and inserts the found nonce into the block header to generate the block.
- FIGS. 14 and 15 a case in which the generated event is a second type event and a sub branch is present will be described.
- 14 illustrates an extended state in which a plurality of second type events are generated in a blockchain state of FIG. 13 to generate a plurality of sub branches. It is assumed that a new second type event has occurred in the blockchain state of FIG. 14.
- FIG. 15 is a diagram for describing a method of managing data according to a second type event in which three documents are inquired in the blockchain state of FIG. 14.
- a step (S300) of searching for a root block including data based on the generated second type event is performed. Referring to FIG. 15, a block B 3 including data according to an event in which document 3 is generated as a root block in step S300 is searched.
- step (S400) of determining whether there is a sub branch starting from the found root block B 3 and distinguished from the main branch is performed. Referring to FIG. 15, it is determined in step S400 that there exists a sub branch starting from the root block B 3 .
- a block B 35 including data according to the second type event in which document 3 is inquired is newly generated.
- the generated block B 35 is generated to be connected to the last block B 34 of the sub branch starting from the found root block B 3 .
- the newly generated block B 35 includes a hash value H 34 of at least a portion of the last block of the sub branch.
- a blockchain including one main branch and at least one subbranch can be formed, and data can be managed using the blockchain.
- data can be managed using the blockchain.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
Disclosed are a blockchain system and a method for managing data using blockchain. The blockchain system, according to the present invention, is a blockchain system managing two or more pieces of data wherein one block includes one piece of data. The data can be separated into type one data not based on other data and type two data based on the type one data. The block chain system comprises type one blocks including pieces of the type one data, wherein each of the type one blocks include a main branch and type two blocks including the type two data, connected according to the order of generation of each block. The type two blocks include at least one sub-branch connected using one type one block as a root block. One sub-branch includes a root block, which is a type one block, and at least one type two block including type two data based on type one data that is included in the root block. Each of the at least one type two blocks in the one sub branch is connected according to the order of generation of each block, wherein the first type two block generated from the one sub-branch is connected to a root block.
Description
본 발명은 블록체인 시스템 및 블록체인을 이용한 데이터 관리 방법에 관한 것으로, 더욱 상세하게는 복수의 브랜치를 포함하는 블록체인 시스템 및 이러한 블록체인을 이용한 데이터 관리 방법에 관한 것이다.The present invention relates to a blockchain system and a data management method using a blockchain, and more particularly, to a blockchain system including a plurality of branches and a data management method using such a blockchain.
블록체인은 분산 데이터베이스의 일종으로 암호화된 가상화폐인 비트코인에서 도입된 개념으로 알려져 있다. 기존에 거래장부, 문서 등의 디지털 컨텐츠를 중앙집중형 서버에 보관하고 관리하던 것과 달리, 블록체인 시스템에서는 누적된 디지털 컨텐츠를 네트워크를 통해 연결된 복수의 참여자의 장치(노드)에 저장하여 관리한다. 이러한 블록체인 시스템은 디지털 컨텐츠 자체가 인터넷을 통해 공개되어 있고, 다수의 참여자에 의해 수시로 검증이 진행되므로 위조 또는 변조가 매우 어렵다는 장점이 있다.Blockchain is known as a concept introduced in Bitcoin, a cryptocurrency that is a kind of distributed database. Unlike the conventional storage and management of digital contents such as transaction books and documents in a centralized server, the blockchain system stores and manages the accumulated digital contents in devices (nodes) of a plurality of participants connected through a network. Such a blockchain system has the advantage that digital content itself is open to the public through the Internet, and since verification is frequently performed by a large number of participants, forgery or tampering is very difficult.
이러한 블록체인 시스템은 비트코인 등의 가상화폐 시스템 또는 금융기관의 거래기록 보관 등에 사용되고 있다. 또한, 최근에는 이러한 블록체인 시스템을 전자화된 문서관리 및 원본확인 등을 위해 사용되기도 한다.Such a blockchain system is used for storing a transaction record of a virtual currency system such as Bitcoin or a financial institution. Recently, such blockchain systems have also been used for electronic document management and original verification.
블록체인에 참여하는 노드들은 전체 블록체인의 데이터를 장치에 저장하고 유지관리 해야한다. 누적된 거래 등이 적어 전체 블록체인의 크기가 크지 않은 경우에는 문제되지 않으나, 거래 등 신규 이벤트 발생이 누적되면서 블록의 개수가 증가할수록 전체 블록체인의 크기는 점차 증가하게 된다. 대표적인 블록체인 시스템인 비트코인의 전체 블록체인 크기는 현재 수십 Gbyte에 달하고 있다.Nodes participating in the blockchain must store and maintain the data of the entire blockchain on the device. This is not a problem if the total blockchain size is not large because there are few accumulated transactions, but as the number of blocks increases as the number of new events such as transactions accumulate, the size of the entire blockchain gradually increases. The overall blockchain size of Bitcoin, a representative blockchain system, is now several tens of Gbytes.
따라서 블록체인에 참여하는 노드들은 이러한 대용량의 데이터를 저장하고 유지관리할 수 있는 높은 수준의 저장 장치 및 컴퓨팅 장치가 필요하다. 그러나 일반적인 개인용 컴퓨터는 이러한 수준의 성능에 도달하지 못할 수 있다. 특히, 스마트폰, 태블릿 컴퓨터 등 개인용 모바일 장치는 더욱 이러한 수준의 성능에 도달하지 못하는 실정이다.Therefore, nodes participating in the blockchain need a high level of storage and computing devices capable of storing and maintaining such a large amount of data. However, a typical personal computer may not reach this level of performance. In particular, personal mobile devices such as smartphones and tablet computers are not able to reach this level of performance.
본 발명이 해결하려는 과제는, 블록들을 다차원으로 연결하여 블록체인을 효율적이고 체계적으로 구성할 수 있는 블록체인 시스템을 제공하는 것이다. An object of the present invention is to provide a blockchain system capable of efficiently and systematically constructing a blockchain by connecting blocks in multiple dimensions.
본 발명이 해결하려는 다른 과제는, 블록이 포함하는 데이터를 두 가지로 구분하여 블록체인을 다차원으로 구성할 수 있는 블록체인 시스템을 제공하는 것이다.Another object of the present invention is to provide a blockchain system capable of constructing a blockchain in two dimensions by dividing the data contained in the block into two types.
본 발명이 해결하려는 또 다른 과제는, 다차원으로 연결된 블록체인을 이용하여 데이터를 효율적이고 체계적으로 관리하는 방법을 제공하는 것이다.Another object of the present invention is to provide a method for efficiently and systematically managing data using a multi-dimensionally connected blockchain.
상기 과제를 해결하기 위한 본 발명의 블록체인 시스템은, 하나의 블록은 하나의 데이터를 포함하고, 둘 이상의 데이터들을 관리하는 블록체인 시스템에 있어서, 상기 데이터는 다른 데이터에 기반하지 않은 제1 형 데이터 및 상기 제1 형 데이터에 기반한 제2 형 데이터로 구분되고, 상기 제1 형 데이터들이 포함된 제1 형 블록들을 포함하고, 상기 제1 형 블록들은 각각 블록의 생성 순서에 따라 연결된 메인 브랜치 및 상기 제2 형 데이터들이 포함된 제2 형 블록들을 포함하고, 상기 제2 형 블록들은 하나의 제1 형 블록을 루트 블록으로 하여 연결된 적어도 하나의 서브 브랜치를 포함하고, 하나의 서브 브랜치는, 제1 형 블록인 루트 블록 및 상기 루트 블록이 포함하는 제1 형 데이터에 기반한 제2 형 데이터를 포함하는 적어도 하나의 제2 형 블록을 포함하고, 상기 하나의 서브 브랜치의 적어도 하나의 제2 형 블록은 각각 블록의 생성 순서에 따라 연결되되, 상기 하나의 서브 브랜치에서 최초로 생성된 제2 형 블록은 루트 블록에 연결된다.In the blockchain system of the present invention for solving the above problems, in a blockchain system in which one block includes one data and manages two or more data, the data is first type data not based on other data. And first type blocks that are divided into second type data based on the first type data, and include first type blocks including the first type data, wherein the first type blocks are connected to each other according to a generation order of the blocks; A second type block including second type data, wherein the second type blocks include at least one sub branch connected with one first type block as a root block, and one sub branch includes: And at least one second type block including a root block that is a type block and second type data based on first type data included in the root block. At least one second type of block of the one of the sub-branch is doedoe connection according to the order of creation of each of the blocks, the second block of the first type generated by the single sub-branch is coupled to the root block.
본 발명의 일 실시예에 있어서, 상기 메인 브랜치에서 하나의 제1 형 블록은 직전에 생성된 제1 형 블록의 적어도 일부의 해시값을 포함할 수 있다.In one embodiment of the present invention, one first type block in the main branch may include a hash value of at least a portion of the first type block just generated.
본 발명의 일 실시예에 있어서, 상기 하나의 서브 브랜치에서 최초로 생성된 제2 형 블록은 연결되는 루트 블록의 적어도 일부의 해시값을 포함할 수 있다.In one embodiment of the present invention, the second type block first generated in the one sub branch may include a hash value of at least a portion of the root block to be connected.
본 발명의 일 실시예에 있어서, 상기 하나의 서브 브랜치에서 최초로 생성되지 않은 제2 형 블록은 상기 서브 브랜치에 포함되고 직전에 생성된 제2 형 블록의 적어도 일부의 해시값을 포함할 수 있다.In one embodiment of the present invention, the second type block that is not first generated in the one sub branch may include a hash value of at least a portion of the second type block that is included in the sub branch and immediately generated.
본 발명의 일 실시예에 있어서, 상기 제1 형 데이터는 신규 자료를 생성하는 것에 관한 데이터이고, 상기 제2 형 데이터는 기존 자료를 수정, 변경, 삭제, 폐기, 조회 및 전달 중 적어도 어느 하나를 수행할 수 있다.In one embodiment of the present invention, the first type data is data for creating new data, and the second type data is at least one of modifying, changing, deleting, discarding, inquiring and transferring existing data. Can be done.
본 발명의 일 실시예에 있어서, 상기 데이터는 디지털 컨텐츠에 관한 정보이고, 상기 제1 형 데이터는 신규 디지털 컨텐츠에 관한 정보이고, 상기 제2 형 데이터는 이미 생성된 디지털 컨텐츠에 기반한 정보일 수 있다.In one embodiment of the present invention, the data may be information about digital content, the first type data may be information about new digital content, and the second type data may be information based on already generated digital content. .
본 발명의 일 실시예에 있어서, 상기 제2 형 데이터는 이미 생성된 디지털 컨텐츠의 수정, 변경, 삭제, 폐기, 조회 및 전달 중 적어도 어느 하나에 관한 정보일 수 있다.In one embodiment of the present invention, the second type of data may be information regarding at least one of modification, change, deletion, discard, inquiry, and transmission of already generated digital content.
본 발명의 일 실시예에 있어서, 상기 데이터는 문서에 관한 정보이고, 상기 제1 형 데이터는 신규 문서 생성에 관한 정보이고, 상기 제2 형 데이터는 이미 생성된 문서에 기반한 정보일 수 있다.In one embodiment of the present invention, the data may be information about a document, the first type data may be information about a new document generation, and the second type data may be information based on a document that has already been generated.
본 발명의 일 실시예에 있어서, 상기 제2 형 데이터는 이미 생성된 문서의 수정, 변경, 삭제, 폐기, 조회 및 전달 중 적어도 어느 하나에 관한 정보일 수 있다.In one embodiment of the present invention, the second type of data may be information regarding at least one of the modification, modification, deletion, discarding, inquiry, and transmission of the already generated document.
본 발명의 일 실시예에 있어서, 상기 데이터는 계좌에 관한 정보이고, 상기 제1 형 데이터는 신규 계좌 생성에 관한 정보이고, 상기 제2 형 데이터는 이미 생성된 계좌의 거래에 관한 정보일 수 있다.In one embodiment of the present invention, the data may be information about an account, the first type data may be information about creating a new account, and the second type data may be information about a transaction of an already created account. .
또한, 상기 과제를 해결하기 위한 본 발명의 블록체인을 이용한 데이터 관리 방법은, 하나의 블록은 하나의 데이터를 포함하고, 둘 이상의 데이터들에 대한 이벤트를 블록체인을 이용하여 관리하는 방법에 있어서, 상기 이벤트는 기존의 데이터에 기반하지 않은 제1 형 이벤트 및 기존의 데이터에 기반한 제2 형 이벤트로 구분되고, 적어도 하나의 블록이 각각 블록의 생성 순서에 따라 연결된 메인 브랜치를 마련하는 단계, 제2 형 이벤트가 발생하면, 상기 메인 브랜치에서 상기 제2 형 이벤트가 기반한 데이터를 포함하는 루트 블록을 탐색하는 단계, 상기 루트 블록에서 시작되고 상기 메인 브랜치와 구분되는 서브 브랜치가 존재하지 않으면, 상기 제2 형 이벤트에 따른 데이터를 포함하는 블록을 상기 루트 블록에 연결되도록 생성하여 서브 브랜치를 생성하는 단계를 포함한다.In addition, in the data management method using the blockchain of the present invention for solving the above problems, in a method that one block includes one data, the event for two or more data using the blockchain, The event may be divided into a first type event based on existing data and a second type event based on existing data, and providing a main branch to which at least one block is connected in the order of block generation, respectively, Searching for a root block including data on which the second type event is based in the main branch when the type event occurs; if there is no sub branch starting from the root block and distinguished from the main branch, the second branch; A sub branch is generated by creating a block including data according to a type event to be connected to the root block. And a step of sex.
본 발명의 일 실시예에 있어서, 상기 서브 브랜치를 생성하는 단계는, 상기 루트 블록의 적어도 일부의 해시값을 생성하려는 블록의 블록헤더에 삽입하는 단계를 포함할 수 있다.In an embodiment of the present disclosure, the generating of the sub branch may include inserting a hash value of at least a portion of the root block into a block header of a block to be generated.
본 발명의 일 실시예에 있어서, 상기 서브 브랜치를 생성하는 단계는, 상기 루트 블록에서 시작되고 상기 메인 브랜치와 구분되는 서브 브랜치가 존재하는지 여부를 판단하는 단계를 포함할 수 있다.In an embodiment of the present disclosure, the generating of the sub branch may include determining whether there is a sub branch starting from the root block and distinguished from the main branch.
본 발명의 일 실시예에 있어서, 상기 루트 블록에서 시작되고 상기 메인 브랜치와 구분되는 서브 브랜치가 존재하면, 상기 제2 형 이벤트에 따른 데이터를 포함하는 블록을 상기 서브 브랜치의 마지막 블록에 연결되도록 생성하여 상기 서브 브랜치를 연장하는 단계를 더 포함할 수 있다.In one embodiment of the present invention, if there is a sub branch starting from the root block and distinguished from the main branch, a block including data according to the second type event is connected to the last block of the sub branch. The method may further include extending the sub branch.
본 발명의 일 실시예에 있어서, 상기 서브 브랜치를 연장하는 단계는, 상기 서브 브랜치의 마지막 블록의 적어도 일부의 해시값을 생성하려는 블록의 블록헤더에 삽입하는 단계를 포함할 수 있다.In an embodiment of the present disclosure, extending the sub branch may include inserting a hash value of at least a portion of the last block of the sub branch into a block header of a block to be generated.
본 발명의 일 실시예에 있어서, 상기 서브 브랜치를 연장하는 단계는, 상기 루트 블록에서 시작되고 상기 메인 브랜치와 구분되는 서브 브랜치가 존재하는지 여부를 판단하는 단계를 포함할 수 있다.In an embodiment of the present disclosure, the extending of the sub branch may include determining whether there is a sub branch starting from the root block and distinguished from the main branch.
본 발명의 일 실시예에 있어서, 제1 형 이벤트가 발생하면, 상기 제1 형 이벤트에 따른 데이터를 포함하는 블록을 상기 메인 브랜치의 마지막 블록에 연결되도록 생성하여 상기 메인 브랜치를 연장하는 단계를 더 포함할 수 있다.In an embodiment of the present disclosure, when the first type event occurs, generating the block including data according to the first type event to be connected to the last block of the main branch to further extend the main branch. It may include.
본 발명의 일 실시예에 있어서, 상기 메인 브랜치를 연장하는 단계는, 상기 메인 브랜치의 마지막 블록의 적어도 일부의 해시값을 생성하려는 블록의 블록헤더에 삽입하는 단계를 포함할 수 있다.In an embodiment of the present disclosure, extending the main branch may include inserting a hash value of at least a portion of the last block of the main branch into a block header of a block to be generated.
본 발명의 일 실시예에 있어서, 상기 제1 형 이벤트는 신규 자료를 생성하는 것에 관한 이벤트이고, 상기 제2 형 이벤트는 기존 자료를 수정, 변경, 삭제, 폐기, 조회 및 전달 중 어느 적어도 하나를 수행하는 것에 관한 이벤트일 수 있다.In one embodiment of the present invention, the type 1 event is an event related to creating new material, and the type 2 event is one of modifying, changing, deleting, discarding, inquiring and transferring existing material. It may be an event about performing.
본 발명의 일 실시예에 있어서, 상기 데이터는 디지털 컨텐츠에 관한 정보이고, 상기 제1 형 이벤트는 신규 디지털 컨텐츠를 생성하는 것에 관한 이벤트이고, 상기 제2 형 이벤트는 이미 생성된 디지털 컨텐츠에 기반한 이벤트일 수 있다.In one embodiment of the present invention, the data is information about digital content, the first type event is an event related to creating a new digital content, and the second type event is an event based on already generated digital content. Can be.
본 발명의 일 실시예에 있어서, 상기 제2 형 이벤트는 이미 생성된 디지털 컨텐츠의 수정, 변경, 삭제, 폐기, 조회 및 전달 중 적어도 어느 하나를 수행하는 것에 관한 이벤트일 수 있다.In one embodiment of the present invention, the second type event may be an event related to performing at least one of the modification, change, deletion, discard, inquiry, and delivery of already generated digital content.
본 발명의 일 실시예에 있어서, 상기 데이터는 문서에 관한 정보이고, 상기 제1 형 이벤트는 신규 문서를 생성하는 것에 관한 이벤트이고, 상기 제2 형 이벤트는 이미 생성된 문서에 기반한 이벤트일 수 있다.In one embodiment of the present invention, the data may be information about a document, the first type event may be an event related to creating a new document, and the second type event may be an event based on a document already generated. .
본 발명의 일 실시예에 있어서, 상기 제2 형 이벤트는 이미 생성된 문서의 수정, 변경, 삭제, 조회 및 전달 중 적어도 어느 하나를 수행하는 것에 관한 이벤트일 수 있다.In one embodiment of the present invention, the second type event may be an event related to performing at least one of the modification, change, deletion, inquiry and delivery of the already generated document.
본 발명의 일 실시예에 있어서, 상기 제1 형 이벤트는 신규 계좌를 생성하는 것에 관한 이벤트이고, 상기 제2 형 이벤트는 이미 생성된 계좌의 거래에 관한 이벤트일 수 있다.In one embodiment of the present invention, the first type event may be an event related to creating a new account, and the second type event may be an event related to a transaction of an already created account.
본 발명의 일 실시예에 따른 블록체인 시스템은 블록들을 다차원으로 연결하여 블록체인을 효율적이고 체계적으로 구성할 수 있다는 장점이 있다.The blockchain system according to an embodiment of the present invention has an advantage of efficiently and systematically constructing a blockchain by connecting blocks in multiple dimensions.
또한, 본 발명의 일 실시예에 따른 블록체인 시스템은 블록이 포함하는 데이터를 두 가지로 구분하여 블록체인을 다차원으로 구성할 수 있다는 장점이 있다.In addition, the blockchain system according to an embodiment of the present invention has an advantage in that the blockchain can be multi-dimensionally divided into two types of data included in the block.
또한, 본 발명의 일 실시예에 따른 블록체인을 이용한 데이터 관리 방법은 다차원으로 연결된 블록체인을 이용하여 데이터를 효율적이고 체계적으로 관리할 수 있다는 장점이 있다.In addition, the data management method using a blockchain according to an embodiment of the present invention has the advantage that it is possible to efficiently and systematically manage data using a blockchain connected in multiple dimensions.
도 1은 본 발명의 일 실시예에 따른 블록체인 시스템의 개별 블록의 구성을 도시한 것이다.1 illustrates a configuration of individual blocks of a blockchain system according to an embodiment of the present invention.
도 2는 본 발명의 일 실시예에 따른 블록체인 시스템의 두 개의 블록이 연결된 것을 도시한 것이다.Figure 2 shows that two blocks of the blockchain system according to an embodiment of the present invention are connected.
도 3 내지 도 6은 본 발명의 일 실시예에 따른 블록체인 시스템의 데이터를 설명하기 위한 도면이다.3 to 6 are diagrams for explaining data of a blockchain system according to an embodiment of the present invention.
도 7은 블록체인에서 블록의 표시 방법을 설명하기 위한 도면이다.7 is a diagram for describing a method of displaying a block in a blockchain.
도 8은 본 발명의 일 실시예에 따른 블록체인 시스템의 예시 도면이다.8 is an exemplary diagram of a blockchain system according to an embodiment of the present invention.
도 9는 본 발명의 일 실시예에 따른 블록체인 시스템의 사용 예시에 관한 도면이다.9 is a diagram for an example of using a blockchain system according to an embodiment of the present invention.
도 10은 본 발명의 일 실시예에 따른 블록체인을 이용한 데이터 관리 방법을 설명하기 위한 순서도이다.10 is a flowchart illustrating a data management method using a blockchain according to an embodiment of the present invention.
도 11 내지 도 15는 본 발명의 일 실시예에 따른 블록체인을 이용한 데이터 관리 방법을 설명하기 위한 블록체인의 예시에 관한 도면이다.11 to 15 are diagrams for an example of a blockchain for explaining a data management method using a blockchain according to an embodiment of the present invention.
이하, 첨부된 도면을 참조하여 본 발명의 실시예들을 상세히 설명한다. 본 발명을 설명하는데 있어서, 해당 분야에 이미 공지된 기술 또는 구성에 대한 구체적인 설명을 부가하는 것이 본 발명의 요지를 불분명하게 할 수 있다고 판단되는 경우에는 상세한 설명에서 이를 일부 생략하도록 한다. 또한, 본 명세서에서 사용되는 용어들은 본 발명의 실시예들을 적절히 표현하기 위해 사용된 용어들로서, 이는 해당 분야의 관련된 사람 또는 관례 등에 따라 달라질 수 있다. 따라서, 본 용어들에 대한 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.Hereinafter, with reference to the accompanying drawings will be described embodiments of the present invention; In describing the present invention, if it is determined that adding specific descriptions of techniques or configurations already known in the art may make the gist of the present invention unclear, some of them will be omitted from the detailed description. In addition, terms used in the present specification are terms used to properly express the embodiments of the present invention, which may vary according to related persons or customs in the art. Therefore, the definitions of the terms should be made based on the contents throughout the specification.
이하, 첨부한 도 1 내지 도 9를 참조하여, 본 발명의 일 실시예에 따른 블록체인 시스템에 대해 설명한다.Hereinafter, a blockchain system according to an exemplary embodiment of the present invention will be described with reference to FIGS. 1 to 9.
도 1은 본 발명의 일 실시예에 따른 블록체인 시스템의 개별 블록의 구성을 도시한 것이다. 도 2는 본 발명의 일 실시예에 따른 블록체인 시스템의 두 개의 블록이 연결된 것을 도시한 것이다.1 illustrates a configuration of individual blocks of a blockchain system according to an embodiment of the present invention. Figure 2 shows that two blocks of the blockchain system according to an embodiment of the present invention are connected.
도 1을 참조하면, 하나의 블록(100)은 블록헤더(110) 및 블록몸체(120)를 포함한다.Referring to FIG. 1, one block 100 includes a block header 110 and a block body 120.
블록헤더(110)는 블록의 타이틀, 직전 블록의 해시값, 블록몸체의 해시값, 타임스탬프, 난이도 목표 및 난스 등을 포함할 수 있다. 블록헤더(110)가 포함하는 정보는 다양하게 변경되어 구성될 수 있다.The block header 110 may include a title of a block, a hash value of a previous block, a hash value of a block body, a time stamp, a difficulty goal, and a nonce. The information included in the block header 110 may be configured in various ways.
블록의 타이틀은 블록(100)을 다른 블록과 구분할 수 있는 식별 정보를 의미한다. 블록의 타이틀은 다른 블록과의 연결 관계에 따라 정해질 수 있다.The title of the block refers to identification information that can distinguish the block 100 from other blocks. The title of a block may be determined according to a connection relationship with another block.
직전 블록의 해시값은 브랜치에서 해당 블록 이전에 생성되어 해당 블록과 연결되는 블록의 해시값이다. 직전 블록의 해시값은 직전 블록의 전체 또는 선택된 일부의 정보의 해시값일 수 있다. 예를 들어, 직전 블록의 해시값은 직전 블록의 블록헤더의 정보의 해시값인 것으로 정의될 수 있다. 블록헤더에 직전 블록의 해시값이 포함됨으로서, 블록 간의 연결성이 강화될 수 있다. 블록 간의 연결성이 강화되는 것은 블록체인 시스템 전체의 보안성이 향상되는 것을 의미한다.The hash value of the immediately preceding block is a hash value of a block generated before the block in the branch and connected to the block. The hash value of the immediately preceding block may be a hash value of all or selected portions of information of the immediately preceding block. For example, the hash value of the immediately preceding block may be defined as being a hash value of information of the block header of the immediately preceding block. By including the hash value of the previous block in the block header, connectivity between blocks can be enhanced. Increasing the connectivity between blocks means improving the security of the entire blockchain system.
블록몸체의 해시값은 해당 블록의 블록몸체(120)가 포함하는 데이터의 해시값이다. 후술하는 것과 같이, 블록몸체(120)는 데이터를 포함한다. 블록몸체의 해시값은 블록몸체가 포함하는 데이터의 전체 또는 선택된 일부의 해시값일 수 있다. 블록몸체의 해시값은 다양한 방식으로 결정될 수 있다. 예를 들어, 블록몸체의 해시값은 블록몸체(120)의 데이터로부터 생성된 머클 트리의 루트에 대한 해시값일 수 있다. 블록몸체의 해시값은 블록몸체(120)의 데이터의 요약본에 해당하는 것으로, 상대적으로 크기가 큰 블록몸체(120)의 데이터를 효율적으로 관리하고 검증할 수 있게 한다.The hash value of the block body is a hash value of data included in the block body 120 of the block. As will be described later, the block body 120 includes data. The hash value of the block body may be a hash value of all or selected portions of data included in the block body. The hash value of the block body can be determined in various ways. For example, the hash value of the block body may be a hash value for the root of the Merkle tree generated from the data of the block body 120. The hash value of the block body corresponds to a summary of the data of the block body 120, and enables the efficient management and verification of the data of the relatively large block body 120.
타임스탬프(time stamp)는 해당 블록의 생성시간에 관한 정보이다.A time stamp is information about a generation time of a corresponding block.
난이도 목표는 해당 블록의 작업증명 알고리즘에 대한 난이도 목표이다. 이는 해당 블록의 난스를 찾는데 필요한 해싱파워를 결정하는 것에 관한 정보이다.The difficulty goal is the difficulty goal for the proof-of-work algorithm of the block. This is information about determining the hashing power needed to find the nonce of the block.
난스(nonce)는 해당 블록의 작업증명 알고리즘에 사용되는 카운터 정보이다.The nonce is counter information used in the proof-of-work algorithm of the block.
블록헤더(110)에는 상술한 정보 중 일부가 제외될 수도 있고, 다른 정보가 추가로 포함될 수도 있다.The block header 110 may exclude some of the above-described information, or may further include other information.
블록몸체(120)는 블록(100)이 저장하고 관리하는 데이터를 포함한다. 데이터는 디지털 데이터에 해당한다. 데이터는 다양한 형태의 자료일 수 있다. 예를 들어, 데이터는 디지털 컨텐츠, 문서 정보, 계좌 정보, 거래 정보, 인사 정보, 생산 이력 정보, 제품 또는 건축물의 설계 및 도면, 사운드 정보 등이 가능하며, 특정한 형태로 한정되는 것은 아니다.The block body 120 includes data stored and managed by the block 100. Data corresponds to digital data. The data can be in various forms. For example, the data may be digital content, document information, account information, transaction information, personnel information, production history information, design and drawing of a product or building, sound information, and the like, but is not limited to a specific form.
블록몸체(120)가 포함하는 데이터는 블록에 따라서 종류 또는 크기 등이 제한될 수 있다. 이러한 데이터의 제한은 모든 블록에 공통으로 적용될 수도 있고, 특정한 몇몇 블록에만 선택적으로 적용될 수도 있다. 또한, 이러한 데이터의 제한은 필요에 따라 변경될 수 있다.Data included in the block body 120 may be limited in type or size depending on the block. This limitation of data may be applied to all blocks in common, or may be selectively applied to only a few specific blocks. In addition, the limitation of such data may be changed as necessary.
도 2를 참조하면, 두 개의 블록은 서로 연결될 수 있다. 구체적으로, 복수의 블록은 순차적으로 연결되어 브랜치를 형성할 수 있다. 여기서, 브랜치란 복수의 블록들이 서로 선형적으로 연결된 블록들의 집합을 의미한다. 도 2에는 이러한 브랜치에서 임의의 두 개의 블록이 연결된 상태가 도시되어 있다. Referring to FIG. 2, two blocks may be connected to each other. In detail, the plurality of blocks may be sequentially connected to form a branch. Here, a branch means a set of blocks in which a plurality of blocks are linearly connected to each other. 2 shows a state in which any two blocks in this branch are connected.
도 2를 참조하면, 브랜치에서 임의의 하나의 블록(200)은 브랜치 내에서 직전에 생성된 블록(100)과 연결되게 된다. 블록(200)은 직전에 생성된 블록(100)의 해시값을 포함하는 것을 통해 연결된다. 구체적으로, 블록(200)은 블록헤더(210)에 직전에 생성된 블록(100)의 해시값을 포함하는 것을 통해 연결될 수 있다.Referring to FIG. 2, any one block 200 in a branch is to be connected to a block 100 just created in the branch. The block 200 is connected via including the hash value of the block 100 just generated. In detail, the block 200 may be connected to the block header 210 by including a hash value of the block 100 generated immediately before.
직전에 생성된 블록(100)의 해시값은 상술한 것과 같이, 직전 블록(100)의 전체 또는 선택된 일부의 정보의 해시값일 수 있다. 예를 들어, 첨부한 도 2에 도시된 것과 같이 직전 블록(100)의 해시값은 직전 블록의 블록헤더(110)의 정보의 해시값인 것으로 정의될 수 있다. 직전 블록의 해시값은 블록을 설계하는 사람의 기호 및 판단에 따라 다양하게 변경될 수 있다.The hash value of the block 100 generated immediately before may be a hash value of all or selected portions of information of the immediately preceding block 100 as described above. For example, as illustrated in FIG. 2, a hash value of the immediately preceding block 100 may be defined as a hash value of information of the block header 110 of the immediately preceding block. The hash value of the immediately preceding block may be variously changed according to the preference and judgment of the person designing the block.
도 3 내지 6을 참조하여, 본 발명의 일 실시예에 따른 블록체인 시스템의 데이터에 대해 설명하도록 한다.With reference to Figures 3 to 6, it will be described for the data of the blockchain system according to an embodiment of the present invention.
본 발명의 블록체인 시스템은 복수의 블록을 포함한다. 하나의 블록은 하나의 데이터를 포함한다. 여기서 데이터는 하나의 블록에 포함되는 정보의 단위 집합을 의미한다. 구체적으로, 블록의 블록몸체는 데이터를 포함할 수 있다.The blockchain system of the present invention includes a plurality of blocks. One block contains one data. Here, data means a unit set of information included in one block. In detail, the block body of the block may include data.
블록체인 시스템의 블록이 포함하는 데이터는 제1 형 데이터 및 제2 형 데이터로 구분될 수 있다. 제1 형 데이터는 다른 데이터에 기반하지 않은 데이터에 해당한다. 제2 형 데이터는 제1 형 데이터에 기반한 데이터에 해당한다.Data included in the block of the blockchain system may be classified into first type data and second type data. Type 1 data corresponds to data that is not based on other data. Type 2 data corresponds to data based on type 1 data.
도 3을 참조하면, 제1 형 데이터(10)는 신규 자료를 생성하는 것에 관한 데이터일 수 있다. 그리고 제2 형 데이터(20)는 기존 자료를 수정, 변경, 삭제, 폐기, 조회 및 전달 중 적어도 어느 하나를 수행하는 것에 관한 데이터일 수 있다. 여기서, 기존 자료란 제1 형 데이터(10)가 생성한 자료를 의미한다.Referring to FIG. 3, the first type data 10 may be data about generating new data. The second type data 20 may be data about performing at least one of modifying, changing, deleting, discarding, inquiring, and transferring existing data. Here, the existing data means data generated by the first type data 10.
이하, 제1 형 데이터와 제2 형 데이터의 구분에 대해서 예를 들어 설명하도록 한다.Hereinafter, the division between the first type data and the second type data will be described with an example.
먼저 도 4를 참조하면, 데이터는 디지털 컨텐츠에 관한 정보일 수 있다. 디지털 컨텐츠란 디지털 정보로 구성된 모든 형태의 컨텐츠를 의미한다. 디지털 컨텐츠란 예를 들어, 이미지, 영상, 사운드, 텍스트, 프로그래밍 코드, 스프레드시트 등일 수 있으며 상기 나열한 것에 한정되지 않는다. 이러한 경우, 제1 형 데이터(10)는 신규 디지털 컨텐츠에 관한 정보이고, 제2 형 데이터(20)는 이미 생성된 디지털 컨텐츠에 기반한 정보일 수 있다. 여기서, 제2 형 데이터(20)는 예를 들어, 이미 생성된 디지털 컨텐츠의 수정, 변경, 삭제, 폐기, 조회 및 전달 중 적어도 어느 하나에 관한 정보일 수 있다. 여기서, 이미 생성된 디지털 컨텐츠란 제1 형 데이터(10)가 생성한 디지털 컨텐츠를 의미한다.First, referring to FIG. 4, data may be information regarding digital content. Digital content refers to all types of content composed of digital information. Digital content may be, for example, images, images, sounds, text, programming code, spreadsheets, and the like, but is not limited to those listed above. In this case, the first type data 10 may be information about new digital content, and the second type data 20 may be information based on already generated digital content. Here, the second type data 20 may be, for example, information regarding at least one of modification, change, deletion, disposal, inquiry, and transmission of already generated digital content. Here, the already generated digital content means digital content generated by the first type data 10.
또한, 도 5를 참조하면, 데이터는 문서에 관한 정보일 수 있다. 문서는 디지털 정보로 구성된 모든 형태의 문서를 의미한다. 예를 들어, 문서는 텍스트, 이미지 및 표 등을 포함할 수 있다. 또한, 문서는 관련자의 결재 및 합의 등에 관한 정보를 포함할 수 있다. 이러한 경우, 제1 형 데이터(10)는 신규 문서 생성에 관한 정보이고, 제2 형 데이터(20)는 이미 생성된 문서에 기반한 정보 정보일 수 있다. 여기서, 제2 형 데이터(20)는 예를 들어, 이미 생성된 문서의 수정, 변경, 삭제, 폐기, 조회 및 전달 중 적어도 어느 하나에 관한 정보일 수 있다. 더불어, 제2 형 데이터(20)는 이미 생성된 문서에 대한 결재, 합의, 반려 등에 관한 정보일 수 있다. 여기서, 이미 생성된 문서란 제1 형 데이터(10)가 생성한 문서를 의미한다.5, the data may be information about a document. Document means any type of document composed of digital information. For example, the document may include text, images, tables, and the like. In addition, the document may include information on the settlement and settlement of the parties concerned. In this case, the first type data 10 may be information about creating a new document, and the second type data 20 may be information information based on a document that has already been generated. Here, the second type data 20 may be, for example, information regarding at least one of modification, change, deletion, discarding, inquiry, and transmission of the already generated document. In addition, the second type data 20 may be information regarding payment, agreement, return, and the like, for the already generated document. Here, the already generated document means a document generated by the first type data 10.
또한, 도 6을 참조하면, 데이터는 계좌에 관한 정보일 수 있다. 이러한 경우, 제1 형 데이터(10)는 신규 계좌 생성에 관한 정보이고, 제2 형 데이터(20)는 이미 생성된 계좌의 거래에 관한 정보일 수 있다. 여기서, 이미 생성된 계좌란 제1 형 데이터(10)가 생성한 계좌를 의미한다.In addition, referring to FIG. 6, the data may be information about an account. In this case, the first type data 10 may be information about creating a new account, and the second type data 20 may be information about a transaction of an already created account. Here, the account already created means an account created by the first type data 10.
또한, 데이터는 상술한 것 이외에도 거래, 인사, 생산 이력, 설계, 도면, 사운드, 프로그래밍 코드 등이 될 수 있다. 그리고 제1 형 데이터 및 제2 형 데이터도 이러한 다양한 종류에 따라 구분될 수 있다. 제1 형 데이터 및 제2 형 데이터는 상술한 것에 한정되지 않는다.In addition to the above, the data may be transactions, personnel, production history, design, drawings, sound, programming code, and the like. Type 1 data and type 2 data may also be classified according to these various types. The first type data and the second type data are not limited to those described above.
도 7을 참조하여, 도 8 내지 도 9 및 도 11 내지 도 15에서 도시되는 블록체인을 구성하는 블록에 대해서 간략하게 설명하도록 한다.Referring to FIG. 7, the blocks constituting the blockchain shown in FIGS. 8 to 9 and 11 to 15 will be briefly described.
블록은 도 1 및 도 2를 참조하여 설명한 것과 같이, 블록헤더와 블록몸체를 포함한다. 그러나 설명의 편의성을 위해 도 8 내지 도 9 및 도 11 내지 도 15에서는 도 7에 도시된 방식으로 개별 블록을 표시하도록 한다.The block includes a block header and a block body, as described with reference to FIGS. 1 and 2. However, for convenience of description, the individual blocks are shown in FIGS. 8 to 9 and 11 to 15 in the manner shown in FIG. 7.
도 7을 참조하면, 하나의 블록을 설명하는데 있어서, 블록의 타이틀, 직전 블록의 해시값, 당해 블록의 해시값 및 블록이 포함하는 데이터가 표시된다. 상하로 배열된 4칸의 표에서, 첫번째 칸에는 블록의 타이틀이 표시되고, 두번째 칸에는 직전 블록의 해시값이 표시되고, 세번째 칸에는 당해 블록의 해시값이 표시되고, 마지막 칸에는 데이터가 표시된다.Referring to FIG. 7, in describing one block, the title of the block, the hash value of the previous block, the hash value of the block, and the data included in the block are displayed. In the four-column table, the title of the block is displayed in the first column, the hash value of the previous block is displayed in the second column, the hash value of the block is displayed in the third column, and the data is displayed in the last column. do.
블록의 타이틀은 Bn 또는 Bnm과 같은 형태로 표시된다. 블록의 타이틀이 Bn이라는 것은 상기 블록이 메인 브랜치의 n번째 블록이라는 것을 의미한다. 그리고 블록의 타이틀이 Bnm이라는 것은 상기 블록이 메인 브랜치의 n번째 블록에서 분기되는 서브 브랜치의 m번째 제2 형 블록이라는 것을 의미한다. 임의의 서브 브랜치의 m번째 제2 형 블록은 상기 서브 브랜치의 m+1번째 블록에 해당한다.The title of the block is expressed in the form B n or B nm . The title of the block B n means that the block is the n th block of the main branch. And the title of the block is B nm means that the block is the m-th type 2 block of the sub branch branched from the n-th block of the main branch. The m-th second type block of any sub branch corresponds to the m + 1 th block of the sub branch.
어느 블록의 해시값은 H라는 기호를 이용하여 표시된다. 예를 들어, 블록의 타이틀이 Bnm인 블록의 해시값은 Hnm으로 표시되게 된다. 도 7을 참조하면, 블록의 타이틀이 Bnm인 블록의 직전 블록은 블록의 타이틀이 Bn(m-1)인 블록인 것이고, 직전 블록의 해시값은 Hn(m-1)인 것이다.The hash value of a block is indicated using the symbol H. For example, it is to be the title of the block hash value of the block B is represented by H nm nm. Referring to FIG. 7, the immediately preceding block of the block whose title is B nm is a block whose title is B n (m-1) , and the hash value of the immediately preceding block is H n (m-1) .
상기 블록의 타이틀, 해시값의 기호 등을 설명하면서 언급한 메인 브랜치, 서브 브랜치, 제2 형 블록 등에 대해서는 이하 도 8을 참조하여 상세하게 설명하도록 한다.The main branch, the sub branch, the second type block, and the like mentioned while describing the title of the block, the symbol of the hash value, and the like will be described in detail with reference to FIG. 8.
도 8을 참조하여, 본 발명의 일 실시예에 따른 블록체인 시스템에 대해서 설명하도록 한다. 도 8은 본 발명의 일 실시예에 따른 블록체인 시스템의 예시 도면이다.Referring to FIG. 8, a blockchain system according to an embodiment of the present invention will be described. 8 is an exemplary diagram of a blockchain system according to an embodiment of the present invention.
본 발명의 블록체인 시스템은 복수의 블록을 포함한다. 하나의 블록은 하나의 데이터를 포함한다. 상술한 것과 같이, 데이터는 제1 형 데이터(10) 및 제2 형 데이터(20)로 구분될 수 있다. 블록은 포함하는 데이터의 종류에 따라 제1 형 블록(100-1) 및 제2 형 블록(100-2)으로 구분될 수 있다. 제1 형 블록(100-1)은 제1 형 데이터(10)를 포함하는 블록에 해당한다. 또한, 제2 형 블록(100-2)은 제2 형 데이터(20)를 포함하는 블록에 해당한다.The blockchain system of the present invention includes a plurality of blocks. One block contains one data. As described above, the data may be divided into the first type data 10 and the second type data 20. The block may be divided into a first type block 100-1 and a second type block 100-2 according to the type of data to be included. The first type block 100-1 corresponds to a block including the first type data 10. In addition, the second type block 100-2 corresponds to a block including the second type data 20.
본 발명의 블록체인 시스템은 메인 브랜치(1000) 및 적어도 하나의 서브 브랜치(2000)를 포함한다. 여기서, 브랜치란 복수의 블록들이 서로 선형적으로 연결된 블록들의 집합을 의미한다.The blockchain system of the present invention includes a main branch 1000 and at least one sub branch 2000. Here, a branch means a set of blocks in which a plurality of blocks are linearly connected to each other.
메인 브랜치(1000)는 최초로 생성된 블록(genesis block)과 이에 연결된 적어도 하나의 연결 블록을 포함한다. 메인 브랜치(1000)는 최초로 생성된 블록에서 연결 블록이 일 방향으로 분기되기 않고 연결된다. 메인 브랜치(1000)에서 분기되어 다른 브랜치가 형성될 수는 있지만 분기된 블록들은 메인 브랜치(1000)에 포함되는 것이 아니다. 분기된 블록들은 후술할 서브 브랜치(2000)에 포함될 수 있으며, 이에 대해서는 아래에서 설명하도록 한다.The main branch 1000 includes a generation block initially generated and at least one connection block connected thereto. The main branch 1000 is connected to the connection block without branching in one direction in the first generated block. Although branches may be formed in the main branch 1000 to form other branches, the branched blocks are not included in the main branch 1000. The branched blocks may be included in the sub branch 2000 to be described later, which will be described below.
메인 브랜치(1000)는 제1 형 블록(100-1)들로 구성된다. 즉, 메인 브랜치(1000)가 포함하는 최초로 생성된 블록 및 연결 블록은 모두 제1 형 블록(100-1)에 해당한다. 메인 브랜치(1000)가 포함하는 블록들은 생성된 순서에 따라 순서대로 연결된다. 블록의 연결은 당해 블록이 직전에 생성된 블록의 적어도 일부의 해시값을 포함하는 것에 의해 달성된다. 이러한 연결 형태에 대해서는 도 8에 블록 사이의 화살표를 통해 표시되어 있다. 따라서 최초로 생성된 블록을 제외하고 하나의 제1 형 블록은 직전에 생성된 제1 형 블록의 적어도 일부의 해시값을 포함한다.The main branch 1000 is composed of first type blocks 100-1. That is, the first generated block and the connection block included in the main branch 1000 correspond to the first type block 100-1. The blocks included in the main branch 1000 are connected in order according to the generated order. The concatenation of the blocks is accomplished by including the hash values of at least some of the blocks created just before that block. This type of connection is indicated by the arrows between the blocks in FIG. 8. Thus, except for the first generated block, one first type block includes a hash value of at least a portion of the first type block just generated.
서브 브랜치(2000)는 메인 브랜치(1000)로부터 분기되어 형성된 브랜치이다. 서브 브랜치(2000)는 루트 블록(root block)과 이에 연결된 적어도 하나의 연결 블록을 포함한다. 루트 블록은 메인 브랜치(1000)에도 포함되는 블록으로, 서브 브랜치(2000)의 분기가 시작되는 블록이다. 루트 블록은 당해 서브 브랜치(2000)에서 최초로 생성된 블록(genesis block)에 해당한다.The sub branch 2000 is a branch formed by branching from the main branch 1000. The sub branch 2000 includes a root block and at least one connection block connected thereto. The root block is also included in the main branch 1000 and is a block at which branching of the sub branch 2000 begins. The root block corresponds to a generation block first generated in the sub branch 2000.
여기서, 루트 블록은 제1 형 블록(100-1)에 해당한다. 그리고 서브 브랜치(2000)가 포함하는 연결 블록은 제2 형 블록(100-2)에 해당한다. 하나의 서브 브랜치(2000)가 포함하는 블록들은 생성된 순서에 따라 순서대로 연결된다. 블록의 연결은 당해 블록이 직전에 생성된 블록의 적어도 일부의 해시값을 포함하는 것에 의해 달성된다. 따라서 하나의 서브 브랜치(2000)에서 최초로 생성된 연결 블록(제2 형 블록)은 당해 서브 브랜치(2000)의 연결되는 루트 블록의 적어도 일부의 해시값을 포함한다. 또한, 하나의 서브 브랜치(2000)에서 최초로 생성되지 않은 연결 블록(제2 형 블록)은 당해 서브 브랜치(2000)에 포함되고 직전에 생성된 제2 형 블록의 적어도 일부의 해시값을 포함한다. 이러한 연결 형태에 대해서는 도 8에 블록 사이의 화살표를 통해 표시되어 있다.Here, the root block corresponds to the first type block 100-1. The connection block included in the sub branch 2000 corresponds to the second type block 100-2. Blocks included in one sub branch 2000 are connected in order according to the order in which they are created. The concatenation of the blocks is accomplished by including the hash values of at least some of the blocks created just before that block. Accordingly, the connection block (second type block) first generated in one sub branch 2000 includes a hash value of at least a portion of the root block to which the sub branch 2000 is connected. In addition, the connection block (second type block) that is not initially generated in one sub branch 2000 includes a hash value of at least a portion of the second type block that is included in the sub branch 2000 and immediately generated. This type of connection is indicated by the arrows between the blocks in FIG. 8.
서브 브랜치(2000)는 적어도 하나의 연결 블록을 포함하는 것을 조건으로 한다. 경우에 따라서, 연결 블록이 없고 루트 블록만이 존재하는 높이(길이)가 1개 블록인 서브 브랜치를 생각해볼 수도 있겠지만, 본 명세서에서는 이러한 경우 그러한 서브 브랜치가 존재하지 않는 것으로 정의한다. 즉, 설명의 편의성을 위해서 서브 브랜치(2000)는 하나의 루트 블록과 이에 연결된 적어도 하나의 연결 블록이 있는 것을 조건으로 정의한다.The sub branch 2000 is conditioned to include at least one connection block. In some cases, one may consider a subbranch having a height (length) of one block in which there is no connection block and only a root block exists, but in this specification, such a subbranch is defined as not present in this case. That is, for convenience of description, the sub branch 2000 defines that there is one root block and at least one connection block connected thereto.
서브 브랜치(2000)는 하나 또는 둘 이상이 형성될 수 있다. 서브 브랜치(2000)는 하나의 루트 블록에서 하나 또는 둘 이상이 연장되는 형태로 형성될 수 있다. 그러나 첨부한 도면 및 이하에서는 설명의 편의성을 위해서 하나의 루트 블록에서 하나의 서브 브랜치(2000)만이 형성되는 것을 예를 들어 설명하도록 한다. 그러나 이러한 설명이 본 발명에서 하나의 루트 블록에서 둘 이상의 서브 브랜치(2000)가 연장되는 것을 제외하는 것은 아니다.One or more sub branches 2000 may be formed. The sub branch 2000 may be formed in a shape in which one or two or more extend in one root block. However, in the accompanying drawings and the following description, for example, only one sub branch 2000 is formed in one root block. However, this description does not exclude that two or more subbranches 2000 are extended in one root block in the present invention.
하나의 루트 블록에서 하나의 서브 브랜치(2000)가 연장되어 형성되는 경우라면, 서브 브랜치(2000)는 최대 메인 브랜치(1000)의 블록의 개수까지 형성되는 것이 가능하다.If one sub branch 2000 is extended from one root block, the sub branch 2000 may be formed up to the maximum number of blocks of the main branch 1000.
도 8에서는 블록체인 시스템이 메인 브랜치와 서브 브랜치로 구성되고, 블록들이 제1 형 블록과 제2 형 블록으로 구성되는 것을 도시하였지만, 경우에 따라서는 메인 브랜치, 서브 브랜치 및 서브-서브 브랜치로 구성되고, 블록들도 제1 형 블록, 제2 형 블록 및 제3 형 블록으로 구성될 수도 있다. 여기서, 서브-서브 브랜치는 서브 브랜치를 메인 브랜치로 하고, 서브 브랜치에서 다시 분기된 브랜치를 의미한다. 서브-서브 브랜치의 루트 블록은 서브 브랜치에 포함되는 제2 형 블록이 될 수 있다. 그리고 서브-서브 브랜치의 연결 블록은 제3 형 블록이 될 수 있다. 이와 같이, 본 발명의 블록체인 시스템에서 메인 브랜치와 서브 브랜치는 상대적인 것으로, 서브 브랜치가 연쇄적으로 생성될 수 있다.In FIG. 8, the blockchain system is composed of a main branch and a sub branch, and the blocks are composed of a first type block and a second type block. However, in some cases, the block chain system is composed of a main branch, a sub branch, and a sub-sub branch. The blocks may also be composed of a first type block, a second type block, and a third type block. Here, the sub-sub branch refers to a branch branched from the sub branch again, with the sub branch as the main branch. The root block of the sub-sub branch may be a second type block included in the sub branch. The connection block of the sub-sub branch may be a third type block. As described above, in the blockchain system of the present invention, the main branch and the subbranch are relative, and the subbranches may be serially generated.
이러한 블록체인 시스템에 따르면 특정 블록의 검증을 위해서 전체 블록체인 데이터를 저장하고 이용하지 않을 수 있다. 구체적으로, 특정 블록이 제1 형 블록일 경우, 노드는 메인 브랜치의 블록체인 데이터만을 이용하여 상기 특정 블록의 검증이 가능하다. 또한, 특정 블록이 제2 형 블록일 경우, 노드는 상기 특정 블록이 포함된 서브 브랜치와 메인 브랜치의 블록체인 데이터만을 이용하여 상기 특정 블록의 검증이 가능하다. 이에 따라 노드가 저장하고 검증해야 하는 블록의 크기를 줄일 수 있다.According to such a blockchain system, the entire blockchain data may not be stored and used for verification of a specific block. In detail, when the specific block is the first type block, the node may verify the specific block using only blockchain data of the main branch. In addition, when the specific block is the second type block, the node may verify the specific block using only the blockchain data of the sub branch and the main branch including the specific block. This reduces the size of blocks that nodes need to store and verify.
이하, 도 9를 참조하여 본 발명의 일 실시예에 따른 블록체인 시스템의 사용 예시에 대해서 설명하도록 한다.Hereinafter, an example of using a blockchain system according to an embodiment of the present invention will be described with reference to FIG. 9.
도 9에는 블록체인의 블록이 포함하는 데이터가 문서에 관한 정보이고, 제1 형 데이터는 신규 문서 생성에 관한 정보이고, 제2 형 데이터는 이미 생성된 문서에 기반한 정보인 경우의 예시이다. 여기서, 제2 형 데이터는 예를 들어, 이미 생성된 문서의 수정, 변경, 삭제, 폐기, 조회 및 전달 중 적어도 어느 하나에 관한 정보일 수 있다.FIG. 9 illustrates an example in which data included in a block of a blockchain is information on a document, type 1 data is information on creating a new document, and type 2 data is information based on a document that has already been generated. Here, the second type data may be, for example, information about at least one of modification, change, deletion, discarding, inquiry, and transfer of the already generated document.
도 9에 도시된 블록체인 시스템은 7개의 서로 다른 문서에 관한 데이터를 저장하고 있다. 상기 7개(1번-7번)의 문서가 신규로 생성되면서 7개의 제1 형 블록(B1~B7)이 생성되게 되고, 7개의 제1 형 블록(B1~B7)은 각각 신규 문서가 생성된 것에 대한 데이터를 저장하고 있다. 7개의 제1 형 블록(B1~B7)은 생성된 순서대로 연결되어 메인 브랜치(1000)를 형성한다. 또한, 도 9에 도시된 블록체인 시스템은 7개의 제1 형 블록 중 5개의 블록(B1, B2, B3, B4, B6)에서 연장된 5개의 서브 브랜치를 포함한다.The blockchain system shown in FIG. 9 stores data about seven different documents. As seven documents (No. 1 to 7) are newly generated, seven first type blocks B 1 to B 7 are generated, and the seven first type blocks B 1 to B 7 are respectively generated. It stores data about the creation of a new document. The seven first type blocks B 1 to B 7 are connected in the generated order to form the main branch 1000. In addition, the blockchain system shown in FIG. 9 includes five subbranches extending from five blocks B 1 , B 2 , B 3 , B 4 , and B 6 of the seven first type blocks.
이러한 블록체인 시스템에 참여하는 A노드는 3번 문서에만 관련된 노드라고 가정한다. A노드는 3번 문서의 최종 변경에 대한 데이터의 검증을 원할 수 있다. 이러한 경우, A노드는 3번 서브 브랜치(2300)가 포함하는 블록과 메인 브랜치(1000)가 포함하는 블록만을 저장하고, 이를 이용하여 3번 문서의 최종 변경에 대한 데이터를 검증할 수 있다.A node participating in this blockchain system is assumed to be a node related only to the third document. Node A may want to verify the data for the last modification of document # 3. In this case, the node A may store only the block included in the third branch 2300 and the block included in the main branch 1000, and verify data about the last change of the third document by using the same.
이는 A노드가 저장하고 검증해야 하는 블록체인의 크기를 감소시키는 장점이 있다. 구체적으로, 상술한 예시에서 A노드는 12개의 블록(메인 브랜치(1000)의 7개의 제1 형 블록 및 3번 서브 브랜치(2300)의 5개의 제2 형 블록)만을 저장하고, 이를 검증하면 된다. 그러나 종래의 블록체인 시스템에서는 전체 블록체인을 저장하고 검증해야 한다. 이럴 경우 상술한 예시에서 A노드는 최대 26개의 블록을 저장하고, 이를 검증해야 한다. 따라서 본원발명의 블록체인 시스템에 의해 블록체인에 참여하는 노드의 저장공간 부담과 컴퓨팅 부담을 감소시키는 효과가 있다.This has the advantage of reducing the size of the blockchain that Node A needs to store and verify. Specifically, in the above-described example, node A only needs to store and verify 12 blocks (seven first type blocks of the main branch 1000 and five second type blocks of the third sub branch 2300). . However, in the conventional blockchain system, the entire blockchain must be stored and verified. In this case, node A in the above-described example should store up to 26 blocks and verify this. Therefore, the blockchain system of the present invention has the effect of reducing the storage space burden and computing burden of the nodes participating in the blockchain.
이하, 첨부한 도 10 내지 도 15를 참조하여, 본 발명의 일 실시예에 따른 블록체인을 이용한 데이터 관리 방법에 대해 설명한다.Hereinafter, a data management method using a blockchain according to an embodiment of the present invention will be described with reference to FIGS. 10 to 15.
이하에서 설명할 블록체인을 이용한 데이터 관리 방법은 도 1 내지 도 9를 참조하여 상술한 블록체인 시스템을 이용하여 데이터를 관리하는 방법에 관한 것이다. 따라서 설명의 편의를 위해, 블록체인 시스템에 관한 설명과 중복되는 내용 중 일부는 생략하도록 한다.A data management method using a blockchain to be described below relates to a method of managing data using the blockchain system described above with reference to FIGS. 1 to 9. Therefore, for convenience of description, some of the contents overlapping with the description of the blockchain system will be omitted.
본 발명의 블록체인을 이용한 데이터 관리 방법은 데이터에 대한 이벤트를 블록체인을 이용하여 관리하는 방법이다. 여기서, 이벤트는 노드가 데이터에 대해서 어떠한 작업을 수행한 것을 의미한다. 본 발명의 블록체인을 이용한 데이터 관리 방법은 상술한 이벤트에 따라 생성된 데이터를 블록체인을 통해 저장하고 관리하는 방법이다.The data management method using the blockchain of the present invention is a method of managing events for data using the blockchain. Here, an event means that a node has performed some operation on data. The data management method using the blockchain of the present invention is a method of storing and managing data generated according to the above-described event through the blockchain.
블록체인이 관리하는 이벤트는 제1 형 이벤트 및 제2 형 이벤트로 구분될 수 있다. 제1 형 이벤트는 기존의 데이터에 기반하지 않은 이벤트에 해당한다. 제2 형 이벤트는 기존의 데이터에 기반한 이벤트에 해당한다.Events managed by the blockchain can be divided into type 1 events and type 2 events. Type 1 events correspond to events that are not based on existing data. Type 2 events correspond to events based on existing data.
구체적으로, 제1 형 이벤트는 신규 자료를 생성하는 것에 관한 이벤트이고, 제2 형 이벤트는 기존 자료를 수정, 변경, 삭제, 폐기, 조회 및 전달 중 어느 적어도 하나를 수행하는 것에 관한 이벤트일 수 있다.In detail, the type 1 event may be an event related to generating new material, and the type 2 event may be an event related to performing at least one of modifying, changing, deleting, discarding, inquiring, and transferring existing data. .
이하, 제1 형 이벤트와 제2 형 이벤트의 구분에 대해서 예를 들어 설명하도록 한다.In the following description, a distinction is made between the type 1 event and the type 2 event.
먼저, 데이터는 디지털 컨텐츠에 관한 정보일 수 있다. 이러한 경우, 제1 형 이벤트는 신규 디지털 컨텐츠를 생성하는 것에 관한 이벤트이고, 제2 형 이벤트는 이미 생성된 디지털 컨텐츠에 기반한 이벤트일 수 있다. 여기서, 제2 형 이벤트는 예를 들어, 이미 생성된 디지털 컨텐츠의 수정, 변경, 삭제, 폐기, 조회 및 전달 중 적어도 어느 하나를 수행하는 것에 관한 이벤트일 수 있다.First, the data may be information about digital content. In this case, the first type event may be an event related to generating new digital content, and the second type event may be an event based on already generated digital content. Here, the type 2 event may be, for example, an event related to performing at least one of the modification, change, deletion, discard, inquiry, and delivery of already generated digital content.
또한, 데이터는 문서에 관한 정보일 수 있다. 이러한 경우, 제1 형 이벤트는 신규 문서를 생성하는 것에 관한 이벤트이고, 제2 형 이벤트는 이미 생성된 문서에 기반한 이벤트일 수 있다. 여기서, 제2 형 이벤트는 이미 생성된 문서의의 수정, 변경, 삭제, 폐기, 조회 및 전달 중 적어도 어느 하나를 수행하는 것에 관한 이벤트일 수 있다.In addition, the data may be information about the document. In this case, the type 1 event may be an event related to generating a new document, and the type 2 event may be an event based on an already generated document. Here, the second type event may be an event related to performing at least one of the modification, change, deletion, discarding, inquiry, and delivery of an already generated document.
또한, 데이터는 계좌에 관한 정보일 수 있다. 이러한 경우, 제1 형 이벤트는 신규 계좌를 생성하는 것에 관한 이벤트이고, 제2 형 이벤트는 이미 생성된 계좌의 거래에 관한 이벤트일 수 있다.The data may also be information about the account. In this case, the type 1 event may be an event relating to creating a new account, and the type 2 event may be an event relating to a transaction of an already created account.
또한, 데이터는 상술한 것 이외에도 거래, 인사, 생산 이력, 설계, 도면, 사운드, 프로그래밍 코드 등이 될 수 있다. 그리고 제1 형 이벤트 및 제2 형 이벤트도 이러한 다양한 종류에 따라 구분될 수 있다. 제1 형 이벤트 및 제2 형 이벤트는 상술한 것에 한정되지 않는다.In addition to the above, the data may be transactions, personnel, production history, design, drawings, sound, programming code, and the like. Type 1 events and type 2 events may also be classified according to these various types. Type 1 events and type 2 events are not limited to those described above.
도 10은 본 발명의 일 실시예에 따른 블록체인을 이용한 데이터 관리 방법을 설명하기 위한 순서도이다.10 is a flowchart illustrating a data management method using a blockchain according to an embodiment of the present invention.
도 10을 참조하면, 블록체인을 이용한 데이터 관리 방법은 메인 브랜치를 마련하는 단계(S100), 이벤트의 종류를 판단하는 단계(S200), 메인 브랜치를 연장하는 단계(S510), 루트 블록을 탐색하는 단계(S300), 서브 브랜치의 존재를 판단하는 단계(S400), 서브 브랜치를 생성하는 단계(S520) 및 서브 브랜치를 연장하는 단계(S530)를 포함한다.Referring to FIG. 10, in a data management method using a blockchain, the method may include: preparing a main branch (S100), determining a type of an event (S200), extending a main branch (S510), and searching for a root block. Step S300, determining the existence of the sub branch S400, generating the sub branch S520, and extending the sub branch S530.
이하, 도 11 내지 도 15를 참조하여 블록체인을 이용한 데이터 관리 방법이 포함하는 각 단계에 대해서 상세하게 설명하도록 한다. 도 11 내지 도 15는 데이터가 문서에 관한 정보인 것을 예로 들어 도시한 것이다.Hereinafter, each step included in the data management method using the blockchain will be described in detail with reference to FIGS. 11 to 15. 11 to 15 show that data is information about a document as an example.
먼저, 메인 브랜치를 마련하는 단계(S100)에 대해 설명하도록 한다. 메인 브랜치를 마련하는 단계(S100)는 적어도 하나의 블록이 각각 블록의 생성 순서에 따라 연결된 메인 브랜치를 마련하는 단계이다. 블록체인 시스템을 설명하면서 상술한 것과 같이, 메인 브랜치는 제1 형 데이터를 포함하는 제1 형 블록으로 구성된다.First, the step of preparing the main branch (S100) will be described. The preparing of the main branch (S100) is a preparing of the main branch to which at least one block is connected according to the generation order of the blocks. As described above in describing the blockchain system, the main branch is composed of first type blocks containing first type data.
도 11을 참조하면, 블록체인에는 메인 브랜치가 마련된다. 구체적으로, 블록체인은 6개의 제1 형 블록(B1~B6)으로 구성된 메인 브랜치가 마련된 상태이다. 도 11의 블록체인은 6개(1번-6번)의 문서가 생성된 이벤트에 따른 데이터가 각각의 블록에 포함되어 관리되고 있다.Referring to Figure 11, the blockchain is provided with a main branch. Specifically, the block chain is in a state where a main branch composed of six first type blocks B 1 to B 6 is provided. In the blockchain of FIG. 11, data according to an event in which six documents (Nos. 1 to 6) are generated is managed in each block.
본 발명의 블록체인을 이용한 데이터 관리 방법은 메인 브랜치가 마련된 상태에서 새로운 이벤트가 발생한 경우, 발생한 이벤트에 따른 데이터를 블록체인을 이용하여 관리하는 방법에 관한 것이다.The data management method using the blockchain of the present invention relates to a method of managing data according to the generated event using the blockchain when a new event occurs while a main branch is provided.
이벤트가 발생하면, 이벤트의 종류를 판단하는 단계(S200)가 수행된다. 이벤트는 제1 형 이벤트 또는 제2 형 이벤트일 수 있다.If an event occurs, step S200 of determining the type of event is performed. The event may be a type 1 event or a type 2 event.
상기 제1 형 이벤트가 발생하면, 메인 브랜치를 연장하는 단계(S510)가 수행된다. 메인 브랜치를 연장하는 단계(S510)는 발생한 제1 형 이벤트에 따른 데이터를 포함하는 블록을 메인 브랜치의 마지막 블록에 연결되도록 생성하는 단계이다. 새롭게 생성된 블록이 기존의 메인 브랜치에 연결됨으로써 메인 브랜치가 연장되게 된다.When the first type event occurs, extending the main branch (S510) is performed. Extending the main branch (S510) is a step of generating a block including data according to the first type event that occurred, to be connected to the last block of the main branch. The newly created block is connected to the existing main branch so that the main branch is extended.
블록을 생성하려는 노드는 발생한 제1 형 이벤트에 따른 데이터를 포함하는 블록몸체를 생성한다. 그리고 블록몸체의 해시값을 블록헤더에 삽입한다. 또한, 새롭게 생성하려는 블록의 블록헤더에 기존 메인 브랜치의 마지막 블록의 적어도 일부의 해시값이 삽입될 수 있다.The node to generate a block generates a block body including data according to the type 1 event that has occurred. The hash value of the block body is inserted into the block header. In addition, a hash value of at least a part of the last block of the existing main branch may be inserted into the block header of the block to be newly created.
블록헤더에는 블록몸체의 해시값 및 기존 메인 브랜치의 마지막 블록의 적어도 일부의 해시값 등이 포함된다. 그리고 블록을 생성하려는 노드는 블록 생성 조건을 만족하는 난스를 탐색하고, 탐색된 난스를 블록헤더에 삽입하여 블록을 생성한다.The block header includes a hash value of the block body and a hash value of at least a part of the last block of the existing main branch. The node to generate a block searches for a nonce that satisfies the block generation condition, and inserts the found nonce into the block header to generate the block.
도 12를 참조하여, 발생한 이벤트가 제1 형 이벤트인 경우에 대해서 설명하도록 한다. 도 12는 도 11의 블록체인 상태에서 7번의 신규 문서가 생성되는 제1 형 이벤트가 발생한 경우, 이에 따른 데이터를 관리하는 방법을 설명하기 위한 도면이다.Referring to FIG. 12, the case where the generated event is a first type event will be described. FIG. 12 is a diagram for describing a method of managing data according to a first type event in which seven new documents are generated in the blockchain state of FIG. 11.
도 12를 참조하면, 7번 문서가 생성된 제1 형 이벤트에 따른 데이터를 포함하는 블록(B7)이 새롭게 생성된다. 생성된 블록(B7)은 기존의 메인 브랜치의 마지막 블록(B6)에 연결되어 메인 브랜치를 연장하게 된다. 새롭게 생성된 블록(B7)에는 기존의 메인 브랜치의 마지막 블록의 적어도 일부의 해시값(H6)이 포함된다.Referring to FIG. 12, a block B 7 including data according to the first type event in which document 7 is generated is newly generated. The generated block B 7 is connected to the last block B 6 of the existing main branch to extend the main branch. The newly generated block B 7 includes a hash value H 6 of at least a portion of the last block of the existing main branch.
발생한 이벤트가 제2 형 이벤트인 경우에 대해서 설명하도록 한다. 제2 형 이벤트가 발생하면, 루트 블록을 탐색하는 단계(S300)가 수행된다. 루트 블록을 탐색하는 단계(S300)는, 발생한 제2 형 이벤트가 기반한 데이터를 포함하는 블록을 탐색하는 단계이다. 루트 블록은 메인 브랜치가 포함하는 블록 중의 하나일 수 있다.The case where the generated event is a type 2 event will be described. When the second type event occurs, the step S300 of searching for the root block is performed. Searching for the root block (S300) is a step of searching for a block including data based on the generated second type event. The root block may be one of the blocks included in the main branch.
루트 블록이 탐색되면, 탐색된 루트 블록에서 시작되고 메인 브랜치와 구분되는 서브 브랜치가 존재하는지 여부를 판단하는 단계(S400)가 수행된다. 서브 브랜치가 존재하지 않으면, 서브 브랜치를 생성하는 단계(S520)가 수행된다. 서브 브랜치가 존재하면, 상기 서브 브랜치를 연장하는 단계(S530)가 수행된다.When the root block is searched, a step (S400) of determining whether there is a sub branch starting from the found root block and distinguished from the main branch is performed. If the sub branch does not exist, generating a sub branch (S520) is performed. If there is a sub branch, the step (S530) of extending the sub branch is performed.
이하, 서브 브랜치를 생성하는 단계(S520)에 대해 설명하도록 한다. 루트 블록에서 시작되고 메인 브랜치와 구분되는 서브 브랜치가 존재하지 않으면, 서브 브랜치를 생성하는 단계(S520)가 수행된다. 서브 브랜치를 생성하는 단계(S520)는 발생한 제2 형 이벤트에 따른 데이터를 포함하는 블록을 루트 블록에 연결되도록 생성하는 단계이다. 새롭게 생성된 블록이 루트 볼록에 연결됨으로써 서브 브랜치가 생성되게 된다.Hereinafter, the step of generating a sub branch (S520) will be described. If there is no sub branch starting from the root block and distinguished from the main branch, a step S520 of generating a sub branch is performed. The generating of the sub branch (S520) is a step of generating a block including data according to the generated second type event to be connected to the root block. The newly created block is connected to the root convex to create a sub branch.
블록을 생성하려는 노드는 발생한 제2 형 이벤트에 따른 데이터를 포함하는 블록몸체를 생성한다. 그리고 블록몸체의 해시값을 블록헤더에 삽입한다. 또한, 새롭게 생성하려는 블록의 블록헤더에 루트 블록의 적어도 일부의 해시값이 삽입될 수 있다.The node to create a block generates a block body including data according to the type 2 event that has occurred. The hash value of the block body is inserted into the block header. In addition, a hash value of at least a portion of the root block may be inserted into a block header of a block to be newly generated.
블록헤더에는 블록몸체의 해시값 및 루트 블록의 적어도 일부의 해시값 등이 포함된다. 그리고 블록을 생성하려는 노드는 블록 생성 조건을 만족하는 난스를 탐색하고, 탐색된 난스를 블록헤더에 삽입하여 블록을 생성한다.The block header includes a hash value of the block body, a hash value of at least a part of the root block, and the like. The node to generate a block searches for a nonce that satisfies the block generation condition, and inserts the found nonce into the block header to generate the block.
도 13을 참조하여, 발생한 이벤트가 제2 형 이벤트이고, 서브 브랜치가 존재하지 않는 경우에 대해서 설명하도록 한다. 도 13은 도 12의 블록체인 상태에서 5번의 문서가 수정되는 제2 형 이벤트가 발생한 경우, 이에 따른 데이터를 관리하는 방법을 설명하기 위한 도면이다.Referring to FIG. 13, a case in which the generated event is a second type event and there is no sub branch will be described. FIG. 13 is a diagram for describing a method of managing data according to a case in which a second type event in which five documents are modified in the blockchain state of FIG. 12 occurs.
5번 문서가 수정되는 제2 형 이벤트가 발생하면, 발생한 제2 형 이벤트가 기반한 데이터를 포함하는 루트 블록을 탐색하는 단계(S300)가 수행된다. 도 13을 참조하면, 상기 단계(S300)에서 루트 블록으로 5번 문서가 생성된 이벤트에 따른 데이터를 포함하는 블록(B5)이 탐색된다.When a type 2 event in which document 5 is modified occurs, a step (S300) of searching for a root block including data based on the generated type 2 event is performed. Referring to FIG. 13, a block B 5 including data according to an event in which document 5 is generated as a root block is searched for in step S300.
루트 블록이 탐색되면, 탐색된 루트 블록(B5)에서 시작되고 메인 브랜치와 구분되는 서브 브랜치가 존재하는지 여부를 판단하는 단계(S400)가 수행된다. 도 13을 참조하면, 상기 단계(S400)에서 루트 블록(B5)에서 시작되는 서브 브랜치가 존재하지 않는다고 판단하게 된다.When the root block is searched, a step (S400) of determining whether there is a sub branch starting from the found root block B 5 and distinguished from the main branch is performed. Referring to FIG. 13, in step S400, it is determined that there is no sub branch starting from the root block B 5 .
서브 브랜치가 존재하지 않으면, 서브 브랜치를 생성하는 단계(S510)가 수행된다. 도 13을 참조하면, 5번 문서가 수정된 제2 형 이벤트에 따른 데이터를 포함하는 블록(B51)이 새롭게 생성된다. 생성된 블록(B51)은 탐색된 루트 블록(B5)에 연결되어 서브 브랜치를 생성하게 된다. 새롭게 생성된 블록(B51)에는 루트 블록의 적어도 일부의 해시값(H5)이 포함된다.If the sub branch does not exist, generating a sub branch (S510) is performed. Referring to FIG. 13, a block B 51 including data according to the second type event in which document 5 is modified is newly generated. The generated block B 51 is connected to the searched root block B 5 to generate a sub branch. The newly generated block B 51 includes a hash value H 5 of at least a portion of the root block.
이하, 서브 브랜치를 연장하는 단계(S520)에 대해 설명하도록 한다. 루트 블록에서 시작되고 메인 브랜치와 구분되는 서브 브랜치가 존재하면, 서브 브랜치를 연장하는 단계(S520)가 수행된다. 서브 브랜치를 연장하는 단계(S520)는 발생한 제2 형 이벤트에 따른 데이터를 포함하는 블록을 상기 서브 브랜치의 마지막에 연결되도록 생성하는 단계이다. 새롭게 생성된 블록이 서브 브랜치에 연결됨으로써 서브 브랜치가 연장되게 된다.Hereinafter, the step of extending the sub branch (S520) will be described. If there is a sub branch starting from the root block and distinguished from the main branch, extending the sub branch (S520) is performed. Extending the sub branch (S520) is a step of generating a block including data according to the generated second type event to be connected to the end of the sub branch. The newly created block is connected to the sub branch so that the sub branch is extended.
블록을 생성하려는 노드는 발생한 제2 형 이벤트에 따른 데이터를 포함하는 블록몸체를 생성한다. 그리고 블록몸체의 해시값을 블록헤더에 삽입한다. 또한, 새롭게 생성하려는 블록의 블록헤더에 서브 브랜치의 마지막 블록의 적어도 일부의 해시값이 삽입될 수 있다.The node to create a block generates a block body including data according to the type 2 event that has occurred. The hash value of the block body is inserted into the block header. In addition, a hash value of at least a portion of the last block of the sub branch may be inserted into the block header of the block to be newly generated.
블록헤더에는 블록몸체의 해시값 및 서브 브랜치의 마지막 블록의 적어도 일부의 해시값 등이 포함된다. 그리고 블록을 생성하려는 노드는 블록 생성 조건을 만족하는 난스를 탐색하고, 탐색된 난스를 블록헤더에 삽입하여 블록을 생성한다.The block header includes a hash value of the block body and a hash value of at least a part of the last block of the sub branch. The node to generate a block searches for a nonce that satisfies the block generation condition, and inserts the found nonce into the block header to generate the block.
도 14 및 도 15를 참조하여, 발생한 이벤트가 제2 형 이벤트이고, 서브 브랜치가 존재하는 경우에 대해서 설명하도록 한다. 일단 도 14는 도 13의 블록체인 상태에서 복수의 제2 형 이벤트가 발생하여 복수의 서브 브랜치가 생성되고, 연장된 상태를 도시한 것이다. 이러한 도 14의 블록체인 상태에서 새로운 제2 형 이벤트가 발생한 것을 가정하여 설명하도록 한다. Referring to FIGS. 14 and 15, a case in which the generated event is a second type event and a sub branch is present will be described. 14 illustrates an extended state in which a plurality of second type events are generated in a blockchain state of FIG. 13 to generate a plurality of sub branches. It is assumed that a new second type event has occurred in the blockchain state of FIG. 14.
도 15는 도 14의 블록체인 상태에서 3번의 문서가 조회되는 제2 형 이벤트가 발생한 경우, 이에 따른 데이터를 관리하는 방법을 설명하기 위한 도면이다.FIG. 15 is a diagram for describing a method of managing data according to a second type event in which three documents are inquired in the blockchain state of FIG. 14.
3번 문서가 조회되는 제2 형 이벤트가 발생하면, 발생한 제2 형 이벤트가 기반한 데이터를 포함하는 루트 블록을 탐색하는 단계(S300)가 수행된다. 도 15를 참조하면, 상기 단계(S300)에서 루트 블록으로 3번 문서가 생성된 이벤트에 따른 데이터를 포함하는 블록(B3)이 탐색된다.When the second type event in which the third document is queried occurs, a step (S300) of searching for a root block including data based on the generated second type event is performed. Referring to FIG. 15, a block B 3 including data according to an event in which document 3 is generated as a root block in step S300 is searched.
루트 블록이 탐색되면, 탐색된 루트 블록(B3)에서 시작되고 메인 브랜치와 구분되는 서브 브랜치가 존재하는지 여부를 판단하는 단계(S400)가 수행된다. 도 15를 참조하면, 상기 단계(S400)에서 루트 블록(B3)에서 시작되는 서브 브랜치가 존재한다고 판단하게 된다.When the root block is found, a step (S400) of determining whether there is a sub branch starting from the found root block B 3 and distinguished from the main branch is performed. Referring to FIG. 15, it is determined in step S400 that there exists a sub branch starting from the root block B 3 .
서브 브랜치가 존재하면, 서브 브랜치를 연장하는 단계(S530)가 수행된다. 도 15를 참조하면, 3번 문서가 조회된 제2 형 이벤트에 따른 데이터를 포함하는 블록(B35)이 새롭게 생성된다. 생성된 블록(B35)은 탐색된 루트 블록(B3)에서 시작되는 서브 브랜치의 마지막 블록(B34)에 연결되도록 생성하게 된다. 새롭게 생성된 블록(B35)에는 서브 브랜치의 마지막 블록의 적어도 일부의 해시값(H34)이 포함된다.If there is a sub branch, the step (S530) of extending the sub branch is performed. Referring to FIG. 15, a block B 35 including data according to the second type event in which document 3 is inquired is newly generated. The generated block B 35 is generated to be connected to the last block B 34 of the sub branch starting from the found root block B 3 . The newly generated block B 35 includes a hash value H 34 of at least a portion of the last block of the sub branch.
이러한 블록체인을 이용한 데이터 관리 방법에 따르면 하나의 메인 브랜치와 적어도 하나의 서브 브랜치를 포함하는 블록체인을 형성할 수 있고, 이를 이용하여 데이터를 관리할 수 있다. 이러한 블록체인을 이용하면 임의의 하나의 블록의 데이터를 검증하는데 상기 블록이 포함되는 서브 브랜치 및 메인 브랜치의 블록만이 필요하다. 따라서 블록체인에 참여하는 노드들이 저장하고 검증해야 하는 블록의 크기를 줄일 수 있다.According to the data management method using the blockchain, a blockchain including one main branch and at least one subbranch can be formed, and data can be managed using the blockchain. With such a blockchain, only the blocks of the sub branch and main branch that contain the block are needed to verify the data of any one block. Therefore, it is possible to reduce the size of blocks that nodes participating in the blockchain need to store and verify.
이상, 본 발명의 블록체인 시스템 및 블록체인을 이용한 데이터 관리 방법의 실시예들에 대해 설명하였다. 본 발명은 상술한 실시예 및 첨부한 도면에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자의 관점에서 다양한 수정 및 변형이 가능할 것이다. 따라서 본 발명의 범위는 본 명세서의 특허청구범위뿐만 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.In the above, embodiments of the blockchain system and the data management method using the blockchain of the present invention have been described. The present invention is not limited to the above-described embodiment and the accompanying drawings, and various modifications and variations will be possible in view of those skilled in the art to which the present invention pertains. Therefore, the scope of the present invention should be defined not only by the claims of the present specification but also by the equivalents of the claims.
10: 제1 형 데이터 20: 제2 형 데이터10: type 1 data 20: type 2 data
100, 200: 블록 110, 210: 블록헤더100, 200: block 110, 210: block header
120, 220: 블록몸체 120, 220: block body
100-1: 제1 형 블록 100-2: 제2 형 블록100-1: Type 1 Block 100-2: Type 2 Block
1000: 메인 브랜치 2000: 서브 브랜치1000: main branch 2000: sub branch
Claims (24)
- 하나의 블록은 하나의 데이터를 포함하고, 둘 이상의 데이터들을 관리하는 블록체인 시스템에 있어서,In a blockchain system in which one block includes one data and manages two or more data,상기 데이터는 다른 데이터에 기반하지 않은 제1 형 데이터 및 상기 제1 형 데이터에 기반한 제2 형 데이터로 구분되고,The data is divided into first type data not based on other data and second type data based on the first type data,상기 제1 형 데이터들이 포함된 제1 형 블록들을 포함하고, 상기 제1 형 블록들은 각각 블록의 생성 순서에 따라 연결된 메인 브랜치; 및A main branch including first type blocks including the first type data, wherein the first type blocks are connected according to a generation order of the blocks; And상기 제2 형 데이터들이 포함된 제2 형 블록들을 포함하고, 상기 제2 형 블록들은 하나의 제1 형 블록을 루트 블록으로 하여 연결된 적어도 하나의 서브 브랜치를 포함하고,Includes second type blocks including the second type data, the second type blocks include at least one sub branch connected by using one first type block as a root block,하나의 서브 브랜치는,One subbranch,제1 형 블록인 루트 블록 및 상기 루트 블록이 포함하는 제1 형 데이터에 기반한 제2 형 데이터를 포함하는 적어도 하나의 제2 형 블록을 포함하고,At least one second type block including a root block that is a first type block and second type data based on first type data included in the root block,상기 하나의 서브 브랜치의 적어도 하나의 제2 형 블록은 각각 블록의 생성 순서에 따라 연결되되, 상기 하나의 서브 브랜치에서 최초로 생성된 제2 형 블록은 루트 블록에 연결되는 블록체인 시스템.And at least one second type block of the one sub branch is connected in accordance with a generation order of the blocks, respectively, and the second type block first generated in the one sub branch is connected to a root block.
- 제1 항에 있어서,According to claim 1,상기 메인 브랜치에서 하나의 제1 형 블록은 직전에 생성된 제1 형 블록의 적어도 일부의 해시값을 포함하는 블록체인 시스템.And the first type block in the main branch includes a hash value of at least a portion of the first type block just generated.
- 제1 항에 있어서,According to claim 1,상기 하나의 서브 브랜치에서 최초로 생성된 제2 형 블록은 연결되는 루트 블록의 적어도 일부의 해시값을 포함하는 블록체인 시스템.And a second type block first generated in the one sub branch includes a hash value of at least a portion of a root block to be connected.
- 제1 항에 있어서,According to claim 1,상기 하나의 서브 브랜치에서 최초로 생성되지 않은 제2 형 블록은 상기 서브 브랜치에 포함되고 직전에 생성된 제2 형 블록의 적어도 일부의 해시값을 포함하는 블록체인 시스템.The second type block not first generated in the one sub branch includes a hash value of at least a portion of the second type block included in the sub branch and generated immediately before.
- 제1 항에 있어서,According to claim 1,상기 제1 형 데이터는 신규 자료를 생성하는 것에 관한 데이터이고,The first type data is data about generating new data,상기 제2 형 데이터는 기존 자료를 수정, 변경, 삭제, 폐기, 조회 및 전달 중 적어도 어느 하나를 수행하는 것에 관한 데이터인 블록체인 시스템.And said second type data is data about performing at least one of modifying, changing, deleting, discarding, inquiring, and transferring existing data.
- 제1 항에 있어서,According to claim 1,상기 데이터는 디지털 컨텐츠에 관한 정보이고,The data is information about digital content,상기 제1 형 데이터는 신규 디지털 컨텐츠에 관한 정보이고,The first type data is information about new digital content,상기 제2 형 데이터는 이미 생성된 디지털 컨텐츠에 기반한 정보인 블록체인 시스템.And the second type data is information based on digital content already generated.
- 제6 항에 있어서,The method of claim 6,상기 제2 형 데이터는 이미 생성된 디지털 컨텐츠의 수정, 변경, 삭제, 폐기, 조회 및 전달 중 적어도 어느 하나에 관한 정보인 블록체인 시스템.And the second type data is information on at least one of modification, modification, deletion, destruction, inquiry, and transmission of already generated digital content.
- 제1 항에 있어서,According to claim 1,상기 데이터는 문서에 관한 정보이고,The data is information about the document,상기 제1 형 데이터는 신규 문서 생성에 관한 정보이고,The first type data is information about creating a new document,상기 제2 형 데이터는 이미 생성된 문서에 기반한 정보인 블록체인 시스템.And the second type data is information based on already generated documents.
- 제8 항에 있어서,The method of claim 8,상기 제2 형 데이터는 이미 생성된 문서의 수정, 변경, 삭제, 폐기, 조회 및 전달 중 적어도 어느 하나에 관한 정보인 블록체인 시스템.And the second type data is information on at least one of modification, modification, deletion, disposal, inquiry, and transmission of a document that has already been created.
- 제1 항에 있어서,According to claim 1,상기 데이터는 계좌에 관한 정보이고,The data is information about the account,상기 제1 형 데이터는 신규 계좌 생성에 관한 정보이고,The first type of data is information about creating a new account,상기 제2 형 데이터는 이미 생성된 계좌의 거래에 관한 정보인 블록체인 시스템.The second type data is information about a transaction of an already created account.
- 하나의 블록은 하나의 데이터를 포함하고, 둘 이상의 데이터들에 대한 이벤트를 블록체인을 이용하여 관리하는 방법에 있어서,In one block includes one data, a method for managing events for two or more data using a blockchain,상기 이벤트는 기존의 데이터에 기반하지 않은 제1 형 이벤트 및 기존의 데이터에 기반한 제2 형 이벤트로 구분되고,The event is divided into a type 1 event based on existing data and a type 2 event based on existing data,적어도 하나의 블록이 각각 블록의 생성 순서에 따라 연결된 메인 브랜치를 마련하는 단계;Providing a main branch to which at least one block is connected in accordance with a generation order of the blocks;제2 형 이벤트가 발생하면, 상기 메인 브랜치에서 상기 제2 형 이벤트가 기반한 데이터를 포함하는 루트 블록을 탐색하는 단계;Searching for a root block including data on which the second type event is based in the main branch when a second type event occurs;상기 루트 블록에서 시작되고 상기 메인 브랜치와 구분되는 서브 브랜치가 존재하지 않으면, 상기 제2 형 이벤트에 따른 데이터를 포함하는 블록을 상기 루트 블록에 연결되도록 생성하여 서브 브랜치를 생성하는 단계를 포함하는 블록체인을 이용한 데이터 관리 방법.If the sub branch starting from the root block and separated from the main branch does not exist, generating a sub branch by generating a block including data according to the second type event to be connected to the root block; How to manage data using chains.
- 제11 항에 있어서,The method of claim 11, wherein상기 서브 브랜치를 생성하는 단계는,Generating the sub branch,상기 루트 블록의 적어도 일부의 해시값을 생성하려는 블록의 블록헤더에 삽입하는 단계를 포함하는 블록체인을 이용한 데이터 관리 방법.Inserting a hash value of at least a portion of the root block into a block header of a block to be generated.
- 제11 항에 있어서,The method of claim 11, wherein상기 서브 브랜치를 생성하는 단계는,Generating the sub branch,상기 루트 블록에서 시작되고 상기 메인 브랜치와 구분되는 서브 브랜치가 존재하는지 여부를 판단하는 단계를 포함하는 블록체인을 이용한 데이터 관리 방법.And determining whether there exists a sub branch starting from the root block and distinguished from the main branch.
- 제11 항에 있어서,The method of claim 11, wherein상기 루트 블록에서 시작되고 상기 메인 브랜치와 구분되는 서브 브랜치가 존재하면, 상기 제2 형 이벤트에 따른 데이터를 포함하는 블록을 상기 서브 브랜치의 마지막 블록에 연결되도록 생성하여 상기 서브 브랜치를 연장하는 단계를 더 포함하는 블록체인을 이용한 데이터 관리 방법.Extending the subbranch by generating a block including data according to the second type event to be connected to the last block of the subbranch if there is a subbranch starting from the root block and distinguished from the main branch; Data management method using a blockchain further comprising.
- 제14 항에 있어서,The method of claim 14,상기 서브 브랜치를 연장하는 단계는,Extending the sub branch,상기 서브 브랜치의 마지막 블록의 적어도 일부의 해시값을 생성하려는 블록의 블록헤더에 삽입하는 단계를 포함하는 블록체인을 이용한 데이터 관리 방법.And inserting a hash value of at least a portion of the last block of the sub branch into a block header of a block to be generated.
- 제14 항에 있어서,The method of claim 14,상기 서브 브랜치를 연장하는 단계는,Extending the sub branch,상기 루트 블록에서 시작되고 상기 메인 브랜치와 구분되는 서브 브랜치가 존재하는지 여부를 판단하는 단계를 포함하는 블록체인을 이용한 데이터 관리 방법.And determining whether there exists a sub branch starting from the root block and distinguished from the main branch.
- 제11 항에 있어서,The method of claim 11, wherein제1 형 이벤트가 발생하면, 상기 제1 형 이벤트에 따른 데이터를 포함하는 블록을 상기 메인 브랜치의 마지막 블록에 연결되도록 생성하여 상기 메인 브랜치를 연장하는 단계를 더 포함하는 블록체인을 이용한 데이터 관리 방법.When the first type event occurs, generating a block including data according to the first type event to be connected to the last block of the main branch, and extending the main branch. .
- 제17 항에 있어서,The method of claim 17,상기 메인 브랜치를 연장하는 단계는,Extending the main branch,상기 메인 브랜치의 마지막 블록의 적어도 일부의 해시값을 생성하려는 블록의 블록헤더에 삽입하는 단계를 포함하는 블록체인을 이용한 데이터 관리 방법.And inserting a hash value of at least a part of the last block of the main branch into a block header of a block to be generated.
- 제11 항에 있어서,The method of claim 11, wherein상기 제1 형 이벤트는 신규 자료를 생성하는 것에 관한 이벤트이고,The type 1 event is an event about generating new material,상기 제2 형 이벤트는 기존 자료를 수정, 변경, 삭제, 폐기, 조회 및 전달 중 어느 적어도 하나를 수행하는 것에 관한 이벤트인 블록체인을 이용한 데이터 관리 방법.The second type event is an event related to performing at least one of modifying, changing, deleting, discarding, inquiring, and transferring existing data.
- 제11 항에 있어서,The method of claim 11, wherein상기 데이터는 디지털 컨텐츠에 관한 정보이고,The data is information about digital content,상기 제1 형 이벤트는 신규 디지털 컨텐츠를 생성하는 것에 관한 이벤트이고,The type 1 event is an event for generating new digital content,상기 제2 형 이벤트는 이미 생성된 디지털 컨텐츠에 기반한 이벤트인 블록체인을 이용한 데이터 관리 방법.The second type event is a data management method using a blockchain which is an event based on digital content already generated.
- 제20 항에 있어서,The method of claim 20,상기 제2 형 이벤트는 이미 생성된 디지털 컨텐츠의 수정, 변경, 삭제, 폐기, 조회 및 전달 중 적어도 어느 하나를 수행하는 것에 관한 이벤트인 블록체인을 이용한 데이터 관리 방법.The second type event is an event related to performing at least one of the modification, modification, deletion, discarding, inquiry, and transmission of already generated digital content.
- 제11 항에 있어서,The method of claim 11, wherein상기 데이터는 문서에 관한 정보이고,The data is information about the document,상기 제1 형 이벤트는 신규 문서를 생성하는 것에 관한 이벤트이고,The type 1 event is an event for creating a new document,상기 제2 형 이벤트는 이미 생성된 문서에 기반한 이벤트인 블록체인을 이용한 데이터 관리 방법.The second type event is a data management method using a blockchain which is an event based on an already generated document.
- 제22 항에 있어서,The method of claim 22,상기 제2 형 이벤트는 이미 생성된 문서의 수정, 변경, 삭제, 조회 및 전달 중 적어도 어느 하나를 수행하는 것에 관한 이벤트인 블록체인을 이용한 데이터 관리 방법.The second type event is an event related to performing at least one of modification, modification, deletion, inquiry, and transmission of a document already generated.
- 제11 항에 있어서,The method of claim 11, wherein상기 데이터는 계좌에 관한 정보이고,The data is information about the account,상기 제1 형 이벤트는 신규 계좌를 생성하는 것에 관한 이벤트이고,The type 1 event is an event about creating a new account,상기 제2 형 이벤트는 이미 생성된 계좌의 거래에 관한 이벤트인 블록체인을 이용한 데이터 관리 방법.The second type event is a data management method using a blockchain which is an event relating to a transaction of an already created account.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020170059270A KR101964692B1 (en) | 2017-05-12 | 2017-05-12 | Blockchain system and data managing method using blockchain |
KR10-2017-0059270 | 2017-05-12 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2018207974A1 true WO2018207974A1 (en) | 2018-11-15 |
Family
ID=64105265
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/KR2017/010017 WO2018207974A1 (en) | 2017-05-12 | 2017-09-13 | Blockchain system and method for managing data using blockchain |
Country Status (4)
Country | Link |
---|---|
KR (1) | KR101964692B1 (en) |
SG (1) | SG10201803837VA (en) |
TW (1) | TW201901481A (en) |
WO (1) | WO2018207974A1 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109918402A (en) * | 2019-01-31 | 2019-06-21 | 平安科技(深圳)有限公司 | Education based on block chain proves acquisition methods, device, computer equipment |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102128661B1 (en) * | 2018-11-22 | 2020-06-30 | 주식회사 포스코아이씨티 | 2 Layer Block Chain System |
KR102188718B1 (en) * | 2018-11-29 | 2020-12-08 | 롯데정보통신 주식회사 | Payment mediating system based on blockcahin and mediating method of thereof |
WO2020138532A1 (en) * | 2018-12-27 | 2020-07-02 | 서강대학교 산학협력단 | Dynamic blind voting-based blockchain consensus method for internet of things environment |
KR102189668B1 (en) * | 2019-04-24 | 2020-12-11 | 인제대학교 산학협력단 | Method for building decentralized hierarchical multi-blockchains |
WO2020153552A1 (en) * | 2019-01-22 | 2020-07-30 | 인제대학교 산학협력단 | Method and apparatus for blockchain, allowing modification of transaction recorded therein |
KR102189667B1 (en) * | 2019-04-24 | 2020-12-11 | 인제대학교 산학협력단 | Unified block mining for transaction approval and modification in decentralized blockchains |
KR102330005B1 (en) | 2019-03-11 | 2021-11-24 | 순천향대학교 산학협력단 | Hybrid blockchain system for efficient content change and deletion and XGS injection method using hybrid blockchain |
KR20210005446A (en) | 2019-07-05 | 2021-01-14 | 삼성디스플레이 주식회사 | Electronic apparatus and method of manufacturing the same |
KR102348741B1 (en) * | 2019-09-16 | 2022-01-07 | 손종희 | Apparatus and method for managing electronic receipt based on block chain |
KR102332814B1 (en) * | 2019-12-11 | 2021-11-29 | 지송학 | The block chain system including a block chain structure for data self-sovereign identity |
KR102267560B1 (en) * | 2020-11-13 | 2021-06-21 | 주식회사 케이사인 | Method for Managing Modified Record of Data Which Can Reduce Size of Data Stored in Block Chain |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160028552A1 (en) * | 2014-07-25 | 2016-01-28 | Blockchain Technologies Corporation | System and method for creating a multi-branched blockchain with configurable protocol rules |
WO2016046820A1 (en) * | 2014-09-23 | 2016-03-31 | Spondoolies Tech Ltd. | System and method for providing shared hash engines architecture for a bitcoin block chain |
KR20160095720A (en) * | 2015-02-03 | 2016-08-12 | 한양대학교 에리카산학협력단 | Method and apparatus for protecting transasction of encrypted currency |
KR101701131B1 (en) * | 2016-04-28 | 2017-02-13 | 주식회사 라피 | Data recording and validation methods and systems using the connecting of blockchain between different type |
KR101727525B1 (en) * | 2016-09-05 | 2017-04-17 | 주식회사 스케일체인 | Block chain based distributed storage method and device thereof |
-
2017
- 2017-05-12 KR KR1020170059270A patent/KR101964692B1/en active IP Right Grant
- 2017-09-13 WO PCT/KR2017/010017 patent/WO2018207974A1/en active Application Filing
-
2018
- 2018-04-23 TW TW107113746A patent/TW201901481A/en unknown
- 2018-05-07 SG SG10201803837VA patent/SG10201803837VA/en unknown
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160028552A1 (en) * | 2014-07-25 | 2016-01-28 | Blockchain Technologies Corporation | System and method for creating a multi-branched blockchain with configurable protocol rules |
WO2016046820A1 (en) * | 2014-09-23 | 2016-03-31 | Spondoolies Tech Ltd. | System and method for providing shared hash engines architecture for a bitcoin block chain |
KR20160095720A (en) * | 2015-02-03 | 2016-08-12 | 한양대학교 에리카산학협력단 | Method and apparatus for protecting transasction of encrypted currency |
KR101701131B1 (en) * | 2016-04-28 | 2017-02-13 | 주식회사 라피 | Data recording and validation methods and systems using the connecting of blockchain between different type |
KR101727525B1 (en) * | 2016-09-05 | 2017-04-17 | 주식회사 스케일체인 | Block chain based distributed storage method and device thereof |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109918402A (en) * | 2019-01-31 | 2019-06-21 | 平安科技(深圳)有限公司 | Education based on block chain proves acquisition methods, device, computer equipment |
Also Published As
Publication number | Publication date |
---|---|
TW201901481A (en) | 2019-01-01 |
KR20180124541A (en) | 2018-11-21 |
KR101964692B1 (en) | 2019-04-02 |
SG10201803837VA (en) | 2018-12-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2018207974A1 (en) | Blockchain system and method for managing data using blockchain | |
WO2018207975A1 (en) | Blockchain system and method for generating blockchain | |
WO2013081282A1 (en) | System and method for recommending application by using keyword | |
WO2021040124A1 (en) | Artificial intelligence-based legal document analysis system and method | |
WO2011136425A1 (en) | Device and method for resource description framework networking using an ontology schema having a combined named dictionary and combined mining rules | |
WO2016126090A1 (en) | System and method for prooving digital file tampering by using smart phone, smart phone having smart phone screen capture image authentication function, and method for authenticating smart phone screen capture image | |
WO2014126335A1 (en) | Cloud computing-based data management method, and system and apparatus for same | |
CN107590277A (en) | Method of data synchronization, device, electronic equipment and storage medium | |
WO2015129983A1 (en) | Device and method for recommending movie on basis of distributed mining of fuzzy association rules | |
WO2022131441A1 (en) | Method and system for storing and verifying web page by using blockchain network | |
WO2020087981A1 (en) | Method and apparatus for generating risk control audit model, device and readable storage medium | |
WO2020130331A1 (en) | Method for sharing and verifying blocks and electronic documents between nodes in blockchain | |
EP2435935A2 (en) | Method of providing by-viewpoint patent map and system thereof | |
WO2022108318A1 (en) | Apparatus and method for analyzing smart contract code vulnerabilities | |
WO2020062658A1 (en) | Contract generation method and apparatus, and device and storage medium | |
WO2011090284A2 (en) | Interworking system among a plurality of distributed virtual worlds using a universally unique distributed object id and method for same | |
WO2023210860A1 (en) | Internet access management service server capable of providing internet access management service based on terminal grouping and operation method thereof | |
WO2017052240A1 (en) | Duplicate image evidence management system for verifying authenticity and integrity | |
WO2019190234A1 (en) | Blockchain system | |
WO2013008978A1 (en) | Object identification result searching system and method | |
WO2016093652A2 (en) | Family album service providing method for enabling family album to be used by enabling family members to access cloud server through telephone number | |
WO2013176433A1 (en) | Digital aging system and method for operating same | |
WO2019190226A1 (en) | Blockchain system | |
WO2024101500A1 (en) | Nft issuance system and method using nft container | |
WO2017191877A1 (en) | Compression device and method for managing provenance |
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: 17909552 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
32PN | Ep: public notification in the ep bulletin as address of the adressee cannot be established |
Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 112(1) EPC (EPO FORM 1205A DATED 13.03.2020) |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 17909552 Country of ref document: EP Kind code of ref document: A1 |