KR20190020721A - Blockchain system and method of creating blockchain - Google Patents

Blockchain system and method of creating blockchain Download PDF

Info

Publication number
KR20190020721A
KR20190020721A KR1020190021356A KR20190021356A KR20190020721A KR 20190020721 A KR20190020721 A KR 20190020721A KR 1020190021356 A KR1020190021356 A KR 1020190021356A KR 20190021356 A KR20190021356 A KR 20190021356A KR 20190020721 A KR20190020721 A KR 20190020721A
Authority
KR
South Korea
Prior art keywords
block
type
last
hash value
blocks
Prior art date
Application number
KR1020190021356A
Other languages
Korean (ko)
Inventor
김승기
김병진
Original Assignee
주식회사 엑스블록시스템즈
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 엑스블록시스템즈 filed Critical 주식회사 엑스블록시스템즈
Priority to KR1020190021356A priority Critical patent/KR20190020721A/en
Publication of KR20190020721A publication Critical patent/KR20190020721A/en

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/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

Abstract

Provided are methods for generating a blockchain. According to the present invention, one of the methods comprises: a step of generating and storing, in a storage, blockchain data comprising a main branch including one or more first type blocks each being connected according to a generation order of the blocks, and one or more sub-branches including one of the first type blocks and one or more second type blocks each being connected by using the first type block as a root block, wherein the second type blocks of the sub-branches are connected according to a generation order of the blocks, and the second type block which is generated for the first time from the sub-branches is connected to the root block; and a step of generating a novel first type block to be connected to the final first type block of the main branch, wherein the novel first type block includes a hash value of at least a part of the final second type block of the sub-branches.

Description

