WO2019190234A1 - 블록체인 시스템 - Google Patents

블록체인 시스템 Download PDF

Info

Publication number
WO2019190234A1
WO2019190234A1 PCT/KR2019/003656 KR2019003656W WO2019190234A1 WO 2019190234 A1 WO2019190234 A1 WO 2019190234A1 KR 2019003656 W KR2019003656 W KR 2019003656W WO 2019190234 A1 WO2019190234 A1 WO 2019190234A1
Authority
WO
WIPO (PCT)
Prior art keywords
block
type
hash value
type block
generated
Prior art date
Application number
PCT/KR2019/003656
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 WO2019190234A1 publication Critical patent/WO2019190234A1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1044Group management mechanisms 
    • H04L67/1046Joining mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees

Definitions

  • the present invention relates to a blockchain system, and more particularly, to a blockchain system comprising at least some of the blocks are overlapped in a double, and also includes overlapping blocks among the double connected.
  • 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.
  • Korean Patent Publication No. 10-1763827 registered on July 26, 2017
  • Korean Patent Publication No. 10-1751025 registered on June 20, 2017
  • a business processing system is disclosed.
  • Nodes participating in the blockchain must store and maintain the data of the entire blockchain in the device to check the authenticity of the data. 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 total blockchain size of Bitcoin and Ethereum, which are representative blockchain systems, is currently several hundred 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.
  • the problem to be solved by the present invention is to provide a blockchain system that can verify the authenticity of the data only by selectively storing only the blocks required by the node participating in the blockchain system and a data management method using such blockchain will be.
  • Another object of the present invention is to provide a systematic and efficient blockchain system by forming different connections between blocks according to the types of blocks.
  • the blockchain system of the present invention for solving the above problems, includes a main branch including a genesis block, at least one first type block and at least one second type block, Blocks included in the main branch are connected according to a generation order of the blocks starting from the first block, and blocks included in the main branch except for the first block include at least one of blocks generated immediately before the corresponding block in the main branch.
  • At least a part of the main branch includes a hash value of at least a part of the second type block generated immediately before the corresponding second type block, and the main branch Include the second-type blocks, at least one nesting block of simultaneously while said first-type block.
  • the overlapping block may include a hash value of at least a portion of a block generated immediately before the overlapping block in the main branch, and at least a first type block generated immediately before the overlapping block in the main branch. Some hash values and at least some hash values of the second type block generated immediately before the overlapping block in the main branch may be included.
  • the overlapping block may include a hash value of at least a portion of a block generated immediately before the overlapping block in the main branch, and at least a first type block generated immediately before the overlapping block in the main branch. Some hash values and at least some hash values of the second type block generated immediately before the overlap block in the main branch may be separately included.
  • the first type block generated immediately after the overlapping block in the main branch includes a hash value of at least a portion of the block generated immediately before the first type block in the main branch and the overlapping block. It may include a hash value of at least a portion of.
  • the second type block generated immediately after the overlapping block in the main branch may include a hash value of at least a portion of a block generated immediately before the second type block in the main branch and the overlapping block. It may include a hash value of at least a portion of.
  • the at least part of the first type block includes a hash value of at least a portion of the block generated immediately before and at least a portion of the first type block generated immediately before the partition. can do.
  • the at least part of the second type block includes at least a hash value of at least a portion of the block generated immediately before and at least a portion of the second type block generated immediately before. can do.
  • At least some hash values of the immediately generated block included in the at least some first type blocks and at least some hash values of the first type blocks just generated are the same. In this case, only one hash value may be included.
  • a hash value of at least a portion of the immediately generated block included in the at least some second type block and a hash value of at least a portion of the second type block just generated are the same. In this case, only one hash value may be included.
  • the first type block includes a first type block first generated among the first type blocks and a subsequent type block first generated after the first type block.
  • the subsequent first type block may include a hash value of at least a portion of the first type block generated immediately before the corresponding first type block in the main branch.
  • the first first type block may include a hash value of at least a portion of the first block.
  • the first first type block may include a hash value of at least a portion of a block immediately before the first first type block, and may not include a hash value of at least a portion of another block.
  • the second type block includes a first second type block generated first of the second type blocks and a subsequent second type block generated after the first second type block
  • the subsequent second type block may include a hash value of at least a portion of the second type block generated immediately before the corresponding second type block in the main branch.
  • the first second type block may include a hash value of at least a portion of the first block.
  • the first second type block may include a hash value of at least a portion of a block immediately before the first second type block, and may not include a hash value of at least a portion of another block.
  • the first type block and the second type block may allow forking using the first type block and the second type block as a root block.
  • At least some of the first type block and the second type block may be allowed to be connected to the sub block as a root block.
  • the sub-branched forked at least a portion of the first type block and the second type block may be further included.
  • the sub-branch may further include at least one sub-block connected using at least a portion of the first type block and the second type block as a root block.
  • the blockchain system and the data management method using the blockchain according to an embodiment of the present invention have an advantage of verifying the authenticity of data only by selectively storing only the blocks required by a node participating in the blockchain system. .
  • the blockchain system according to an embodiment of the present invention has an advantage of forming a connection relationship between blocks according to the type of blocks to be systematically efficient.
  • 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 and 4 are diagrams for describing a method of displaying a block in a blockchain.
  • FIG. 5 is an exemplary block diagram of a blockchain system according to an embodiment of the present invention.
  • FIG. 6 is an exemplary block diagram of a blockchain system according to another embodiment of the present invention.
  • FIGS. 1 to 5 a blockchain system according to an 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 include digital content, document information, account information, medical information, medical information, administrative information, register information, coin generation information, transaction information, personnel information, production history information, design and drawings of products or buildings, Sound information and the like are possible, and are not limited to any particular 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 previously created in the branch.
  • the connection means that the block 200 includes a hash value of at least a portion of the previously generated block 100.
  • the block 200 may be connected to the block header 210 by including a hash value of at least a portion of the previously generated block 100.
  • the previously generated block 100 may be generated just before the corresponding block 200. As described in detail below, in some cases, the previously generated block 100 may be the last block of the same type as the corresponding block 200 among the previously generated blocks.
  • the hash value of the previously generated block 100 may be a hash value of all or selected portions of information of the previous block 100, as described above.
  • a hash value of the previous block 100 may be defined as a hash value of information of the block header 110 of the previous block.
  • the hash value of the previous block may be variously changed according to the preferences and judgment of the person designing the block.
  • 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, individual blocks are represented in the manner shown in FIGS. 3 and 4.
  • one block 100 displays a title of a block, a hash value of a previous connection block, and a hash value of the corresponding block.
  • One block 100 is a table of three columns arranged up and down, the first column is the title of the block, the second column is the hash value of the previous connection block, the third column is the hash value of the block do.
  • one block 101 may include two or more hash values of a previous connection block.
  • the hash values of the plurality of previous connection blocks are displayed sequentially on top of the hash values of the corresponding blocks in the bottommost column.
  • one block 101 includes hash values of two previous connection blocks. This is indicated by the third and fourth columns, respectively, and the last column is the hash value of the block.
  • one block may include hash values of two or more additional blocks.
  • the hash value of the additional block may be displayed in a column above the hash value of the block. In the last column of the block, it is preferable to display the hash value of the block.
  • the hash value of the additional block will be described in more detail below.
  • the title of the block is represented in the form of Bn or Bnm.
  • the title of the block is Bn, which means that the block is the nth block of the main branch.
  • Bnm means that the block is the m-th sub-block of the sub branch branched from the n-th block of the main branch.
  • the mth subblock of any subbranch corresponds to the m + 1th block of the subbranch.
  • the hash value of a block is indicated using the symbol H.
  • H For example, a hash value of a block whose title is Bnm is expressed in Hnm.
  • a main branch, a sub branch, a sub block, and the like mentioned while describing the title of the block, a symbol of a hash value, etc. will be described in detail with reference to FIG. 5.
  • 5 is an exemplary block diagram of a blockchain system according to an embodiment of the present invention.
  • the blockchain system of the present invention includes a main branch 1000.
  • the main branch 1000 is distinguished from the sub branches 1002, 1004, 1007, 1010, and 1012 which will be described later, and the difference between the two will be described below.
  • the main branch 1000 includes an initial block, a first type block, a second type block, and a third type block. How the first type block, the second type block, and the third type block are distinguished will be described in detail later.
  • the first block is represented by a rectangle having a thick border
  • the first type block and the second type block are represented by a rounded rectangle
  • the third type block is represented by a general rectangle.
  • the first type block and the second type block were identified by marking 1 and 2 on the upper left side of the block.
  • the genesis block is the first block created in the blockchain system.
  • the first block unlike other blocks in the blockchain system, can be exceptionally free of previous connection blocks.
  • subsequently generated blocks are directly or indirectly connected to the first block. Referring to FIG. 5, B 0 corresponds to the first block.
  • the first type block, the second type block, and the third type block will be described.
  • the third type block will be described first.
  • the third type block is a block that does not allow branching using the block as the root block.
  • the branch will be described in detail below with reference to the first type block and the second type block. Therefore, the third type block is connected only to the immediately preceding block and the immediately following block in the main branch 1000. Referring to FIG. 5, B 1 , B 3 , B 5 , B 8, and B 9 correspond to a third type block.
  • the first type block and the second type block are blocks that allow branching using the first type block and the second type block as a root block.
  • the branching refers to generating a sub branch connected to the branch of the main branch 1000 using any block of the main branch 1000 as the root block. This branch is also described by the term forking.
  • the first type block and the second type block may be described as forked blocks.
  • the first type block and the second type block may be described as a joint block in which the main branch 1000 and the sub branch are joined.
  • a block connected to the other root block except the root block in the sub branch is referred to as a sub block.
  • the first type block and the second type block mean blocks that allow sub-blocks to be connected using the first type block and the second type block as the root block.
  • first type block and the second type block allow branching only, and the first branch block and the second type block may be connected to a sub branch having the first type block and the second type block as the root block. May not.
  • Subtypes having the first type block and the second type block as the root block may be connected to the first type block and the second type block to which the sub branch is not connected.
  • B 2 , B 6 , B 7, and B 11 correspond to a first type block. And B 2 and B 7 have sub branches 1002 and 1007 connected thereto. However, in the case of B 6 and B 11 , although there is a first type block, there is no sub branch connected thereto.
  • B 4 , B 7 , B 10 and B 12 correspond to the second type block.
  • B 4 , B 7 , B 10 and B 12 have sub branches 1004 and 1010 connected thereto.
  • the sub branch may not exist in the second type block newly generated and connected to the main branch 1000.
  • B 7 corresponds to an overlapping block that is a first type block and a second type block at the same time. Overlapping blocks will be described in more detail below.
  • the first type block, the second type block, and the third type block are generated and connected to the main branch 1000.
  • the first type block, the second type block, and the third type block are connected according to the generation order of each block.
  • a first type block, a second type block, and a sub block may be generated.
  • what kind of block is generated may be determined according to an event based on data included in the block.
  • a block including data of the generated type 1 event may be generated and connected to the type 1 block.
  • a block including data of the generated second type event may be generated and connected to the second type block.
  • a block including data of the generated third type event may be generated and connected to a sub block.
  • the generated event may be a first type event and a second type event at the same time.
  • a block including data of such an event may be generated and connected to an overlapping block that is a first type block and a second type block at the same time.
  • the criteria for distinguishing the type 1 event, the type 2 event, and the type 3 event may be changed in various ways according to the preference and judgment of the person designing the block.
  • Blocks other than the first block among the blocks included in the main branch 1000 include hash values of at least some of the blocks generated immediately before the corresponding block in the main branch 1000.
  • blocks may be connected to each other by including a hash value of at least a portion of a block generated immediately before the block header.
  • the corresponding block is a first type block, a second type block, a third type block, or an overlapping block.
  • B 2 which is the first type block
  • a block generated immediately before B 2 in the main branch 1000 corresponds to B 1 .
  • B 2 comprises a hash value H 1 of at least a portion of B 1 .
  • B 4 which is the second type block
  • a block generated immediately before B 4 in the main branch 1000 corresponds to B 3 .
  • B 4 comprises a hash value H 3 of at least a portion of B 3 .
  • a third type of block for the B 1 block generated immediately before the B 1 in the main branch (1000) corresponds to the first block B 0.
  • B 1 includes a hash value H 0 of at least a portion of B 0 .
  • B 7 In the case of overlapping blocks of the block B 7 B 7 generates the immediately preceding in the main branch (1000) is equivalent to B 6.
  • B 7 comprises a hash value H 6 of at least a portion of B 6 .
  • the first type block includes an initial first type block and a subsequent first type block.
  • the first type block means the first block generated among the first type blocks.
  • Subsequent first type blocks mean blocks created after the first type block.
  • the second type block includes the first type 2 block and the subsequent type 2 block.
  • the first type 2 block means the first block generated among the type 2 blocks.
  • Subsequent second type blocks mean blocks generated after the first type 2 blocks.
  • the first type 1 block and the first type 2 block are represented by a rounded rectangle having a thick border
  • the subsequent type 1 and subsequent type 2 blocks are represented by a rounded rectangle having a general border. It was.
  • B 2 corresponds to the first first type block and B 6 and B 7 correspond to the subsequent first type block.
  • B 4 corresponds to the first type 2 block, and B 10 and B 11 correspond to the subsequent type 2 block.
  • the subsequent first type block includes a hash value of at least a portion of the first type block generated immediately before the corresponding first type block in the main branch 1000.
  • subsequent first type blocks may be linked to include a hash value of at least a portion of the first type block just generated in the block header.
  • the immediately preceding first type block may be the first first type block or the subsequent first type block.
  • B 6 of the first type block generated immediately before corresponds to B 2.
  • B 6 comprises a hash value H 2 of at least a portion of B 2 .
  • the first type block B 6 generated second of the first type blocks includes a hash value H 2 of at least a portion of the first type block B 2 .
  • the second type block also includes a hash value of at least a portion of the second type block generated immediately before the corresponding second type block in the main branch 1000.
  • B 12 immediately preceding the second-type blocks created corresponds to B 10.
  • B 12 includes a hash value H 10 of at least a portion of B 10 .
  • the subsequent first type block and the subsequent second type block will contain two hash values.
  • the subsequent first type block and the subsequent second type block may include two hash values separately.
  • the first type block and the first type block include hash values of at least a portion of the first block.
  • B 2 which is the first type block, includes a hash value of at least a portion of B 0 .
  • the first second type block, B 4 contains a hash value of at least a portion of B 0 .
  • the overlapping block is a first type block and a second type block.
  • the nested block is generated at least a hash value of at least a portion of the block generated immediately before the nested block in the main branch, at least a hash value of at least a portion of the first type block generated just before the nested block in the main branch and generated just before the nested block in the main branch.
  • the overlapping block is the first type block and the second block at the same time, sub-branches having the overlapping block as the root block may be connected.
  • B 7 corresponds to an overlapping block.
  • B 7 has a sub-branch 1007 to the B 7, the root block is connected.
  • the first type block generated immediately before B 7 corresponds to B 6 .
  • B 7 comprises a hash value H 6 of at least a portion of B 6 .
  • the second type block generated just before B 7 corresponds to B 4 .
  • B 7 comprises a hash value H 4 of at least a portion of B 4 .
  • the overlapping block includes a hash value of at least a portion of a block generated immediately before the overlapping block in the main branch, a hash value of at least a portion of the first type block generated just before the overlapping block in the main branch, and the main branch.
  • a hash value of at least a portion of the second type block generated immediately before the overlapping block may be separately included.
  • two hash values may be the same.
  • the hash value of the immediately preceding block includes at least a part of the hash value (H 6) of B 6 and, immediately before the first-type blocks of at least a portion of the Fig. B 6 as a hash value, at least Some hash values (H 6 ) are included.
  • H 6 hash values
  • two hash values may be separately included and included.
  • only one hash value may be included.
  • this at least at least the hash value of the part of the B 6 includes at least a part of the hash value of the B 6 comprises a part of the hash value and immediately before the at least a portion of the hash value of the first type block immediately before the block It may be different. This may be determined depending on how the hash value is calculated from the data of B 6 .
  • the first type block generated immediately after the overlapping block in the main branch includes a hash value of at least some of the blocks generated immediately before the first type block in the main branch and at least some hash values of the overlapping block.
  • B 11 corresponds to the first type block generated immediately after the overlapping block.
  • a block generated immediately before B 11 corresponds to B 10 .
  • B 11 includes a hash value H 10 of at least a portion of B 10 .
  • an overlapping block generated just before B 11 corresponds to B 7 .
  • B 11 comprises a hash value H 7 of at least a portion of B 7 .
  • the second type block generated immediately after the overlapping block in the main branch includes a hash value of at least some of the blocks generated immediately before the second type block in the main branch and at least some hash values of the overlapping block.
  • B 10 corresponds to a second type block generated immediately after the overlapping block.
  • a block generated immediately before B 10 corresponds to B 9 .
  • B 10 includes at least some hash value H 9 of B 9 .
  • the overlapping block generated just before B 10 corresponds to B 7 .
  • B 10 includes a hash value H 7 of at least a portion of B 7 .
  • a specific node wants to verify only data of a type 1 event.
  • the data of the first type event is included in the first type block.
  • the specific node may store only the first block and the first type block, and verify data using the same.
  • the specific node when a specific node wants to verify data of a first type event stored in B 7 , the specific node needs to store only the first block and the first type block of the main branch 1000. That is, the specific node stores only five blocks in total. This is to store all the blocks of all the blockchain consisting of a total of 23, or to store a smaller number of blocks than to store all of the blocks of the main branch 1000 consisting of a total of 13.
  • the specific node when a specific node wants to verify data of the second type event stored in B 7 , the specific node only needs to store only the first block and the second type block of the main branch 1000. That is, the specific node stores only five blocks in total. This is to store all the blocks of all the blockchain consisting of a total of 23, or to store a smaller number of blocks than to store all of the blocks of the main branch 1000 consisting of a total of 13.
  • the specific node when a specific node wants to verify data stored in B 101 , the specific node stores only the first block of the main branch 1000, the second type block, and the sub block of the sub branch including B 102. All you need is That is, the specific node stores only eight blocks in total. This is to store a smaller number of blocks than to store all blocks of all 23 blockchains.
  • the blockchain system of the present invention has the advantage that not all nodes need to store all blocks of the blockchain. This has the advantage of reducing the computing work that the node has to bear and the storage space that the node has to reserve. This allows mobile devices and wearable devices with relatively limited computing power and storage space to easily participate as nodes in the blockchain system.
  • FIG. 6 is an exemplary block diagram of a blockchain system according to another embodiment of the present invention.
  • the blockchain system of the present invention includes a main branch 1000 and a sub branch 1002, 1004, 1007, 1010, 1012.
  • the first first type block contains a hash value of at least a portion of the block immediately before the first first type block. That is, unlike the description with reference to FIG. 5, the first first type block does not include the hash value H 0 of the first block B 0 , but rather the hash value of at least a portion of the block immediately before the first first type block. It is to include.
  • the first first type block corresponds to B 2 .
  • the immediately preceding block corresponds to B 1 .
  • B 2 comprises at least a portion of the hash value H 1 of B 1 .
  • the first first type block may include two or more hash values of at least a portion of the previous block, or include one.
  • the first type block B 2 is illustrated to include a hash value H 1 of at least a portion of B 1 , but is not limited thereto.
  • the first second type block also contains a hash value of at least a portion of the block immediately before the first second type block. That is, unlike the description with reference to FIG. 5, the first second type block does not include the hash value H 0 of the first block B 0 , but rather the hash value of at least a portion of the block immediately before the first second type block. It is to include.
  • the first second type block corresponds to B 4 .
  • the immediately preceding block corresponds to B 3 .
  • B 4 comprises at least part of the hash value H 3 of B 3 .
  • the first second type block may include two or more hash values of at least a portion of the previous block, or include one. Referring to FIG. 6, the first second type block B 4 is illustrated to include at least a portion of the hash value H 3 of B 3 , but is not limited thereto.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Theoretical Computer Science (AREA)
  • Power Engineering (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

블록체인 시스템이 개시된다. 본 발명의 블록체인 시스템은, 블록체인 시스템에 있어서, 최초(genesis) 블록, 적어도 하나의 제1 형 블록 및 적어도 하나의 제2 형 블록을 포함하는 메인 브랜치를 포함하고, 상기 메인 브랜치에 포함된 블록은 상기 최초 블록을 시작으로 각각 블록의 생성 순서에 따라 연결되고, 상기 최초 블록을 제외한 상기 메인 브랜치에 포함된 블록은 상기 메인 브랜치에서 해당 블록 직전에 생성된 블록의 적어도 일부의 해시값을 포함하고, 상기 제1 형 블록 중 적어도 일부는 상기 메인 브랜치에서 해당 제1 형 블록 직전에 생성된 제1 형 블록의 적어도 일부의 해시값을 포함하고, 상기 제2 형 블록 중 적어도 일부는 상기 메인 브랜치에서 해당 제2 형 블록 직전에 생성된 제2 형 블록의 적어도 일부의 해시값을 포함하고, 상기 메인 브랜치는 상기 제1 형 블록이면서 동시에 상기 제2 형 블록인 적어도 하나의 중첩 블록을 포함한다.

Description

블록체인 시스템
본 발명은 블록체인 시스템에 관한 것으로, 더욱 상세하게는 적어도 일부의 블록들이 이중으로 연결되면서, 또한 이중으로 연결된 것 중에서 중첩된 블록을 포함하는 블록체인 시스템에 관한 것이다.
블록체인은 분산 데이터베이스의 일종으로 암호화된 가상화폐인 비트코인에서 도입된 개념으로 알려져 있다. 기존에 거래장부, 문서 등의 디지털 컨텐츠를 중앙집중형 서버에 보관하고 관리하던 것과 달리, 블록체인 시스템에서는 누적된 디지털 컨텐츠를 네트워크를 통해 연결된 복수의 참여자의 장치(노드)에 저장하여 관리한다. 이러한 블록체인 시스템은 디지털 컨텐츠 자체가 인터넷을 통해 공개되어 있고, 다수의 참여자에 의해 수시로 검증이 진행되므로 위조 또는 변조가 매우 어렵다는 장점이 있다.
이러한 블록체인 시스템은 비트코인 등의 가상화폐 시스템 또는 금융기관의 거래기록 보관 등에 사용되고 있다. 또한, 최근에는 이러한 블록체인 시스템을 전자화된 문서관리 및 원본확인 등을 위해 사용되기도 한다. 대한민국 등록특허공보 제10-1763827호(2017년 7월 26일 등록) 및 대한민국 등록특허공보 제10-1751025호(2017년 6월 20일 등록)에는 이러한 블록체인 시스템을 이용한 의료데이터전송시스템 및 증권업무 처리 시스템에 대해서 개시되어 있다.
블록체인에 참여하는 노드들은 데이터의 진위여부를 확인하기 위해서 전체 블록체인의 데이터를 장치에 저장하고 유지관리 해야 한다. 누적된 거래 등이 적어 전체 블록체인의 크기가 크지 않은 경우에는 문제되지 않으나, 거래 등 신규 이벤트 발생이 누적되면서 블록의 개수가 증가할수록 전체 블록체인의 크기는 점차 증가하게 된다. 대표적인 블록체인 시스템인 비트코인 및 이더리움 등의 전체 블록체인 크기는 현재 수백 Gbyte에 달하고 있다.
따라서 블록체인에 참여하는 노드들은 이러한 대용량의 데이터를 저장하고 유지관리할 수 있는 높은 수준의 저장 장치 및 컴퓨팅 장치가 필요하다. 그러나 일반적인 개인용 컴퓨터는 이러한 수준의 성능에 도달하지 못할 수 있다. 특히, 스마트폰, 태블릿 컴퓨터 등 개인용 모바일 장치는 더욱 이러한 수준의 성능에 도달하지 못하는 실정이다.
선행기술문헌
대한민국 등록특허공보 제10-1763827호(2017년 7월 26일 등록)
대한민국 등록특허공보 제10-1751025호(2017년 6월 20일 등록)
본 발명이 해결하려는 과제는, 블록체인 시스템에 참여하는 노드가 필요한 블록들만을 선택적으로 저장하는 것만으로도 데이터의 진위여부를 확인할 수 있는 블록체인 시스템 및 이러한 블록체인을 이용한 데이터 관리 방법을 제공하는 것이다.
본 발명이 해결하려는 다른 과제는, 블록의 유형에 따라 블록 간의 연결관계를 다르게 형성하여 체계적인 효율적인 블록체인 시스템을 제공하는 것이다.
상기 과제를 해결하기 위한 본 발명의 블록체인 시스템은, 블록체인 시스템에 있어서, 최초(genesis) 블록, 적어도 하나의 제1 형 블록 및 적어도 하나의 제2 형 블록을 포함하는 메인 브랜치를 포함하고, 상기 메인 브랜치에 포함된 블록은 상기 최초 블록을 시작으로 각각 블록의 생성 순서에 따라 연결되고, 상기 최초 블록을 제외한 상기 메인 브랜치에 포함된 블록은 상기 메인 브랜치에서 해당 블록 직전에 생성된 블록의 적어도 일부의 해시값을 포함하고, 상기 제1 형 블록 중 적어도 일부는 상기 메인 브랜치에서 해당 제1 형 블록 직전에 생성된 제1 형 블록의 적어도 일부의 해시값을 포함하고, 상기 제2 형 블록 중 적어도 일부는 상기 메인 브랜치에서 해당 제2 형 블록 직전에 생성된 제2 형 블록의 적어도 일부의 해시값을 포함하고, 상기 메인 브랜치는 상기 제1 형 블록이면서 동시에 상기 제2 형 블록인 적어도 하나의 중첩 블록을 포함한다.
본 발명의 일 실시예에 있어서, 상기 중첩 블록은, 상기 메인 브랜치에서 상기 중첩 블록 직전에 생성된 블록의 적어도 일부의 해시값, 상기 메인 브랜치에서 상기 중첩 블록 직전에 생성된 제1 형 블록의 적어도 일부의 해시값 및 상기 메인 브랜치에서 상기 중첩 블록 직전에 생성된 제2 형 블록의 적어도 일부의 해시값을 포함할 수 있다.
본 발명의 일 실시예에 있어서, 상기 중첩 블록은, 상기 메인 브랜치에서 상기 중첩 블록 직전에 생성된 블록의 적어도 일부의 해시값, 상기 메인 브랜치에서 상기 중첩 블록 직전에 생성된 제1 형 블록의 적어도 일부의 해시값 및 상기 메인 브랜치에서 상기 중첩 블록 직전에 생성된 제2 형 블록의 적어도 일부의 해시값을 각각 구분하여 포함할 수 있다.
본 발명의 일 실시예에 있어서, 상기 메인 브랜치에서 상기 중첩 블록 직후에 생성된 제1 형 블록은, 상기 메인 브랜치에서 해당 제1 형 블록 직전에 생성된 블록의 적어도 일부의 해시값과 상기 중첩 블록의 적어도 일부의 해시값을 포함할 수 있다.
본 발명의 일 실시예에 있어서, 상기 메인 브랜치에서 상기 중첩 블록 직후에 생성된 제2 형 블록은, 상기 메인 브랜치에서 해당 제2 형 블록 직전에 생성된 블록의 적어도 일부의 해시값과 상기 중첩 블록의 적어도 일부의 해시값을 포함할 수 있다.
본 발명의 일 실시예에 있어서, 상기 적어도 일부의 제1 형 블록은 상기 직전에 생성된 블록의 적어도 일부의 해시값과 상기 직전에 생성된 제1 형 블록의 적어도 일부의 해시값을 구분하여 포함할 수 있다.
본 발명의 일 실시예에 있어서, 상기 적어도 일부의 제2 형 블록은 상기 직전에 생성된 블록의 적어도 일부의 해시값과 상기 직전에 생성된 제2 형 블록의 적어도 일부의 해시값을 구분하여 포함할 수 있다.
본 발명의 일 실시예에 있어서, 상기 적어도 일부의 제1 형 블록이 포함하는 상기 직전에 생성된 블록의 적어도 일부의 해시값과 상기 직전에 생성된 제1 형 블록의 적어도 일부의 해시값이 동일한 경우, 하나의 해시값만을 포함할 수 있다.
본 발명의 일 실시예에 있어서, 상기 적어도 일부의 제2 형 블록이 포함하는 상기 직전에 생성된 블록의 적어도 일부의 해시값과 상기 직전에 생성된 제2 형 블록의 적어도 일부의 해시값이 동일한 경우, 하나의 해시값만을 포함할 수 있다.
본 발명의 일 실시예에 있어서, 상기 제1 형 블록은 제1 형 블록 중 가장 먼저 생성된 최초 제1 형 블록 및 상기 최초 제1 형 블록 이후에 생성된 후속 제1 형 블록을 포함하고, 상기 후속 제1 형 블록은 상기 메인 브랜치에서 해당 후속 제1 형 블록 직전에 생성된 제1 형 블록의 적어도 일부의 해시값을 포함할 수 있다.
본 발명의 일 실시예에 있어서, 상기 최초 제1 형 블록은 상기 최초 블록의 적어도 일부의 해시값을 포함할 수 있다.
본 발명의 일 실시예에 있어서, 상기 최초 제1 형 블록은 상기 최초 제1 형 블록 직전 블록의 적어도 일부의 해시값을 포함하고, 다른 블록의 적어도 일부의 해시값은 포함하지 않을 수 있다.
본 발명의 일 실시예에 있어서, 상기 제2 형 블록은 제2 형 블록 중 가장 먼저 생성된 최초 제2 형 블록 및 상기 최초 제2 형 블록 이후에 생성된 후속 제2 형 블록을 포함하고, 상기 후속 제2 형 블록은 상기 메인 브랜치에서 해당 후속 제2 형 블록 직전에 생성된 제2 형 블록의 적어도 일부의 해시값을 포함할 수 있다.
본 발명의 일 실시예에 있어서, 상기 최초 제2 형 블록은 상기 최초 블록의 적어도 일부의 해시값을 포함할 수 있다.
본 발명의 일 실시예에 있어서, 상기 최초 제2 형 블록은 상기 최초 제2 형 블록 직전 블록의 적어도 일부의 해시값을 포함하고, 다른 블록의 적어도 일부의 해시값은 포함하지 않을 수 있다.
본 발명의 일 실시예에 있어서, 상기 제1 형 블록 및 상기 제2 형 블록은 해당 제1 형 블록 및 제2 형 블록을 루트 블록으로 하는 포킹을 허용할 수 있다.
본 발명의 일 실시예에 있어서, 상기 제1 형 블록 및 상기 제2 형 블록 중 적어도 일부를 루트 블록으로 하여 서브 블록이 연결되는 것을 허용할 수 있다.
본 발명의 일 실시예에 있어서, 상기 제1 형 블록 및 상기 제2 형 블록 중 적어도 일부를 루트 블록으로 하여 포킹된 서브 브랜치를 더 포함할 수 있다.
본 발명의 일 실시예에 있어서, 상기 제1 형 블록 및 상기 제2 형 블록 중 적어도 일부를 루트 블록으로 하여 연결된 적어도 하나의 서브 블록을 포함하는 서브 브랜치를 더 포함할 수 있다.
본 발명의 일 실시예에 따른 블록체인 시스템 및 블록체인을 이용한 데이터 관리 벙법은 블록체인 시스템에 참여하는 노드가 필요한 블록들만을 선택적으로 저장하는 것만으로도 데이터의 진위여부를 확인할 수 있는 장점이 있다.
또한, 본 발명의 일 실시예에 따른 블록체인 시스템은 블록의 유형에 따라 블록 간의 연결관계를 다르게 형성하여 체계적인 효율적이다는 장점이 있다.
도 1은 본 발명의 일 실시예에 따른 블록체인 시스템의 개별 블록의 구성을 도시한 것이다.
도 2는 본 발명의 일 실시예에 따른 블록체인 시스템의 두 개의 블록이 연결된 것을 도시한 것이다.
도 3 및 도 4는 블록체인에서 블록의 표시 방법을 설명하기 위한 도면이다.
도 5는 본 발명의 일 실시예에 따른 블록체인 시스템의 예시적인 블록도이다.
도 6은 본 발명의 다른 일 실시예에 따른 블록체인 시스템의 예시적인 블록도이다.
이하, 첨부된 도면을 참조하여 본 발명의 실시예들을 상세히 설명한다. 본 발명을 설명하는데 있어서, 해당 분야에 이미 공지된 기술 또는 구성에 대한 구체적인 설명을 부가하는 것이 본 발명의 요지를 불분명하게 할 수 있다고 판단되는 경우에는 상세한 설명에서 이를 일부 생략하도록 한다. 또한, 본 명세서에서 사용되는 용어들은 본 발명의 실시예들을 적절히 표현하기 위해 사용된 용어들로서, 이는 해당 분야의 관련된 사람 또는 관례 등에 따라 달라질 수 있다. 따라서, 본 용어들에 대한 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
여기서 사용되는 전문용어는 단지 특정 실시예를 언급하기 위한 것이며, 본 발명을 한정하는 것을 의도하지 않는다. 여기서 사용되는 단수 형태들은 문구들이 이와 명백히 반대의 의미를 나타내지 않는 한 복수 형태들도 포함한다. 명세서에서 사용되는 '포함하는'의 의미는 특정 특성, 영역, 정수, 단계, 동작, 요소 및/또는 성분을 구체화하며, 다른 특정 특성, 영역, 정수, 단계, 동작, 요소, 성분 및/또는 군의 존재나 부가를 제외시키는 것은 아니다.
이하, 첨부된 도 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)이란 해당 블록(200) 직전에 생성된 것일 수 있다. 아래에서 상세하게 설명하겠지만, 경우에 따라서 이전에 생성된 블록(100)이란 이전에 생성된 블록들 중 해당 블록(200)과 동일한 유형의 마지막 블록일 수도 있다.
이전에 생성된 블록(100)의 해시값은 상술한 것과 같이, 이전 블록(100)의 전체 또는 선택된 일부의 정보의 해시값일 수 있다. 예를 들어, 첨부한 도 2에 도시된 것과 같이 이전 블록(100)의 해시값은 이전 블록의 블록헤더(110)의 정보의 해시값인 것으로 정의될 수 있다. 이전 블록의 해시값은 블록을 설계하는 사람의 기호 및 판단에 따라 다양하게 변경될 수 있다.
도 3 및 도 4를 참조하여, 도 5에서 도시되는 블록체인 시스템을 구성하는 블록에 대해서 간략하게 설명하도록 한다.
블록은 도 1 및 도 2를 참조하여 설명한 것과 같이, 블록헤더와 블록몸체를 포함한다. 그러나 설명의 편의성을 위해 도 5에서는 도 3 및 도 4에 도시된 방식으로 개별 블록을 표시하도록 한다.
먼저 도 3을 참조하면, 하나의 블록(100)에는 블록의 타이틀, 이전 연결 블록의 해시값 및 해당 블록의 해시값이 표시된다. 하나의 블록(100)은 상하로 배열된 3칸의 표에서, 첫번째 칸에는 블록의 타이틀이 표시되고, 두번째 칸에는 이전 연결 블록의 해시값이 표시되고, 세번째 칸에는 해당 블록의 해시값이 표시된다.
도 4를 참조하면, 하나의 블록(101)에는 이전 연결 블록의 해시값이 둘 이상 포함될 수 있다. 복수의 이전 연결 블록의 해시값은 가장 아래 칸의 해당 블록의 해시값의 위에 순차적으로 표시된다. 도 4를 참조하면, 하나의 블록(101)에는 2개의 이전 연결 블록의 해시값이 포함된다. 이는 각각 세번째 칸 및 네번째 칸에 표시되고, 마지막 칸에는 해당 블록의 해시값이 표시되어 있다.
도면에는 도시되지 않았지만 경우에 따라서 하나의 블록은 둘 이상의 추가 블록의 해시값을 포함할 수도 있다. 이러한 경우, 추가 블록의 해시값은 해당 블록의 해시값 위의 칸에 표시되는 것이 바람직할 것이다. 그리고 블록의 마지막 칸에는 해당 블록의 해시값이 표시되는 것이 바람직할 것이다.
추가 블록의 해시값에 대해서는 아래에서 더욱 상세하게 설명하도록 한다.
도 3 및 도 4에서, 블록의 타이틀은 Bn 또는 Bnm과 같은 형태로 표시된다. 블록의 타이틀이 Bn이라는 것은 상기 블록이 메인 브랜치의 n번째 블록이라는 것을 의미한다. 그리고 블록의 타이틀이 Bnm이라는 것은 상기 블록이 메인 브랜치의 n번째 블록에서 분기되는 서브 브랜치의 m번째 서브 블록이라는 것을 의미한다. 임의의 서브 브랜치의 m번째 서브 블록은 상기 서브 브랜치의 m+1번째 블록에 해당한다.
어느 블록의 해시값은 H라는 기호를 이용하여 표시된다. 예를 들어, 블록의 타이틀이 Bnm인 블록의 해시값은 Hnm으로 표시되게 된다.
상기 블록의 타이틀, 해시값의 기호 등을 설명하면서 언급한 메인 브랜치, 서브 브랜치 및 서브 블록 등에 대해서는 이하 도 5를 참조하여 상세하게 설명하도록 한다.
도 5를 참조하여, 본 발명의 일 실시예에 따른 블록체인 시스템에 대해서 설명하도록 한다. 도 5는 본 발명의 일 실시예에 따른 블록체인 시스템의 예시적인 블록도이다.
본 발명의 블록체인 시스템은 메인 브랜치(1000)를 포함한다. 여기서, 메인 브랜치(1000)는 이후에 설명할 서브 브랜치(1002, 1004, 1007, 1010, 1012)와 구분되는 것으로, 이 둘의 차이점은 이하에서 설명하도록 한다.
메인 브랜치(1000)는 최초 블록(genesis block), 제1 형 블록, 제2 형 블록 및 제3 형 블록을 포함한다. 제1 형 블록, 제2 형 블록 및 제3 형 블록이 어떻게 구분되는지 여부는 이후에서 상세하게 설명하도록 한다.
도 5에서 최초 블록은 두꺼운 테두리의 사각형으로 표시했고, 제1 형 블록과 제2 형 블록은 코너 부분이 라운드진 사각형으로 표시하였고, 제3 형 블록은 일반적인 사각형으로 표시하였다. 그리고 제1 형 블록과 제2 형 블록은 블록의 좌측 상단에 각각 ①및 ②를 표시하여 구분하였다.
최초 블록(genesis block)은 블록체인 시스템에서 최초로 생성된 블록이다. 최초 블록은 블록체인 시스템의 다른 블록과 달리 예외적으로 이전 연결 블록이 없을 수 있다. 블록체인 시스템에서 최초 블록이 생성된 이후에 후속적으로 생성된 블록은 최초 블록과 직접적으로 또는 간접적으로 연결되게 된다. 도 5를 참조하면, B0가 최초 블록에 해당한다.
이하, 제1 형 블록, 제2 형 블록 및 제3 형 블록에 대해 설명하도록 한다. 설명의 편의성을 위해, 제3 형 블록에 대해서 먼저 설명하도록 한다.
제3 형 블록은 제1 형 블록 및 제2 형 블록과 달리, 해당 블록을 루트 블록으로 한 분기를 허용하지 않는 블록이다. 분기에 대해서는 아래에서 제1 형 블록 및 제2 형 블록을 설명하면서 상술하도록 한다. 따라서 제3 형 블록은 메인 브랜치(1000)에서 직전의 블록과 직후의 블록과만 연결되게 된다. 도 5를 참조하면, B1, B3, B5, B8 및 B9가 제3 형 블록에 해당한다.
제1 형 블록 및 제2 형 블록은 해당 제1 형 블록 및 제2 형 블록을 루트 블록(root block)으로 하여 분기를 허용하는 블록이다. 분기란 메인 브랜치(1000)의 임의의 블록을 루트 블록으로 하여 메인 브랜치(1000)와 분기되도록 연결된 서브 브랜치를 생성하는 것을 의미한다. 이러한 분기란 포킹(forking)이라는 용어로 설명되기도 한다. 따라서 제1 형 블록 및 제2 형 블록은 포킹된 블록(forked block)으로 설명될 수 있다. 또한, 제1 형 블록 및 제2 형 블록은 메인 브랜치(1000)와 서브 브랜치가 결합(joint)되는 결합 블록(joint block)으로 설명될 수도 있다.
서브 브랜치에서 루트 블록을 제외한 나머지 루트 블록에 연결된 블록을 서브 블록으로 지칭하도록 한다. 따라서 제1 형 블록 및 제2 형 블록은 해당 제1 형 블록 및 제2 형 블록을 루트 블록으로 하여 서브 블록이 연결되는 것을 허용하는 블록을 의미한다.
여기서 제1 형 블록 및 제2 형 블록은 분기를 허용만 하는 것으로, 제1 형 블록 및 제2 형 블록에는 해당 제1 형 블록 제2 형 블록을 루트 블록으로 하는 서브 브랜치가 연결되어 있을 수도 있고, 그렇지 않을 수도 있다. 서브 브랜치가 연결되어 있지 않는 제1 형 블록 및 제2 형 블록은 이후에 이벤트의 생성에 따라 해당 제1 형 블록 및 제2 형 블록을 루트 블록으로 하는 서브 브랜치가 연결될 수도 있다.
도 5를 참조하면, B2, B6, B7 및 B11이 제1 형 블록에 해당한다. 그리고 B2 및 B7은 이에 연결된 서브 브랜치(1002, 1007)가 존재한다. 그러나 B6 및 B11의 경우, 제1 형 블록임에도 불구하고 이에 연결된 서브 브랜치가 존재하지 않는다.
현재 상태에서는 B6 및 B11에 연결되는 서브 브랜치가 존재하지 않지만 이후에 B61 및 B111에 해당하는 새로운 서브 블록이 생성되어 B6 및 B11에 연결될 수 있다. 이러한 경우, B6 및 B11에 연결된 서브 브랜치가 새롭게 생성될 수 있다. 또한, 이후에 B62 및 B112에 해당하는 새로운 서브 블록이 생성되어 B61 및 B111에 연결될 수 있다. 이러한 경우, B6 및 B11에 연결된 서브 브랜치가 연장될 수 있다.
그리고 B4, B7, B10 및 B12이 제2 형 블록에 해당한다. 그리고 B4, B7, B10 및 B12는 이에 연결된 서브 브랜치(1004, 1010)가 존재한다. 현재까지의 제2 형 블록에서는 서브 브랜치가 존재하지 않는 제2 형 블록이 존재하지 않는다. 그러나 이후 새롭게 생성되어 메인 브랜치(1000)에 연결되는 제2 형 블록에는 서브 브랜치가 존재하지 않을 수 있다.
앞서 설명한 것에서, B7은 제1 형 블록면서 동시에 제2 형 블록인 중첩 블록에 해당한다. 중첩 블록에 대해서는 이하에서 더욱 상세하게 설명한다.
최초 블록이 생성된 이후에는 제1 형 블록, 제2 형 블록 및 제3 형 블록이 생성되어 메인 브랜치(1000)에 연결되게 된다. 제1 형 블록, 제2 형 블록 및 제3 형 블록은 각 블록의 생성 순서에 따라 연결된다.
블록체인 시스템에서는 제1 형 블록, 제2 형 블록 및 서브 블록이 생성될 수 있다. 여기서 어떠한 종류의 블록이 생성될지는 블록이 포함하는 데이터가 기반한 이벤트에 따라 결정될 수 있다.
예를 들어, 발생한 이벤트가 제1 형 이벤트인 경우, 발생한 제1 형 이벤트의 데이터를 포함하는 블록이 제1 형 블록으로 생성되어 연결될 수 있다. 또한, 발생한 이벤트가 제2 형 이벤트인 경우, 발생한 제2 형 이벤트의 데이터를 포함하는 블록이 제2 형 블록으로 생성되어 연결될 수 있다. 또한, 발생한 이벤트가 제3 형 이벤트인 경우, 발생한 제3 형 이벤트의 데이터를 포함하는 블록이 서브 블록으로 생성되어 연결될 수 있다.
경우에 따라서, 발생한 이벤트가 제1 형 이벤트이면서 동시에 제2 형 이벤트일 수도 있다. 이러한 이벤트의 데이터를 포함하는 블록은 제1 형 블록이면서 동시에 제2 형 블록인 중첩 블록으로 생성되어 연결될 수 있다.
제1 형 이벤트, 제2 형 이벤트 및 제3 형 이벤트를 구분하는 기준은 블록을 설계하는 사람의 기호 및 판단에 따라 다양하게 변경될 수 있다.
메인 브랜치(1000)에 포함된 블록 중 최초 블록을 제외한 블록은 메인 브랜치(1000)에서 해당 블록 직전에 생성된 블록의 적어도 일부의 해시값을 포함한다. 구체적으로, 블록은 블록헤더에 직전에 생성된 블록의 적어도 일부의 해시값을 포함하는 것을 통해 연결될 수 있다.
이는 해당 블록이 제1 형 블록이든 제2 형 블록이든 제3 형 블록이든 중첩 블록이든 구분하지 않고 적용된다.
도 5를 참조하면, 제1 형 블록인 B2의 경우 메인 브랜치(1000)에서 B2 직전에 생성된 블록은 B1에 해당한다. B2는 B1의 적어도 일부의 해시값(H1)을 포함한다.
또한, 제2 형 블록인 B4의 경우 메인 브랜치(1000)에서 B4 직전에 생성된 블록은 B3에 해당한다. B4는 B3의 적어도 일부의 해시값(H3)을 포함한다.
또한, 제3 형 블록인 B1의 경우 메인 브랜치(1000)에서 B1 직전에 생성된 블록은 최초 블록인 B0에 해당한다. B1는 B0의 적어도 일부의 해시값(H0)을 포함한다.
또한, 중첩 블록인 B7의 경우 메인 브랜치(1000)에서 B7 직전에 생성된 블록은 B6에 해당한다. B7은 B6의 적어도 일부의 해시값(H6)을 포함한다.
제1 형 블록은 최초 제1 형 블록과 후속 제1 형 블록을 포함한다. 최초 제1 형 블록은 제1 형 블록 중 가장 먼저 생성된 블록을 의미한다. 그리고 후속 제1 형 블록은 최초 제1 형 블록 이후에 생성된 블록을 의미한다.
그리고, 제2 형 블록은 최초 제2 형 블록과 후속 제2 형 블록을 포함한다. 최초 제2 형 블록은 제2 형 블록 중 가장 먼저 생성된 블록을 의미한다. 그리고 후속 제2 형 블록은 최초 제2 형 블록 이후에 생성된 블록을 의미한다.
도 5를 참조하면, 최초 제1 형 블록 및 최초 제2 형 블록은 두꺼운 테두리의 라운드진 사각형으로 표시했고, 후속 제1 형 블록 및 후속 제2 형 블록은 일반 테두리의 라운드진 사각형으로 표시하여 구분하였다.
도 5를 참조하면, B2가 최초 제1 형 블록에 해당하고, B6 및 B7이 후속 제1 형 블록에 해당한다. 또한, B4가 최초 제2 형 블록에 해당하고, B10 및 B11이 후속 제2 형 블록에 해당한다
먼저, 제1 형 블록에 대해서 설명하도록 한다.
후속 제1 형 블록은 메인 브랜치(1000)에서 해당 후속 제1 형 블록 직전에 생성된 제1 형 블록의 적어도 일부의 해시값을 포함한다. 구체적으로, 후속 제1 형 블록은 블록헤더에 직전에 생성된 제1 형 블록의 적어도 일부의 해시값을 포함하는 것을 통해 연결될 수 있다. 여기서, 직전 제1 형 블록이란 최초 제1 형 블록일 수도 있고, 후속 제1 형 블록일 수도 있다.
구체적으로, B6을 기준으로 설명하면, B6 직전에 생성된 제1 형 블록은 B2에 해당한다. B6은 B2의 적어도 일부의 해시값(H2)을 포함한다.
위에서 설명한 것과 같이, 제1 형 블록 중 두번째로 생성된 제1 형 블록(B6)은 최초 제1 형 블록(B2)의 적어도 일부의 해시값(H2)을 포함하게 된다.
이하, 제2 형 블록에 대해서 설명하도록 한다.
제2 형 블록도 제1 형 블로과 마찬가지로, 후속 제2 형 블록은 메인 브랜치(1000)에서 해당 후속 제2 형 블록 직전에 생성된 제2 형 블록의 적어도 일부의 해시값을 포함한다.
구체적으로, B12를 기준으로 설명하면, B12 직전에 생성된 제2 형 블록은 B10에 해당한다. B12는 B10의 적어도 일부의 해시값(H10)을 포함한다.
이에 따라, 후속 제1 형 블록 및 후속 제2 형 블록은 2개의 해시값을 포함하게 된다. 구체적으로, B6의 경우, 직전 블록의 적어도 일부의 해시값으로 B5의 적어도 일부의 해시값(H5)을 포함하고, 직전 제1 형 블록의 적어도 일부의 해시값으로 B2의 적어도 일부의 해시값(H2)을 포함한다. 후속 제1 형 블록 및 후속 제2 형 블록은 2개의 해시값을 구분하여 포함할 수 있다.
최초 제1 형 블록 및 최초 제2 형 블록은 최초 블록의 적어도 일부의 해시값을 포함한다. 구체적으로, 최초 제1 형 블록인 B2은 B0의 적어도 일부의 해시값을 포함한다. 그리고 최초 제2 형 블록인 B4는 B0의 적어도 일부의 해시값을 포함한다.
중첩 블록은 제1 형 블록이면서 동시에 제2 형 블록인 것이다. 따라서 중첩 블록은 메인 브랜치에서 중첩 블록 직전에 생성된 블록의 적어도 일부의 해시값, 메인 브랜치에서 중첩 블록 직전에 생성된 제1 형 블록의 적어도 일부의 해시값 및 메인 브랜치에서 중첩 블록 직전에 생성된 제2 형 블록의 적어도 일부의 해시값을 포함한다.
중첩 블록은 제1 형 블록이면서 동시에 제2 블록이므로 중첩 블록을 루트 블록으로 하는 서브 브랜치가 연결될 수 있다.
도 5를 참조하면, B7이 중첩 블록에 해당한다. B7에는 B7을 루트 블록으로 하는 서브 브랜치(1007)가 연결되어 있다.
B7을 기준으로 설명하면, B7 직전에 생성된 제1 형 블록은 B6에 해당한다. B7은 B6의 적어도 일부의 해시값(H6)을 포함한다. 또한, B7 직전에 생성된 제2 형 블록은 B4에 해당한다. B7은 B4의 적어도 일부의 해시값(H4)을 포함한다.
도 5에 도시된 것과 같이, 중첩 블록은 메인 브랜치에서 중첩 블록 직전에 생성된 블록의 적어도 일부의 해시값, 메인 브랜치에서 중첩 블록 직전에 생성된 제1 형 블록의 적어도 일부의 해시값 및 메인 브랜치에서 중첩 블록 직전에 생성된 제2 형 블록의 적어도 일부의 해시값을 각각 구분하여 포함할 수 있다.
경우에 따라서 2개의 해시값이 동일할 수 있다. 구체적으로, B7의 경우, 직전 블록의 적어도 일부의 해시값으로 B6의 적어도 일부의 해시값(H6)을 포함하고, 직전 제1 형 블록의 적어도 일부의 해시값으로도 B6의 적어도 일부의 해시값(H6)을 포함한다. 이러한 경우, 도 5에 도시된 것과 같이, 2개의 해시값을 구분하여 각각 포함할 수도 있다. 그러나 경우에 따라서 중복되는 해시값을 하나만 포함할 수도 있다.
경우에 따라서, B7이 직전 블록의 적어도 일부의 해시값으로 포함하는 B6의 적어도 일부의 해시값과 직전 제1 형 블록의 적어도 일부의 해시값으로 포함하는 B6의 적어도 일부의 해시값이 상이할 수도 있다. 이는 B6의 데이터에서 해시값을 어떻게 산출하는지 여부에 따라 결정될 수 있다.
메인 브랜치에서 중첩 블록 직후에 생성된 제1 형 블록은, 메인 브랜치에서 해당 제1 형 블록 직전에 생성된 블록의 적어도 일부의 해시값과 중첩 블록의 적어도 일부의 해시값을 포함한다.
도 5를 참조하면, B11이 중첩 블록 직후에 생성된 제1 형 블록에 해당한다. B11을 기준으로 설명하면, B11 직전에 생성된 블록은 B10에 해당한다. 따라서 B11은 B10의 적어도 일부의 해시값(H10)을 포함한다. 또한, B11 직전에 생성된 중첩 블록은 B7에 해당한다. 따라서 B11은 B7의 적어도 일부의 해시값(H7)을 포함한다.
메인 브랜치에서 중첩 블록 직후에 생성된 제2 형 블록은, 메인 브랜치에서 해당 제2 형 블록 직전에 생성된 블록의 적어도 일부의 해시값과 중첩 블록의 적어도 일부의 해시값을 포함한다.
도 5를 참조하면, B10이 중첩 블록 직후에 생성된 제2 형 블록에 해당한다. B10을 기준으로 설명하면, B10 직전에 생성된 블록은 B9에 해당한다. 따라서 B10은 B9의 적어도 일부의 해시값(H9)을 포함한다. 또한, B10 직전에 생성된 중첩 블록은 B7에 해당한다. 따라서 B10은 B7의 적어도 일부의 해시값(H7)을 포함한다.
이러한 블록체인 시스템을 이용하면, 발생한 이벤트가 제1 형 이벤트이면서 동시에 제2 형 이벤트인 경우, 중첩 블록에 데이터를 포함하여 관리할 수 있다.
또한, 이러한 블록체인 시스템을 이용하면, 특정 노드가 진위여부를 검증하려는 데이터의 종류에 따라 일부의 블록만을 저장하고 사용하는 것이 가능하다.
예를 들어, 특정 노드가 제1 형 이벤트의 데이터만의 검증을 원할 경우를 가정하여 설명한다. 상술한 것과 같이, 제1 형 이벤트의 데이터는 제1 형 블록에 포함되게 된다. 따라서 상기 특정 노드는 최초 블록과 제1 형 블록만을 저장하고, 이를 활용하여 데이터를 검증하는 것이 가능하다.
구체적으로 도 5에서, 특정 노드가 B7에 저장된 제1 형 이벤트의 데이터의 검증을 원할 경우, 상기 특정 노드는 메인 브랜치(1000)의 최초 블록과 제1 형 블록만을 저장하고 있으면 된다. 즉, 상기 특정 노드는 총 5개의 블록만을 저장하고 있는 것이다. 이는 총 23개로 구성된 모든 블록체인의 모든 블록을 저장하는 것이나, 총 13개로 구성된 메인 브랜치(1000)의 모든 블록을 저장하는 것보다 작은 개수의 블록을 저장하는 것이다.
또한, 도 5에서, 특정 노드가 B7에 저장된 제2 형 이벤트의 데이터의 검증을 원할 경우, 상기 특정 노드는 메인 브랜치(1000)의 최초 블록과 제2 형 블록만을 저장하고 있으면 된다. 즉, 상기 특정 노드는 총 5개의 블록만을 저장하고 있는 것이다. 이는 총 23개로 구성된 모든 블록체인의 모든 블록을 저장하는 것이나, 총 13개로 구성된 메인 브랜치(1000)의 모든 블록을 저장하는 것보다 작은 개수의 블록을 저장하는 것이다.
또한 도 5에서, 특정 노드가 B101에 저장된 데이터의 검증을 원할 경우, 상기 특정 노드는 메인 브랜치(1000)의 최초 블록과 제2 형 블록 및 B102가 포함된 서브 브랜치의 서브 블록만을 저장하고 있으면 된다. 즉, 상기 특정 노드는 총 8개의 블록만을 저장하고 있는 것이다. 이는 총 23개로 구성된 모든 블록체인의 모든 블록을 저장하는 것보다 작은 개수의 블록을 저장하는 것이다.
이와 같이, 본 발명의 블록체인 시스템은 모든 노드가 블록체인의 모든 블록을 저장할 필요가 없다는 장점이 있다. 이는 노드가 부담해야 하는 컴퓨팅 작업 및 노드가 확보해야 하는 저장 공간을 감소시킬 수 있다는 장점이 있다. 이는 컴퓨팅 능력과 저장 공간이 상대적으로 제한된 모바일 장치 및 웨어러블 장치 등도 용이하게 블록체인 시스템의 노드로 참여할 수 있게 한다.
도 6을 참조하여, 본 발명의 다른 일 실시예에 따른 블록체인 시스템에 대해서 설명하도록 한다. 도 6은 본 발명의 다른 일 실시예에 따른 블록체인 시스템의 예시적인 블록도이다.
설명의 편의를 위해서, 도 6을 참조하여 본 발명의 실시예를 설명하면서 도 5를 참조하여 이미 설명한 것과 동일한 내용 중 일부는 생략하도록 한다.
본 발명의 블록체인 시스템은 메인 브랜치(1000) 및 서브 브랜치(1002, 1004, 1007, 1010, 1012)를 포함한다.
최초 제1 형 블록은 해당 최초 제1 형 블록 직전 블록의 적어도 일부의 해시값을 포함한다. 즉, 도 5를 참조하여 설명한 것과 달리, 최초 제1 형 블록은 최초 블록(B0)의 해시값(H0)을 포함하는 것이 아니라 해당 최초 제1 형 블록 직전 블록의 적어도 일부의 해시값을 포함하는 것이다.
구체적으로, 도 6을 참조하면 최초 제1 형 블록은 B2에 해당한다. B2를 기준으로 직전 블록은 B1에 해당한다. 따라서 B2는 B1의 적어도 일부의 해시값(H1)을 포함한다.
최초 제1 형 블록은 직전 블록의 적어도 일부의 해시값을 2개로 구분하여 포함할 수도 있고, 하나로 포함할 수도 있다. 도 6을 참조하면, 최초 제1 형 블록은 B2는 B1의 적어도 일부의 해시값(H1)을 구분하여 포함하는 것으로 도시하였지만 이에 한정되는 것은 아니다.
이와 마찬가지로, 최초 제2 형 블록도 해당 최초 제2 형 블록 직전 블록의 적어도 일부의 해시값을 포함한다. 즉, 도 5를 참조하여 설명한 것과 달리, 최초 제2 형 블록은 최초 블록(B0)의 해시값(H0)을 포함하는 것이 아니라 해당 최초 제2 형 블록 직전 블록의 적어도 일부의 해시값을 포함하는 것이다.
구체적으로, 도 6을 참조하면 최초 제2 형 블록은 B4에 해당한다. B4를 기준으로 직전 블록은 B3에 해당한다. 따라서 B4는 B3의 적어도 일부의 해시값(H3)을 포함한다.
최초 제2 형 블록은 직전 블록의 적어도 일부의 해시값을 2개로 구분하여 포함할 수도 있고, 하나로 포함할 수도 있다. 도 6을 참조하면, 최초 제2 형 블록은 B4는 B3의 적어도 일부의 해시값(H3)을 구분하여 포함하는 것으로 도시하였지만 이에 한정되는 것은 아니다.
이상, 본 발명의 블록체인 시스템의 실시예들에 대해 설명하였다. 본 발명은 상술한 실시예 및 첨부한 도면에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자의 관점에서 다양한 수정 및 변형이 가능할 것이다. 따라서 본 발명의 범위는 본 명세서의 청구범위뿐만 아니라 이 청구범위와 균등한 것들에 의해 정해져야 한다.
100, 200: 블록
110, 210: 블록 헤더
120, 220: 블록 몸체
1000: 메인 브랜치
1002, 1004, 1007, 1010, 1212: 서브 브랜치

