WO2018207975A1 - 블록체인 시스템 및 블록체인 생성 방법 - Google Patents

블록체인 시스템 및 블록체인 생성 방법 Download PDF

Info

Publication number
WO2018207975A1
WO2018207975A1 PCT/KR2017/010020 KR2017010020W WO2018207975A1 WO 2018207975 A1 WO2018207975 A1 WO 2018207975A1 KR 2017010020 W KR2017010020 W KR 2017010020W WO 2018207975 A1 WO2018207975 A1 WO 2018207975A1
Authority
WO
WIPO (PCT)
Prior art keywords
block
type
last
type block
blocks
Prior art date
Application number
PCT/KR2017/010020
Other languages
English (en)
French (fr)
Inventor
김승기
김병진
Original Assignee
주식회사 써트온
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 써트온 filed Critical 주식회사 써트온
Publication of WO2018207975A1 publication Critical patent/WO2018207975A1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/36Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes
    • G06Q20/367Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes
    • G06Q20/3678Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes e-cash details, e.g. blinded, divisible or detecting double spending
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/36Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/385Payment protocols; Details thereof using an alias or single-use codes

Definitions

  • the present invention relates to a blockchain system and a blockchain generation method, and more particularly, to a blockchain system including a main branch and a subbranch, and a method of generating 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 managing data by configuring blocks to be connected to a plurality of branches.
  • Another problem to be solved by the present invention is to provide a blockchain system and a method of generating such a blockchain that can ensure the safety against forgery of all blocks even if the blocks are connected to a plurality of branches.
  • the blockchain system of the present invention for solving the above problems includes at least one first type block, wherein the first type blocks each include a main branch and one first type block and at least one connected according to a generation order of the blocks.
  • a second type block wherein the second type block includes at least one sub branch connected with the first type block as a root block, and the second type blocks of one sub branch each include The second type block first generated in the one sub branch is connected to the root block, and the last first type block of the main branch is at least one of the last second type blocks of the sub branch; Contains some hash value.
  • the last first type block may further include a hash value of at least a portion of the first type block included in the main branch and generated immediately before the last first type block.
  • the last first type block may include a hash value of at least a portion of the last second type block and a hash value of at least a portion of the first type block just generated. Can be.
  • the last first type block includes a hash value of at least a portion of the last second type block and at least a portion of the first type block generated immediately before the block header. can do.
  • the last first type block may include a hash value of at least a portion of the last second type block of all sub branches.
  • the last first type block may include at least some hash values of the last second type block in which at least some hash values are not included in another first type block.
  • the last first type block includes a hash value of at least a portion of two or more last second type blocks, the hash value from at least a portion of each last second type block. It may be a hash value of the root of the generated Merkle tree.
  • the last second type block may be a block generated before the last first type block.
  • the blockchain system of the present invention for solving the above problems includes at least one first type block, the first type block is a main branch and one first type block connected in accordance with the generation order of each block And at least one second type block, wherein the second type block includes at least one sub branch connected with the first type block as a root block, wherein the second type blocks of one sub branch are each The second type block first generated in the one sub branch is connected to the root block, and any first type block of the main branch is connected to the first type block. Contains a hash value of at least some of some blocks of the previously generated second type blocks.
  • the arbitrary first type block may further include a hash value of at least a portion of the first type block included in the main branch and generated immediately before the arbitrary first type block. Can be.
  • the arbitrary first type block may include a hash value of at least a portion of the partial block and a hash value of at least a portion of the first type block just generated.
  • the arbitrary first type block may include a hash value of at least some of the partial blocks and at least some hash values of the first type block just generated in the block header. have.
  • the partial block may be the last block of the sub branch when the arbitrary first type block is generated.
  • the partial block may be the last block of all sub branches when the arbitrary first type block is generated.
  • the partial block is the last block of the sub branch when the arbitrary first type block is generated, and at least some hash values are not included in the other first type block. It may be a block.
  • the some blocks may be two or more blocks
  • the hash value may be a hash value of a root of a Merkle tree generated from at least a portion of each block of the some blocks.
  • the blockchain generation method of the present invention for solving the above problems includes at least one first type block, each of the first type block is connected to the main branch and one first type block according to the generation order of the blocks And at least one second type block, wherein the second type block includes at least one sub branch connected with the first type block as a root block, wherein the second type blocks of one sub branch are each The second type block, which is first created in the one sub branch, is connected according to the generation order of the blocks, and a block chain is connected to the root block, and the new first type block is the last type of the main branch.
  • Generating a concatenation to a block wherein the new first type block comprises a hash value of at least a portion of the last second type block of the sub branch.
  • the new first type block may further include a hash value of at least a portion of the last first type block.
  • the new first type block may include a hash value of at least a portion of the last second type block and a hash value of at least a portion of the last first type block.
  • the new first type block may include a hash value of at least a portion of the last second type block and a hash value of at least a portion of the last first type block in the block header.
  • the new first type block may include a hash value of at least a portion of the last second type block of all sub branches.
  • the new first type block may include a hash value of at least a part of the last second type block in which at least some hash values are not included in another first type block.
  • the new first type block includes a hash value of at least a portion of two or more last second type blocks, the hash value being from at least a portion of each last second type block. It may be a hash value of the root of the generated Merkle tree.
  • the last second type block may be a block generated before the new first type block.
  • the blockchain system may be configured to block blocks connected to a plurality of branches so that data can be efficiently and systematically managed.
  • the blockchain system can ensure the safety against forgery of all blocks even if the blocks are connected to a plurality of branches.
  • 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.
  • FIG. 3 is a view for explaining data of a blockchain system according to an embodiment of the present invention.
  • FIG. 4 is a diagram for describing a method of displaying a block in a blockchain.
  • FIG. 5 is an exemplary diagram of a blockchain system according to an embodiment of the present invention.
  • FIG. 6 is a view for explaining the last type 1 block of the blockchain system according to an embodiment of the present invention.
  • FIG. 7 is an exemplary diagram of a blockchain system according to another embodiment of the present invention.
  • FIGS. 8 and 9 are exemplary diagrams of a blockchain system according to another 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.
  • FIGS. 1 to 5 a blockchain system according to an exemplary embodiment of the present invention will be described with reference to FIGS. 1 to 5.
  • 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.
  • the data may be digital content, documents, accounts, transactions, personnel, production history, designs, drawings, sounds, 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. 4 the blocks constituting the block chain illustrated in FIGS. 5 to 9 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, in FIG. 5 to FIG. 9, individual blocks are represented in the manner shown in FIG. 3.
  • the title of the block, the hash value of the previous block, and the hash value of 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 last first type block described below may further include a hash value of the last second type node.
  • the hash value of the last type 2 node may be further displayed in addition to the title of the block, the hash value of the immediately preceding block, and the hash value of the block.
  • the last type 1 block is a table of 4 columns arranged up and down, the first column shows the block title, the second column shows the hash value of the previous block, and the third column shows the hash value of the last type 2 node. In the fourth column, the hash value of the block is displayed. The hash value of the last type 2 node will be described in detail below.
  • 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 second type 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) .
  • 5 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 and a second type block 200 according to the type of data to be included.
  • the first type block 100 corresponds to a block including the first type data 10.
  • the second type block 200 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. That is, the first generated block and the connection block included in the main branch 1000 correspond to the first type block 100.
  • 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. 5.
  • 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.
  • the connection block included in the sub branch 2000 corresponds to the second type block 200. 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. 5.
  • the subbranch 2000 is conditioned to include at least one connection block (second type block).
  • connection block second type block
  • 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 includes the main branch 1000 and the sub branch 2000, and the blocks include the first type block 100 and the second type block 200. It is composed of a main branch, a sub branch and a sub-sub branch, and 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 blockchain system shown in FIG. 5 is only one example of the blockchain system of the present invention, and the last first type block 190 of such a blockchain system is also merely an example for explanation of the present invention.
  • the last block 190 exists in the main branch 1000.
  • the last block 190 corresponds to the last first type block.
  • the last block 190 corresponds to the last first type block 190 of the connected branch starting from the block first generated in the main branch 1000.
  • the last first type block 190 corresponds to the B 5 block.
  • the last first type block 190 corresponds to a block generated last than all other blocks shown in FIG. 5.
  • the last first type block B 5 , 190 shown in FIG. 5 includes the hash value of another block, such as the hash value H 4 of the previous block, but the hash value H 5 of the last first type block is different. It is not included in the block. Subsequently, if the first type block is generated to be additionally connected to the main branch 1000, the hash value H 5 of the last first type block may be included in the additionally generated block, but will be described with reference to FIG. 5. At this time, the hash value H 5 of the last first type block is not included in another block.
  • the final first type blocks B 5 and 190 further include hash values of other blocks in addition to the hash value H 4 of the previous block.
  • the hash value H 4 of the immediately preceding block is included in the main branch 1000 and the hash of at least part of the first type block B 4 generated immediately before the last first type blocks B 5 and 190.
  • the hash value of another block is a hash value distinguished from the hash value of the previous block.
  • the hash value of the said other block is demonstrated in detail.
  • the last first type blocks B 5 and 190 may include a hash value H sum of at least a portion of the last second type block 290 of the sub branch 2000.
  • the range of the last second type block 290 is determined at the time when the last first type block B 5 , 190 is generated.
  • the sub branch 2000 roots the first type blocks B 1 , B 2 , B 3 and B 4 of the main branch 1000 generated before the last first type blocks B 5 and 190. Branches connected by blocks.
  • the last second type block 290 corresponds to the last second type block 290 of the connected branch starting from the root block of the sub branch 2000.
  • This last second type block 290 is a block created before the last first type block B 5 , 190. That is, the last second type block 290 refers to a block corresponding to the last block of the sub branch 2000 when the last first type blocks B 5 and 190 are generated.
  • the last second type block 290 is one each in the plurality of sub branches. In FIG. 5 the last second type block 290 is shown as B 13 , B 33 and B 44 . As described above, since the sub branch 2000 includes at least one second type block 200, the second type block 290 last as many as the number of the sub branches 2000.
  • the last first type block 190 includes a hash value of at least a portion of one last second type block 290. can do.
  • the last first type blocks B 5 and 190 are all last second type blocks B 13 , B 33 , and the like. B 44 ).
  • the final second-type blocks at least the hash value of a portion of (B 13, B 33, B 44) may be a value a hash of the block header of the last second type blocks (B 13, B 33, B 44).
  • the hash value H sum of at least a part of the last second type block may be included in the block header of the last first type block B 5 or 190. Just before than the last first-type block (B 5, 190) the block header, and the last at least a portion of the hash value of the Type 2 block (H sum) and is included in the main branch, the last first-type block (B 5, 190) of the The hash value H 4 of at least a portion of the first type block generated in the.
  • the hash value H sum of at least a portion of the last second type block and the hash value H 4 of at least a portion of the first type block just generated are the blocks of the last first type blocks B 5 and 190. May be included in the header.
  • the hash values H sum and H 4 may be used to verify the last second type block 290 and the main branch 1000.
  • the hash value H 5 of the block header of the last first type block 190 including these hash values H sum and H 4 is generated such that the first type block is further connected to the main branch 1000. If so, it is included in an additional block to be chained together.
  • the hash value that the last first type block 190 includes is a hash for the root of the Merkle tree generated from at least a portion of each last second type block 290. It may be a value H sum .
  • the last first type block 190 is a hash value (H sum ) for the root of the Merkle tree generated from the hash values (H 13 , H 33 , H 44 ) of the block headers of each last type 2 block. It may include.
  • the blockchain system described with reference to FIGS. 5 and 6 may not store and use the entire blockchain data for verification of a specific block.
  • the node may verify the specific block using only blockchain data of the main branch 1000.
  • the specific block is the second type block 200
  • the node may verify the specific block using only blockchain data of the sub branch 2000 and the main branch 1000 including the specific block. This reduces the size of blocks that nodes need to store and verify.
  • last first type block 190 includes a hash value H sum of at least a portion of the last second type block 290, the safety of the last second type block 290 may be enhanced. Can be.
  • the safety of the last block is relatively weak. This is because the last block does not contain its hash value again in another block.
  • the last block may exist as many as the number of branches, and thus the last block may be relatively insecure.
  • the last first type block 190 includes a hash value H sum of at least a portion of the last second type block 290, thereby securing the safety of the last second type block 290. have.
  • the last second type block 290 is the last block of the individual subbranch 2000, but its hash value is included in the last first type block 190 so that the above-mentioned vulnerability can be overcome.
  • the blockchain system of the present invention only one substantial last block exists as in the conventional blockchain system.
  • a blockchain system according to another embodiment of the present invention will be described with reference to FIG. 7.
  • the blockchain system described with reference to FIG. 7 has a difference in a hash value of at least a portion of the blockchain system described above with reference to FIGS. 5 and 6 and the last second type block included in the last first type block 190. have. Therefore, in describing the blockchain system of the present embodiment for convenience of description, the description will be made mainly on the points different from those described above with reference to FIGS. 5 and 6.
  • the last first type block 190 corresponds to a block generated last than all other blocks shown in FIG. 7.
  • the last first type block 190 may include a hash value H sum of at least a portion of the last second type block 290 of the sub branch.
  • the last first type block 190 may include a hash value of at least a portion of the last second type block in which at least some hash values of the last second type block 290 are not included in another first type block. have. That is, before the last first type block 190 is generated, the second type block in which at least some hash values are included in the other first type block while another first type block is generated is the last type block. It does not correspond to the last second type block of the hash value included in (190).
  • the last second type block 290 is B 13 , B 33 and B 44 at the time when the last type 1 block B 5 , 190 is generated. This exists. But before B 13 is generated and B 33 and B 44 are generated, B 2 is generated. B at the time of the second generation, at least a portion of the hash value (H 13) of the B 13 is to be included in B 2.
  • the last second type block in which at least some of the hash value of at least some of the second type block 290 of the last type 1 block B 5 and 190 is not included in another type 1 block is B 33 and B 44 only.
  • the last first type blocks B 5 , 190 contain hash values of at least some of B 33 and B 44 .
  • the last type 1 block B 5 , 190 includes a hash value H sum for the root of the Merkle tree generated from the hash values H 33 , H 44 of the block headers of B 33 and B 44 . can do.
  • the last first type block is included in the main branch and contains only hash values of at least some of the first type blocks generated immediately before the last first type block, and the hash values of at least some of the last type blocks are May not be included.
  • the last type 2 block will only contain the hash value of at least a portion thereof at least once in the last type 1 block. Accordingly, the number of the last second type blocks to be included as the last type 1 block is generated is reduced than in the case of the embodiment described above with reference to FIG. 5.
  • the safety of the last type 2 block can be improved, but as the size of the block chain grows, the number of the type 2 last type blocks to be referred to by the new type 1 last block is gradually increased. do. This can be a factor that reduces the efficiency of the blockchain. Therefore, according to the embodiment described with reference to FIG. 7, there is an advantage that the efficiency of the block chain can be secured while also improving the safety of the last second type block.
  • the last first type block including at least some hash values of the last second type block does not correspond to the last type 1 block as another type 1 block is generated and connected to the main branch. Therefore, a blockchain system including a case in which the first type block including at least some hash values of the second type block is not the last block of the main branch will be further described.
  • FIG. 8 is an exemplary diagram of a blockchain system according to an embodiment of the present invention. Referring to FIG. 8, a blockchain system according to another embodiment of the present invention will be described.
  • any first type block of the main branch includes a hash value of at least some of some blocks of the second type blocks previously generated before any first type block.
  • the partial block may be the last block of the sub branch when the arbitrary first type block is generated. More specifically, the some blocks may be the last blocks of all sub branches when the arbitrary first type block is generated. This will be described with reference to the example blockchain system illustrated in FIG. 8.
  • the last block of the sub branch that exists when the B 2 block is created is the B 11 block.
  • the B 2 block contains a hash value H 11 of at least a portion of the B 11 block.
  • the B 2 block includes at least a hash value H 1 of the first type block B 1 block included in the main branch to be distinguished from the hash value H 11 and generated immediately before the B 2 block.
  • the last block of the sub branch that exists when the B 3 block is created is also a B 11 block.
  • the B 3 block contains a hash value H 11 of at least a portion of the B 11 block.
  • B 3 block includes a hash value (H 11) and to distinguish it from being included in the main branch at least a portion of the hash value of the first type block (B 2 blocks) generated in the immediately preceding than B 3 block (H 2).
  • the last block of the sub branch present when the B 4 block is created is the B 13 and B 32 blocks. Accordingly, the B 4 block includes a hash value H sum of at least some of the B 13 and B 32 blocks. And B 4 block includes a hash value (H sum) and to distinguish it from being included in the main branch at least a portion of the hash value of the first type block (B 3 blocks) generated in the immediately preceding than B 4 blocks (H 3).
  • the last block of the sub branch that exists when the B 5 block is created is the B 13 , B 33 and B 43 blocks.
  • the B 5 block contains a hash value H sum of at least some of the B 13 , B 33 and B 44 blocks.
  • the B 5 block includes at least a hash value H 4 of the first type block B 4 block included in the main branch and generated just before the B 5 block so as to be distinguished from the hash value H sum .
  • a B 44 block is generated. Created up to B 44 blocks is the state of the blockchain system shown in FIG. If no other second type block is generated after this, and further a first type block is generated, the last block of the existing sub branch is B 13 , B 33 and B 44 blocks. Thus, the newly generated first type block includes hash values of at least some of the B 13 , B 33, and B 44 blocks.
  • FIG. 9 is an exemplary diagram of a blockchain system according to an embodiment of the present invention.
  • FIG. 9 illustrates that the blockchain system shown in FIG. 8 is identical to the order of connection and creation of each block.
  • any first type block of the main branch includes a hash value of at least some of some blocks of the second type block generated before any first type block.
  • the some blocks may be the last blocks of the sub branch when any first type block is generated. More specifically, the some blocks may be blocks in which at least some hash values are not included in other first type blocks when any first type block is generated. This will be described with reference to the exemplary blockchain system shown in FIG. 9.
  • the last block of the sub branch that exists when the B 2 block is created is the B 11 block.
  • a B 11 block is a block whose hash value of at least a part thereof is not included in another first type block.
  • the B 2 block contains a hash value H 11 of at least a portion of the B 11 block.
  • the B 2 block includes at least a hash value H 1 of the first type block B 1 block included in the main branch to be distinguished from the hash value H 11 and generated immediately before the B 2 block.
  • the last block of the sub branch that exists when the B 3 block is created is also a B 11 block.
  • the B 11 block at least some of its hash values are already included in the B 2 block.
  • the B 3 block contains only the hash value H 2 of at least a portion of the first type block (B 2 block) included in the main branch and generated immediately before the B 3 block, and at least a hash of at least part of the second type block It does not contain a value.
  • the last block of the sub branch present when the B 4 block is created is the B 13 and B 32 blocks.
  • the B 13 and B 32 blocks are blocks in which at least some of their hash values are not included in another first type block. Accordingly, the B 4 block includes a hash value H sum of at least some of the B 13 and B 32 blocks. And B 4 block includes a hash value (H sum) and to distinguish it from being included in the main branch at least a portion of the hash value of the first type block (B 3 blocks) generated in the immediately preceding than B 4 blocks (H 3).
  • the last block of the sub branch that exists when the B 5 block is created is the B 13 , B 33 and B 43 blocks.
  • the B 13 block at least some hash value thereof is already included in the B 4 block.
  • the B 33 and B 43 blocks are blocks in which at least some hash values thereof are not included in another first type block.
  • the B 5 block contains a hash value H sum of at least some of the B 33 and B 44 blocks.
  • the B 5 block includes at least a hash value H 4 of the first type block B 4 block included in the main branch and generated just before the B 5 block so as to be distinguished from the hash value H sum .
  • a B 44 block is generated. Created up to B 44 blocks is the state of the blockchain system shown in FIG. If no other second type block is generated after this, and further a first type block is generated, the last block of the existing sub branch is B 13 , B 33 and B 44 blocks. Among these, the B 13 and B 33 blocks already contain hash values of at least some of them in the B 5 block. Also, the B 44 block is a block whose hash value of at least a part thereof is not included in another first type block. Accordingly, the newly created first type block includes a hash value of at least a portion of the B 44 block.
  • FIG. 10 is a flowchart illustrating a data management method using a blockchain according to an embodiment of the present invention.
  • a blockchain generation method according to an embodiment of the present invention will be described with reference to FIG. 10.
  • the blockchain generation method to be described with reference to FIG. 10 relates to a method for generating a blockchain of the blockchain system described with reference to FIGS. 1 to 9. Therefore, for convenience of description, some of the contents overlapping with those described above with reference to FIGS. 1 to 9 will be omitted.
  • the method for generating a blockchain includes preparing a blockchain (S100) and generating a new first type block (S200).
  • Preparing a block chain is a step of preparing a block chain including a main branch and at least one sub branch. This has been described in detail with reference to FIG. 5.
  • Generating a new first type block is a step of generating a new first type block to be connected to the last first type block of the main branch.
  • the new first type block includes a hash value of at least a portion of the last second type block of the sub branch.
  • the new first type block may further include a hash value of at least a portion of the last first type block.
  • the new first type block may include at least some hash values of the last type block and at least some hash values of the last type block in the block header.
  • the new first type block may include a hash value of at least a portion of the last second type block of all sub branches. This has been described in detail with reference to FIGS. 5 and 8.
  • the new first type block may include at least some hash values of the last second type block in which at least some hash values are not included in other first type blocks. This has been described in detail with reference to FIGS. 7 and 9.
  • the new first type block may include a hash value of at least a portion of two or more last second type blocks, and the hash value may be a hash value for the root of the Merkle tree generated from at least a portion of each last type 2 block. . This has been described in detail with reference to FIG. 6.
  • Last Type 1 Block 290: Last Type 2 Block