블록체인 시스템 및 블록체인 생성 방법{Blockchain system and method of creating blockchain}[0001] Block Chain System and Method for Creating Block Chain [

본 발명은 블록체인 시스템 및 블록체인 생성 방법에 관한 것으로, 더욱 상세하게는 메인 브랜치와 서브 브랜치를 포함하는 블록체인 시스템과 이러한 블록체인의 생성 방법에 관한 것이다.The present invention relates to a block-chain system and a method for generating a block-chain, and more particularly, to a block-chain system including a main branch and a sub-branch, and a method for generating such a block-chain.

블록체인은 분산 데이터베이스의 일종으로 암호화된 가상화폐인 비트코인에서 도입된 개념으로 알려져 있다. 기존에 거래장부, 문서 등의 디지털 컨텐츠를 중앙집중형 서버에 보관하고 관리하던 것과 달리, 블록체인 시스템에서는 누적된 디지털 컨텐츠를 네트워크를 통해 연결된 복수의 참여자의 장치(노드)에 저장하여 관리한다. 이러한 블록체인 시스템은 디지털 컨텐츠 자체가 인터넷을 통해 공개되어 있고, 다수의 참여자에 의해 수시로 검증이 진행되므로 위조 또는 변조가 매우 어렵다는 장점이 있다.The block chain is a kind of distributed database, known as the concept introduced in encrypted virtualization bit-coin. Conventionally, digital contents such as transaction books and documents are stored and managed in a centralized server. In a block chain system, cumulative digital contents are stored and managed in a plurality of participants (nodes) connected through a network. This block chain system is advantageous in that it is very difficult for forgery or alteration because the digital contents themselves are disclosed through the Internet and the verification is progressed frequently by a large number of participants.

이러한 블록체인 시스템은 비트코인 등의 가상화폐 시스템 또는 금융기관의 거래기록 보관 등에 사용되고 있다. 또한, 최근에는 이러한 블록체인 시스템을 전자화된 문서관리 및 원본확인 등을 위해 사용되기도 한다.Such a block chain system is used for a virtual currency system such as a bit coin or a transaction record keeping of a financial institution. In recent years, such a block chain system is also used for electronic document management and original verification.

예를 들어, 비트코인의 경우 노드들이 평균적으로 10분마다 이체 정보를 모아 블록을 새로 생성하고, 이를 해당하는 피어투피어 네트워크에 전파하고, 이를 전파 받은 노드들 또는 암호화폐 지갑들은 검증 후에 상기 블록을 블록체인에 추가한다.For example, in the case of the bit coin, the nodes collect the transfer information on average every 10 minutes to newly generate a block, propagate the same to the corresponding peer-to-peer network, and propagate the nodes or the cipher money wallet, To the block chain.

블록체인은 다수의 블록을 포함하고, 또한 새 블록은 특정 시간마다 블록체인의 마지막 블록에 체인형태로 추가된다. 비트코인의 경우, 블록은 상기 도면과 같이 이체기록들을 포함한 이체부분(transaction part)과 이전 블록번호와 현재 블록번호 등을 포함한 헤더부분(header part)으로 구성된다.The block chain includes a plurality of blocks, and a new block is added in a chain form to the last block of the block chain at a specific time. In the case of the bit coin, the block is composed of a header part including a transaction part including transfer records, a previous block number and a current block number as shown in the figure.

예를 들어, 비트코인의 블록체인은 블록번호1을 포함한 최초블록을 생성된 경우 블록2가 생성된다. 상기 최초블록이 생성된 후 다음 블록을 찾기 위한 경쟁에서 이긴 노드가 블록2를 생성하여 해당 네트워크로 전파한다. 이때 상기 블록2는 자신의 블록번호2와 함께 이전 블록의 블록번호1을 헤더부분에 포함한다. 즉, 새로운 블록은 헤더부분에 이전 블록의 블록번호를 포함함으로서, 이전 블록과 새로운 블록이 체인 형태로 연결하는 방법을 사용한다.For example, if the first block including block number 1 is generated in block chain of bit coin, block 2 is generated. After the initial block is generated, a node that has won the competition to find the next block generates block 2 and propagates to the corresponding network. At this time, the block 2 includes the block number 2 of the previous block together with the block number 2 of its own in the header part. That is, a new block includes a block number of a previous block in a header portion, and a method of connecting a previous block and a new block in a chain form is used.

컴퓨팅 장치에 설치된 비트코인 지갑은 블록체인 전체를 피어투피어 네트워크를 통해서 전송받아 컴퓨팅장치의 저장부에 저장한다. 하지만, 경량 비트코인 지갑(light-weight wallet)을 설치하면 블록체인의 헤더부분만 컴퓨팅장치의 저장부에 저장할 수 있다.The bit coin purse installed in the computing device receives the whole block chain through the peer-to-peer network and stores it in the storage unit of the computing device. However, by installing a lightweight wallet, only the header portion of the block chain can be stored in the storage of the computing device.

한편, 블록체인에 참여하는 노드들은 전체 블록체인의 데이터를 컴퓨팅 장치에 저장하고 유지관리 해야 한다. 누적된 거래 등이 적어 전체 블록체인의 크기가 크지 않은 경우에는 문제되지 않으나, 거래 등 신규 이벤트 발생이 누적되면서 블록의 개수가 증가할수록 전체 블록체인의 크기는 점차 증가하게 된다. 대표적인 블록체인 시스템인 비트코인의 전체 블록체인 크기는 현재 수십 Gbyte에 달하고 있다.On the other hand, the nodes participating in the block chain must store and maintain the data of the entire block chain in the computing device. It is not a problem if the size of the entire block chain is small because there are few accumulated transactions, but as the number of new blocks increases, the size of the entire block chain gradually increases. The total block chain size of bit coin, which is a representative block chain system, is now several tens of Gbytes.

따라서 블록체인에 참여하는 노드들은 이러한 대용량의 데이터를 저장하고 유지관리할 수 있는 높은 수준의 저장 장치 및 컴퓨팅 장치가 필요하다. 그러나 일반적인 개인용 컴퓨터는 이러한 수준의 성능에 도달하지 못할 수 있다. 특히, 스마트폰, 태블릿 컴퓨터 등 개인용 모바일 장치는 더욱 이러한 수준의 성능에 도달하지 못하는 실정이다.Thus, nodes participating in a block chain need a high level of storage and computing devices capable of storing and maintaining such large amounts of data. However, typical personal computers may not achieve this level of performance. In particular, personal mobile devices such as smart phones and tablet computers do not reach this level of performance.

본 발명이 해결하려는 과제는, 블록들이 복수의 브랜치로 연결되도록 구성하여 데이터를 효율적이고 체계적으로 관리할 수 있는 블록체인 시스템을 제공하는 것이다.SUMMARY OF THE INVENTION It is an object of the present invention to provide a block chain system in which blocks are connected to a plurality of branches so that data can be efficiently and systematically managed.

본 발명이 해결하려는 다른 과제는, 블록들이 복수의 브랜치로 연결되더라도 모든 블록의 위변조에 대한 안전성을 확보할 수 있는 블록체인 시스템 및 이러한 블록체인의 생성 방법을 제공하는 것이다. Another problem to be solved by the present invention is to provide a block chain system and a method of generating such a block chain, which can ensure safety against forgery and falsification of all blocks even if blocks are connected by a plurality of branches.

본 발명의 과제들은 이상에서 언급한 기술적 과제로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.The present invention has been made in view of the above problems, and it is an object of the present invention to provide a method of manufacturing the same.

상기 과제 해결을 위한 일 실시예에 따른 블록체인 생성 방법은, 적어도 하나의 제1 형 블록을 포함하고, 상기 제1 형 블록들은 각각 블록의 생성 순서에 따라 연결된 메인 브랜치, 및 상기 제1 형 블록 중 하나 및 적어도 하나의 제2 형 블록을 포함하고, 상기 제2 형 블록은 상기 제1 형 블록을 루트 블록으로 하여 연결된 적어도 하나의 서브 브랜치를 포함하고, 상기 하나의 서브 브랜치의 상기 제2 형 블록은 각각 블록의 생성 순서에 따라 연결되되, 상기 하나의 서브 브랜치에서 최초로 생성된 상기 제2 형 블록은 상기 루트 블록에 연결되는 블록체인 데이터를 생성하여 저장소에 저장하는 단계, 및 새로운 제1 형 블록을 상기 메인 브랜치의 마지막 제1 형 블록에 연결되도록 생성하는 단계를 포함하고, 상기 새로운 제1 형 블록은, 상기 서브 브랜치의 마지막 제2 형 블록의 적어도 일부의 해시값을 포함한다.According to an embodiment of the present invention, there is provided a method for generating a block chain, the method comprising: generating a block including at least one first type block and at least one first type block, And at least one second type block, wherein the second type block comprises at least one sub-branch connected with the first type block as a root block, and the second type block Wherein the second type block generated first in the one sub-branch generates block-chain data connected to the root block and stores the block-chain data in a storage, Generating a block to be connected to a last first type block of the main branch, wherein the new first type block comprises: The film of claim comprises at least a part of the hash value of the second type block.

상기 새로운 제1 형 블록은, 상기 마지막 제1 형 블록의 적어도 일부의 해시값을 더 포함할 수 있다.The new first type block may further include a hash value of at least a portion of the last type 1 block.

상기 마지막 제2 형 블록의 적어도 일부의 해시값과 상기 마지막 제1 형 블록의 적어도 일부의 해시값을 구분하여 포함할 수 있다.And may include a hash value of at least a portion of the last type 2 block and a hash value of at least a portion of the last type 1 block.

상기 새로운 제1 형 블록은, 상기 마지막 제2 형 블록의 적어도 일부의 해시값과 상기 마지막 제1 형 블록의 적어도 일부의 해시값을 블록헤더에 포함할 수 있다.The new first type block may include in the block header a hash value of at least a portion of the last type 2 block and a hash value of at least a portion of the last type 1 block.

상기 새로운 제1 형 블록은, 모든 서브 브랜치의 마지막 제2 형 블록의 적어도 일부의 해시값을 포함할 수 있다.The new first type block may include hash values of at least some of the last type 2 blocks of all sub-branches.

상기 새로운 제1 형 블록은, 적어도 일부의 해시값이 다른 제1 형 블록에 포함되지 않은 마지막 제2 형 블록의 적어도 일부의 해시값을 포함할 수 있다.The new first type block may include a hash value of at least a portion of a last type 2 block that is not included in a first type block having at least some hash values different from each other.

상기 새로운 제1 형 블록은, 둘 이상의 마지막 제2 형 블록의 적어도 일부의 해시값을 포함하고, 상기 해시값은, 각각의 마지막 제2 형 블록의 적어도 일부로부터 생성된 머클 트리의 루트에 대한 해시값일 수 있다.Wherein the new first type block comprises a hash value of at least a portion of two or more last type 2 blocks and the hash value is a hash value for a root of the merge tree generated from at least a portion of each last type 2 block Lt; / RTI >

상기 마지막 제2 형 블록은, 상기 새로운 제1 형 블록보다 이전에 생성된 블록일 수 있다.The last type 2 block may be a block previously generated before the new type 1 block.

기타 실시예의 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.The details of other embodiments are included in the detailed description and drawings.

본 발명의 일 실시예에 따른 블록체인 시스템은 블록들이 복수의 브랜치로 연결되도록 구성하여 데이터를 효율적이고 체계적으로 관리할 수 있다.The block chain system according to an embodiment of the present invention can efficiently and systematically manage data by configuring the blocks to be connected to a plurality of branches.

또한, 본 발명의 일 실시예에 따른 블록체인 시스템은 블록들이 복수의 브랜치로 연결되더라도 모든 블록의 위변조에 대한 안전성을 확보할 수 있다.In addition, the block-chain system according to an embodiment of the present invention can ensure safety against forgery and falsification of all blocks even if the blocks are connected by a plurality of branches.

본 발명의 실시예들에 따른 효과는 이상에서 예시된 내용에 의해 제한되지 않으며, 더욱 다양한 효과들이 본 명세서 내에 포함되어 있다.The effects according to the embodiments of the present invention are not limited by the contents exemplified above, and more various effects are included in the specification.

도 1은 본 발명의 일 실시예에 따른 블록체인 시스템의 개별 블록의 구성을 도시한 것이다.
도 2는 본 발명의 일 실시예에 따른 블록체인 시스템의 두 개의 블록이 연결된 것을 도시한 것이다.
도 3은 본 발명의 일 실시예에 따른 블록체인 시스템의 데이터를 설명하기 위한 도면이다.
도 4는 블록체인에서 블록의 표시 방법을 설명하기 위한 도면이다.
도 5는 본 발명의 일 실시예에 따른 블록체인 시스템의 예시 도면이다.
도 6은 본 발명의 일 실시예에 따른 블록체인 시스템의 마지막 제1 형 블록을 설명하기 위한 도면이다.
도 7은 본 발명의 다른 일 실시예에 따른 블록체인 시스템의 예시 도면이다.
도 8 및 도 9는 본 발명의 또 다른 일 실시예에 따른 블록체인 시스템의 예시 도면이다.
도 10은 본 발명의 일 실시예에 따른 블록체인을 이용한 데이터 관리 방법을 설명하기 위한 순서도이다.
1 shows the construction of individual blocks of a block-chain system according to an embodiment of the invention.
Figure 2 illustrates two blocks of a block chain system in accordance with an embodiment of the present invention.
3 is a diagram for explaining data of a block-chain system according to an embodiment of the present invention.
4 is a diagram for explaining a display method of a block in a block chain.
5 is an exemplary diagram of a block-chain system in accordance with an embodiment of the present invention.
6 is a diagram for explaining a final first type block of a block chain system according to an embodiment of the present invention.
7 is an exemplary diagram of a block chain system according to another embodiment of the present invention.
Figures 8 and 9 are illustrations of a block chain system in accordance with another embodiment of the present invention.
10 is a flowchart illustrating a data management method using a block chain according to an embodiment of the present invention.

이하, 첨부된 도면을 참조하여 본 발명의 실시예들을 상세히 설명한다. 본 발명을 설명하는데 있어서, 해당 분야에 이미 공지된 기술 또는 구성에 대한 구체적인 설명을 부가하는 것이 본 발명의 요지를 불분명하게 할 수 있다고 판단되는 경우에는 상세한 설명에서 이를 일부 생략하도록 한다. 또한, 본 명세서에서 사용되는 용어들은 본 발명의 실시예들을 적절히 표현하기 위해 사용된 용어들로서, 이는 해당 분야의 관련된 사람 또는 관례 등에 따라 달라질 수 있다. 따라서, 본 용어들에 대한 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings. In describing the present invention, if it is judged that it is possible to make the gist of the present invention obscure by adding a detailed description of a technique or configuration already known in the field, it is omitted from the detailed description. In addition, terms used in the present specification are terms used to appropriately express the embodiments of the present invention, which may vary depending on the person or custom in the relevant field. Therefore, the definitions of these terms should be based on the contents throughout this specification.

이하, 첨부한 도 1 내지 도 5를 참조하여, 본 발명의 일 실시예에 따른 블록체인 시스템에 대해 설명한다.Hereinafter, a block-chain system according to an embodiment of the present invention will be described with reference to FIGS. 1 to 5 attached hereto.

도 1은 본 발명의 일 실시예에 따른 블록체인 시스템의 개별 블록의 구성을 도시한 것이다. 도 2는 본 발명의 일 실시예에 따른 블록체인 시스템의 두 개의 블록이 연결된 것을 도시한 것이다.1 shows the construction of individual blocks of a block-chain system according to an embodiment of the invention. Figure 2 illustrates two blocks of a block chain system in accordance with an embodiment of the present invention.

도 1을 참조하면, 하나의 블록(100)은 블록헤더(110) 및 블록몸체(120)를 포함한다.Referring to FIG. 1, one block 100 includes a block header 110 and a block body 120.

블록헤더(110)는 블록의 타이틀, 직전 블록의 해시값, 블록몸체의 해시값, 타임스탬프, 난이도 목표 및 난스 등을 포함할 수 있다. 블록헤더(110)가 포함하는 정보는 다양하게 변경되어 구성될 수 있다.The block header 110 may include a title of a block, a hash value of a previous block, a hash value of a block body, a timestamp, a difficulty target, and a nonce. The information included in the block header 110 may be configured in various ways.

블록의 타이틀은 블록(100)을 다른 블록과 구분할 수 있는 식별 정보를 의미한다. 블록의 타이틀은 다른 블록과의 연결 관계에 따라 정해질 수 있다.The title of a block indicates identification information that can distinguish the block 100 from other blocks. The title of a block can be determined according to the connection relationship with other blocks.

직전 블록의 해시값은 브랜치에서 해당 블록 이전에 생성되어 해당 블록과 연결되는 블록의 해시값이다. 직전 블록의 해시값은 직전 블록의 전체 또는 선택된 일부의 정보의 해시값일 수 있다. 예를 들어, 직전 블록의 해시값은 직전 블록의 블록헤더의 정보의 해시값인 것으로 정의될 수 있다. 블록헤더에 직전 블록의 해시값이 포함됨으로서, 블록 간의 연결성이 강화될 수 있다. 블록 간의 연결성이 강화되는 것은 블록체인 시스템 전체의 보안성이 향상되는 것을 의미한다.The hash value of the immediately preceding block is a hash value of a block generated before the corresponding block in the branch and connected to the corresponding block. The hash value of the immediately preceding block may be the hash value of the entire or selected part of the immediately preceding block. For example, the hash value of the previous block may be defined as a hash value of the information of the block header of the immediately preceding block. By including the hash value of the immediately preceding block in the block header, the connectivity between the blocks can be enhanced. The enhancement of the connectivity between the blocks means that the security of the entire block chain system is improved.

블록몸체의 해시값은 해당 블록의 블록몸체(120)가 포함하는 데이터의 해시값이다. 후술하는 것과 같이, 블록몸체(120)는 데이터를 포함한다. 블록몸체의 해시값은 블록몸체가 포함하는 데이터의 전체 또는 선택된 일부의 해시값일 수 있다. 블록몸체의 해시값은 다양한 방식으로 결정될 수 있다. 예를 들어, 블록몸체의 해시값은 블록몸체(120)의 데이터로부터 생성된 머클 트리의 루트에 대한 해시값일 수 있다. 블록몸체의 해시값은 블록몸체(120)의 데이터의 요약본에 해당하는 것으로, 상대적으로 크기가 큰 블록몸체(120)의 데이터를 효율적으로 관리하고 검증할 수 있게 한다.The hash value of the block body is the hash value of the data contained in the block body 120 of the block. As will be described later, the block body 120 includes data. The hash value of the block body may be a hash value of the entire or selected portion of the data that the block body contains. The hash value of the block body can be determined in various ways. For example, the hash value of the block body may be a hash value for the root of the merge 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, which enables efficient management and verification of data of the block body 120 having a relatively large size.

타임스탬프(time stamp)는 해당 블록의 생성시간에 관한 정보이다.The time stamp is information on the generation time of the corresponding block.

난이도 목표는 해당 블록의 작업증명 알고리즘에 대한 난이도 목표이다. 이는 해당 블록의 난스를 찾는데 필요한 해싱파워를 결정하는 것에 관한 정보이다.The difficulty goal is the difficulty goal for the task proof algorithm of the block. This is information about determining the hashing power needed to find the nonce of the block.

난스(nonce)는 해당 블록의 작업증명 알고리즘에 사용되는 카운터 정보이다.The nonce is the counter information used in the task proof algorithm of the block.

블록헤더(110)에는 상술한 정보 중 일부가 제외될 수도 있고, 다른 정보가 추가로 포함될 수도 있다.In the block header 110, some of the above-described information may be excluded, or other information may be additionally included.

블록몸체(120)는 블록(100)이 저장하고 관리하는 데이터를 포함한다. 데이터는 디지털 데이터에 해당한다. 데이터는 다양한 형태의 자료일 수 있다. 예를 들어, 데이터는 디지털 컨텐츠, 문서 정보, 계좌 정보, 거래 정보, 인사 정보, 생산 이력 정보, 제품 또는 건축물의 설계 및 도면, 사운드 정보 등이 가능하며, 특정한 형태로 한정되는 것은 아니다.The block body 120 includes data that the block 100 stores and manages. The data corresponds to digital data. The data can be of various types of data. For example, the data may include digital contents, document information, account information, transaction information, personnel information, production history information, design and drawings of products or buildings, sound information, and the like.

블록몸체(120)가 포함하는 데이터는 블록에 따라서 종류 또는 크기 등이 제한될 수 있다. 이러한 데이터의 제한은 모든 블록에 공통으로 적용될 수도 있고, 특정한 몇몇 블록에만 선택적으로 적용될 수도 있다. 또한, 이러한 데이터의 제한은 필요에 따라 변경될 수 있다.The data included in the block body 120 may be limited in type or size depending on the block. The limitation of such data may be applied to all the blocks in common, or may be selectively applied to only certain specific blocks. Further, the limitation of such data can be changed as needed.

도 2를 참조하면, 두 개의 블록은 서로 연결될 수 있다. 구체적으로, 복수의 블록은 순차적으로 연결되어 브랜치를 형성할 수 있다. 여기서, 브랜치란 복수의 블록들이 서로 선형적으로 연결된 블록들의 집합을 의미한다. 도 2에는 이러한 브랜치에서 임의의 두 개의 블록이 연결된 상태가 도시되어 있다. Referring to FIG. 2, the two blocks may be connected to each other. Specifically, a plurality of blocks may be sequentially connected to form a branch. Here, a branch means a set of blocks in which a plurality of blocks are linearly connected with each other. FIG. 2 shows a state where two arbitrary blocks are connected in this branch.

도 2를 참조하면, 브랜치에서 임의의 하나의 블록(200)은 브랜치 내에서 직전에 생성된 블록(100)과 연결되게 된다. 블록(200)은 직전에 생성된 블록(100)의 해시값을 포함하는 것을 통해 연결된다. 구체적으로, 블록(200)은 블록헤더(210)에 직전에 생성된 블록(100)의 해시값을 포함하는 것을 통해 연결될 수 있다.Referring to FIG. 2, any one block 200 in the branch is connected to the immediately preceding block 100 in the branch. The block 200 is concatenated by including the hash value of the immediately preceding block 100. Specifically, block 200 may be concatenated by including a hash value of block 100 that was generated in block header 210 immediately before.

직전에 생성된 블록(100)의 해시값은 상술한 것과 같이, 직전 블록(100)의 전체 또는 선택된 일부의 정보의 해시값일 수 있다. 예를 들어, 첨부한 도 2에 도시된 것과 같이 직전 블록(100)의 해시값은 직전 블록의 블록헤더(110)의 정보의 해시값인 것으로 정의될 수 있다. 직전 블록의 해시값은 블록을 설계하는 사람의 기호 및 판단에 따라 다양하게 변경될 수 있다.The hash value of the immediately preceding block 100 may be a hash value of information of all or a selected portion of the immediately preceding block 100, as described above. For example, as shown in FIG. 2, the hash value of the immediately preceding block 100 may be defined as a hash value of the information of the block header 110 of the immediately preceding block. The hash value of the immediately preceding block can be variously changed according to the preference and judgment of the person designing the block.

도 3을 참조하여, 본 발명의 일 실시예에 따른 블록체인 시스템의 데이터에 대해 설명하도록 한다.Referring to FIG. 3, data of a block-chain system according to an embodiment of the present invention will be described.

본 발명의 블록체인 시스템은 복수의 블록을 포함한다. 하나의 블록은 하나의 데이터를 포함한다. 여기서 데이터는 하나의 블록에 포함되는 정보의 단위 집합을 의미한다. 구체적으로, 블록의 블록몸체는 데이터를 포함할 수 있다.The block chain system of the present invention includes a plurality of blocks. One block contains one piece of data. Here, the data means a unit set of information included in one block. In particular, the block body of the block may contain data.

블록체인 시스템의 블록이 포함하는 데이터는 제1 형 데이터 및 제2 형 데이터로 구분될 수 있다. 제1 형 데이터는 다른 데이터에 기반하지 않은 데이터에 해당한다. 제2 형 데이터는 제1 형 데이터에 기반한 데이터에 해당한다.The data included in the block of the block chain system can be divided into the first type data and the second type data. Type 1 data corresponds to data that is not based on other data. The second type data corresponds to the data based on the first type data.

도 3을 참조하면, 제1 형 데이터(10)는 신규 자료를 생성하는 것에 관한 데이터일 수 있다. 그리고 제2 형 데이터(20)는 기존 자료를 수정, 변경, 삭제, 폐기, 조회 및 전달 중 적어도 어느 하나를 수행하는 것에 관한 데이터일 수 있다. 여기서, 기존 자료란 제1 형 데이터(10)가 생성한 자료를 의미한다.Referring to FIG. 3, the first type data 10 may be data relating to generating new data. The second type data 20 may be data related to performing at least one of modification, modification, deletion, discarding, inquiry, and delivery of existing data. Here, the existing data means the data generated by the first type data 10.

구체적으로, 데이터는 디지털 컨텐츠, 문서, 계좌, 거래, 인사, 생산 이력, 설계, 도면, 사운드, 프로그래밍 코드 등이 될 수 있다. 그리고 제1 형 데이터 및 제2 형 데이터도 이러한 다양한 종류에 따라 구분될 수 있다. 제1 형 데이터 및 제2 형 데이터는 상술한 것에 한정되지 않는다.Specifically, the data can be digital content, documents, accounts, transactions, greetings, production histories, designs, drawings, sounds, programming codes, and the like. Also, the first type data and the second type data can be classified according to these various kinds. The first type data and the second type data are not limited to those described above.

도 4를 참조하여, 도 5 내지 도 9에서 도시되는 블록체인을 구성하는 블록에 대해서 간략하게 설명하도록 한다.Referring to Fig. 4, the blocks constituting the block chain shown in Figs. 5 to 9 will be briefly described.

블록은 도 1 및 도 2를 참조하여 설명한 것과 같이, 블록헤더와 블록몸체를 포함한다. 그러나 설명의 편의성을 위해 도 5 내지 도 9에서는 도 3에 도시된 방식으로 개별 블록을 표시하도록 한다.The block includes a block header and a block body, as described with reference to FIG. 1 and FIG. However, for convenience of explanation, FIGS. 5 to 9 show individual blocks in the manner shown in FIG.

도 3을 참조하면, 하나의 블록을 설명하는데 있어서, 블록의 타이틀, 직전 블록의 해시값 및 당해 블록의 해시값이 표시된다. 하나의 블록은 상하로 배열된 3칸의 표에서, 첫번째 칸에는 블록의 타이틀이 표시되고, 두번째 칸에는 직전 블록의 해시값이 표시되고, 세번째 칸에는 당해 블록의 해시값이 표시된다.Referring to FIG. 3, in describing one block, a title of a block, a hash value of a previous block, and a hash value of the block are displayed. One block is a table of three columns arranged vertically. In the first column, the title of the block is displayed. In the second column, the hash value of the previous block is displayed. In the third column, the hash value of the block is displayed.

아래에서 설명할 마지막 제1 형 블록은 마지막 제2 형 노드의 해시값을 더 포함할 수 있다. 또한, 마지막 제1 형 블록을 설명하는데 있어서, 블록의 타이틀, 직전 블록의 해시값 및 당해 블록의 해시값에 더불어 마지막 제2 형 노드의 해시값이 추가로 표시될 수 있다. 마지막 제1 형 블록은 상하로 배열된 4칸의 표에서, 첫번째 칸에는 블록의 타이틀이 표시되고, 두번째 칸에는 직전 블록의 해시값이 표시되고, 세번째 칸에는 마지막 제2 형 노드의 해시값이 표시되고, 네번째 칸에는 당해 블록의 해시값이 표시된다. 마지막 제2 형 노드의 해시값에 대해서는 아래에서 상세하게 설명하도록 한다.The last type 1 block to be described below may further include the hash value of the last type 2 node. In describing the last type 1 block, the hash value of the last type 2 node may be additionally displayed in addition to the title of the block, the hash value of the previous block, and the hash value of the block. In the last type 1 block, the title of the block is displayed in the first column, the hash value of the previous block is displayed in the second column, and the hash value of the last type 2 node is displayed in the third column And the fourth column shows the hash value of the block. The hash value of the last type 2 node will be described in detail below.

블록의 타이틀은 Bn 또는 Bnm과 같은 형태로 표시된다. 블록의 타이틀이 Bn이라는 것은 상기 블록이 메인 브랜치의 n번째 블록이라는 것을 의미한다. 그리고 블록의 타이틀이 Bnm이라는 것은 상기 블록이 메인 브랜치의 n번째 블록에서 분기되는 서브 브랜치의 m번째 제2 형 블록이라는 것을 의미한다. 임의의 서브 브랜치의 m번째 제2 형 블록은 상기 서브 브랜치의 m+1번째 블록에 해당한다.The title of the block is displayed 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. And the title of the block is Bnm, this means that the block is the mth second type block of the sub branch that branches from the nth block of the main branch. And the m < th > second type block of an arbitrary sub branch corresponds to the (m + 1) th block of the sub branch.

어느 블록의 해시값은 H라는 기호를 이용하여 표시된다. 예를 들어, 블록의 타이틀이 Bnm인 블록의 해시값은 Hnm으로 표시되게 된다. 도 4를 참조하면, 블록의 타이틀이 Bnm인 블록의 직전 블록은 블록의 타이틀이 Bn(m-1)인 블록인 것이고, 직전 블록의 해시값은 Hn(m-1)인 것이다.The hash value of a certain block is indicated by using the symbol " H ". For example, a hash value of a block whose title is Bnm is denoted by Hnm. Referring to FIG. 4, a block immediately before a block whose title is Bnm is a block whose title is Bn (m-1), and a hash value of a previous block is Hn (m-1).

상기 블록의 타이틀, 해시값의 기호 등을 설명하면서 언급한 메인 브랜치, 서브 브랜치, 제2 형 블록 등에 대해서는 이하 도 5를 참조하여 상세하게 설명하도록 한다.The main branch, the sub-branch, the second type block, and so on, which are described while explaining the title of the block, the symbol of the hash value, etc. will be described in detail with reference to FIG.

도 5를 참조하여, 본 발명의 일 실시예에 따른 블록체인 시스템에 대해서 설명하도록 한다. 도 5는 본 발명의 일 실시예에 따른 블록체인 시스템의 예시 도면이다.Referring to FIG. 5, a block chain system according to an embodiment of the present invention will be described. 5 is an exemplary diagram of a block-chain system in accordance with an embodiment of the present invention.

본 발명의 블록체인 시스템은 복수의 블록을 포함한다. 하나의 블록은 하나의 데이터를 포함한다. 상술한 것과 같이, 데이터는 제1 형 데이터(10) 및 제2 형 데이터(20)로 구분될 수 있다. 블록은 포함하는 데이터의 종류에 따라 제1 형 블록(100) 및 제2 형 블록(200)으로 구분될 수 있다. 제1 형 블록(100)은 제1 형 데이터(10)를 포함하는 블록에 해당한다. 또한, 제2 형 블록(200)은 제2 형 데이터(20)를 포함하는 블록에 해당한다.The block chain system of the present invention includes a plurality of blocks. One block contains one piece of data. As described above, the data can 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.

본 발명의 블록체인 시스템은 메인 브랜치(1000) 및 적어도 하나의 서브 브랜치(2000)를 포함한다. 여기서, 브랜치란 복수의 블록들이 서로 선형적으로 연결된 블록들의 집합을 의미한다.The block chain system of the present invention includes a main branch 1000 and at least one sub-branch 2000. Here, a branch means a set of blocks in which a plurality of blocks are linearly connected with each other.

메인 브랜치(1000)는 최초로 생성된 블록(genesis block)과 이에 연결된 적어도 하나의 연결 블록을 포함한다. 메인 브랜치(1000)는 최초로 생성된 블록에서 연결 블록이 일 방향으로 분기되기 않고 연결된다. 메인 브랜치(1000)에서 분기되어 다른 브랜치가 형성될 수는 있지만 분기된 블록들은 메인 브랜치(1000)에 포함되는 것이 아니다. 분기된 블록들은 후술할 서브 브랜치(2000)에 포함될 수 있으며, 이에 대해서는 아래에서 설명하도록 한다.The main branch 1000 includes a first genesis block and at least one connection block connected thereto. In the main branch 1000, the connection block is connected in the first generated block without branching in one direction. Branches may not be included in the main branch 1000 although other branches may be formed in the main branch 1000. The branched blocks may be included in the sub-branch 2000, which will be described below.

메인 브랜치(1000)는 제1 형 블록(100)들로 구성된다. 즉, 메인 브랜치(1000)가 포함하는 최초로 생성된 블록 및 연결 블록은 모두 제1 형 블록(100)에 해당한다. 메인 브랜치(1000)가 포함하는 블록들은 생성된 순서에 따라 순서대로 연결된다. 블록의 연결은 당해 블록이 직전에 생성된 블록의 적어도 일부의 해시값을 포함하는 것에 의해 달성된다. 이러한 연결 형태에 대해서는 도 5에 블록 사이의 화살표를 통해 표시되어 있다. 따라서 최초로 생성된 블록을 제외하고 하나의 제1 형 블록은 직전에 생성된 제1 형 블록의 적어도 일부의 해시값을 포함한다.The main branch 1000 is comprised of first type blocks 100. That is, the first 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 created order. The concatenation of the blocks is accomplished by the block containing the hash value of at least a portion of the immediately preceding block. This type of connection is indicated by an arrow between blocks in Fig. Thus, except for the first generated block, one type 1 block includes at least some hash values of the immediately preceding type 1 block.

서브 브랜치(2000)는 메인 브랜치(1000)로부터 분기되어 형성된 브랜치이다. 서브 브랜치(2000)는 루트 블록(root block)과 이에 연결된 적어도 하나의 연결 블록을 포함한다. 루트 블록은 메인 브랜치(1000)에도 포함되는 블록으로, 서브 브랜치(2000)의 분기가 시작되는 블록이다. 루트 블록은 당해 서브 브랜치(2000)에서 최초로 생성된 블록(genesis block)에 해당한다.The sub branch 2000 is a branch formed 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 a block included in the main branch 1000, and is a block in which branching of the sub branch 2000 starts. The root block corresponds to a first genesis block in the sub-branch 2000.

여기서, 루트 블록은 제1 형 블록(100)에 해당한다. 그리고 서브 브랜치(2000)가 포함하는 연결 블록은 제2 형 블록(200)에 해당한다. 하나의 서브 브랜치(2000)가 포함하는 블록들은 생성된 순서에 따라 순서대로 연결된다. 블록의 연결은 당해 블록이 직전에 생성된 블록의 적어도 일부의 해시값을 포함하는 것에 의해 달성된다. 따라서 하나의 서브 브랜치(2000)에서 최초로 생성된 연결 블록(제2 형 블록)은 당해 서브 브랜치(2000)의 연결되는 루트 블록의 적어도 일부의 해시값을 포함한다. 또한, 하나의 서브 브랜치(2000)에서 최초로 생성되지 않은 연결 블록(제2 형 블록)은 당해 서브 브랜치(2000)에 포함되고 직전에 생성된 제2 형 블록의 적어도 일부의 해시값을 포함한다. 이러한 연결 형태에 대해서는 도 5에 블록 사이의 화살표를 통해 표시되어 있다.Here, 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. The blocks included in one sub-branch 2000 are connected in order according to the order in which they are generated. The concatenation of the blocks is accomplished by the block containing the hash value of at least a portion of the immediately preceding block. Therefore, the first connection block (the second type block) generated in one sub-branch 2000 includes the hash value of at least a part of the connected root block of the sub-branch 2000. In addition, the connection block (the second type block) not originally generated in one sub-branch 2000 includes the hash value of at least a part of the second type block included in the sub-branch 2000 and generated immediately before. This type of connection is indicated by an arrow between blocks in Fig.

서브 브랜치(2000)는 적어도 하나의 연결 블록(제2 형 블록)을 포함하는 것을 조건으로 한다. 경우에 따라서, 연결 블록(제2 형 블록)이 없고 루트 블록(제1 형 블록)만이 존재하는 높이(길이)가 1개 블록인 서브 브랜치를 생각해볼 수도 있겠지만, 본 명세서에서는 이러한 경우 그러한 서브 브랜치가 존재하지 않는 것으로 정의한다. 즉, 설명의 편의성을 위해서 서브 브랜치(2000)는 하나의 루트 블록(제1 형 블록)과 이에 연결된 적어도 하나의 연결 블록(제2 형 블록)이 있는 것을 조건으로 정의한다.Sub-branch 2000 is conditional on including at least one connection block (second type block). In some cases, a sub-branch in which there is no link block (second type block) and only one root block (first type block) exists is one block in height (length) Is not present. That is, for convenience of description, the sub-branch 2000 defines that there is one root block (first type block) and at least one connection block (second type block) connected thereto.

서브 브랜치(2000)는 하나 또는 둘 이상이 형성될 수 있다. 서브 브랜치(2000)는 하나의 루트 블록에서 하나 또는 둘 이상이 연장되는 형태로 형성될 수 있다. 그러나 첨부한 도면 및 이하에서는 설명의 편의성을 위해서 하나의 루트 블록에서 하나의 서브 브랜치(2000)만이 형성되는 것을 예를 들어 설명하도록 한다. 그러나 이러한 설명이 본 발명에서 하나의 루트 블록에서 둘 이상의 서브 브랜치(2000)가 연장되는 것을 제외하는 것은 아니다.One or more than two sub-branches 2000 may be formed. The sub-branches 2000 may be formed in a form in which one or more of the sub-branches 2000 extend from one root block. However, for convenience of description, it is assumed that only one sub-branch 2000 is formed in one root block in the accompanying drawings and the following description. However, this description does not exclude that two or more sub-branches 2000 are extended in one root block in the present invention.

하나의 루트 블록에서 하나의 서브 브랜치(2000)가 연장되어 형성되는 경우라면, 서브 브랜치(2000)는 최대 메인 브랜치(1000)의 블록의 개수까지 형성되는 것이 가능하다.If one sub-branch 2000 is formed in one root block, the sub-branch 2000 can be formed up to the number of blocks of the largest main branch 1000.

도 5에서는 블록체인 시스템이 메인 브랜치(1000)와 서브 브랜치(2000)로 구성되고, 블록들이 제1 형 블록(100)과 제2 형 블록(200)으로 구성되는 것을 도시하였지만, 경우에 따라서는 메인 브랜치, 서브 브랜치 및 서브-서브 브랜치로 구성되고, 블록들도 제1 형 블록, 제2 형 블록 및 제3 형 블록으로 구성될 수도 있다. 여기서, 서브-서브 브랜치는 서브 브랜치를 메인 브랜치로 하고, 서브 브랜치에서 다시 분기된 브랜치를 의미한다. 서브-서브 브랜치의 루트 블록은 서브 브랜치에 포함되는 제2 형 블록이 될 수 있다. 그리고 서브-서브 브랜치의 연결 블록은 제3 형 블록이 될 수 있다. 이와 같이, 본 발명의 블록체인 시스템에서 메인 브랜치와 서브 브랜치는 상대적인 것으로, 서브 브랜치가 연쇄적으로 생성될 수 있다.Although FIG. 5 illustrates that the block chain system is composed of the main branch 1000 and the sub branch 2000, and the blocks are composed of the first type block 100 and the second type block 200, A main branch, a sub branch, and a sub-branch, and the blocks may also be composed of a first type block, a second type block, and a third type block. Here, the sub-sub-branch means a branch branching from a sub-branch to a sub-branch with a main branch. The root block of the sub-sub-branch may be a type 2 block included in the sub-branch. And the connection block of the sub-sub-branch may be a type 3 block. As described above, in the block-chain system of the present invention, the main branch and the sub-branch are relative, and the sub-branch may be generated in a cascade fashion.

이하, 도 5를 참조하여, 마지막 제1 형 블록(190)에 대해서 설명하도록 한다. 도 5에 도시된 블록체인 시스템은 본 발명의 블록체인 시스템의 일 예시에 불과하고, 이러한 블록체인 시스템의 마지막 제1 형 블록(190)도 본 발명의 설명을 위한 예시에 불과하다.The final type 1 block 190 will now be described with reference to FIG. The block chain system shown in FIG. 5 is only one example of a block chain system of the present invention, and the last type 1 block 190 of such a block chain system is only an example for explanation of the present invention.

도 5를 참조하면, 메인 브랜치(1000)에는 마지막 블록(190)이 존재한다. 마지막 블록(190)은 마지막 제1 형 블록에 해당한다. 구체적으로, 마지막 블록(190)은 메인 브랜치(1000)에서 최초로 생성된 블록을 시작으로 하여 연결된 브랜치의 마지막 제1 형 블록(190)에 해당한다. 도 5에서는 마지막 제1 형 블록(190)이 B5 블록에 해당한다. 도 5에 있어서, 마지막 제1 형 블록(190)은 도 5에 도시된 다른 모든 블록보다 마지막에 생성된 블록에 해당한다.Referring to FIG. 5, a last block 190 exists in the main branch 1000. The last block 190 corresponds to the last type 1 block. Specifically, the last block 190 corresponds to the last first type block 190 of the branch connected starting with the first generated block in the main branch 1000. In FIG. 5, the last first type block 190 corresponds to a B5 block. In FIG. 5, the last type 1 block 190 corresponds to the last block generated in all the other blocks shown in FIG.

도 5에 도시된 마지막 제1 형 블록(B5, 190)은 직전 블록의 해시값(H4) 등 다른 블록의 해시값을 포함하지만, 마지막 제1 형 블록의 해시값(H5)은 다른 블록에 포함되지 않는다. 이후에 메인 브랜치(1000)에 추가로 제1 형 블록이 연결되도록 생성된다면, 상기 마지막 제1 형 블록의 해시값(H5)이 추가로 생성되는 블록에 포함될 수 있지만, 도 5를 참조하여 설명하는 시점에서는 마지막 제1 형 블록의 해시값(H5)은 다른 블록에 포함되지 않는다.5 includes the hash value of another block such as the hash value H4 of the previous block, but the hash value H5 of the last type 1 block is included in another block It does not. The hash value H5 of the last type 1 block may be included in the block in which the first type block is additionally connected in the main branch 1000, At this point in time, the hash value (H5) of the last type 1 block is not included in another block.

마지막 제1 형 블록(B5, 190)은 직전 블록의 해시값(H4) 이외에 다른 블록의 해시값을 추가로 포함한다. 여기서, 직전 블록의 해시값(H4)은 메인 브랜치(1000)에 포함되고 상기 마지막 제1 형 블록(B5, 190)보다 직전에 생성된 제1 형 블록(B4)의 적어도 일부의 해시값에 해당한다. 그리고 다른 블록의 해시값이란 상기 직전 블록의 해시값과 구분되는 해시값이다. 이하, 상기 다른 블록의 해시값에 대해서 상세하게 설명한다.The last first type blocks B5 and 190 further include hash values of other blocks in addition to the hash value H4 of the previous block. The hash value H4 of the immediately preceding block corresponds to the hash value of at least a part of the first type block B4 included in the main branch 1000 and generated immediately before the last first type block B5, do. The hash value of another block is a hash value distinguished from the hash value of the immediately preceding block. Hereinafter, the hash values of the other blocks will be described in detail.

도 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)의 마지막 블록에 해당하는 블록을 의미한다.5, the last block type B5, 190 may include a hash value (Hsum) of at least a portion of the last type 2 block 290 of the sub-branch 2000. Here, the range of the last type 2 block 290 is determined at the time when the last first type block B5, 190 is generated. Specifically, the sub branch 2000 connects the first type blocks B1, B2, B3, and B4 of the main branch 1000 generated before the last first type blocks B5 and 190 as root blocks It is a branch. And the last type 2 block 290 corresponds to the last type 2 block 290 of the branch connected starting with the root block of this sub-branch 2000. The last type 2 block 290 is a block that was generated before the last type 1 block B 5, 190. That is, the last second type block 290 is a block corresponding to the last block of the sub-branch 2000 when the last first type block B5, 190 is generated.