Claims (19)

  1. 블록체인 시스템에 있어서,
    최초(genesis) 블록, 적어도 하나의 제1 형 블록 및 적어도 하나의 제2 형 블록을 포함하는 메인 브랜치를 포함하고,
    상기 메인 브랜치에 포함된 블록은 상기 최초 블록을 시작으로 각각 블록의 생성 순서에 따라 연결되고,
    상기 최초 블록을 제외한 상기 메인 브랜치에 포함된 블록은 상기 메인 브랜치에서 해당 블록 직전에 생성된 블록의 적어도 일부의 해시값을 포함하고,
    상기 제1 형 블록 중 적어도 일부는 상기 메인 브랜치에서 해당 제1 형 블록 직전에 생성된 제1 형 블록의 적어도 일부의 해시값을 포함하고,
    상기 제2 형 블록 중 적어도 일부는 상기 메인 브랜치에서 해당 제2 형 블록 직전에 생성된 제2 형 블록의 적어도 일부의 해시값을 포함하고,
    상기 메인 브랜치는 상기 제1 형 블록이면서 동시에 상기 제2 형 블록인 적어도 하나의 중첩 블록을 포함하는 블록체인 시스템.
  2. 제1 항에 있어서,
    상기 중첩 블록은,
    상기 메인 브랜치에서 상기 중첩 블록 직전에 생성된 블록의 적어도 일부의 해시값, 상기 메인 브랜치에서 상기 중첩 블록 직전에 생성된 제1 형 블록의 적어도 일부의 해시값 및 상기 메인 브랜치에서 상기 중첩 블록 직전에 생성된 제2 형 블록의 적어도 일부의 해시값을 포함하는 블록체인 시스템.
  3. 제2 항에 있어서,
    상기 중첩 블록은,
    상기 메인 브랜치에서 상기 중첩 블록 직전에 생성된 블록의 적어도 일부의 해시값, 상기 메인 브랜치에서 상기 중첩 블록 직전에 생성된 제1 형 블록의 적어도 일부의 해시값 및 상기 메인 브랜치에서 상기 중첩 블록 직전에 생성된 제2 형 블록의 적어도 일부의 해시값을 각각 구분하여 포함하는 블록체인 시스템.
  4. 제1 항에 있어서,
    상기 메인 브랜치에서 상기 중첩 블록 직후에 생성된 제1 형 블록은,
    상기 메인 브랜치에서 해당 제1 형 블록 직전에 생성된 블록의 적어도 일부의 해시값과 상기 중첩 블록의 적어도 일부의 해시값을 포함하는 블록체인 시스템.
  5. 제4 항에 있어서,
    상기 메인 브랜치에서 상기 중첩 블록 직후에 생성된 제2 형 블록은,
    상기 메인 브랜치에서 해당 제2 형 블록 직전에 생성된 블록의 적어도 일부의 해시값과 상기 중첩 블록의 적어도 일부의 해시값을 포함하는 블록체인 시스템.
  6. 제1 항에 있어서,
    상기 적어도 일부의 제1 형 블록은 상기 직전에 생성된 블록의 적어도 일부의 해시값과 상기 직전에 생성된 제1 형 블록의 적어도 일부의 해시값을 구분하여 포함하는 블록체인 시스템.
  7. 제6 항에 있어서,
    상기 적어도 일부의 제2 형 블록은 상기 직전에 생성된 블록의 적어도 일부의 해시값과 상기 직전에 생성된 제2 형 블록의 적어도 일부의 해시값을 구분하여 포함하는 블록체인 시스템.
  8. 제1 항에 있어서,
    상기 적어도 일부의 제1 형 블록이 포함하는 상기 직전에 생성된 블록의 적어도 일부의 해시값과 상기 직전에 생성된 제1 형 블록의 적어도 일부의 해시값이 동일한 경우, 하나의 해시값만을 포함하는 블록체인 시스템.
  9. 제8 항에 있어서,
    상기 적어도 일부의 제2 형 블록이 포함하는 상기 직전에 생성된 블록의 적어도 일부의 해시값과 상기 직전에 생성된 제2 형 블록의 적어도 일부의 해시값이 동일한 경우, 하나의 해시값만을 포함하는 블록체인 시스템.
  10. 제1 항에 있어서,
    상기 제1 형 블록은 제1 형 블록 중 가장 먼저 생성된 최초 제1 형 블록 및 상기 최초 제1 형 블록 이후에 생성된 후속 제1 형 블록을 포함하고,
    상기 후속 제1 형 블록은 상기 메인 브랜치에서 해당 후속 제1 형 블록 직전에 생성된 제1 형 블록의 적어도 일부의 해시값을 포함하는 블록체인 시스템.
  11. 제10 항에 있어서,
    상기 최초 제1 형 블록은 상기 최초 블록의 적어도 일부의 해시값을 포함하는 블록체인 시스템.
  12. 제10 항에 있어서,
    상기 최초 제1 형 블록은 상기 최초 제1 형 블록 직전 블록의 적어도 일부의 해시값을 포함하고, 다른 블록의 적어도 일부의 해시값은 포함하지 않는 블록체인 시스템.
  13. 제10 항에 있어서,
    상기 제2 형 블록은 제2 형 블록 중 가장 먼저 생성된 최초 제2 형 블록 및 상기 최초 제2 형 블록 이후에 생성된 후속 제2 형 블록을 포함하고,
    상기 후속 제2 형 블록은 상기 메인 브랜치에서 해당 후속 제2 형 블록 직전에 생성된 제2 형 블록의 적어도 일부의 해시값을 포함하는 블록체인 시스템.
  14. 제13 항에 있어서,
    상기 최초 제2 형 블록은 상기 최초 블록의 적어도 일부의 해시값을 포함하는 블록체인 시스템.
  15. 제13 항에 있어서,
    상기 최초 제2 형 블록은 상기 최초 제2 형 블록 직전 블록의 적어도 일부의 해시값을 포함하고, 다른 블록의 적어도 일부의 해시값은 포함하지 않는 블록체인 시스템.
  16. 제1 항에 있어서,
    상기 제1 형 블록 및 상기 제2 형 블록은 해당 제1 형 블록 및 제2 형 블록을 루트 블록으로 하는 포킹을 허용하는 블록체인 시스템.
  17. 제1 항에 있어서,
    상기 제1 형 블록 및 상기 제2 형 블록 중 적어도 일부를 루트 블록으로 하여 서브 블록이 연결되는 것을 허용하는 블록체인 시스템.
  18. 제1 항에 있어서,
    상기 제1 형 블록 및 상기 제2 형 블록 중 적어도 일부를 루트 블록으로 하여 포킹된 서브 브랜치를 더 포함하는 블록체인 시스템.
  19. 제1 항에 있어서,
    상기 제1 형 블록 및 상기 제2 형 블록 중 적어도 일부를 루트 블록으로 하여 연결된 적어도 하나의 서브 블록을 포함하는 서브 브랜치를 더 포함하는 블록체인 시스템.