Landscapes

  • Business, Economics & Management (AREA)
  • Accounting & Taxation (AREA)
  • Engineering & Computer Science (AREA)
  • Finance (AREA)
  • Physics & Mathematics (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Electrotherapy Devices (AREA)

Abstract

본 발명은 블록체인 시스템 및 블록체인 생성 방법에 관한 것으로, 더욱 상세하게는 메인 브랜치와 서브 브랜치를 포함하는 블록체인 시스템과 이러한 블록체인의 생성 방법에 관한 것이다. 본 발명의 블록체인 시스템은, 적어도 하나의 제1 형 블록을 포함하고, 상기 제1 형 블록들은 각각 블록의 생성 순서에 따라 연결된 메인 브랜치 및 하나의 제1 형 블록 및 적어도 하나의 제2 형 블록을 포함하고, 상기 제2 형 블록은 상기 제1 형 블록을 루트 블록으로 하여 연결된 적어도 하나의 서브 브랜치를 포함하고, 하나의 서브 브랜치의 상기 제2 형 블록은 각각 블록의 생성 순서에 따라 연결되되, 상기 하나의 서브 브랜치에서 최초로 생성된 제2 형 블록은 상기 루트 블록에 연결되고, 상기 메인 브랜치의 마지막 제1 형 블록은, 상기 서브 브랜치의 마지막 제2 형 블록의 적어도 일부의 해시값을 포함한다.

Description

블록체인 시스템 및 블록체인 생성 방법
본 발명은 블록체인 시스템 및 블록체인 생성 방법에 관한 것으로, 더욱 상세하게는 메인 브랜치와 서브 브랜치를 포함하는 블록체인 시스템과 이러한 블록체인의 생성 방법에 관한 것이다.
블록체인은 분산 데이터베이스의 일종으로 암호화된 가상화폐인 비트코인에서 도입된 개념으로 알려져 있다. 기존에 거래장부, 문서 등의 디지털 컨텐츠를 중앙집중형 서버에 보관하고 관리하던 것과 달리, 블록체인 시스템에서는 누적된 디지털 컨텐츠를 네트워크를 통해 연결된 복수의 참여자의 장치(노드)에 저장하여 관리한다. 이러한 블록체인 시스템은 디지털 컨텐츠 자체가 인터넷을 통해 공개되어 있고, 다수의 참여자에 의해 수시로 검증이 진행되므로 위조 또는 변조가 매우 어렵다는 장점이 있다.
이러한 블록체인 시스템은 비트코인 등의 가상화폐 시스템 또는 금융기관의 거래기록 보관 등에 사용되고 있다. 또한, 최근에는 이러한 블록체인 시스템을 전자화된 문서관리 및 원본확인 등을 위해 사용되기도 한다.
블록체인에 참여하는 노드들은 전체 블록체인의 데이터를 장치에 저장하고 유지관리 해야 한다. 누적된 거래 등이 적어 전체 블록체인의 크기가 크지 않은 경우에는 문제되지 않으나, 거래 등 신규 이벤트 발생이 누적되면서 블록의 개수가 증가할수록 전체 블록체인의 크기는 점차 증가하게 된다. 대표적인 블록체인 시스템인 비트코인의 전체 블록체인 크기는 현재 수십 Gbyte에 달하고 있다.
따라서 블록체인에 참여하는 노드들은 이러한 대용량의 데이터를 저장하고 유지관리할 수 있는 높은 수준의 저장 장치 및 컴퓨팅 장치가 필요하다. 그러나 일반적인 개인용 컴퓨터는 이러한 수준의 성능에 도달하지 못할 수 있다. 특히, 스마트폰, 태블릿 컴퓨터 등 개인용 모바일 장치는 더욱 이러한 수준의 성능에 도달하지 못하는 실정이다.
본 발명이 해결하려는 과제는, 블록들이 복수의 브랜치로 연결되도록 구성하여 데이터를 효율적이고 체계적으로 관리할 수 있는 블록체인 시스템을 제공하는 것이다.
본 발명이 해결하려는 다른 과제는, 블록들이 복수의 브랜치로 연결되더라도 모든 블록의 위변조에 대한 안전성을 확보할 수 있는 블록체인 시스템 및 이러한 블록체인의 생성 방법을 제공하는 것이다.
상기 과제를 해결하기 위한 본 발명의 블록체인 시스템은, 적어도 하나의 제1 형 블록을 포함하고, 상기 제1 형 블록들은 각각 블록의 생성 순서에 따라 연결된 메인 브랜치 및 하나의 제1 형 블록 및 적어도 하나의 제2 형 블록을 포함하고, 상기 제2 형 블록은 상기 제1 형 블록을 루트 블록으로 하여 연결된 적어도 하나의 서브 브랜치를 포함하고, 하나의 서브 브랜치의 상기 제2 형 블록은 각각 블록의 생성 순서에 따라 연결되되, 상기 하나의 서브 브랜치에서 최초로 생성된 제2 형 블록은 상기 루트 블록에 연결되고, 상기 메인 브랜치의 마지막 제1 형 블록은, 상기 서브 브랜치의 마지막 제2 형 블록의 적어도 일부의 해시값을 포함한다.
본 발명의 일 실시예에 있어서, 상기 마지막 제1 형 블록은, 상기 메인 브랜치에 포함되고 상기 마지막 제1 형 블록보다 직전에 생성된 제1 형 블록의 적어도 일부의 해시값을 더 포함할 수 있다.
본 발명의 일 실시예에 있어서, 상기 마지막 제1 형 블록은, 상기 마지막 제2 형 블록의 적어도 일부의 해시값과 상기 직전에 생성된 제1 형 블록의 적어도 일부의 해시값을 구분하여 포함할 수 있다.
본 발명의 일 실시예에 있어서, 상기 마지막 제1 형 블록은, 상기 마지막 제2 형 블록의 적어도 일부의 해시값과 상기 직전에 생성된 제1 형 블록의 적어도 일부의 해시값을 블록헤더에 포함할 수 있다.
본 발명의 일 실시예에 있어서, 상기 마지막 제1 형 블록은, 모든 서브 브랜치의 마지막 제2 형 블록의 적어도 일부의 해시값을 포함할 수 있다.
본 발명의 일 실시예에 있어서, 상기 마지막 제1 형 블록은, 적어도 일부의 해시값이 다른 제1 형 블록에 포함되지 않은 마지막 제2 형 블록의 적어도 일부의 해시값을 포함할 수 있다.
본 발명의 일 실시예에 있어서, 상기 마지막 제1 형 블록은, 둘 이상의 마지막 제2 형 블록의 적어도 일부의 해시값을 포함하고, 상기 해시값은, 각각의 마지막 제2 형 블록의 적어도 일부로부터 생성된 머클 트리의 루트에 대한 해시값일 수 있다.
본 발명의 일 실시예에 있어서, 상기 마지막 제2 형 블록은, 상기 마지막 제1 형 블록보다 이전에 생성된 블록일 수 있다.
또한, 상기 과제를 해결하기 위한 본 발명의 블록체인 시스템은, 적어도 하나의 제1 형 블록을 포함하고, 상기 제1 형 블록들은 각각 블록의 생성 순서에 따라 연결된 메인 브랜치 및 하나의 제1 형 블록 및 적어도 하나의 제2 형 블록을 포함하고, 상기 제2 형 블록은 상기 제1 형 블록을 루트 블록으로 하여 연결된 적어도 하나의 서브 브랜치를 포함하고, 하나의 서브 브랜치의 상기 제2 형 블록은 각각 블록의 생성 순서에 따라 연결되되, 상기 하나의 서브 브랜치에서 최초로 생성된 제2 형 블록은 상기 루트 블록에 연결되고, 상기 메인 브랜치의 임의의 제1 형 블록은, 상기 임의의 제1 형 블록보다 이전에 생성된 제2 형 블록 중 일부 블록의 적어도 일부의 해시값을 포함한다.
본 발명의 일 실시예에 있어서, 상기 임의의 제1 형 블록은, 상기 메인 브랜치에 포함되고 상기 임의의 제1 형 블록보다 직전에 생성된 제1 형 블록의 적어도 일부의 해시값을 더 포함할 수 있다.
본 발명의 일 실시예에 있어서, 상기 임의의 제1 형 블록은, 상기 일부 블록의 적어도 일부의 해시값과 상기 직전에 생성된 제1 형 블록의 적어도 일부의 해시값을 구분하여 포함할 수 있다.
본 발명의 일 실시예에 있어서, 상기 임의의 제1 형 블록은, 상기 일부 블록의 적어도 일부의 해시값과 상기 직전에 생성된 제1 형 블록의 적어도 일부의 해시값을 블록헤더에 포함할 수 있다.
본 발명의 일 실시예에 있어서, 상기 일부 블록은, 상기 임의의 제1 형 블록이 생성될 때, 상기 서브 브랜치의 마지막 블록일 수 있다.
본 발명의 일 실시예에 있어서, 상기 일부 블록은, 상기 임의의 제1 형 블록이 생성될 때, 모든 서브 브랜치의 마지막 블록일 수 있다.
본 발명의 일 실시예에 있어서, 상기 일부 블록은, 상기 임의의 제1 형 블록이 생성될 때, 상기 서브 브랜치의 마지막 블록이되, 적어도 일부의 해시값이 다른 제1 형 블록에 포함되지 않은 블록일 수 있다.
본 발명의 일 실시예에 있어서, 상기 일부 블록은 둘 이상의 블록이고, 상기 해시값은, 상기 일부 블록의 각각의 블록의 적어도 일부로부터 생성된 머클 트리의 루트에 대한 해시값일 수 있다.
또한, 상기 과제를 해결하기 위한 본 발명의 블록체인 생성 방법은 적어도 하나의 제1 형 블록을 포함하고, 상기 제1 형 블록들은 각각 블록의 생성 순서에 따라 연결된 메인 브랜치 및 하나의 제1 형 블록 및 적어도 하나의 제2 형 블록을 포함하고, 상기 제2 형 블록은 상기 제1 형 블록을 루트 블록으로 하여 연결된 적어도 하나의 서브 브랜치를 포함하고, 하나의 서브 브랜치의 상기 제2 형 블록은 각각 블록의 생성 순서에 따라 연결되되, 상기 하나의 서브 브랜치에서 최초로 생성된 제2 형 블록은 상기 루트 블록에 연결되는 블록체인을 마련하는 단계 및 새로운 제1 형 블록을 상기 메인 브랜치의 마지막 제1 형 블록에 연결되도록 생성하는 단계를 포함하고, 상기 새로운 제1 형 블록은, 상기 서브 브랜치의 마지막 제2 형 블록의 적어도 일부의 해시값을 포함한다.
본 발명의 일 실시예에 있어서, 상기 새로운 제1 형 블록은, 상기 마지막 제1 형 블록의 적어도 일부의 해시값을 더 포함할 수 있다.
본 발명의 일 실시예에 있어서, 상기 새로운 제1 형 블록은, 상기 마지막 제2 형 블록의 적어도 일부의 해시값과 상기 마지막 제1 형 블록의 적어도 일부의 해시값을 구분하여 포함할 수 있다.
본 발명의 일 실시예에 있어서, 상기 새로운 제1 형 블록은, 상기 마지막 제2 형 블록의 적어도 일부의 해시값과 상기 마지막 제1 형 블록의 적어도 일부의 해시값을 블록헤더에 포함할 수 있다.
본 발명의 일 실시예에 있어서, 상기 새로운 제1 형 블록은, 모든 서브 브랜치의 마지막 제2 형 블록의 적어도 일부의 해시값을 포함할 수 있다.
본 발명의 일 실시예에 있어서, 상기 새로운 제1 형 블록은, 적어도 일부의 해시값이 다른 제1 형 블록에 포함되지 않은 마지막 제2 형 블록의 적어도 일부의 해시값을 포함할 수 있다.
본 발명의 일 실시예에 있어서, 상기 새로운 제1 형 블록은, 둘 이상의 마지막 제2 형 블록의 적어도 일부의 해시값을 포함하고, 상기 해시값은, 각각의 마지막 제2 형 블록의 적어도 일부로부터 생성된 머클 트리의 루트에 대한 해시값일 수 있다.
본 발명의 일 실시예에 있어서, 상기 마지막 제2 형 블록은, 상기 새로운 제1 형 블록보다 이전에 생성된 블록일 수 있다.
본 발명의 일 실시예에 따른 블록체인 시스템은 블록들이 복수의 브랜치로 연결되도록 구성하여 데이터를 효율적이고 체계적으로 관리할 수 있다.
또한, 본 발명의 일 실시예에 따른 블록체인 시스템은 블록들이 복수의 브랜치로 연결되더라도 모든 블록의 위변조에 대한 안전성을 확보할 수 있다.
도 1은 본 발명의 일 실시예에 따른 블록체인 시스템의 개별 블록의 구성을 도시한 것이다.
도 2는 본 발명의 일 실시예에 따른 블록체인 시스템의 두 개의 블록이 연결된 것을 도시한 것이다.
도 3은 본 발명의 일 실시예에 따른 블록체인 시스템의 데이터를 설명하기 위한 도면이다.
도 4는 블록체인에서 블록의 표시 방법을 설명하기 위한 도면이다.
도 5는 본 발명의 일 실시예에 따른 블록체인 시스템의 예시 도면이다.
도 6은 본 발명의 일 실시예에 따른 블록체인 시스템의 마지막 제1 형 블록을 설명하기 위한 도면이다.
도 7은 본 발명의 다른 일 실시예에 따른 블록체인 시스템의 예시 도면이다.
도 8 및 도 9는 본 발명의 또 다른 일 실시예에 따른 블록체인 시스템의 예시 도면이다.
도 10은 본 발명의 일 실시예에 따른 블록체인을 이용한 데이터 관리 방법을 설명하기 위한 순서도이다.
이하, 첨부된 도면을 참조하여 본 발명의 실시예들을 상세히 설명한다. 본 발명을 설명하는데 있어서, 해당 분야에 이미 공지된 기술 또는 구성에 대한 구체적인 설명을 부가하는 것이 본 발명의 요지를 불분명하게 할 수 있다고 판단되는 경우에는 상세한 설명에서 이를 일부 생략하도록 한다. 또한, 본 명세서에서 사용되는 용어들은 본 발명의 실시예들을 적절히 표현하기 위해 사용된 용어들로서, 이는 해당 분야의 관련된 사람 또는 관례 등에 따라 달라질 수 있다. 따라서, 본 용어들에 대한 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
이하, 첨부한 도 1 내지 도 5를 참조하여, 본 발명의 일 실시예에 따른 블록체인 시스템에 대해 설명한다.
도 1은 본 발명의 일 실시예에 따른 블록체인 시스템의 개별 블록의 구성을 도시한 것이다. 도 2는 본 발명의 일 실시예에 따른 블록체인 시스템의 두 개의 블록이 연결된 것을 도시한 것이다.
도 1을 참조하면, 하나의 블록(100)은 블록헤더(110) 및 블록몸체(120)를 포함한다.
블록헤더(110)는 블록의 타이틀, 직전 블록의 해시값, 블록몸체의 해시값, 타임스탬프, 난이도 목표 및 난스 등을 포함할 수 있다. 블록헤더(110)가 포함하는 정보는 다양하게 변경되어 구성될 수 있다.
블록의 타이틀은 블록(100)을 다른 블록과 구분할 수 있는 식별 정보를 의미한다. 블록의 타이틀은 다른 블록과의 연결 관계에 따라 정해질 수 있다.
직전 블록의 해시값은 브랜치에서 해당 블록 이전에 생성되어 해당 블록과 연결되는 블록의 해시값이다. 직전 블록의 해시값은 직전 블록의 전체 또는 선택된 일부의 정보의 해시값일 수 있다. 예를 들어, 직전 블록의 해시값은 직전 블록의 블록헤더의 정보의 해시값인 것으로 정의될 수 있다. 블록헤더에 직전 블록의 해시값이 포함됨으로서, 블록 간의 연결성이 강화될 수 있다. 블록 간의 연결성이 강화되는 것은 블록체인 시스템 전체의 보안성이 향상되는 것을 의미한다.
블록몸체의 해시값은 해당 블록의 블록몸체(120)가 포함하는 데이터의 해시값이다. 후술하는 것과 같이, 블록몸체(120)는 데이터를 포함한다. 블록몸체의 해시값은 블록몸체가 포함하는 데이터의 전체 또는 선택된 일부의 해시값일 수 있다. 블록몸체의 해시값은 다양한 방식으로 결정될 수 있다. 예를 들어, 블록몸체의 해시값은 블록몸체(120)의 데이터로부터 생성된 머클 트리의 루트에 대한 해시값일 수 있다. 블록몸체의 해시값은 블록몸체(120)의 데이터의 요약본에 해당하는 것으로, 상대적으로 크기가 큰 블록몸체(120)의 데이터를 효율적으로 관리하고 검증할 수 있게 한다.
타임스탬프(time stamp)는 해당 블록의 생성시간에 관한 정보이다.
난이도 목표는 해당 블록의 작업증명 알고리즘에 대한 난이도 목표이다. 이는 해당 블록의 난스를 찾는데 필요한 해싱파워를 결정하는 것에 관한 정보이다.
난스(nonce)는 해당 블록의 작업증명 알고리즘에 사용되는 카운터 정보이다.
블록헤더(110)에는 상술한 정보 중 일부가 제외될 수도 있고, 다른 정보가 추가로 포함될 수도 있다.
블록몸체(120)는 블록(100)이 저장하고 관리하는 데이터를 포함한다. 데이터는 디지털 데이터에 해당한다. 데이터는 다양한 형태의 자료일 수 있다. 예를 들어, 데이터는 디지털 컨텐츠, 문서 정보, 계좌 정보, 거래 정보, 인사 정보, 생산 이력 정보, 제품 또는 건축물의 설계 및 도면, 사운드 정보 등이 가능하며, 특정한 형태로 한정되는 것은 아니다.
블록몸체(120)가 포함하는 데이터는 블록에 따라서 종류 또는 크기 등이 제한될 수 있다. 이러한 데이터의 제한은 모든 블록에 공통으로 적용될 수도 있고, 특정한 몇몇 블록에만 선택적으로 적용될 수도 있다. 또한, 이러한 데이터의 제한은 필요에 따라 변경될 수 있다.
도 2를 참조하면, 두 개의 블록은 서로 연결될 수 있다. 구체적으로, 복수의 블록은 순차적으로 연결되어 브랜치를 형성할 수 있다. 여기서, 브랜치란 복수의 블록들이 서로 선형적으로 연결된 블록들의 집합을 의미한다. 도 2에는 이러한 브랜치에서 임의의 두 개의 블록이 연결된 상태가 도시되어 있다.
도 2를 참조하면, 브랜치에서 임의의 하나의 블록(200)은 브랜치 내에서 직전에 생성된 블록(100)과 연결되게 된다. 블록(200)은 직전에 생성된 블록(100)의 해시값을 포함하는 것을 통해 연결된다. 구체적으로, 블록(200)은 블록헤더(210)에 직전에 생성된 블록(100)의 해시값을 포함하는 것을 통해 연결될 수 있다.
직전에 생성된 블록(100)의 해시값은 상술한 것과 같이, 직전 블록(100)의 전체 또는 선택된 일부의 정보의 해시값일 수 있다. 예를 들어, 첨부한 도 2에 도시된 것과 같이 직전 블록(100)의 해시값은 직전 블록의 블록헤더(110)의 정보의 해시값인 것으로 정의될 수 있다. 직전 블록의 해시값은 블록을 설계하는 사람의 기호 및 판단에 따라 다양하게 변경될 수 있다.
도 3을 참조하여, 본 발명의 일 실시예에 따른 블록체인 시스템의 데이터에 대해 설명하도록 한다.
본 발명의 블록체인 시스템은 복수의 블록을 포함한다. 하나의 블록은 하나의 데이터를 포함한다. 여기서 데이터는 하나의 블록에 포함되는 정보의 단위 집합을 의미한다. 구체적으로, 블록의 블록몸체는 데이터를 포함할 수 있다.
블록체인 시스템의 블록이 포함하는 데이터는 제1 형 데이터 및 제2 형 데이터로 구분될 수 있다. 제1 형 데이터는 다른 데이터에 기반하지 않은 데이터에 해당한다. 제2 형 데이터는 제1 형 데이터에 기반한 데이터에 해당한다.
도 3을 참조하면, 제1 형 데이터(10)는 신규 자료를 생성하는 것에 관한 데이터일 수 있다. 그리고 제2 형 데이터(20)는 기존 자료를 수정, 변경, 삭제, 폐기, 조회 및 전달 중 적어도 어느 하나를 수행하는 것에 관한 데이터일 수 있다. 여기서, 기존 자료란 제1 형 데이터(10)가 생성한 자료를 의미한다.
구체적으로, 데이터는 디지털 컨텐츠, 문서, 계좌, 거래, 인사, 생산 이력, 설계, 도면, 사운드, 프로그래밍 코드 등이 될 수 있다. 그리고 제1 형 데이터 및 제2 형 데이터도 이러한 다양한 종류에 따라 구분될 수 있다. 제1 형 데이터 및 제2 형 데이터는 상술한 것에 한정되지 않는다.
도 4를 참조하여, 도 5 내지 도 9에서 도시되는 블록체인을 구성하는 블록에 대해서 간략하게 설명하도록 한다.
블록은 도 1 및 도 2를 참조하여 설명한 것과 같이, 블록헤더와 블록몸체를 포함한다. 그러나 설명의 편의성을 위해 도 5 내지 도 9에서는 도 3에 도시된 방식으로 개별 블록을 표시하도록 한다.
도 3을 참조하면, 하나의 블록을 설명하는데 있어서, 블록의 타이틀, 직전 블록의 해시값 및 당해 블록의 해시값이 표시된다. 하나의 블록은 상하로 배열된 3칸의 표에서, 첫번째 칸에는 블록의 타이틀이 표시되고, 두번째 칸에는 직전 블록의 해시값이 표시되고, 세번째 칸에는 당해 블록의 해시값이 표시된다.
아래에서 설명할 마지막 제1 형 블록은 마지막 제2 형 노드의 해시값을 더 포함할 수 있다. 또한, 마지막 제1 형 블록을 설명하는데 있어서, 블록의 타이틀, 직전 블록의 해시값 및 당해 블록의 해시값에 더불어 마지막 제2 형 노드의 해시값이 추가로 표시될 수 있다. 마지막 제1 형 블록은 상하로 배열된 4칸의 표에서, 첫번째 칸에는 블록의 타이틀이 표시되고, 두번째 칸에는 직전 블록의 해시값이 표시되고, 세번째 칸에는 마지막 제2 형 노드의 해시값이 표시되고, 네번째 칸에는 당해 블록의 해시값이 표시된다. 마지막 제2 형 노드의 해시값에 대해서는 아래에서 상세하게 설명하도록 한다.
블록의 타이틀은 Bn 또는 Bnm과 같은 형태로 표시된다. 블록의 타이틀이 Bn이라는 것은 상기 블록이 메인 브랜치의 n번째 블록이라는 것을 의미한다. 그리고 블록의 타이틀이 Bnm이라는 것은 상기 블록이 메인 브랜치의 n번째 블록에서 분기되는 서브 브랜치의 m번째 제2 형 블록이라는 것을 의미한다. 임의의 서브 브랜치의 m번째 제2 형 블록은 상기 서브 브랜치의 m+1번째 블록에 해당한다.
어느 블록의 해시값은 H라는 기호를 이용하여 표시된다. 예를 들어, 블록의 타이틀이 Bnm인 블록의 해시값은 Hnm으로 표시되게 된다. 도 4를 참조하면, 블록의 타이틀이 Bnm인 블록의 직전 블록은 블록의 타이틀이 Bn(m-1)인 블록인 것이고, 직전 블록의 해시값은 Hn(m-1)인 것이다.
상기 블록의 타이틀, 해시값의 기호 등을 설명하면서 언급한 메인 브랜치, 서브 브랜치, 제2 형 블록 등에 대해서는 이하 도 5를 참조하여 상세하게 설명하도록 한다.
도 5를 참조하여, 본 발명의 일 실시예에 따른 블록체인 시스템에 대해서 설명하도록 한다. 도 5는 본 발명의 일 실시예에 따른 블록체인 시스템의 예시 도면이다.
본 발명의 블록체인 시스템은 복수의 블록을 포함한다. 하나의 블록은 하나의 데이터를 포함한다. 상술한 것과 같이, 데이터는 제1 형 데이터(10) 및 제2 형 데이터(20)로 구분될 수 있다. 블록은 포함하는 데이터의 종류에 따라 제1 형 블록(100) 및 제2 형 블록(200)으로 구분될 수 있다. 제1 형 블록(100)은 제1 형 데이터(10)를 포함하는 블록에 해당한다. 또한, 제2 형 블록(200)은 제2 형 데이터(20)를 포함하는 블록에 해당한다.
본 발명의 블록체인 시스템은 메인 브랜치(1000) 및 적어도 하나의 서브 브랜치(2000)를 포함한다. 여기서, 브랜치란 복수의 블록들이 서로 선형적으로 연결된 블록들의 집합을 의미한다.
메인 브랜치(1000)는 최초로 생성된 블록(genesis block)과 이에 연결된 적어도 하나의 연결 블록을 포함한다. 메인 브랜치(1000)는 최초로 생성된 블록에서 연결 블록이 일 방향으로 분기되기 않고 연결된다. 메인 브랜치(1000)에서 분기되어 다른 브랜치가 형성될 수는 있지만 분기된 블록들은 메인 브랜치(1000)에 포함되는 것이 아니다. 분기된 블록들은 후술할 서브 브랜치(2000)에 포함될 수 있으며, 이에 대해서는 아래에서 설명하도록 한다.
메인 브랜치(1000)는 제1 형 블록(100)들로 구성된다. 즉, 메인 브랜치(1000)가 포함하는 최초로 생성된 블록 및 연결 블록은 모두 제1 형 블록(100)에 해당한다. 메인 브랜치(1000)가 포함하는 블록들은 생성된 순서에 따라 순서대로 연결된다. 블록의 연결은 당해 블록이 직전에 생성된 블록의 적어도 일부의 해시값을 포함하는 것에 의해 달성된다. 이러한 연결 형태에 대해서는 도 5에 블록 사이의 화살표를 통해 표시되어 있다. 따라서 최초로 생성된 블록을 제외하고 하나의 제1 형 블록은 직전에 생성된 제1 형 블록의 적어도 일부의 해시값을 포함한다.
서브 브랜치(2000)는 메인 브랜치(1000)로부터 분기되어 형성된 브랜치이다. 서브 브랜치(2000)는 루트 블록(root block)과 이에 연결된 적어도 하나의 연결 블록을 포함한다. 루트 블록은 메인 브랜치(1000)에도 포함되는 블록으로, 서브 브랜치(2000)의 분기가 시작되는 블록이다. 루트 블록은 당해 서브 브랜치(2000)에서 최초로 생성된 블록(genesis block)에 해당한다.
여기서, 루트 블록은 제1 형 블록(100)에 해당한다. 그리고 서브 브랜치(2000)가 포함하는 연결 블록은 제2 형 블록(200)에 해당한다. 하나의 서브 브랜치(2000)가 포함하는 블록들은 생성된 순서에 따라 순서대로 연결된다. 블록의 연결은 당해 블록이 직전에 생성된 블록의 적어도 일부의 해시값을 포함하는 것에 의해 달성된다. 따라서 하나의 서브 브랜치(2000)에서 최초로 생성된 연결 블록(제2 형 블록)은 당해 서브 브랜치(2000)의 연결되는 루트 블록의 적어도 일부의 해시값을 포함한다. 또한, 하나의 서브 브랜치(2000)에서 최초로 생성되지 않은 연결 블록(제2 형 블록)은 당해 서브 브랜치(2000)에 포함되고 직전에 생성된 제2 형 블록의 적어도 일부의 해시값을 포함한다. 이러한 연결 형태에 대해서는 도 5에 블록 사이의 화살표를 통해 표시되어 있다.
서브 브랜치(2000)는 적어도 하나의 연결 블록(제2 형 블록)을 포함하는 것을 조건으로 한다. 경우에 따라서, 연결 블록(제2 형 블록)이 없고 루트 블록(제1 형 블록)만이 존재하는 높이(길이)가 1개 블록인 서브 브랜치를 생각해볼 수도 있겠지만, 본 명세서에서는 이러한 경우 그러한 서브 브랜치가 존재하지 않는 것으로 정의한다. 즉, 설명의 편의성을 위해서 서브 브랜치(2000)는 하나의 루트 블록(제1 형 블록)과 이에 연결된 적어도 하나의 연결 블록(제2 형 블록)이 있는 것을 조건으로 정의한다.
서브 브랜치(2000)는 하나 또는 둘 이상이 형성될 수 있다. 서브 브랜치(2000)는 하나의 루트 블록에서 하나 또는 둘 이상이 연장되는 형태로 형성될 수 있다. 그러나 첨부한 도면 및 이하에서는 설명의 편의성을 위해서 하나의 루트 블록에서 하나의 서브 브랜치(2000)만이 형성되는 것을 예를 들어 설명하도록 한다. 그러나 이러한 설명이 본 발명에서 하나의 루트 블록에서 둘 이상의 서브 브랜치(2000)가 연장되는 것을 제외하는 것은 아니다.
하나의 루트 블록에서 하나의 서브 브랜치(2000)가 연장되어 형성되는 경우라면, 서브 브랜치(2000)는 최대 메인 브랜치(1000)의 블록의 개수까지 형성되는 것이 가능하다.
도 5에서는 블록체인 시스템이 메인 브랜치(1000)와 서브 브랜치(2000)로 구성되고, 블록들이 제1 형 블록(100)과 제2 형 블록(200)으로 구성되는 것을 도시하였지만, 경우에 따라서는 메인 브랜치, 서브 브랜치 및 서브-서브 브랜치로 구성되고, 블록들도 제1 형 블록, 제2 형 블록 및 제3 형 블록으로 구성될 수도 있다. 여기서, 서브-서브 브랜치는 서브 브랜치를 메인 브랜치로 하고, 서브 브랜치에서 다시 분기된 브랜치를 의미한다. 서브-서브 브랜치의 루트 블록은 서브 브랜치에 포함되는 제2 형 블록이 될 수 있다. 그리고 서브-서브 브랜치의 연결 블록은 제3 형 블록이 될 수 있다. 이와 같이, 본 발명의 블록체인 시스템에서 메인 브랜치와 서브 브랜치는 상대적인 것으로, 서브 브랜치가 연쇄적으로 생성될 수 있다.
이하, 도 5를 참조하여, 마지막 제1 형 블록(190)에 대해서 설명하도록 한다. 도 5에 도시된 블록체인 시스템은 본 발명의 블록체인 시스템의 일 예시에 불과하고, 이러한 블록체인 시스템의 마지막 제1 형 블록(190)도 본 발명의 설명을 위한 예시에 불과하다.
도 5를 참조하면, 메인 브랜치(1000)에는 마지막 블록(190)이 존재한다. 마지막 블록(190)은 마지막 제1 형 블록에 해당한다. 구체적으로, 마지막 블록(190)은 메인 브랜치(1000)에서 최초로 생성된 블록을 시작으로 하여 연결된 브랜치의 마지막 제1 형 블록(190)에 해당한다. 도 5에서는 마지막 제1 형 블록(190)이 B5 블록에 해당한다. 도 5에 있어서, 마지막 제1 형 블록(190)은 도 5에 도시된 다른 모든 블록보다 마지막에 생성된 블록에 해당한다.
도 5에 도시된 마지막 제1 형 블록(B5, 190)은 직전 블록의 해시값(H4) 등 다른 블록의 해시값을 포함하지만, 마지막 제1 형 블록의 해시값(H5)은 다른 블록에 포함되지 않는다. 이후에 메인 브랜치(1000)에 추가로 제1 형 블록이 연결되도록 생성된다면, 상기 마지막 제1 형 블록의 해시값(H5)이 추가로 생성되는 블록에 포함될 수 있지만, 도 5를 참조하여 설명하는 시점에서는 마지막 제1 형 블록의 해시값(H5)은 다른 블록에 포함되지 않는다.
마지막 제1 형 블록(B5, 190)은 직전 블록의 해시값(H4) 이외에 다른 블록의 해시값을 추가로 포함한다. 여기서, 직전 블록의 해시값(H4)은 메인 브랜치(1000)에 포함되고 상기 마지막 제1 형 블록(B5, 190)보다 직전에 생성된 제1 형 블록(B4)의 적어도 일부의 해시값에 해당한다. 그리고 다른 블록의 해시값이란 상기 직전 블록의 해시값과 구분되는 해시값이다. 이하, 상기 다른 블록의 해시값에 대해서 상세하게 설명한다.
도 5를 참조하면, 마지막 제1 형 블록(B5, 190)은 서브 브랜치(2000)의 마지막 제2 형 블록(290)의 적어도 일부의 해시값(Hsum)을 포함할 수 있다. 여기서, 마지막 제2 형 블록(290)의 범위는 마지막 제1 형 블록(B5, 190)이 생성되는 시점에서 결정된다. 구체적으로, 서브 브랜치(2000)는 마지막 제1 형 블록(B5, 190)보다 이전에 생성된 메인 브랜치(1000)의 제1 형 블록(B1, B2, B3, B4)을 루트 블록으로 하여 연결되는 브랜치이다. 그리고 마지막 제2 형 블록(290)은 이러한 서브 브랜치(2000)의 루트 블록을 시작으로 하여 연결된 브랜치의 마지막 제2 형 블록(290)에 해당한다. 이러한 마지막 제2 형 블록(290)은 상기 마지막 제1 형 블록(B5, 190)보다 이전에 생성된 블록이다. 즉, 여기서 마지막 제2 형 블록(290)이란 마지막 제1 형 블록(B5, 190)이 생성될 때, 서브 브랜치(2000)의 마지막 블록에 해당하는 블록을 의미한다.
마지막 제1 형 블록(B5, 190)이 생성되는 시점에서 복수의 서브 브랜치(2000)가 존재할 수 있다. 그리고 마지막 제2 형 블록(290)도 복수로 존재할 수 있다. 구체적으로, 마지막 제2 형 블록(290)은 복수의 서브 브랜치에 각각 하나씩 존재한다. 도 5에서는 마지막 제2 형 블록(290)이 B13, B33 및 B44인 것으로 도시되어 있다. 상술한 것과 같이, 서브 브랜치(2000)는 적어도 하나의 제2 형 블록(200)을 포함하는 것을 조건으로 하기 때문에 서브 브랜치(2000)의 개수만큼 마지막 제2 형 블록(290)이 존재하게 된다.
도 5에 도시된 것과는 다르지만, 마지막 제2 형 블록(290)이 하나가 존재하는 경우, 마지막 제1 형 블록(190)은 하나의 마지막 제2 형 블록(290)의 적어도 일부의 해시값을 포함할 수 있다.
또한, 도 5에 도시된 것과 같이, 마지막 제2 형 블록(290)이 복수로 존재하는 경우, 마지막 제1 형 블록(B5, 190)은 모든 마지막 제2 형 블록(B13, B33, B44)의 적어도 일부의 해시값을 포함할 수 있다. 여기서, 마지막 제2 형 블록(B13, B33, B44)의 적어도 일부의 해시값은 마지막 제2 형 블록(B13, B33, B44)의 블록헤더의 해시값일 수 있다.
이러한 마지막 제2 형 블록의 적어도 일부의 해시값(Hsum) 은 마지막 제1 형 블록(B5, 190)의 블록헤더에 포함될 수 있다. 마지막 제1 형 블록(B5, 190)의 블록헤더에는, 마지막 제2 형 블록의 적어도 일부의 해시값(Hsum)과 메인 브랜치에 포함되고 마지막 제1 형 블록(B5, 190)보다 직전에 생성된 제1 형 블록의 적어도 일부의 해시값(H4)이 포함될 수 있다. 상기 마지막 제2 형 블록의 적어도 일부의 해시값(Hsum)과 상기 직전에 생성된 제1 형 블록의 적어도 일부의 해시값(H4)은 마지막 제1 형 블록(B5, 190)의 블록헤더에서 구분되어 포함될 수 있다. 따라서 마지막 제2 형 블록(290) 및 메인 브랜치(1000)의 검증을 위해 상기 해시값들(Hsum, H4) 이 사용될 수 있다. 이러한 해시값(Hsum, H4)들이 포함된 마지막 제1 형 블록(190)의 블록헤더의 해시값(H5)은 이후에 메인 브랜치(1000)에 추가로 제1 형 블록이 연결되도록 생성된다면, 추가로 생성되는 블록에 포함되어 연쇄적으로 연결되게 된다.
도 6을 참조하여, 마지막 제1 형 블록(B5, 190)이 복수의 마지막 제2 형 블록의 적어도 일부의 해시값(Hsum)을 포함하는 경우에 대해서 설명하도록 한다. 마지막 제2 형 블록(290)이 복수인 경우, 마지막 제1 형 블록(190)이 포함하는 해시값은 각각의 마지막 제2 형 블록(290)의 적어도 일부로부터 생성된 머클 트리의 루트에 대한 해시값(Hsum)일 수 있다. 구체적으로, 마지막 제1 형 블록(190)은 각각의 마지막 제2 형 블록의 블록헤더의 해시값(H13, H33, H44)으로부터 생성된 머클 트리의 루트에 대한 해시값(Hsum)을 포함할 수 있다.
도 5 및 도 6을 참조하여 설명한 블록체인 시스템은 특정 블록의 검증을 위해서 전체 블록체인 데이터를 저장하고 이용하지 않을 수 있다. 구체적으로, 특정 블록이 제1 형 블록(100)일 경우, 노드는 메인 브랜치(1000)의 블록체인 데이터만을 이용하여 상기 특정 블록의 검증이 가능하다. 또한, 특정 블록이 제2 형 블록(200)일 경우, 노드는 상기 특정 블록이 포함된 서브 브랜치(2000)와 메인 브랜치(1000)의 블록체인 데이터만을 이용하여 상기 특정 블록의 검증이 가능하다. 이에 따라 노드가 저장하고 검증해야 하는 블록의 크기를 줄일 수 있다.
또한, 상술한 마지막 제1 형 블록(190)이 마지막 제2 형 블록(290)의 적어도 일부의 해시값(Hsum)을 포함하는 것에 의해서, 마지막 제2 형 블록(290)의 안전성이 강화될 수 있다.
통상적인 블록체인 시스템에서는 마지막 블록의 안전성이 상대적으로 취약하다는 단점이 있다. 이는 마지막 블록은 그것의 해시값이 다른 블록에 다시 포함되지 않기 때문이다. 상술한 메인 브랜치 및 적어도 하나의 서브 브랜치를 포함하는 블록체인 시스템은 브랜치의 개수만큼 마지막 블록이 존재하여, 상대적으로 안전성이 취약한 마지막 블록이 많을 수 있다.
그러나 상술한 것과 같이 마지막 제1 형 블록(190)이 마지막 제2 형 블록(290)의 적어도 일부의 해시값(Hsum)을 포함하여, 마지막 제2 형 블록(290)의 안전성을 확보할 수 있다. 구체적으로, 마지막 제2 형 블록(290)은 개별 서브 브랜치(2000)의 마지막 블록이지만, 그것의 해시값이 마지막 제1 형 블록(190)에 포함되게 되어 상술한 취약성이 극복될 수 있다. 결과적으로, 본 발명의 블록체인 시스템에서 실질적인 마지막 블록은 통상적인 블록체인 시스템과 마찬가지로 하나만 존재하게 된다.
도 7을 참조하여 본 발명의 다른 일 실시예에 따른 블록체인 시스템에 대해서 설명하도록 한다.
도 7을 참조하여 설명하는 블록체인 시스템은 도 5 및 도 6을 참조하여 상술한 블록체인 시스템과 마지막 제1 형 블록(190)이 포함하는 마지막 제2 형 블록의 적어도 일부의 해시값에서 차이가 있다. 따라서 설명의 편의성을 위해서 본 실시예의 블록체인 시스템을 설명하는데 있어서, 도 5 및 도 6을 참조하여 상술한 것과 다른 점을 중심으로 설명하도록 한다.
도 7에 있어서, 마지막 제1 형 블록(190)은 도 7에 도시된 다른 모든 블록보다 마지막에 생성된 블록에 해당한다.
도 7을 참조하면, 마지막 제1 형 블록(190)은 서브 브랜치의 마지막 제2 형 블록(290)의 적어도 일부의 해시값(Hsum)을 포함할 수 있다. 여기서, 마지막 제1 형 블록(190)은 마지막 제2 형 블록(290) 중 적어도 일부의 해시값이 다른 제1 형 블록에 포함되지 않은 마지막 제2 형 블록의 적어도 일부의 해시값을 포함할 수 있다. 즉, 상기 마지막 제1 형 블록(190)이 생성되기 전에, 다른 제1 형 블록이 생성되면서 적어도 일부의 해시값이 상기 다른 제1 형 블록에 포함된 제2 형 블록은 상기 마지막 제1 형 블록(190)이 포함하는 해시값의 마지막 제2 형 블록에 해당하지 않게 된다.
도 7에 도시된 예시의 블록체인 시스템을 참고로 하여 설명하면, 마지막 제1 형 블록(B5, 190)이 생성되는 시점에 마지막 제2 형 블록(290)은 B13, B33 및 B44이 존재한다. 그러나 B13이 생성되고, B33 및 B44이 생성되기 전에 B2가 생성되게 된다. B2가 생성되는 시점에서, B13의 적어도 일부의 해시값(H13)이 B2에 포함되게 된다.
따라서 마지막 제1 형 블록(B5, 190)이 생성되는 시점의 마지막 제2 형 블록(290) 중 적어도 일부의 해시값이 다른 제1 형 블록에 포함되지 않은 마지막 제2 형 블록은 B33 및 B44만 해당한다. 따라서 마지막 제1 형 블록(B5, 190)은 B33 및 B44의 적어도 일부의 해시값을 포함한다. 구체적으로, 마지막 제1 형 블록(B5, 190)은 B33 및 B44의 블록헤더의 해시값(H33, H44)으로부터 생성된 머클 트리의 루트에 대한 해시값(Hsum)을 포함할 수 있다.
이러한 경우, 마지막 제1 형 블록이 생성되는 시점에, 적어도 일부의 해시값이 다른 제1 형 블록에 포함되지 않은 마지막 제2 형 블록이 존재하지 않을 수 있다. 도 7에 도시된 예시의 블록체인 시스템에서 B3 및 B4는 이러한 경우에 해당한다. 이런 경우, 마지막 제1 형 블록은 메인 브랜치에 포함되고 마지막 제1 형 블록보다 직전에 생성된 제1 형 블록의 적어도 일부의 해시값만을 포함하고, 마지막 제2 형 블록의 적어도 일부의 해시값은 포함하지 않을 수 있다.
이러한 방식에 따르면, 마지막 제2 형 블록은 한 번만 그것의 적어도 일부의 해시값이 마지막 제1 형 블록에 포함되게 된다. 따라서 마지막 제1 형 블록이 생성되면서 포함해야 하는 마지막 제2 형 블록의 개수가 도 5를 참조하여 상술한 실시예의 경우보다 감소하게 된다. 도 5를 참조하여 상술한 실시예의 경우, 마지막 제2 형 블록의 안전성을 향상시킬 수 있지만 블록체인의 규모가 커지면 새로운 마지막 제1 형 블록이 참조해야 할 마지막 제2 형 블록의 개수가 점차 증가하게 된다. 이는 블록체인의 효율성을 떨어트리는 요인이 될 수 있다. 따라서 도 7을 참조하여 설명한 실시예에 따르면 마지막 제2 형 블록의 안전성도 향상시키면서, 블록체인의 효율성을 확보할 수 있다는 장점이 있다.
도 5 내지 도 7을 참조하여, 본 발명의 다양한 실시예들에 따른 블록체인 시스템과 마지막 제1 형 블록에 대해서 상세하게 설명하였다.
그러나 마지막 제2 형 블록의 적어도 일부의 해시값을 포함하는 마지막 제1 형 블록은 메인 브랜치에 다른 제1 형 블록이 생성되어 연결됨에 따라 마지막 제1 형 블록에는 해당하지 않게 된다. 따라서 제2 형 블록의 적어도 일부의 해시값을 포함하는 제1 형 블록이 메인 브랜치의 마지막 블록이 아닌 경우를 포함하는 블록체인 시스템에 대해서 추가로 설명하도록 한다.
도 8은 본 발명의 일 실시예에 따른 블록체인 시스템의 예시 도면이다. 도 8을 참조하여, 본 발명의 또 다른 일 실시예에 따른 블록체인 시스템에 대해서 설명하도록 한다.
도 8에는 각 블록의 생성 순서가 빨간색의 글자로 표시되어 있다. 이러한 생성 순서를 참조하여 블록체인 시스템에 대해서 설명하도록 한다.
도 8의 실시예에서, 메인 브랜치의 임의의 제1 형 블록은 임의의 제1 형 블록보다 이전에 생성된 제2 형 블록 중 일부 블록의 적어도 일부의 해시값을 포함한다. 구체적으로, 상기 일부 블록은 상기 임의의 제1 형 블록이 생성될 때, 서브 브랜치의 마지막 블록일 수 있다. 더욱 구체적으로, 상기 일부 블록은 상기 임의의 제1 형 블록이 생성될 때, 모든 서브 브랜치의 마지막 블록일 수 있다. 이러한 내용에 대해서 도 8에 도시된 예시의 블록체인 시스템을 참조하여 설명하도록 한다.
B2 블록이 생성될 때 존재하는 서브 브랜치의 마지막 블록은 B11 블록이다. 따라서 B2 블록은 B11 블록의 적어도 일부의 해시값(H11)을 포함한다. 그리고 B2 블록은 해시값(H11)과 구분되도록 메인 브랜치에 포함되고 B2 블록보다 직전에 생성된 제1 형 블록(B1 블록)의 적어도 일부의 해시값(H1)을 포함한다.
B3 블록이 생성될 때 존재하는 서브 브랜치의 마지막 블록도 B11 블록이다. B3 블록이 생성될 때 B2 블록을 루트블록으로 하는 서브 브랜치가 없으므로, B3 블록이 생성될 때 존재하는 서브 브랜치의 마지막 블록은 B11 블록이 유일하다. 따라서 B3 블록은 B11 블록의 적어도 일부의 해시값(H11)을 포함한다. 그리고 B3 블록은 해시값(H11)과 구분되도록 메인 브랜치에 포함되고 B3 블록보다 직전에 생성된 제1 형 블록(B2 블록)의 적어도 일부의 해시값(H2)을 포함한다.
B4 블록이 생성될 때 존재하는 서브 브랜치의 마지막 블록은 B13 및 B32 블록이다. 따라서 B4 블록은 B13 및 B32 블록의 적어도 일부의 해시값(Hsum)을 포함한다. 그리고 B4 블록은 해시값(Hsum)과 구분되도록 메인 브랜치에 포함되고 B4 블록보다 직전에 생성된 제1 형 블록(B3 블록)의 적어도 일부의 해시값(H3)을 포함한다.
B5 블록이 생성될 때 존재하는 서브 브랜치의 마지막 블록은 B13, B33 및 B43 블록이다. 따라서 B5 블록은 B13, B33 및 B44 블록의 적어도 일부의 해시값(Hsum)을 포함한다. 그리고 B5 블록은 해시값(Hsum)과 구분되도록 메인 브랜치에 포함되고 B5 블록보다 직전에 생성된 제1 형 블록(B4 블록)의 적어도 일부의 해시값(H4)을 포함한다.
B5 블록이 생성된 이후에 B44 블록이 생성된다. B44 블록까지 생성된 것이 도 8에 도시된 블록체인 시스템의 상태이다. 이후에 다른 제2 형 블록이 생성되지 않고, 추가로 제1 형 블록이 생성된다면, 이 때 존재하는 서브 브랜치의 마지막 블록은 B13, B33 및 B44 블록이다. 따라서 새롭게 생성되는 마지막 제1 형 블록은 B13, B33 및 B44 블록의 적어도 일부의 해시값을 포함하게 된다.
도 9를 참조하여, 본 발명의 또 다른 일 실시예에 따른 블록체인 시스템에 대해서 설명하도록 한다. 도 9는 본 발명의 일 실시예에 따른 블록체인 시스템의 예시 도면이다.
도 9에는 각 블록의 생성 순서가 빨간색의 글자로 표시되어 있다. 이러한 생성 순서를 참조하여 블록체인 시스템에 대해서 설명하도록 한다. 도 9는 도 8에 도시된 블록체인 시스템과 각각의 블록의 연결 및 생성 순서가 동일한 것을 도시한 것이다.
도 9의 실시예에서, 메인 브랜치의 임의의 제1 형 블록은 임의의 제1 형 블록보다 이전에 생성된 제2 형 블록 중 일부 블록의 적어도 일부의 해시값을 포함한다. 구체적으로, 상기 일부 블록은 임의의 제1 형 블록이 생성될 때, 서브 브랜치의 마지막 블록일 수 있다. 더욱 구체적으로, 상기 일부 블록은 임의의 제1 형 블록이 생성될 때, 적어도 일부의 해시값이 다른 제1 형 블록에 포함되지 않은 블록일 수 있다. 이러한 내용에 대해서 도 9에 도시된 예시의 블록체인 시스템을 참조하여 설명하도록 한다.
B2 블록이 생성될 때 존재하는 서브 브랜치의 마지막 블록은 B11 블록이다. B11 블록은 그것의 적어도 일부의 해시값이 다른 제1 형 블록에 포함되지 않은 블록이다. 따라서 B2 블록은 B11 블록의 적어도 일부의 해시값(H11)을 포함한다. 그리고 B2 블록은 해시값(H11)과 구분되도록 메인 브랜치에 포함되고 B2 블록보다 직전에 생성된 제1 형 블록(B1 블록)의 적어도 일부의 해시값(H1)을 포함한다.
B3 블록이 생성될 때 존재하는 서브 브랜치의 마지막 블록도 B11 블록이다. B3 블록이 생성될 때 B2 블록을 루트블록으로 하는 서브 브랜치가 없으므로, B3 블록이 생성될 때 존재하는 서브 브랜치의 마지막 블록은 B11 블록이 유일하다. 그러나 B11 블록은 그것의 적어도 일부의 해시값이 이미 B2 블록에 포함되어 있다. 따라서 B3 블록은 메인 브랜치에 포함되고 B3 블록보다 직전에 생성된 제1 형 블록(B2 블록)의 적어도 일부의 해시값(H2)만을 포함하고, 제2 형 블록의 적어도 일부의 해시값은 포함하지 않는다.
B4 블록이 생성될 때 존재하는 서브 브랜치의 마지막 블록은 B13 및 B32 블록이다. B13 및 B32 블록은 그것의 적어도 일부의 해시값이 다른 제1 형 블록에 포함되지 않은 블록이다. 따라서 B4 블록은 B13 및 B32 블록의 적어도 일부의 해시값(Hsum)을 포함한다. 그리고 B4 블록은 해시값(Hsum)과 구분되도록 메인 브랜치에 포함되고 B4 블록보다 직전에 생성된 제1 형 블록(B3 블록)의 적어도 일부의 해시값(H3)을 포함한다.
B5 블록이 생성될 때 존재하는 서브 브랜치의 마지막 블록은 B13, B33 및 B43 블록이다. 이 중, B13 블록은 그것의 적어도 일부의 해시값이 이미 B4 블록에 포함되어 있다. 또한, B33 및 B43 블록은 그것의 적어도 일부의 해시값이 다른 제1 형 블록에 포함되지 않은 블록이다. 따라서 B5 블록은 B33 및 B44 블록의 적어도 일부의 해시값(Hsum)을 포함한다. 그리고 B5 블록은 해시값(Hsum)과 구분되도록 메인 브랜치에 포함되고 B5 블록보다 직전에 생성된 제1 형 블록(B4 블록)의 적어도 일부의 해시값(H4)을 포함한다.
B5 블록이 생성된 이후에 B44 블록이 생성된다. B44 블록까지 생성된 것이 도 9에 도시된 블록체인 시스템의 상태이다. 이후에 다른 제2 형 블록이 생성되지 않고, 추가로 제1 형 블록이 생성된다면, 이 때 존재하는 서브 브랜치의 마지막 블록은 B13, B33 및 B44 블록이다. 이 중, B13 및 B33 블록은 그것의 적어도 일부의 해시값이 이미 B5 블록에 포함되어 있다. 또한, B44 블록은 그것의 적어도 일부의 해시값이 다른 제1 형 블록에 포함되지 않은 블록이다. 따라서 새롭게 생성되는 마지막 제1 형 블록은 B44 블록의 적어도 일부의 해시값을 포함하게 된다.
도 10은 본 발명의 일 실시예에 따른 블록체인을 이용한 데이터 관리 방법을 설명하기 위한 순서도이다. 이하, 도 10을 참조하여 본 발명의 일 실시예에 따른 블록체인 생성 방법에 대해 설명하도록 한다.
도 10을 참조하여 설명할 블록체인 생성 방법은 도 1 내지 도 9를 참조하여 설명한 블록체인 시스템의 블록체인을 생성하는 방법에 관한 것이다. 따라서 설명의 편의성을 위해 도 1 내지 도 9를 참조하여 상술한 내용과 중복되는 내용 중 일부는 생략하도록 한다.
도 10을 참조하면, 블록체인 생성 방법은 블록체인을 마련하는 단계(S100) 및 새로운 제1 형 블록을 생성하는 단계(S200)을 포함한다.
이하, 상술한 각 단계에 대해서 상세하게 설명하도록 한다.
블록체인을 마련하는 단계(S100)는 메인 브랜치 및 적어도 하나의 서브 브랜치를 포함하는 블록체인을 마련하는 단계이다. 이에 대해서는 도 5를 참조하여 상세하게 설명하였다.
새로운 제1 형 블록을 생성하는 단계(S200)는 새로운 제1 형 블록을 메인 브랜치의 마지막 제1 형 블록에 연결되도록 생성하는 단계이다. 여기서, 새로운 제1 형 블록은 서브 브랜치의 마지막 제2 형 블록의 적어도 일부의 해시값을 포함한다. 또한, 새로운 제1 형 블록은 마지막 제1 형 블록의 적어도 일부의 해시값을 더 포함할 수 있다. 새로운 제1 형 블록은 마지막 제2 형 블록의 적어도 일부의 해시값과 마지막 제1 형 블록의 적어도 일부의 해시값을 블록헤더에 구분하여 포함할 수 있다.
구체적으로, 새로운 제1 형 블록은 모든 서브 브랜치의 마지막 제2 형 블록의 적어도 일부의 해시값을 포함할 수 있다. 이에 대해서는 도 5 및 도 8을 참조하여 상세하게 설명하였다.
또한, 경우에 따라서 새로운 제1 형 블록은 적어도 일부의 해시값이 다른 제1 형 블록에 포함되지 않은 마지막 제2 형 블록의 적어도 일부의 해시값을 포함할 수 있다. 이에 대해서는 도 7 및 도 9를 참조하여 상세하게 설명하였다.
새로운 제1 형 블록은 둘 이상의 마지막 제2 형 블록의 적어도 일부의 해시값을 포함하고, 상기 해시값은 각각의 마지막 제2 형 블록의 적어도 일부로부터 생성된 머클 트리의 루트에 대한 해시값일 수 있다. 이에 대해서는 도 6을 참조하여 상세하게 설명하였다.
이상, 본 발명의 블록체인 시스템 및 블록체인 생성 방법의 실시예들에 대해 설명하였다. 본 발명은 상술한 실시예 및 첨부한 도면에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자의 관점에서 다양한 수정 및 변형이 가능할 것이다. 따라서 본 발명의 범위는 본 명세서의 특허청구범위뿐만 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.
10: 제1 형 데이터 20: 제2 형 데이터
100: 제1 형 블록 200: 제2 형 블록
110, 210: 블록헤더 120, 220: 블록몸체
190: 마지막 제1 형 블록 290: 마지막 제2 형 블록
1000: 메인 브랜치 2000: 서브 브랜치

Claims (24)

  1. 적어도 하나의 제1 형 블록을 포함하고, 상기 제1 형 블록들은 각각 블록의 생성 순서에 따라 연결된 메인 브랜치; 및
    하나의 제1 형 블록 및 적어도 하나의 제2 형 블록을 포함하고, 상기 제2 형 블록은 상기 제1 형 블록을 루트 블록으로 하여 연결된 적어도 하나의 서브 브랜치를 포함하고,
    하나의 서브 브랜치의 상기 제2 형 블록은 각각 블록의 생성 순서에 따라 연결되되, 상기 하나의 서브 브랜치에서 최초로 생성된 제2 형 블록은 상기 루트 블록에 연결되고,
    상기 메인 브랜치의 마지막 제1 형 블록은, 상기 서브 브랜치의 마지막 제2 형 블록의 적어도 일부의 해시값을 포함하는 블록체인 시스템.
  2. 제1 항에 있어서,
    상기 마지막 제1 형 블록은,
    상기 메인 브랜치에 포함되고 상기 마지막 제1 형 블록보다 직전에 생성된 제1 형 블록의 적어도 일부의 해시값을 더 포함하는 블록체인 시스템.
  3. 제2 항에 있어서,
    상기 마지막 제1 형 블록은,
    상기 마지막 제2 형 블록의 적어도 일부의 해시값과 상기 직전에 생성된 제1 형 블록의 적어도 일부의 해시값을 구분하여 포함하는 블록체인 시스템.
  4. 제2 항에 있어서,
    상기 마지막 제1 형 블록은,
    상기 마지막 제2 형 블록의 적어도 일부의 해시값과 상기 직전에 생성된 제1 형 블록의 적어도 일부의 해시값을 블록헤더에 포함하는 블록체인 시스템.
  5. 제1 항에 있어서,
    상기 마지막 제1 형 블록은,
    모든 서브 브랜치의 마지막 제2 형 블록의 적어도 일부의 해시값을 포함하는 블록체인 시스템.
  6. 제1 항에 있어서,
    상기 마지막 제1 형 블록은,
    적어도 일부의 해시값이 다른 제1 형 블록에 포함되지 않은 마지막 제2 형 블록의 적어도 일부의 해시값을 포함하는 블록체인 시스템.
  7. 제1 항에 있어서,
    상기 마지막 제1 형 블록은,
    둘 이상의 마지막 제2 형 블록의 적어도 일부의 해시값을 포함하고,
    상기 해시값은,
    각각의 마지막 제2 형 블록의 적어도 일부로부터 생성된 머클 트리의 루트에 대한 해시값인 블록체인 시스템.
  8. 제1 항에 있어서,
    상기 마지막 제2 형 블록은,
    상기 마지막 제1 형 블록보다 이전에 생성된 블록인 블록체인 시스템.
  9. 적어도 하나의 제1 형 블록을 포함하고, 상기 제1 형 블록들은 각각 블록의 생성 순서에 따라 연결된 메인 브랜치; 및
    하나의 제1 형 블록 및 적어도 하나의 제2 형 블록을 포함하고, 상기 제2 형 블록은 상기 제1 형 블록을 루트 블록으로 하여 연결된 적어도 하나의 서브 브랜치를 포함하고,
    하나의 서브 브랜치의 상기 제2 형 블록은 각각 블록의 생성 순서에 따라 연결되되, 상기 하나의 서브 브랜치에서 최초로 생성된 제2 형 블록은 상기 루트 블록에 연결되고,
    상기 메인 브랜치의 임의의 제1 형 블록은, 상기 임의의 제1 형 블록보다 이전에 생성된 제2 형 블록 중 일부 블록의 적어도 일부의 해시값을 포함하는 블록체인 시스템.
  10. 제9 항에 있어서,
    상기 임의의 제1 형 블록은,
    상기 메인 브랜치에 포함되고 상기 임의의 제1 형 블록보다 직전에 생성된 제1 형 블록의 적어도 일부의 해시값을 더 포함하는 블록체인 시스템.
  11. 제10 항에 있어서,
    상기 임의의 제1 형 블록은,
    상기 일부 블록의 적어도 일부의 해시값과 상기 직전에 생성된 제1 형 블록의 적어도 일부의 해시값을 구분하여 포함하는 블록체인 시스템.
  12. 제10 항에 있어서,
    상기 임의의 제1 형 블록은,
    상기 일부 블록의 적어도 일부의 해시값과 상기 직전에 생성된 제1 형 블록의 적어도 일부의 해시값을 블록헤더에 포함하는 블록체인 시스템.
  13. 제9 항에 있어서,
    상기 일부 블록은,
    상기 임의의 제1 형 블록이 생성될 때, 상기 서브 브랜치의 마지막 블록인 블록체인 시스템.
  14. 제9 항에 있어서,
    상기 일부 블록은,
    상기 임의의 제1 형 블록이 생성될 때, 모든 서브 브랜치의 마지막 블록인 블록체인 시스템.
  15. 제9 항에 있어서,
    상기 일부 블록은,
    상기 임의의 제1 형 블록이 생성될 때, 상기 서브 브랜치의 마지막 블록이되, 적어도 일부의 해시값이 다른 제1 형 블록에 포함되지 않은 블록인 블록체인 시스템.
  16. 제9 항에 있어서,
    상기 일부 블록은 둘 이상의 블록이고,
    상기 해시값은,
    상기 일부 블록의 각각의 블록의 적어도 일부로부터 생성된 머클 트리의 루트에 대한 해시값인 블록체인 시스템.
  17. 적어도 하나의 제1 형 블록을 포함하고, 상기 제1 형 블록들은 각각 블록의 생성 순서에 따라 연결된 메인 브랜치 및 하나의 제1 형 블록 및 적어도 하나의 제2 형 블록을 포함하고, 상기 제2 형 블록은 상기 제1 형 블록을 루트 블록으로 하여 연결된 적어도 하나의 서브 브랜치를 포함하고, 하나의 서브 브랜치의 상기 제2 형 블록은 각각 블록의 생성 순서에 따라 연결되되, 상기 하나의 서브 브랜치에서 최초로 생성된 제2 형 블록은 상기 루트 블록에 연결되는 블록체인을 마련하는 단계; 및
    새로운 제1 형 블록을 상기 메인 브랜치의 마지막 제1 형 블록에 연결되도록 생성하는 단계를 포함하고,
    상기 새로운 제1 형 블록은,
    상기 서브 브랜치의 마지막 제2 형 블록의 적어도 일부의 해시값을 포함하는 블록체인 생성 방법.
  18. 제17 항에 있어서,
    상기 새로운 제1 형 블록은,
    상기 마지막 제1 형 블록의 적어도 일부의 해시값을 더 포함하는 블록체인 생성 방법.
  19. 제18 항에 있어서,
    상기 새로운 제1 형 블록은,
    상기 마지막 제2 형 블록의 적어도 일부의 해시값과 상기 마지막 제1 형 블록의 적어도 일부의 해시값을 구분하여 포함하는 블록체인 생성 방법.
  20. 제18 항에 있어서,
    상기 새로운 제1 형 블록은,
    상기 마지막 제2 형 블록의 적어도 일부의 해시값과 상기 마지막 제1 형 블록의 적어도 일부의 해시값을 블록헤더에 포함하는 블록체인 생성 방법.
  21. 제17 항에 있어서,
    상기 새로운 제1 형 블록은,
    모든 서브 브랜치의 마지막 제2 형 블록의 적어도 일부의 해시값을 포함하는 블록체인 생성 방법.
  22. 제17 항에 있어서,
    상기 새로운 제1 형 블록은,
    적어도 일부의 해시값이 다른 제1 형 블록에 포함되지 않은 마지막 제2 형 블록의 적어도 일부의 해시값을 포함하는 블록체인 생성 방법.
  23. 제17 항에 있어서,
    상기 새로운 제1 형 블록은,
    둘 이상의 마지막 제2 형 블록의 적어도 일부의 해시값을 포함하고,
    상기 해시값은,
    각각의 마지막 제2 형 블록의 적어도 일부로부터 생성된 머클 트리의 루트에 대한 해시값인 블록체인 생성 방법.
  24. 제17 항에 있어서,
    상기 마지막 제2 형 블록은,
    상기 새로운 제1 형 블록보다 이전에 생성된 블록인 블록체인 생성 방법.
PCT/KR2017/010020 2017-05-12 2017-09-13 블록체인 시스템 및 블록체인 생성 방법 WO2018207975A1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2017-0059276 2017-05-12
KR1020170059276A KR102017739B1 (ko) 2017-05-12 2017-05-12 블록체인 시스템 및 블록체인 생성 방법

Publications (1)

Publication Number Publication Date
WO2018207975A1 true WO2018207975A1 (ko) 2018-11-15

Family

ID=64105657

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2017/010020 WO2018207975A1 (ko) 2017-05-12 2017-09-13 블록체인 시스템 및 블록체인 생성 방법

Country Status (4)

Country Link
KR (1) KR102017739B1 (ko)
SG (1) SG10201803839RA (ko)
TW (1) TW201901482A (ko)
WO (1) WO2018207975A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023020442A1 (zh) * 2021-08-18 2023-02-23 华为技术有限公司 一种区块链的生成方法及装置

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11063746B2 (en) 2018-04-19 2021-07-13 Electronics And Telecommunications Research Institute Method for selecting consensus node using nonce and method and apparatus for generating blockchain using the same
KR102451115B1 (ko) * 2018-04-19 2022-10-06 한국전자통신연구원 난스를 이용한 합의 노드 선택 방법 및 그것을 이용한 블록체인 생성 방법 및 장치
KR102128661B1 (ko) * 2018-11-22 2020-06-30 주식회사 포스코아이씨티 이중 레이어 블록체인 시스템
KR101986081B1 (ko) * 2018-12-24 2019-06-05 (주)소프트제국 블록체인에서 특정 노드들간 블록을 공유 및 검증하는 방법
EP3902227A4 (en) 2018-12-21 2022-12-14 Swempire Co., Ltd. PROCEDURE FOR SHARING AND VERIFICATION OF BLOCKS AND ELECTRONIC DOCUMENTS BETWEEN NODES IN A BLOCKCHAIN
KR102437006B1 (ko) * 2018-12-24 2022-08-26 (주)소프트제국 블록체인에서 수직적 블록 구조에 기반한 정보 관리 방법
KR102163267B1 (ko) * 2019-01-31 2020-10-08 한남대학교 산학협력단 블록체인을 이용한 오폐수 처리 관리 시스템
KR102057570B1 (ko) * 2019-09-16 2020-01-23 (주) 모로보기 블록체인 네트워크
KR20210075654A (ko) 2019-12-13 2021-06-23 현대자동차주식회사 블록체인 생성 시스템 및 그 운용 방법
KR102314495B1 (ko) 2020-01-03 2021-10-20 주식회사 블로코 라프트 합의를 이용한 블록체인 동기화 방법 및 블록체인 시스템

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101048509B1 (ko) * 2009-09-21 2011-07-11 부산대학교 산학협력단 유비쿼터스 센서 네트워크에서의 위치 정보 및 해쉬 체인을 이용한 시빌 공격 노드 탐지 방법 및 장치
US20160028552A1 (en) * 2014-07-25 2016-01-28 Blockchain Technologies Corporation System and method for creating a multi-branched blockchain with configurable protocol rules
KR20160106570A (ko) * 2013-11-19 2016-09-12 썬라이즈 테크 그룹, 엘엘씨 블록 마이닝 방법 및 장치
KR101701131B1 (ko) * 2016-04-28 2017-02-13 주식회사 라피 이종간 블록체인 연결을 이용한 데이터 기록/검증 방법 및 시스템

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101048509B1 (ko) * 2009-09-21 2011-07-11 부산대학교 산학협력단 유비쿼터스 센서 네트워크에서의 위치 정보 및 해쉬 체인을 이용한 시빌 공격 노드 탐지 방법 및 장치
KR20160106570A (ko) * 2013-11-19 2016-09-12 썬라이즈 테크 그룹, 엘엘씨 블록 마이닝 방법 및 장치
US20160028552A1 (en) * 2014-07-25 2016-01-28 Blockchain Technologies Corporation System and method for creating a multi-branched blockchain with configurable protocol rules
KR101701131B1 (ko) * 2016-04-28 2017-02-13 주식회사 라피 이종간 블록체인 연결을 이용한 데이터 기록/검증 방법 및 시스템

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"Easy-to-Understand Blockchain, the Core of Bitcoin", SAY SECURITY, 25 January 2016 (2016-01-25), pages 1 - 12, Retrieved from the Internet <URL:http://saysecurity.tistory.com/5> *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023020442A1 (zh) * 2021-08-18 2023-02-23 华为技术有限公司 一种区块链的生成方法及装置

Also Published As

Publication number Publication date
TW201901482A (zh) 2019-01-01
KR102017739B1 (ko) 2019-09-03
SG10201803839RA (en) 2018-12-28
KR20180124545A (ko) 2018-11-21

Similar Documents

Publication Publication Date Title
WO2018207975A1 (ko) 블록체인 시스템 및 블록체인 생성 방법
WO2018207974A1 (ko) 블록체인 시스템 및 블록체인을 이용한 데이터 관리 방법
WO2021002692A1 (en) Method for providing virtual asset service based on decentralized identifier and virtual asset service providing server using them
WO2013081282A1 (en) System and method for recommending application by using keyword
WO2018012872A1 (ko) 메신저 서비스를 통하여 송수신되는 데이터에 대한 기록 및 검증 서비스를 제공하는 방법, 및 이를 이용한 서버
WO2020130331A1 (ko) 블록체인에서 노드들간 블록 및 전자 문서를 공유 및 검증하는 방법
WO2016126090A1 (ko) 스마트폰을 사용한 디지털 파일 위변조 입증 시스템 및 방법과 스마트폰 화면 캡쳐 이미지 인증 기능을 가지는 스마트폰 및 스마트폰 화면 캡쳐 이미지 인증 방법
WO2020022599A1 (ko) 블록체인 네트워크 상에서 그룹키 기반의 이중 서명 트랜잭션 구조를 구성하는 노드 그룹 관리 장치 및 컴퓨팅 장치
CN107590277A (zh) 数据同步方法、装置、电子设备及存储介质
WO2010137814A2 (en) Method of providing by-viewpoint patent map and system thereof
WO2015129983A1 (ko) 분산 퍼지 연관 규칙 마이닝에 기반한 영화 추천 장치 및 방법
WO2022131441A1 (ko) 블록체인 네트워크를 이용하여 웹페이지를 저장 및 검증하는 방법 및 시스템
WO2011136425A1 (ko) 개체명 사전 및 마이닝 규칙이 결합된 온톨로지 스키마를 이용한 리소스 기술 프레임워크 네트워크 구축 장치 및 방법
WO2023210861A1 (ko) 유해 사이트에 대한 접속 알림 서비스를 제공할 수 있는 알림 서비스 서버 및 그 동작 방법
WO2020220412A1 (zh) 基于零知识证明的公民隐私保护的方法、系统及存储介质
WO2022108318A1 (ko) 스마트 컨트랙트 코드 취약점 분석 장치 및 방법
WO2020087981A1 (zh) 风控审核模型生成方法、装置、设备及可读存储介质
WO2021040318A1 (ko) 신분증 인식 모델을 이용한 분산 학습 방법, 서버, 어플리케이션 및 이를 통한 신분증 인식 방법
WO2023210860A1 (ko) 단말 그룹핑 기반의 인터넷 접속 관리 서비스를 제공할 수 있는 인터넷 접속 관리 서비스 서버 및 그 동작 방법
WO2017052240A1 (ko) 진본성 및 무결성을 입증하기 위한 사본영상 증거관리시스템
WO2015122620A1 (ko) 디지털콘텐츠의 무결성 보장을 위한 디지털 콘텐츠 모니터링 시스템
WO2014185627A1 (ko) 데이터 프로세싱 시스템 보안 장치와 보안방법
WO2019190234A1 (ko) 블록체인 시스템
WO2014200201A1 (ko) 시스템 보호를 위한 파일 보안용 관리장치와 관리방법
WO2023171973A1 (en) Apparatus and method of managing non-fungible tokens based on blockchain

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: 17909468

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 11/03/2020)

122 Ep: pct application non-entry in european phase

Ref document number: 17909468

Country of ref document: EP

Kind code of ref document: A1