마지막 제1 형 블록(B5, 190)이 생성되는 시점에서 복수의 서브 브랜치(2000)가 존재할 수 있다. 그리고 마지막 제2 형 블록(290)도 복수로 존재할 수 있다. 구체적으로, 마지막 제2 형 블록(290)은 복수의 서브 브랜치에 각각 하나씩 존재한다. 도 5에서는 마지막 제2 형 블록(290)이 B13, B33 및 B44인 것으로 도시되어 있다. 상술한 것과 같이, 서브 브랜치(2000)는 적어도 하나의 제2 형 블록(200)을 포함하는 것을 조건으로 하기 때문에 서브 브랜치(2000)의 개수만큼 마지막 제2 형 블록(290)이 존재하게 된다.A plurality of sub-branches 2000 may exist at the time when the last first type blocks B5 and 190 are generated. And the last second type block 290 may exist in plural. Specifically, one last sub-block 290 is present in each of the plurality of sub-branches. In Figure 5, the last second type block 290 is shown as B13, B33, and B44. As described above, since the sub-branch 2000 includes at least one second-type block 200, the last second-type block 290 exists in the number of the sub-branches 2000.

도 5에 도시된 것과는 다르지만, 마지막 제2 형 블록(290)이 하나가 존재하는 경우, 마지막 제1 형 블록(190)은 하나의 마지막 제2 형 블록(290)의 적어도 일부의 해시값을 포함할 수 있다. 5, if there is one last type 2 block 290, then the last type 1 block 190 includes the hash value of at least a portion of one last type 2 block 290 can do.