PCT/KR2019/003656 2018-03-28 2019-03-28 블록체인 시스템 WO2019190234A1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020180035587A KR20190113211A (ko) 2018-03-28 2018-03-28 블록체인 시스템
KR10-2018-0035587 2018-03-28

Publications (1)

Publication Number Publication Date
WO2019190234A1 true WO2019190234A1 (ko) 2019-10-03

Family

ID=68058416

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2019/003656 WO2019190234A1 (ko) 2018-03-28 2019-03-28 블록체인 시스템

Country Status (2)

Country Link
KR (1) KR20190113211A (ko)
WO (1) WO2019190234A1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102408728B1 (ko) * 2019-10-22 2022-06-14 한국전자기술연구원 연속데이터 기반 무결성 부여 해쉬체인 생성장치 및 해쉬체인 생성방법

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9608829B2 (en) * 2014-07-25 2017-03-28 Blockchain Technologies Corporation System and method for creating a multi-branched blockchain with configurable protocol rules
KR20170040079A (ko) * 2016-05-03 2017-04-12 안규태 블록 검증을 위한 복수의 일방향 함수를 지원하는 블록 체인
US20170236123A1 (en) * 2016-02-16 2017-08-17 Blockstack Inc. Decentralized processing of global naming systems
US20170359374A1 (en) * 2016-06-11 2017-12-14 Lntel Corporation Blockchain System with Nucleobase Sequencing as Proof of Work

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101763827B1 (ko) 2016-04-07 2017-08-02 주식회사 라이프시맨틱스 블록체인 기반 의료데이터전송시스템, 방법 및 프로그램
KR101751025B1 (ko) 2017-01-03 2017-06-26 주식회사 온더 블록체인 기반의 스마트 증권업무 처리 시스템

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9608829B2 (en) * 2014-07-25 2017-03-28 Blockchain Technologies Corporation System and method for creating a multi-branched blockchain with configurable protocol rules
US20170236123A1 (en) * 2016-02-16 2017-08-17 Blockstack Inc. Decentralized processing of global naming systems
KR20170040079A (ko) * 2016-05-03 2017-04-12 안규태 블록 검증을 위한 복수의 일방향 함수를 지원하는 블록 체인
US20170359374A1 (en) * 2016-06-11 2017-12-14 Lntel Corporation Blockchain System with Nucleobase Sequencing as Proof of Work

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
KIM, HYEONG-GEON ET AL.: "A survey on platforms of blockchain", PROCEEDINGS OF KOREA COMPUTER CONGRESS 2017, June 2017 (2017-06-01), pages 1048 - 1050 *