또한, 도 5에 도시된 것과 같이, 마지막 제2 형 블록(290)이 복수로 존재하는 경우, 마지막 제1 형 블록(B5, 190)은 모든 마지막 제2 형 블록(B13, B33, B44)의 적어도 일부의 해시값을 포함할 수 있다. 여기서, 마지막 제2 형 블록(B13, B33, B44)의 적어도 일부의 해시값은 마지막 제2 형 블록(B13, B33, B44)의 블록헤더의 해시값일 수 있다.5, if there are a plurality of the last second type blocks 290, the last first type blocks B5 and 190 may be the same as those of all the last second type blocks B13, B33, and B44. And may include at least some hash values. Here, the hash value of at least some of the last second type blocks B13, B33, and B44 may be the hash value of the block header of the last second type blocks B13, B33, and 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 형 블록이 연결되도록 생성된다면, 추가로 생성되는 블록에 포함되어 연쇄적으로 연결되게 된다.The hash value (Hsum) of at least a portion of this last type 2 block may be included in the block header of the last type 1 block (B5, 190). The hash value (Hsum) of at least a part of the last type 2 block and the hash value (Hsum) contained in the main branch and generated immediately before the last type 1 block B5, 190 A hash value H4 of at least a portion of the first type block may be included. The hash value (Hsum) of at least a portion of the last type 2 block and the hash value (H4) of at least a portion of the immediately-generated first type block are distinguished from the block header of the last type block (B5, 190) . Thus, the hash values Hsum, H4 may be used for verification of the last type 2 block 290 and the main branch 1000. If the hash value H5 of the block header of the last first type block 190 including such hash values Hsum and H4 is generated so that the first type block is further connected to the main branch 1000, Are included in the blocks generated as < / RTI >

도 6을 참조하여, 마지막 제1 형 블록(B5, 190)이 복수의 마지막 제2 형 블록의 적어도 일부의 해시값(Hsum)을 포함하는 경우에 대해서 설명하도록 한다. 마지막 제2 형 블록(290)이 복수인 경우, 마지막 제1 형 블록(190)이 포함하는 해시값은 각각의 마지막 제2 형 블록(290)의 적어도 일부로부터 생성된 머클 트리의 루트에 대한 해시값(Hsum)일 수 있다. 구체적으로, 마지막 제1 형 블록(190)은 각각의 마지막 제2 형 블록의 블록헤더의 해시값(H13, H33, H44)으로부터 생성된 머클 트리의 루트에 대한 해시값(Hsum)을 포함할 수 있다.Referring to FIG. 6, the case where the last first type block B5, 190 includes a hash value (Hsum) of at least a part of a plurality of last second type blocks will be described. If there are a plurality of the last second type blocks 290, the hash values included in the last type 1 block 190 are the hash values for the root of the merge tree generated from at least a portion of each last type 2 block 290, Value (Hsum). Specifically, the last type 1 block 190 may include a hash value (Hsum) for the root of the merge tree generated from the hash values (H13, H33, H44) of the block header of each last type 2 block have.

도 5 및 도 6을 참조하여 설명한 블록체인 시스템은 특정 블록의 검증을 위해서 전체 블록체인 데이터를 저장하고 이용하지 않을 수 있다. 구체적으로, 특정 블록이 제1 형 블록(100)일 경우, 노드는 메인 브랜치(1000)의 블록체인 데이터만을 이용하여 상기 특정 블록의 검증이 가능하다. 또한, 특정 블록이 제2 형 블록(200)일 경우, 노드는 상기 특정 블록이 포함된 서브 브랜치(2000)와 메인 브랜치(1000)의 블록체인 데이터만을 이용하여 상기 특정 블록의 검증이 가능하다. 이에 따라 노드가 저장하고 검증해야 하는 블록의 크기를 줄일 수 있다.The block-chain system described with reference to FIGS. 5 and 6 may not store and use the entire block chain data for verification of a specific block. Specifically, when the specific block is the first type block 100, the node can verify the specific block using only the block chain data of the main branch 1000. When the specific block is the second type block 200, the node can verify the specific block using only the block chain data of the main branch 2000 and the main branch 1000 including the specific block. This reduces the size of blocks that the node must store and verify.

또한, 상술한 마지막 제1 형 블록(190)이 마지막 제2 형 블록(290)의 적어도 일부의 해시값(Hsum)을 포함하는 것에 의해서, 마지막 제2 형 블록(290)의 안전성이 강화될 수 있다.Also, by including the hash value (Hsum) of at least a portion of the last type 2 block 290 as described above, the safety of the last type 2 block 290 can be enhanced have.

통상적인 블록체인 시스템에서는 마지막 블록의 안전성이 상대적으로 취약하다는 단점이 있다. 이는 마지막 블록은 그것의 해시값이 다른 블록에 다시 포함되지 않기 때문이다. 상술한 메인 브랜치 및 적어도 하나의 서브 브랜치를 포함하는 블록체인 시스템은 브랜치의 개수만큼 마지막 블록이 존재하여, 상대적으로 안전성이 취약한 마지막 블록이 많을 수 있다.In the conventional block chain system, 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. In the block-chain system including the main branch and the at least one sub-branch described above, there may be a number of last blocks corresponding to the number of branches, and there may be many last blocks that are relatively insecure.

그러나 상술한 것과 같이 마지막 제1 형 블록(190)이 마지막 제2 형 블록(290)의 적어도 일부의 해시값(Hsum)을 포함하여, 마지막 제2 형 블록(290)의 안전성을 확보할 수 있다. 구체적으로, 마지막 제2 형 블록(290)은 개별 서브 브랜치(2000)의 마지막 블록이지만, 그것의 해시값이 마지막 제1 형 블록(190)에 포함되게 되어 상술한 취약성이 극복될 수 있다. 결과적으로, 본 발명의 블록체인 시스템에서 실질적인 마지막 블록은 통상적인 블록체인 시스템과 마찬가지로 하나만 존재하게 된다.However, as described above, the last type 1 block 190 includes the hash value Hsum of at least a portion of the last type 2 block 290 to ensure the safety of the last type 2 block 290 . Specifically, the last type 2 block 290 is the last block of the individual sub-branches 2000, but its hash value is included in the last type 1 block 190, so that the aforementioned vulnerabilities can be overcome. As a result, in the inventive block-chain system, there is only one actual last block as in a conventional block-chain system.

도 7을 참조하여 본 발명의 다른 일 실시예에 따른 블록체인 시스템에 대해서 설명하도록 한다.A block chain system according to another embodiment of the present invention will be described with reference to FIG.

도 7을 참조하여 설명하는 블록체인 시스템은 도 5 및 도 6을 참조하여 상술한 블록체인 시스템과 마지막 제1 형 블록(190)이 포함하는 마지막 제2 형 블록의 적어도 일부의 해시값에서 차이가 있다. 따라서 설명의 편의성을 위해서 본 실시예의 블록체인 시스템을 설명하는데 있어서, 도 5 및 도 6을 참조하여 상술한 것과 다른 점을 중심으로 설명하도록 한다.The block chain system described with reference to FIG. 7 differs from the hash value of at least a portion of the last type 2 block included in the block type system and the last type 1 block 190 described above with reference to FIGS. 5 and 6 have. Therefore, for convenience of explanation, the block chain system according to the present embodiment will be described mainly on the points different from those described above with reference to FIGS. 5 and 6. FIG.

도 7에 있어서, 마지막 제1 형 블록(190)은 도 7에 도시된 다른 모든 블록보다 마지막에 생성된 블록에 해당한다.In FIG. 7, the last type 1 block 190 corresponds to the last generated block than all the other blocks shown in FIG.