Also Published As

Publication number Publication date
KR20190113211A (ko) 2019-10-08

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
WO2018030707A1 (ko) 인증 시스템 및 방법과 이를 수행하기 위한 사용자 단말, 인증 서버 및 서비스 서버
WO2013081282A1 (en) System and method for recommending application by using keyword
WO2016126090A1 (ko) 스마트폰을 사용한 디지털 파일 위변조 입증 시스템 및 방법과 스마트폰 화면 캡쳐 이미지 인증 기능을 가지는 스마트폰 및 스마트폰 화면 캡쳐 이미지 인증 방법
WO2021040124A1 (ko) 인공지능 기반의 법률 문서 분석 시스템 및 방법
WO2010137814A2 (en) Method of providing by-viewpoint patent map and system thereof
WO2021215551A1 (ko) 블록체인 기반의 전자 연구노트 검증 방법 및 이를 이용한 전자 연구노트 관리 장치
WO2022131441A1 (ko) 블록체인 네트워크를 이용하여 웹페이지를 저장 및 검증하는 방법 및 시스템
WO2021025536A1 (ko) 만화 컨텐츠의 재배치 방법
WO2015170797A1 (en) Display device and method for controlling the same
WO2020246706A1 (ko) 문서의 신뢰성을 보장하기 위한 블록체인 기반의 문서 정보 관리 장치 및 그 동작 방법
WO2020087981A1 (zh) 风控审核模型生成方法、装置、设备及可读存储介质
WO2021040318A1 (ko) 신분증 인식 모델을 이용한 분산 학습 방법, 서버, 어플리케이션 및 이를 통한 신분증 인식 방법
WO2021045332A1 (ko) 암호화폐 거래를 분석하기 위한 데이터 획득 방법 및 장치
EP3659025A1 (en) Method for enabling interaction using fingerprint on display and electronic device thereof
WO2019190234A1 (ko) 블록체인 시스템
WO2017160028A1 (en) Object management and visualization using a computing device
WO2020130331A1 (ko) 블록체인에서 노드들간 블록 및 전자 문서를 공유 및 검증하는 방법
WO2019190226A1 (ko) 블록체인 시스템
WO2015122620A1 (ko) 디지털콘텐츠의 무결성 보장을 위한 디지털 콘텐츠 모니터링 시스템
WO2022025537A1 (ko) 데이터관리컴퓨터, 데이터관리컴퓨터를 포함한 데이터보안시스템 및 데이터보안방법
WO2017052240A1 (ko) 진본성 및 무결성을 입증하기 위한 사본영상 증거관리시스템
EP2976708A1 (en) Mobile device and method for controlling the same

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

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 19774291

Country of ref document: EP

Kind code of ref document: A1

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 16/04/2021)

122 Ep: pct application non-entry in european phase

Ref document number: 19774291

Country of ref document: EP

Kind code of ref document: A1