도 7을 참조하면, 마지막 제1 형 블록(190)은 서브 브랜치의 마지막 제2 형 블록(290)의 적어도 일부의 해시값(Hsum)을 포함할 수 있다. 여기서, 마지막 제1 형 블록(190)은 마지막 제2 형 블록(290) 중 적어도 일부의 해시값이 다른 제1 형 블록에 포함되지 않은 마지막 제2 형 블록의 적어도 일부의 해시값을 포함할 수 있다. 즉, 상기 마지막 제1 형 블록(190)이 생성되기 전에, 다른 제1 형 블록이 생성되면서 적어도 일부의 해시값이 상기 다른 제1 형 블록에 포함된 제2 형 블록은 상기 마지막 제1 형 블록(190)이 포함하는 해시값의 마지막 제2 형 블록에 해당하지 않게 된다.Referring to FIG. 7, the last type 1 block 190 may include a hash value (Hsum) of at least a portion of the last type 2 block 290 of the sub-branch. The last type 1 block 190 may include a hash value of at least a portion of the last type 2 block that is not included in the first type block having a hash value of at least a portion of the last type 2 block 290 have. That is, before the last first type block 190 is generated, another type 1 block is generated, and a second type block in which at least a part of the hash values are included in the other first type blocks, The second type block does not correspond to the last type 2 block of the hash value included in the hash value.

도 7에 도시된 예시의 블록체인 시스템을 참고로 하여 설명하면, 마지막 제1 형 블록(B5, 190)이 생성되는 시점에 마지막 제2 형 블록(290)은 B13, B33 및 B44이 존재한다. 그러나 B13이 생성되고, B33 및 B44이 생성되기 전에 B2가 생성되게 된다. B2가 생성되는 시점에서, B13의 적어도 일부의 해시값(H13)이 B2에 포함되게 된다.Referring to the example block chain system shown in FIG. 7, there are B13, B33, and B44 of the last second type block 290 at the time when the last first type block B5, 190 is generated. However, B13 is generated, and B2 is generated before B33 and B44 are generated. At the time when B2 is generated, a hash value (H13) of at least a part of B13 is included in B2.

따라서 마지막 제1 형 블록(B5, 190)이 생성되는 시점의 마지막 제2 형 블록(290) 중 적어도 일부의 해시값이 다른 제1 형 블록에 포함되지 않은 마지막 제2 형 블록은 B33 및 B44만 해당한다. 따라서 마지막 제1 형 블록(B5, 190)은 B33 및 B44의 적어도 일부의 해시값을 포함한다. 구체적으로, 마지막 제1 형 블록(B5, 190)은 B33 및 B44의 블록헤더의 해시값(H33, H44)으로부터 생성된 머클 트리의 루트에 대한 해시값(Hsum)을 포함할 수 있다.Therefore, the last second type block in which at least some hash values of the last second type blocks 290 at the time of generation of the last first type blocks B5 and 190 are not included in the first type blocks are B33 and B44 . Thus, the last type 1 block B5, 190 includes hash values of at least some of B33 and B44. Specifically, the last first type block B5, 190 may include a hash value (Hsum) for the root of the merge tree generated from the hash values (H33, H44) of the block headers of B33 and B44.

이러한 경우, 마지막 제1 형 블록이 생성되는 시점에, 적어도 일부의 해시값이 다른 제1 형 블록에 포함되지 않은 마지막 제2 형 블록이 존재하지 않을 수 있다. 도 7에 도시된 예시의 블록체인 시스템에서 B3 및 B4는 이러한 경우에 해당한다. 이런 경우, 마지막 제1 형 블록은 메인 브랜치에 포함되고 마지막 제1 형 블록보다 직전에 생성된 제1 형 블록의 적어도 일부의 해시값만을 포함하고, 마지막 제2 형 블록의 적어도 일부의 해시값은 포함하지 않을 수 있다.In this case, at the time when the last type 1 block is generated, the last type 2 block in which at least some hash values are not included in the other type blocks may not exist. In the example block-chain system shown in Fig. 7, B3 and B4 correspond to this case. In this case, the last type 1 block includes only the hash values of at least some of the first type blocks included in the main branch and generated immediately before the last type 1 block, and the hash values of at least some of the last type 2 blocks May not be included.

이러한 방식에 따르면, 마지막 제2 형 블록은 한 번만 그것의 적어도 일부의 해시값이 마지막 제1 형 블록에 포함되게 된다. 따라서 마지막 제1 형 블록이 생성되면서 포함해야 하는 마지막 제2 형 블록의 개수가 도 5를 참조하여 상술한 실시예의 경우보다 감소하게 된다. 도 5를 참조하여 상술한 실시예의 경우, 마지막 제2 형 블록의 안전성을 향상시킬 수 있지만 블록체인의 규모가 커지면 새로운 마지막 제1 형 블록이 참조해야 할 마지막 제2 형 블록의 개수가 점차 증가하게 된다. 이는 블록체인의 효율성을 떨어트리는 요인이 될 수 있다. 따라서 도 7을 참조하여 설명한 실시예에 따르면 마지막 제2 형 블록의 안전성도 향상시키면서, 블록체인의 효율성을 확보할 수 있다는 장점이 있다.According to this scheme, the last type 2 block has only one hash value of at least some of it contained in the last type 1 block. Therefore, the number of the last type 2 blocks to be included in the last first type block is reduced as compared with the case of the embodiment described above with reference to FIG. 5, the safety of the last type 2 block can be improved. However, when the size of the block chain is increased, the number of the last type 2 blocks to be referred to by the new last type 1 block gradually increases do. This may be a factor in reducing the efficiency of the block chain. 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 improving the safety of the last type 2 block.

도 5 내지 도 7을 참조하여, 본 발명의 다양한 실시예들에 따른 블록체인 시스템과 마지막 제1 형 블록에 대해서 상세하게 설명하였다.5 through 7, the block chain system and the final first type block according to various embodiments of the present invention have been described in detail.

그러나 마지막 제2 형 블록의 적어도 일부의 해시값을 포함하는 마지막 제1 형 블록은 메인 브랜치에 다른 제1 형 블록이 생성되어 연결됨에 따라 마지막 제1 형 블록에는 해당하지 않게 된다. 따라서 제2 형 블록의 적어도 일부의 해시값을 포함하는 제1 형 블록이 메인 브랜치의 마지막 블록이 아닌 경우를 포함하는 블록체인 시스템에 대해서 추가로 설명하도록 한다.However, the last type 1 block including the hash value of at least part of the last type 2 block does not correspond to the last type 1 block as other type 1 blocks are created and connected to the main branch. Thus, a block chain system including a case where a first type block including at least a hash value of a type 2 block is not the last block of the main branch will be further described.

도 8은 본 발명의 일 실시예에 따른 블록체인 시스템의 예시 도면이다. 도 8을 참조하여, 본 발명의 또 다른 일 실시예에 따른 블록체인 시스템에 대해서 설명하도록 한다. 8 is an exemplary diagram of a block-chain system in accordance with an embodiment of the present invention. Referring to FIG. 8, a block chain system according to another embodiment of the present invention will be described.

도 8에는 각 블록의 생성 순서가 빨간색의 글자로 표시되어 있다. 이러한 생성 순서를 참조하여 블록체인 시스템에 대해서 설명하도록 한다.In Fig. 8, the order of generation of each block is indicated by red letters. The block chain system will be described with reference to this generation sequence.

도 8의 실시예에서, 메인 브랜치의 임의의 제1 형 블록은 임의의 제1 형 블록보다 이전에 생성된 제2 형 블록 중 일부 블록의 적어도 일부의 해시값을 포함한다. 구체적으로, 상기 일부 블록은 상기 임의의 제1 형 블록이 생성될 때, 서브 브랜치의 마지막 블록일 수 있다. 더욱 구체적으로, 상기 일부 블록은 상기 임의의 제1 형 블록이 생성될 때, 모든 서브 브랜치의 마지막 블록일 수 있다. 이러한 내용에 대해서 도 8에 도시된 예시의 블록체인 시스템을 참조하여 설명하도록 한다.In the embodiment of FIG. 8, any first type block of the main branch contains a hash value of at least a portion of some of the second type blocks previously created before any first type blocks. Specifically, the certain block may be the last block of the sub-branch when the first type block is generated. More specifically, some of the blocks may be the last block of all sub-branches when the first type block is created. This will be described with reference to the example block chain system shown in Fig.

B2 블록이 생성될 때 존재하는 서브 브랜치의 마지막 블록은 B11 블록이다. 따라서 B2 블록은 B11 블록의 적어도 일부의 해시값(H11)을 포함한다. 그리고 B2 블록은 해시값(H11)과 구분되도록 메인 브랜치에 포함되고 B2 블록보다 직전에 생성된 제1 형 블록(B1 블록)의 적어도 일부의 해시값(H1)을 포함한다.The last block of the sub-branch that exists when the B2 block is generated is the B11 block. Therefore, the B2 block includes the hash value (H11) of at least a part of the B11 block. The B2 block includes a hash value (H1) of at least a part of the first type block (B1 block) generated in the main branch before the B2 block so as to be distinguished from the hash value (H11).

B3 블록이 생성될 때 존재하는 서브 브랜치의 마지막 블록도 B11 블록이다. B3 블록이 생성될 때 B2 블록을 루트블록으로 하는 서브 브랜치가 없으므로, B3 블록이 생성될 때 존재하는 서브 브랜치의 마지막 블록은 B11 블록이 유일하다. 따라서 B3 블록은 B11 블록의 적어도 일부의 해시값(H11)을 포함한다. 그리고 B3 블록은 해시값(H11)과 구분되도록 메인 브랜치에 포함되고 B3 블록보다 직전에 생성된 제1 형 블록(B2 블록)의 적어도 일부의 해시값(H2)을 포함한다.The last block of the sub-branch that exists when the B3 block is generated is also the B11 block. When the B3 block is generated, since there is no sub-branch that uses the B2 block as the root block, the last block of the sub-branch existing when the B3 block is generated is unique to the B11 block. Therefore, the B3 block includes a hash value (H11) of at least a part of the B11 block. The B3 block includes at least a part of the hash value H2 of the first type block (B2 block) generated in the main branch and immediately before the B3 block so as to be distinguished from the hash value H11.

B4 블록이 생성될 때 존재하는 서브 브랜치의 마지막 블록은 B13 및 B32 블록이다. 따라서 B4 블록은 B13 및 B32 블록의 적어도 일부의 해시값(Hsum)을 포함한다. 그리고 B4 블록은 해시값(Hsum)과 구분되도록 메인 브랜치에 포함되고 B4 블록보다 직전에 생성된 제1 형 블록(B3 블록)의 적어도 일부의 해시값(H3)을 포함한다.The last block of the sub-branch that exists when the B4 block is created is the B13 and B32 blocks. Hence, the B4 block includes a hash value (Hsum) of at least a part of B13 and B32 blocks. The B4 block includes a hash value (H3) of at least a part of the first type block (B3 block) included in the main branch so as to be distinguished from the hash value (Hsum) and generated immediately before the B4 block.

B5 블록이 생성될 때 존재하는 서브 브랜치의 마지막 블록은 B13, B33 및 B43 블록이다. 따라서 B5 블록은 B13, B33 및 B44 블록의 적어도 일부의 해시값(Hsum)을 포함한다. 그리고 B5 블록은 해시값(Hsum)과 구분되도록 메인 브랜치에 포함되고 B5 블록보다 직전에 생성된 제1 형 블록(B4 블록)의 적어도 일부의 해시값(H4)을 포함한다.When the B5 block is generated, the last block of the sub-branch that exists is the B13, B33, and B43 blocks. Therefore, the B5 block includes a hash value (Hsum) of at least a part of the blocks B13, B33, and B44. The B5 block includes a hash value (H4) of at least a part of the first type block (B4 block) included in the main branch so as to be distinguished from the hash value (Hsum) and generated immediately before the B5 block.

B5 블록이 생성된 이후에 B44 블록이 생성된다. B44 블록까지 생성된 것이 도 8에 도시된 블록체인 시스템의 상태이다. 이후에 다른 제2 형 블록이 생성되지 않고, 추가로 제1 형 블록이 생성된다면, 이 때 존재하는 서브 브랜치의 마지막 블록은 B13, B33 및 B44 블록이다. 따라서 새롭게 생성되는 마지막 제1 형 블록은 B13, B33 및 B44 블록의 적어도 일부의 해시값을 포함하게 된다.After the B5 block is generated, the B44 block is generated. The state of the block chain system shown in Fig. 8 is generated up to block B44. If another type 2 block is not generated after this, and the first type block is additionally generated, then the last block of the present sub branch is a block B13, B33 and B44. Thus, the newly generated last type 1 block includes hash values of at least some of the blocks B13, B33, and B44.

도 9를 참조하여, 본 발명의 또 다른 일 실시예에 따른 블록체인 시스템에 대해서 설명하도록 한다. 도 9는 본 발명의 일 실시예에 따른 블록체인 시스템의 예시 도면이다.Referring to FIG. 9, a block chain system according to another embodiment of the present invention will be described. 9 is an exemplary diagram of a block-chain system in accordance with an embodiment of the present invention.

도 9에는 각 블록의 생성 순서가 빨간색의 글자로 표시되어 있다. 이러한 생성 순서를 참조하여 블록체인 시스템에 대해서 설명하도록 한다. 도 9는 도 8에 도시된 블록체인 시스템과 각각의 블록의 연결 및 생성 순서가 동일한 것을 도시한 것이다.In Fig. 9, the order of generation of each block is indicated by red letters. The block chain system will be described with reference to this generation sequence. FIG. 9 shows that the block chain system shown in FIG. 8 and the connection and generation order of the respective blocks are the same.

도 9의 실시예에서, 메인 브랜치의 임의의 제1 형 블록은 임의의 제1 형 블록보다 이전에 생성된 제2 형 블록 중 일부 블록의 적어도 일부의 해시값을 포함한다. 구체적으로, 상기 일부 블록은 임의의 제1 형 블록이 생성될 때, 서브 브랜치의 마지막 블록일 수 있다. 더욱 구체적으로, 상기 일부 블록은 임의의 제1 형 블록이 생성될 때, 적어도 일부의 해시값이 다른 제1 형 블록에 포함되지 않은 블록일 수 있다. 이러한 내용에 대해서 도 9에 도시된 예시의 블록체인 시스템을 참조하여 설명하도록 한다.In the embodiment of FIG. 9, any first type block of the main branch contains a hash value of at least a portion of some of the second type blocks previously created before any first type blocks. In particular, some of the blocks may be the last block of the sub-branch when any first-type blocks are created. More specifically, some of the blocks may be blocks in which at least some hash values are not included in another type 1 block when any type 1 block is generated. This will be described with reference to the example block chain system shown in FIG.

B2 블록이 생성될 때 존재하는 서브 브랜치의 마지막 블록은 B11 블록이다. B11 블록은 그것의 적어도 일부의 해시값이 다른 제1 형 블록에 포함되지 않은 블록이다. 따라서 B2 블록은 B11 블록의 적어도 일부의 해시값(H11)을 포함한다. 그리고 B2 블록은 해시값(H11)과 구분되도록 메인 브랜치에 포함되고 B2 블록보다 직전에 생성된 제1 형 블록(B1 블록)의 적어도 일부의 해시값(H1)을 포함한다.The last block of the sub-branch that exists when the B2 block is generated is the B11 block. The B11 block is a block whose hash value of at least a part of it is not included in the first type block which is different from the first type block. Therefore, the B2 block includes the hash value (H11) of at least a part of the B11 block. The B2 block includes a hash value (H1) of at least a part of the first type block (B1 block) generated in the main branch before the B2 block so as to be distinguished from the hash value (H11).

B3 블록이 생성될 때 존재하는 서브 브랜치의 마지막 블록도 B11 블록이다. B3 블록이 생성될 때 B2 블록을 루트블록으로 하는 서브 브랜치가 없으므로, B3 블록이 생성될 때 존재하는 서브 브랜치의 마지막 블록은 B11 블록이 유일하다. 그러나 B11 블록은 그것의 적어도 일부의 해시값이 이미 B2 블록에 포함되어 있다. 따라서 B3 블록은 메인 브랜치에 포함되고 B3 블록보다 직전에 생성된 제1 형 블록(B2 블록)의 적어도 일부의 해시값(H2)만을 포함하고, 제2 형 블록의 적어도 일부의 해시값은 포함하지 않는다.The last block of the sub-branch that exists when the B3 block is generated is also the B11 block. When the B3 block is generated, since there is no sub-branch that uses the B2 block as the root block, the last block of the sub-branch existing when the B3 block is generated is unique to the B11 block. However, the hash value of at least a part of the B11 block is already included in the B2 block. Therefore, the B3 block includes only the hash value (H2) of at least a part of the first type block (B2 block) included in the main branch and generated immediately before the B3 block, and does not include the hash value of at least a part of the type 2 block Do not.

B4 블록이 생성될 때 존재하는 서브 브랜치의 마지막 블록은 B13 및 B32 블록이다. B13 및 B32 블록은 그것의 적어도 일부의 해시값이 다른 제1 형 블록에 포함되지 않은 블록이다. 따라서 B4 블록은 B13 및 B32 블록의 적어도 일부의 해시값(Hsum)을 포함한다. 그리고 B4 블록은 해시값(Hsum)과 구분되도록 메인 브랜치에 포함되고 B4 블록보다 직전에 생성된 제1 형 블록(B3 블록)의 적어도 일부의 해시값(H3)을 포함한다.The last block of the sub-branch that exists when the B4 block is created is the B13 and B32 blocks. Blocks B13 and B32 are blocks whose hash values of at least some of them are not included in the first type block. Hence, the B4 block includes a hash value (Hsum) of at least a part of B13 and B32 blocks. The B4 block includes a hash value (H3) of at least a part of the first type block (B3 block) included in the main branch so as to be distinguished from the hash value (Hsum) and generated immediately before the B4 block.

B5 블록이 생성될 때 존재하는 서브 브랜치의 마지막 블록은 B13, B33 및 B43 블록이다. 이 중, B13 블록은 그것의 적어도 일부의 해시값이 이미 B4 블록에 포함되어 있다. 또한, B33 및 B43 블록은 그것의 적어도 일부의 해시값이 다른 제1 형 블록에 포함되지 않은 블록이다. 따라서 B5 블록은 B33 및 B44 블록의 적어도 일부의 해시값(Hsum)을 포함한다. 그리고 B5 블록은 해시값(Hsum)과 구분되도록 메인 브랜치에 포함되고 B5 블록보다 직전에 생성된 제1 형 블록(B4 블록)의 적어도 일부의 해시값(H4)을 포함한다.When the B5 block is generated, the last block of the sub-branch that exists is the B13, B33, and B43 blocks. Among them, the hash value of at least a part of the B13 block is already included in the B4 block. The B33 and B43 blocks are blocks in which at least a part of their hash values are not included in the first type block. Therefore, the B5 block includes a hash value (Hsum) of at least a part of the B33 and B44 blocks. The B5 block includes a hash value (H4) of at least a part of the first type block (B4 block) included in the main branch so as to be distinguished from the hash value (Hsum) and generated immediately before the B5 block.

B5 블록이 생성된 이후에 B44 블록이 생성된다. B44 블록까지 생성된 것이 도 9에 도시된 블록체인 시스템의 상태이다. 이후에 다른 제2 형 블록이 생성되지 않고, 추가로 제1 형 블록이 생성된다면, 이 때 존재하는 서브 브랜치의 마지막 블록은 B13, B33 및 B44 블록이다. 이 중, B13 및 B33 블록은 그것의 적어도 일부의 해시값이 이미 B5 블록에 포함되어 있다. 또한, B44 블록은 그것의 적어도 일부의 해시값이 다른 제1 형 블록에 포함되지 않은 블록이다. 따라서 새롭게 생성되는 마지막 제1 형 블록은 B44 블록의 적어도 일부의 해시값을 포함하게 된다.After the B5 block is generated, the B44 block is generated. The state of the block chain system shown in Fig. 9 is generated up to block B44. If another type 2 block is not generated after this, and the first type block is additionally generated, then the last block of the present sub branch is a block B13, B33 and B44. Among them, the hash values of at least some of the B13 and B33 blocks are already included in the B5 block. Further, the B44 block is a block whose hash value of at least a part thereof is not included in the first type block having a different hash value. Thus, the newly generated last type 1 block includes at least some hash values of the B44 block.

도 10은 본 발명의 일 실시예에 따른 블록체인을 이용한 데이터 관리 방법을 설명하기 위한 순서도이다. 이하, 도 10을 참조하여 본 발명의 일 실시예에 따른 블록체인 생성 방법에 대해 설명하도록 한다.10 is a flowchart illustrating a data management method using a block chain according to an embodiment of the present invention. Hereinafter, a block chain generation method according to an embodiment of the present invention will be described with reference to FIG.

도 10을 참조하여 설명할 블록체인 생성 방법은 도 1 내지 도 9를 참조하여 설명한 블록체인 시스템의 블록체인을 생성하는 방법에 관한 것이다. 따라서 설명의 편의성을 위해 도 1 내지 도 9를 참조하여 상술한 내용과 중복되는 내용 중 일부는 생략하도록 한다.The block chain generation method to be described with reference to FIG. 10 relates to a method of generating a block chain of the block chain system described with reference to FIGS. Therefore, for convenience of description, some of the contents overlapping with those described above with reference to Figs. 1 to 9 will be omitted.

도 10을 참조하면, 블록체인 생성 방법은 블록체인을 마련하는 단계(S100) 및 새로운 제1 형 블록을 생성하는 단계(S200)을 포함한다.Referring to FIG. 10, a block chain generation method includes a step S100 of providing a block chain and a step S200 of generating a new first type block.

이하, 상술한 각 단계에 대해서 상세하게 설명하도록 한다.Hereinafter, each of the above-described steps will be described in detail.

블록체인을 마련하는 단계(S100)는 블록체인 시스템이 메인 브랜치 및 적어도 하나의 서브 브랜치를 포함하는 블록체인 데이터를 생성하고 시스템 내 저장소에 저장하는 단계에 해당한다. 여기서, 상기 저장소는 블록몸체(120) 또는 블록체인 시스템 내 별도의 저장 공간을 의미한다. 이에 대해서는 도 5를 참조하여 상세하게 설명하였다.Step S100 of preparing a block chain corresponds to a step in which the block chain system generates and stores block-chain data including a main branch and at least one sub-branch in a storage in the system. Here, the storage means a separate storage space in the block body 120 or the block chain system. This has been described in detail with reference to FIG.

새로운 제1 형 블록을 생성하는 단계(S200)는 블록체인 시스템이 새로운 제1 형 블록을 메인 브랜치의 마지막 제1 형 블록에 연결되도록 생성하는 단계이다. 여기서, 새로운 제1 형 블록은 서브 브랜치의 마지막 제2 형 블록의 적어도 일부의 해시값을 포함한다. 또한, 새로운 제1 형 블록은 마지막 제1 형 블록의 적어도 일부의 해시값을 더 포함할 수 있다. 새로운 제1 형 블록은 마지막 제2 형 블록의 적어도 일부의 해시값과 마지막 제1 형 블록의 적어도 일부의 해시값을 블록헤더에 구분하여 포함할 수 있다.A step S200 of creating a new first type block is a step in which the block chain system generates a new first type block to be connected to the last first type block of the main branch. Here, the new first type block includes the hash value of at least a portion of the last type 2 block of the sub-branch. In addition, the new first type block may further include hash values of at least some of the last type 1 block. The new first type block may include a hash value of at least a portion of the last type 2 block and a hash value of at least a portion of the last type 1 block in a block header.

구체적으로, 새로운 제1 형 블록은 모든 서브 브랜치의 마지막 제2 형 블록의 적어도 일부의 해시값을 포함할 수 있다. 이에 대해서는 도 5 및 도 8을 참조하여 상세하게 설명하였다.Specifically, the new first type block may include hash values of at least some of the last type 2 blocks of all sub-branches. This has been described in detail with reference to FIGS. 5 and 8. FIG.

또한, 경우에 따라서 새로운 제1 형 블록은 적어도 일부의 해시값이 다른 제1 형 블록에 포함되지 않은 마지막 제2 형 블록의 적어도 일부의 해시값을 포함할 수 있다. 이에 대해서는 도 7 및 도 9를 참조하여 상세하게 설명하였다.In some cases, the new first type block may include hash values of at least some of the last type 2 blocks that are not included in the first type block, at least some hash values being different. This has been described in detail with reference to FIGS. 7 and 9. FIG.

새로운 제1 형 블록은 둘 이상의 마지막 제2 형 블록의 적어도 일부의 해시값을 포함하고, 상기 해시값은 각각의 마지막 제2 형 블록의 적어도 일부로부터 생성된 머클 트리의 루트에 대한 해시값일 수 있다. 이에 대해서는 도 6을 참조하여 상세하게 설명하였다.The new first type block may include a hash value of at least a portion of two or more last type 2 blocks and the hash value may be a hash value for the root of the merge tree generated from at least a portion of each last type 2 block . This has been described in detail with reference to FIG.

이상, 본 발명의 블록체인 시스템 및 블록체인 생성 방법의 실시예들에 대해 설명하였다. 본 발명은 상술한 실시예 및 첨부한 도면에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자의 관점에서 다양한 수정 및 변형이 가능할 것이다. 따라서 본 발명의 범위는 본 명세서의 특허청구범위뿐만 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.The embodiments of the block chain system and the block chain generation method of the present invention have been described above. The present invention is not limited to the above-described embodiments and the accompanying drawings, and various modifications and changes may be made by those skilled in the art to which the present invention pertains. Therefore, the scope of the present invention should be determined by the equivalents of the claims and the claims.

10: 제1 형 데이터 20: 제2 형 데이터
100: 제1 형 블록 200: 제2 형 블록
110, 210: 블록헤더 120, 220: 블록몸체
190: 마지막 제1 형 블록 290: 마지막 제2 형 블록
1000: 메인 브랜치 2000: 서브 브랜치
10: first type data 20: second type data
100: first type block 200: second type block
110, 210: block header 120, 220: block body
190: Last Type 1 block 290: Last Type 2 block
1000: Main Branch 2000: Sub Branch

Claims (8)

적어도 하나의 제1 형 블록을 포함하고, 상기 제1 형 블록들은 각각 블록의 생성 순서에 따라 연결된 메인 브랜치, 및
상기 제1 형 블록 중 하나 및 적어도 하나의 제2 형 블록을 포함하고, 상기 제2 형 블록은 상기 제1 형 블록을 루트 블록으로 하여 연결된 적어도 하나의 서브 브랜치를 포함하고,
상기 하나의 서브 브랜치의 상기 제2 형 블록은 각각 블록의 생성 순서에 따라 연결되되,
상기 하나의 서브 브랜치에서 최초로 생성된 상기 제2 형 블록은 상기 루트 블록에 연결되는 블록체인 데이터를 생성하여 저장소에 저장하는 단계; 및
새로운 제1 형 블록을 상기 메인 브랜치의 마지막 제1 형 블록에 연결되도록 생성하는 단계를 포함하고,
상기 새로운 제1 형 블록은, 상기 서브 브랜치의 마지막 제2 형 블록의 적어도 일부의 해시값을 포함하는 블록체인 생성 방법.
Wherein the first type block comprises at least one first type block, each of the first type blocks being a main branch,
Wherein the first type block comprises at least one of the first type blocks and at least one second type block, the second type block comprises at least one sub-branch connected with the first type block as a root block,
Wherein the second type blocks of the one sub-branch are connected according to a generation order of blocks,
Generating block-chain data connected to the root block and storing the generated block-chain data in a storage, the second type block being generated first in the one sub-branch; And
And generating a new first type block to be connected to a last first type block of the main branch,
Wherein the new first type block comprises a hash value of at least a portion of a last type 2 block of the sub-branch.
제1 항에 있어서,
상기 새로운 제1 형 블록은,
상기 마지막 제1 형 블록의 적어도 일부의 해시값을 더 포함하는 블록체인 생성 방법.
The method according to claim 1,
Wherein the new first type block comprises:
Further comprising a hash value of at least a portion of the last type 1 block.
제2 항에 있어서,
상기 새로운 제1 형 블록은,
상기 마지막 제2 형 블록의 적어도 일부의 해시값과 상기 마지막 제1 형 블록의 적어도 일부의 해시값을 구분하여 포함하는 블록체인 생성 방법.
3. The method of claim 2,
Wherein the new first type block comprises:
Wherein a hash value of at least a portion of the last type 2 block is distinguished from a hash value of at least a portion of the last type 1 block.
제2 항에 있어서,
상기 새로운 제1 형 블록은,
상기 마지막 제2 형 블록의 적어도 일부의 해시값과 상기 마지막 제1 형 블록의 적어도 일부의 해시값을 블록헤더에 포함하는 블록체인 생성 방법.
3. The method of claim 2,
Wherein the new first type block comprises:
Wherein a hash value of at least a portion of the last type 2 block and a hash value of at least a portion of the last type 1 block are included in a block header.
제1 항에 있어서,
상기 새로운 제1 형 블록은,
모든 서브 브랜치의 마지막 제2 형 블록의 적어도 일부의 해시값을 포함하는 블록체인 생성 방법.
The method according to claim 1,
Wherein the new first type block comprises:
A hash value of at least a portion of a last type 2 block of all sub-branches.
제1 항에 있어서,
상기 새로운 제1 형 블록은,
적어도 일부의 해시값이 다른 제1 형 블록에 포함되지 않은 마지막 제2 형 블록의 적어도 일부의 해시값을 포함하는 블록체인 생성 방법.
The method according to claim 1,
Wherein the new first type block comprises:
Wherein at least some hash values include hash values of at least some of the last type 2 blocks not included in the other type 1 blocks.
제1 항에 있어서,
상기 새로운 제1 형 블록은,
둘 이상의 마지막 제2 형 블록의 적어도 일부의 해시값을 포함하고,
상기 해시값은,
각각의 마지막 제2 형 블록의 적어도 일부로부터 생성된 머클 트리의 루트에 대한 해시값인 블록체인 생성 방법.
The method according to claim 1,
Wherein the new first type block comprises:
A hash value of at least a portion of at least two last type 2 blocks,
The hash value,
A hash value for the root of the merge tree generated from at least a portion of each last type 2 block.
제1 항에 있어서,
상기 마지막 제2 형 블록은,
상기 새로운 제1 형 블록보다 이전에 생성된 블록인 블록체인 생성 방법.
The method according to claim 1,
The last type < RTI ID = 0.0 >
Wherein the new block is a block generated before the new first type block.
KR1020190021356A 2019-02-22 2019-02-22 Blockchain system and method of creating blockchain KR20190020721A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190021356A KR20190020721A (en) 2019-02-22 2019-02-22 Blockchain system and method of creating blockchain

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190021356A KR20190020721A (en) 2019-02-22 2019-02-22 Blockchain system and method of creating blockchain

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020170059276A Division KR102017739B1 (en) 2017-05-12 2017-05-12 Blockchain system and method of creating blockchain

Publications (1)

Publication Number Publication Date
KR20190020721A true KR20190020721A (en) 2019-03-04

Family

ID=65760100

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190021356A KR20190020721A (en) 2019-02-22 2019-02-22 Blockchain system and method of creating blockchain

Country Status (1)

Country Link
KR (1) KR20190020721A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210047666A (en) * 2019-10-22 2021-04-30 한국전자기술연구원 Device for generating Hash chain and Method for generating Hash chain to have integrity based on continuous data

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210047666A (en) * 2019-10-22 2021-04-30 한국전자기술연구원 Device for generating Hash chain and Method for generating Hash chain to have integrity based on continuous data

Similar Documents

Publication Publication Date Title
KR102017739B1 (en) Blockchain system and method of creating blockchain
KR101964692B1 (en) Blockchain system and data managing method using blockchain
Kim et al. A survey of scalability solutions on blockchain
US11080665B1 (en) Cryptographically concealing amounts and asset types for independently verifiable transactions
Pinna et al. A petri nets model for blockchain analysis
Mechkaroska et al. Analysis of the possibilities for improvement of blockchain technology
EP2751949B1 (en) Multiple table tokenization
EP3552158B1 (en) System and method for information protection
US10892888B2 (en) System and method for information protection
Ivancsics Blockchain in journalism
US20190229931A1 (en) Distributed telephone number ledger and register
CN107070896A (en) A kind of safe and efficient block chain customization login method and security hardening system
US20220405260A1 (en) Systems and methods for processing blockchain transactions
KR20190093011A (en) The block-chain system with enhanced security and the method of generating a data block using a double block-chain structure
KR102142955B1 (en) A privatekey management method
KR20190020721A (en) Blockchain system and method of creating blockchain
KR102349014B1 (en) Method and system for building fast synchronizable decentralized distributed database
Vignesh et al. A quantum-based blockchain approach to voting protocol using hyperledger sawtooth
Fekkes et al. Comparing Bitcoin and Ethereum
AU2019101581A4 (en) System and method for information protection
KR102538988B1 (en) Cubechain type data management engine and data management method
Nguyen et al. Building mathematical models applied to utxos selection for objective transactions
KR20210073810A (en) The block chain system including a block chain structure for data self-sovereign identity
KR20190113211A (en) Blockchain system
KR20190113210A (en) Blockchain system

Legal Events

Date Code Title Description
A107 Divisional application of patent
A201 Request for examination
N231 Notification of change of applicant
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right