KR20190099936A - Blockchain system - Google Patents

Blockchain system Download PDF

Info

Publication number
KR20190099936A
KR20190099936A KR1020180020031A KR20180020031A KR20190099936A KR 20190099936 A KR20190099936 A KR 20190099936A KR 1020180020031 A KR1020180020031 A KR 1020180020031A KR 20180020031 A KR20180020031 A KR 20180020031A KR 20190099936 A KR20190099936 A KR 20190099936A
Authority
KR
South Korea
Prior art keywords
block
type
blocks
hash value
generated
Prior art date
Application number
KR1020180020031A
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 KR1020180020031A priority Critical patent/KR20190099936A/en
Publication of KR20190099936A publication Critical patent/KR20190099936A/en

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
    • 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
    • H04L2209/38

Abstract

A blockchain system is disclosed. According to the present invention, the blockchain system comprises a main branch including a genesis block and at least one second type block. The blocks included in the main branch are connected according to a generation order of blocks, starting with the genesis block. The blocks included in the main branch except for the genesis block includes a hash value of at least a portion of a block generated immediately before the corresponding block in the main branch. At least a portion of the second type blocks include hash values of at least a portion of a second type block generated immediately before the corresponding second type blocks in the main branch.

Description

블록체인 시스템{Blockchain system}Blockchain system {Blockchain system}

본 발명은 블록체인 시스템에 관한 것으로, 더욱 상세하게는 이중으로 연결된 블록들을 이용한 블록체인 시스템에 관한 것이다.The present invention relates to a blockchain system, and more particularly to a blockchain system using dually connected blocks.

블록체인은 분산 데이터베이스의 일종으로 암호화된 가상화폐인 비트코인에서 도입된 개념으로 알려져 있다. 기존에 거래장부, 문서 등의 디지털 컨텐츠를 중앙집중형 서버에 보관하고 관리하던 것과 달리, 블록체인 시스템에서는 누적된 디지털 컨텐츠를 네트워크를 통해 연결된 복수의 참여자의 장치(노드)에 저장하여 관리한다. 이러한 블록체인 시스템은 디지털 컨텐츠 자체가 인터넷을 통해 공개되어 있고, 다수의 참여자에 의해 수시로 검증이 진행되므로 위조 또는 변조가 매우 어렵다는 장점이 있다.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.

이러한 블록체인 시스템은 비트코인 등의 가상화폐 시스템 또는 금융기관의 거래기록 보관 등에 사용되고 있다. 또한, 최근에는 이러한 블록체인 시스템을 전자화된 문서관리 및 원본확인 등을 위해 사용되기도 한다. 대한민국 등록특허공보 제10-1763827호(2017년 7월 26일 등록) 및 대한민국 등록특허공보 제10-1751025호(2017년 6월 20일 등록)에는 이러한 블록체인 시스템을 이용한 의료데이터전송시스템 및 증권업무 처리 시스템에 대해서 개시되어 있다.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) and Korean Patent Publication No. 10-1751025 (registered on June 20, 2017) include medical data transmission systems and securities using such blockchain systems. A business processing system is disclosed.

블록체인에 참여하는 노드들은 데이터의 진위여부를 확인하기 위해서 전체 블록체인의 데이터를 장치에 저장하고 유지관리 해야 한다. 누적된 거래 등이 적어 전체 블록체인의 크기가 크지 않은 경우에는 문제되지 않으나, 거래 등 신규 이벤트 발생이 누적되면서 블록의 개수가 증가할수록 전체 블록체인의 크기는 점차 증가하게 된다. 대표적인 블록체인 시스템인 비트코인 및 이더리움 등의 전체 블록체인 크기는 현재 수백 Gbyte에 달하고 있다.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.

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

대한민국 등록특허공보 제10-1763827호(2017년 7월 26일 등록)Republic of Korea Patent Publication No. 10-1763827 (July 26, 2017 registration) 대한민국 등록특허공보 제10-1751025호(2017년 6월 20일 등록)Republic of Korea Patent Publication No. 10-1751025 (registered June 20, 2017)

본 발명이 해결하려는 과제는, 블록체인 시스템에 참여하는 노드가 필요한 블록들만을 선택적으로 저장하는 것만으로도 데이터의 진위여부를 확인할 수 있는 블록체인 시스템 및 이러한 블록체인을 이용한 데이터 관리 방법을 제공하는 것이다. 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.

상기 과제를 해결하기 위한 본 발명의 블록체인 시스템은, 최초(genesis) 블록 및 적어도 하나의 제2 형 블록을 포함하는 메인 브랜치를 포함하고, 상기 메인 브랜치에 포함된 블록은 상기 최초 블록을 시작으로 각각 블록의 생성 순서에 따라 연결되고, 상기 최초 블록을 제외한 상기 메인 브랜치에 포함된 블록은 상기 메인 브랜치에서 해당 블록 직전에 생성된 블록의 적어도 일부의 해시값을 포함하고, 상기 제2 형 블록 중 적어도 일부는 상기 메인 브랜치에서 해당 제2 형 블록 직전에 생성된 제2 형 블록의 적어도 일부의 해시값을 포함한다.The blockchain system of the present invention for solving the above problems includes a main branch including a genesis block and at least one second type block, and the blocks included in the main branch start with the initial block. Blocks included in the main branch except for the first block are connected according to the generation order of blocks, and each of the blocks of the second type blocks includes a hash value of at least a portion of blocks generated immediately before the corresponding block in the main branch. At least a portion 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.

본 발명의 일 실시예에 있어서, 상기 적어도 일부의 제2 형 블록은 상기 직전에 생성된 블록의 적어도 일부의 해시값과 상기 직전에 생성된 제2 형 블록의 적어도 일부의 해시값을 구분하여 포함할 수 있다.In one embodiment of the present invention, 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.

본 발명의 일 실시예에 있어서, 상기 적어도 일부의 제2 형 블록이 포함하는 상기 직전에 생성된 블록의 적어도 일부의 해시값과 상기 직전에 생성된 제2 형 블록의 적어도 일부의 해시값이 동일한 경우, 하나의 해시값만을 포함할 수 있다.In one embodiment of the present invention, 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.

본 발명의 일 실시예에 있어서, 상기 제2 형 블록은 제2 형 블록 중 가장 먼저 생성된 최초 제2 형 블록 및 상기 최초 제2 형 블록 이후에 생성된 후속 제2 형 블록을 포함하고, 상기 후속 제2 형 블록은 상기 메인 브랜치에서 해당 후속 제2 형 블록 직전에 생성된 제2 형 블록의 적어도 일부의 해시값을 포함할 수 있다.In one embodiment of the present invention, 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, and 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.

본 발명의 일 실시예에 있어서, 상기 최초 제2 형 블록은 상기 최초 블록의 적어도 일부의 해시값을 포함할 수 있다.In one embodiment of the present invention, the first second type block may include a hash value of at least a portion of the first block.

본 발명의 일 실시예에 있어서, 상기 최초 제2 형 블록은 상기 최초 제2 형 블록 직전 블록의 적어도 일부의 해시값을 포함하고, 다른 블록의 적어도 일부의 해시값은 포함하지 않을 수 있다.In one embodiment of the present invention, 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.

본 발명의 일 실시예에 있어서, 상기 제2 형 블록은 해당 제2 형 블록을 루트 블록으로 하는 포킹을 허용할 수 있다.In one embodiment of the present invention, the second type block may allow forking using the second type block as a root block.

본 발명의 일 실시예에 있어서, 상기 제2 형 블록은 해당 제2 형 블록을 루트 블록으로 하여 서브 블록이 연결되는 것을 허용할 수 있다.In one embodiment of the present invention, the second type block may allow sub blocks to be connected using the second type block as a root block.

본 발명의 일 실시예에 있어서, 상기 제2 형 블록 중 적어도 일부를 루트 블록으로 하여 포킹된 서브 브랜치를 더 포함할 수 있다.In one embodiment of the present invention, it may further include a fork sub-branch with at least a portion of the second type block as a root block.

본 발명의 일 실시예에 있어서, 상기 제2 형 블록 중 적어도 일부를 루트 블록으로 하여 연결된 적어도 하나의 서브 블록을 포함하는 서브 브랜치를 더 포함할 수 있다.In an embodiment of the present invention, the sub-branch may further include at least one sub-block connected by using at least a portion of 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. .

또한, 본 발명의 일 실시예에 따른 블록체인 시스템은 블록의 유형에 따라 블록 간의 연결관계를 다르게 형성하여 체계적인 효율적이다는 장점이 있다.In addition, 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.

도 1은 본 발명의 일 실시예에 따른 블록체인 시스템의 개별 블록의 구성을 도시한 것이다.
도 2는 본 발명의 일 실시예에 따른 블록체인 시스템의 두 개의 블록이 연결된 것을 도시한 것이다.
도 3 및 도 4는 블록체인에서 블록의 표시 방법을 설명하기 위한 도면이다.
도 5는 본 발명의 일 실시예에 따른 블록체인 시스템의 예시적인 블록도이다.
도 6은 본 발명의 다른 일 실시예에 따른 블록체인 시스템의 예시적인 블록도이다.
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.
5 is an exemplary block diagram of a blockchain system according to an embodiment of the present invention.
6 is an exemplary block diagram of a blockchain system according to another embodiment of the present invention.

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

여기서 사용되는 전문용어는 단지 특정 실시예를 언급하기 위한 것이며, 본 발명을 한정하는 것을 의도하지 않는다. 여기서 사용되는 단수 형태들은 문구들이 이와 명백히 반대의 의미를 나타내지 않는 한 복수 형태들도 포함한다. 명세서에서 사용되는 '포함하는'의 의미는 특정 특성, 영역, 정수, 단계, 동작, 요소 및/또는 성분을 구체화하며, 다른 특정 특성, 영역, 정수, 단계, 동작, 요소, 성분 및/또는 군의 존재나 부가를 제외시키는 것은 아니다.The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the invention. As used herein, the singular forms “a,” “an,” and “the” include plural forms as well, unless the context clearly indicates the opposite. As used herein, the meaning of “comprising” specifies a particular characteristic, region, integer, step, operation, element, and / or component, and other specific characteristics, region, integer, step, operation, element, component, and / or group. It does not exclude the presence or addition of.

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

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

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

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

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

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

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

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

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

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

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

블록몸체(120)는 블록(100)이 저장하고 관리하는 데이터를 포함한다. 데이터는 디지털 데이터에 해당한다. 데이터는 다양한 형태의 자료일 수 있다. 예를 들어, 데이터는 디지털 컨텐츠, 문서 정보, 계좌 정보, 의료 정보, 진료 정보, 행정 정보, 등기부 정보, 코인의 발생 정보, 거래 정보, 인사 정보, 생산 이력 정보, 제품 또는 건축물의 설계 및 도면, 사운드 정보 등이 가능하며, 특정한 형태로 한정되는 것은 아니다.The block body 120 includes data stored and managed by the block 100. Data corresponds to digital data. The data can be in various forms. For example, the data may 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.

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

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

도 2를 참조하면, 브랜치에서 임의의 하나의 블록(200)은 브랜치 내에서 이전에 생성된 블록(100)과 연결되게 된다. 여기서, 연결된다는 것은 해당 블록(200)이 이전에 생성된 블록(100)의 적어도 일부의 해시값을 포함하는 것을 의미한다. 구체적으로, 블록(200)은 블록헤더(210)에 이전에 생성된 블록(100)의 적어도 일부의 해시값을 포함하는 것을 통해 연결될 수 있다.Referring to FIG. 2, any one block 200 in a branch is to be connected to a block 100 previously created in the branch. Here, the connection means that the block 200 includes a hash value of at least a portion of the previously generated block 100. In detail, 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.

이전에 생성된 블록(100)이란 해당 블록(200) 직전에 생성된 것일 수 있다. 아래에서 상세하게 설명하겠지만, 경우에 따라서 이전에 생성된 블록(100)이란 이전에 생성된 블록들 중 해당 블록(200)과 동일한 유형의 마지막 블록일 수도 있다.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.

이전에 생성된 블록(100)의 해시값은 상술한 것과 같이, 이전 블록(100)의 전체 또는 선택된 일부의 정보의 해시값일 수 있다. 예를 들어, 첨부한 도 2에 도시된 것과 같이 이전 블록(100)의 해시값은 이전 블록의 블록헤더(110)의 정보의 해시값인 것으로 정의될 수 있다. 이전 블록의 해시값은 블록을 설계하는 사람의 기호 및 판단에 따라 다양하게 변경될 수 있다.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. For example, as shown in FIG. 2, 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.

도 3 및 도 4를 참조하여, 도 5에서 도시되는 블록체인 시스템을 구성하는 블록에 대해서 간략하게 설명하도록 한다.3 and 4, the blocks constituting the blockchain system illustrated in FIG. 5 will be briefly described.

블록은 도 1 및 도 2를 참조하여 설명한 것과 같이, 블록헤더와 블록몸체를 포함한다. 그러나 설명의 편의성을 위해 도 5에서는 도 3 및 도 4에 도시된 방식으로 개별 블록을 표시하도록 한다.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.

먼저 도 3을 참조하면, 하나의 블록(100)에는 블록의 타이틀, 이전 연결 블록의 해시값 및 해당 블록의 해시값이 표시된다. 하나의 블록(100)은 상하로 배열된 3칸의 표에서, 첫번째 칸에는 블록의 타이틀이 표시되고, 두번째 칸에는 이전 연결 블록의 해시값이 표시되고, 세번째 칸에는 해당 블록의 해시값이 표시된다.First, referring to FIG. 3, 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.

도 4를 참조하면, 하나의 블록(101)에는 이전 연결 블록의 해시값이 둘 이상 포함될 수 있다. 복수의 이전 연결 블록의 해시값은 가장 아래 칸의 해당 블록의 해시값의 위에 순차적으로 표시된다. 도 4를 참조하면, 하나의 블록(101)에는 2개의 이전 연결 블록의 해시값이 포함된다. 이는 각각 세번째 칸 및 네번째 칸에 표시되고, 마지막 칸에는 해당 블록의 해시값이 표시되어 있다.Referring to FIG. 4, 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. Referring to FIG. 4, 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.

도면에는 도시되지 않았지만 경우에 따라서 하나의 블록은 둘 이상의 추가 블록의 해시값을 포함할 수도 있다. 이러한 경우, 추가 블록의 해시값은 해당 블록의 해시값 위의 칸에 표시되는 것이 바람직할 것이다. 그리고 블록의 마지막 칸에는 해당 블록의 해시값이 표시되는 것이 바람직할 것이다.Although not shown in the drawings, in some cases, one block may include hash values of two or more additional blocks. In this case, 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.

도 3 및 도 4에서, 블록의 타이틀은 Bn 또는 Bnm과 같은 형태로 표시된다. 블록의 타이틀이 Bn이라는 것은 상기 블록이 메인 브랜치의 n번째 블록이라는 것을 의미한다. 그리고 블록의 타이틀이 Bnm이라는 것은 상기 블록이 메인 브랜치의 n번째 블록에서 분기되는 서브 브랜치의 m번째 서브 블록이라는 것을 의미한다. 임의의 서브 브랜치의 m번째 서브 블록은 상기 서브 브랜치의 m+1번째 블록에 해당한다.3 and 4, 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. And the title of the block is 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.

어느 블록의 해시값은 H라는 기호를 이용하여 표시된다. 예를 들어, 블록의 타이틀이 Bnm인 블록의 해시값은 Hnm으로 표시되게 된다.The hash value of a block is indicated using the symbol H. For example, a hash value of a block whose title is Bnm is expressed in Hnm.

상기 블록의 타이틀, 해시값의 기호 등을 설명하면서 언급한 메인 브랜치, 서브 브랜치 및 서브 블록 등에 대해서는 이하 도 5를 참조하여 상세하게 설명하도록 한다.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, and the like will be described in detail with reference to FIG. 5.

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

본 발명의 블록체인 시스템은 메인 브랜치(1000)를 포함한다. 여기서, 메인 브랜치(1000)는 이후에 설명할 서브 브랜치(1001, 1004)와 구분되는 것으로, 이 둘의 차이점은 이하에서 설명하도록 한다.The blockchain system of the present invention includes a main branch 1000. Here, the main branch 1000 is distinguished from the sub branches 1001 and 1004 to be described later, and the difference between the two will be described below.

메인 브랜치(1000)는 최초 블록(genesis block), 제1 형 블록 및 제2 형 블록을 포함한다. 제2 형 블록은 여러 종류로 다시 구분될 수 있다. 그러나 본 명세서에서는 제2 형 블록은 하나의 종류만 있는 것으로 설명한다.The main branch 1000 includes an original block, a first type block and a second type block. Type 2 blocks can be divided into several types. However, it is described herein that there is only one type of the second type block.

도 5에서 최초 블록은 두꺼운 테두리의 사각형으로 표시했고, 제1 형 블록은 일반적인 사각형으로 표시하였고, 제2 형 블록은 코너 부분이 라운드진 사각형으로 표시하여 구분하였다.In FIG. 5, the first block is represented by a rectangle with a thick border, the first type block is represented by a general rectangle, and the second type block is distinguished by a rounded rectangle.

최초 블록(genesis block)은 블록체인 시스템에서 최초로 생성된 블록이다. 최초 블록은 블록체인 시스템의 다른 블록과 달리 예외적으로 이전 연결 블록이 없을 수 있다. 블록체인 시스템에서 최초 블록이 생성된 이후에 후속적으로 생성된 블록은 최초 블록과 직접적으로 또는 간접적으로 연결되게 된다. 도 5를 참조하면, B0가 최초 블록에 해당한다.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. In the blockchain system, after the first block is generated, subsequently generated blocks are directly or indirectly connected to the first block. Referring to FIG. 5, B 0 corresponds to the first block.

제1 형 블록은 제2 형 블록과 달리, 해당 블록을 루트 블록으로 한 분기를 허용하지 않는 블록이다. 분기에 대해서는 아래에서 제2 형 블록을 설명하면서 상술하도록 한다. 따라서 제1 형 블록은 메인 브랜치(1000)에서 직전의 블록과 직후의 블록과만 연결되게 된다. 도 5를 참조하면, B2, B5 및 B6이 제1 형 블록에 해당한다.Unlike the second type block, the first type block is a block that does not allow branching using the block as the root block. The branch will be described in detail with reference to the second type block below. Therefore, the first 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 2 , B 5, and B 6 correspond to a first type block.

제2 형 블록은 해당 제2 형 블록을 루트 블록(root block)으로 하여 분기를 허용하는 블록이다. 분기란 메인 브랜치(1000)의 임의의 블록을 루트 블록으로 하여 메인 브랜치(1000)와 분기되도록 연결된 서브 브랜치를 생성하는 것을 의미한다. 이러한 분기란 포킹(forking)이라는 용어로 설명되기도 한다. 따라서 제2 형 블록은 포킹된 블록(forked block)으로 설명될 수 있다. 또한, 제2 형 블록은 메인 브랜치(1000)와 서브 브랜치가 결합(joint)되는 결합 블록(joint block)으로 설명될 수도 있다.The second type block is a block that allows branching using 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. Thus, the second type block may be described as a forked block. In addition, the second type block may be described as a joint block in which the main branch 1000 and the sub branch are joined.

서브 브랜치에서 루트 블록을 제외한 나머지 루트 블록에 연결된 블록을 서브 블록으로 지칭하도록 한다. 따라서 제2 형 블록은 해당 제2 형 블록을 루트 블록으로 하여 서브 블록이 연결되는 것을 허용하는 블록을 의미한다.A block connected to the other root block except the root block in the sub branch is referred to as a sub block. Accordingly, the second type block refers to a block that allows sub blocks to be connected by using the second type block as a root block.

여기서 제2 형 블록은 분기를 허용만 하는 것으로, 제2 형 블록에는 해당 제2 형 블록을 루트 블록으로 하는 서브 브랜치가 연결되어 있을 수도 있고, 그렇지 않을 수도 있다. 서브 브랜치가 연결되어 있지 않는 제2 형 블록은 이후에 이벤트의 생성에 따라 해당 제2 형 블록을 루트 블록으로 하는 서브 브랜치가 연결될 수도 있다.In this case, the second type block only allows a branch, and a sub branch having the second type block as the root block may or may not be connected to the second type block. Sub-branches of which the second type block is the root block may be connected to the second type block in which the sub branch is not connected, according to generation of an event.

도 5를 참조하면, B1, B3 및 B4가 제2 형 블록에 해당한다. 그리고 B1 및 B4는 이에 연결된 서브 브랜치(1001, 1004)가 존재한다. 그러나 B3의 경우, 제2 형 블록임에도 불구하고 이에 연결된 서브 브랜치가 존재하지 않는다.Referring to FIG. 5, B 1 , B 3, and B 4 correspond to a second type block. And B 1 and B 4 have sub branches 1001 and 1004 connected thereto. However, in the case of B 3 , although there is a second type block, there is no sub branch connected thereto.

현재 상태에서는 B3에 연결되는 서브 브랜치가 존재하지 않지만 이후에 B31에 해당하는 새로운 서브 블록이 생성되어 B3에 연결될 수 있다. 이러한 경우, B3에 연결된 서브 브랜치가 새롭게 생성될 수 있다.In the current state, there is no sub branch connected to B 3 , but a new sub block corresponding to B 31 may be generated and connected to B 3 later . In this case, a sub branch connected to B 3 may be newly created.

또한, 이후에 B32에 해당하는 새로운 서브 블록이 생성되어 B31에 연결될 수 있다. 이러한 경우, B3에 연결된 서브 브랜치가 연장될 수 있다.In addition, a new subblock corresponding to B 32 may be generated and connected to B 31 later . In this case, the sub branch connected to B 3 may be extended.

최초 블록이 생성된 이후에는 제1 형 블록 및 제2 형 블록이 생성되어 메인 브랜치(1000)에 연결되게 된다. 제1 형 블록 및 제2 형 블록은 각 블록의 생성 순서에 따라 연결된다.After the first block is generated, the first type block and the second type block are generated and connected to the main branch 1000. The first type block and the second type block are connected according to the generation order of each block.

블록체인 시스템에서는 제1 형 블록, 제2 형 블록 및 서브 블록이 생성될 수 있다. 여기서 어떠한 종류의 블록이 생성될지는 블록이 포함하는 데이터가 기반한 이벤트에 따라 결정될 수 있다.In a blockchain system, a first type block, a second type block, and a sub block may be generated. In this case, what kind of block is generated may be determined according to an event based on data included in the block.

예를 들어, 발생한 이벤트가 제1 형 이벤트인 경우, 발생한 제1 형 이벤트의 데이터를 포함하는 블록이 제1 형 블록으로 생성되어 연결될 수 있다. 또한, 발생한 이벤트가 제2 형 이벤트인 경우, 발생한 제2 형 이벤트의 데이터를 포함하는 블록이 제2 형 블록으로 생성되어 연결될 수 있다. 또한, 발생한 이벤트가 제3 형 이벤트인 경우, 발생한 제3 형 이벤트의 데이터를 포함하는 블록이 서브 블록으로 생성되어 연결될 수 있다.For example, when the generated event is a type 1 event, a block including data of the generated type 1 event may be generated and connected to the type 1 block. In addition, when the generated event is a second type event, a block including data of the generated second type event may be generated and connected to the second type block. In addition, when the generated event is a third type event, a block including data of the generated third type event may be generated and connected to a sub block.

제1 형 이벤트, 제2 형 이벤트 및 제3 형 이벤트를 구분하는 기준은 블록을 설계하는 사람의 기호 및 판단에 따라 다양하게 변경될 수 있다.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.

메인 브랜치(1000)에 포함된 블록 중 최초 블록을 제외한 블록은 메인 브랜치(1000)에서 해당 블록 직전에 생성된 블록의 적어도 일부의 해시값을 포함한다. 구체적으로, 블록은 블록헤더에 직전에 생성된 블록의 적어도 일부의 해시값을 포함하는 것을 통해 연결될 수 있다.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. In detail, 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.

이는 해당 블록이 제1 형 블록이든 제2 형 블록이든 구분하지 않고 적용된다.This applies regardless of whether the block is a first type block or a second type block.

도 5를 참조하면, 제1 형 블록인 B5의 경우 메인 브랜치(1000)에서 B5 직전에 생성된 블록은 제2 형 블록인 B4에 해당한다. B5는 B4의 적어도 일부의 해시값(H4)을 포함한다. 역시 제1 형 블록인 B6의 경우 메인 브랜치(1000)에서 B6 직전에 생성된 블록은 제1 형 블록인 B5에 해당한다. B6는 B5의 적어도 일부의 해시값(H5)을 포함한다.Referring to FIG. 5, in the case of B 5 , which is a first type block, a block generated immediately before B5 in the main branch 1000 corresponds to B 4 , which is a second type block. B 5 comprises a hash value H 4 of at least a portion of B 4 . Also the first-type blocks of a block generated immediately before the B 6 in the main branch 1000. In the case of B 6 B 5 corresponds to the first-type blocks. B 6 comprises a hash value H 5 of at least a portion of B 5 .

또한, 제2 형 블록인 B3의 경우 메인 브랜치(1000)에서 B3 직전에 생성된 블록은 제1 형 블록인 B2에 해당한다. B3는 B2의 적어도 일부의 해시값(H2)을 포함한다. 역시 제2 형 블록인 B4의 경우 메인 브랜치(1000)에서 B4 직전에 생성된 블록은 제2 형 블록인 B3에 해당한다. B4는 B3의 적어도 일부의 해시값(H3)을 포함한다.In addition, in the case of the B 3 2-type blocks in the block B 3 generated from the immediately preceding main branch (1000) corresponds to the B 2 Type 1 block. B 3 comprises a hash value H 2 of at least a portion of B 2 . Also, in the case of B 4 , which is a second type block, a block generated immediately before B 4 in the main branch 1000 corresponds to B 3 , which is a second type block. B 4 comprises a hash value H 3 of at least a portion of B 3 .

제2 형 블록은 최초 제2 형 블록과 후속 제2 형 블록을 포함한다. 최초 제2 형 블록은 제2 형 블록 중 가장 먼저 생성된 블록을 의미한다. 그리고 후속 제2 형 블록은 최초 제2 형 블록 이후에 생성된 블록을 의미한다.The second type block includes the first type block and the subsequent type 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.

도 5를 참조하면, 최초 제2 형 블록은 두꺼운 테두리의 라운드진 사각형으로 표시했고, 후속 제2 형 블록은 일반 테두리의 라운드진 사각형으로 표시하여 구분하였다. 도 5를 참조하면, B1이 최초 제2 형 블록에 해당하고, B3 및 B4가 후속 제2 형 블록에 해당한다.Referring to FIG. 5, the first type 2 blocks were marked with rounded rectangles of thick borders, and the second type blocks were marked with rounded rectangles of general borders. Referring to FIG. 5, B 1 corresponds to the first second type block and B 3 and B 4 correspond to the subsequent second type block.

후속 제2 형 블록은 메인 브랜치(1000)에서 해당 후속 제2 형 블록 직전에 생성된 제2 형 블록의 적어도 일부의 해시값을 포함한다. 구체적으로, 후속 제2 형 블록은 블록헤더에 직전에 생성된 제2 형 블록의 적어도 일부의 해시값을 포함하는 것을 통해 연결될 수 있다. 여기서, 직전 제2 형 블록이란 최초 제2 형 블록일 수도 있고, 후속 제2 형 블록일 수도 있다.The subsequent second type block 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. Specifically, subsequent second type blocks may be linked to include a hash value of at least a portion of the second type block just generated in the block header. Here, the immediately preceding second type block may be the first second type block or the subsequent second type block.

구체적으로, B3를 기준으로 설명하면, B3 직전에 생성된 제2 형 블록은 B1에 해당한다. B3는 B1의 적어도 일부의 해시값(H1)을 포함한다. 그리고 B4를 기준으로 설명하면, B4 직전에 생성된 제2 형 블록은 B3에 해당한다. B4는 B3의 적어도 일부의 해시값(H3)을 포함한다.Specifically, if written for the B 3, B 3 a Type 2 block generated immediately before corresponds to B 1. B 3 comprises a hash value H 1 of at least a portion of B 1 . And it will be described with reference to B 4, B 4 of the second-type block generated immediately before corresponds to B 3. B 4 comprises a hash value H 3 of at least a portion of B 3 .

위에서 설명한 것과 같이, 제2 형 블록 중 두번째로 생성된 제2 형 블록(B3)은 최초 제2 형 블록(B1)의 적어도 일부의 해시값(H1)을 포함하게 된다.As described above, the second type block B 3 generated second of the second type blocks includes a hash value H 1 of at least a portion of the first type 2 block B 1 .

후속 제2 형 블록은 2개의 해시값을 포함하게 된다. 구체적으로, B3의 경우, 직전 블록의 적어도 일부의 해시값으로 B2의 적어도 일부의 해시값(H2)을 포함하고, 직전 제2 형 블록의 적어도 일부의 해시값으로 B1의 적어도 일부의 해시값(H1)을 포함한다. 후속 제2 형 블록은 2개의 해시값을 구분하여 포함할 수 있다.Subsequent second type blocks will contain two hash values. Specifically, in the case of B 3 , at least part of the hash value H 2 of B 2 as a hash value of at least part of the immediately preceding block, and at least part of B 1 as a hash value of at least part of the immediately preceding second type block. Contains a hash value of H 1 . Subsequent type 2 blocks may include two hash values separately.

그러나 경우에 따라서 2개의 해시값이 동일할 수 있다. 구체적으로, B4의 경우, 직전 블록의 적어도 일부의 해시값으로 B3의 적어도 일부의 해시값(H3)을 포함하고, 직전 제2 형 블록의 적어도 일부의 해시값으로도 B3의 적어도 일부의 해시값(H3)을 포함한다. 후속 제2 형 블록은 2개의 해시값을 포함할 수 있다. 이러한 경우, 도 5에 도시된 것과 같이, 후속 제2 형 블록은 2개의 해시값을 구분하여 각각 포함할 수도 있다. 그러나 후속 제2 형 블록은 중복되는 해시값을 하나만 포함할 수도 있다.In some cases, however, the two hash values may be the same. Specifically, in the case of B 4, with at least a portion of the hash value of the immediately preceding block includes at least a portion of the hash value (H 3) of B 3, just before the second-type blocks, at least some of the hash values in the Fig. B 3 at least Some hash value (H 3 ). Subsequent second type blocks may include two hash values. In this case, as shown in FIG. 5, the subsequent second type block may separately include two hash values. However, subsequent second type blocks may contain only one duplicate hash value.

경우에 따라서, B4가 직전 블록의 적어도 일부의 해시값으로 포함하는 B3의 적어도 일부의 해시값과 직전 제2 형 블록의 적어도 일부의 해시값으로 포함하는 B3의 적어도 일부의 해시값이 상이할 수도 있다. 이는 B3의 데이터에서 해시값을 어떻게 산출하는지 여부에 따라 결정될 수 있다.In some cases, B 4 is at least at least the hash value of the part of B 3, including at least part of the hash value of the B 3 including a part of the hash value and immediately before the at least a portion of the hash value of the second-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 3 .

최초 제2 형 블록은 최초 블록의 적어도 일부의 해시값을 포함한다. 구체적으로, B1은 B0의 적어도 일부의 해시값을 포함한다.The first second type block contains a hash value of at least a portion of the first block. Specifically, B 1 comprises a hash value of at least a portion of B 0 .

도 5에 도시된 것과 같이, 최초 블록(B0) 직후의 블록이 최초 제2 형 블록(B1)인 경우, 최초 제2 형 블록(B1)이 직전 블록의 적어도 일부의 해시값(H0)으로 포함하는 것과 최초 블록(B0)의 적어도 일부의 해시값(H0)으로 포함하는 것이 동일하게 된다. 이러한 경우, 도 5에 도시된 것과 같이, 최초 제2 형 블록(B1)은 2개의 해시값을 구분하여 각각 포함할 수도 있다. 그러나 최초 제2 형 블록(B1)은 중복되는 해시값을 하나만 포함할 수도 있다.As shown in FIG. 5, when the block immediately after the first block B 0 is the first second type block B 1 , the first second type block B 1 is a hash value H of at least a portion of the immediately preceding block. 0 ) and the hash value H 0 of at least a part of the first block B 0 are the same. In this case, as shown in FIG. 5, the first second type block B 1 may separately include two hash values. However, the first second type block B 1 may include only one hash value that overlaps.

만약 도 5에 도시된 것과 달리, B1 블록이 제1 형 블록이고, 최초 제2 형 블록이 B2 블록이라면 B2 블록은 직전 블록의 적어도 일부의 해시값으로 H1을 포함하고, 최초 블록의 적어도 일부의 해시값으로 H0을 포함하게 될 것이다. 이러한 경우, H0과 H1은 구분되어 포함될 수 있다.Unlike in FIG. 5, if the B 1 block is the first type block and the first second type block is the B 2 block, the B 2 block includes H 1 as a hash value of at least a portion of the previous block, and the first block. Will contain H 0 as the hash value of at least a portion of. In this case, H 0 and H 1 may be included separately.

이러한 블록체인 시스템을 이용하면, 특정 노드가 진위여부를 검증하려는 데이터의 종류에 따라 일부의 블록만을 저장하고 사용하는 것이 가능하다.Using such a blockchain system, it is possible to store and use only some blocks depending on the type of data that a particular node wants to verify authenticity.

예를 들어, 특정 노드가 제2 형 이벤트의 데이터만의 검증을 원할 경우를 가정하여 설명한다. 상술한 것과 같이, 제2 형 이벤트의 데이터는 제2 형 블록에 포함되게 된다. 따라서 상기 특정 노드는 최초 블록과 제2 형 블록만을 저장하고, 이를 활용하여 데이터를 검증하는 것이 가능하다.For example, it is assumed that a specific node wants to verify only data of a type 2 event. As described above, the data of the type 2 event is included in the type 2 block. Therefore, the specific node can store only the first block and the second type block, and verify the data using the specific block.

구체적으로 도 5에서, 특정 노드가 B7에 저장된 데이터의 검증을 원할 경우, 상기 특정 노드는 메인 브랜치(1000)의 최초 블록과 제2 형 블록만을 저장하고 있으면 된다. 즉, 상기 특정 노드는 총 5개의 블록만을 저장하고 있는 것이다. 이는 총 13개로 구성된 모든 블록체인의 모든 블록을 저장하는 것이나, 총 8개로 구성된 메인 브랜치(1000)의 모든 블록을 저장하는 것보다 작은 개수의 블록을 저장하는 것이다.Specifically, in FIG. 5, when a specific node wants to verify data 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 13, 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 eight.

또한 도 5에서, 특정 노드가 B42에 저장된 데이터의 검증을 원할 경우, 상기 특정 노드는 메인 브랜치(1000)의 최초 블록과 제2 형 블록 및 B42가 포함된 서브 브랜치의 서브 블록만을 저장하고 있으면 된다. 즉, 상기 특정 노드는 총 7개의 블록만을 저장하고 있는 것이다. 이는 총 13개로 구성된 모든 블록체인의 모든 블록을 저장하는 것보다 작은 개수의 블록을 저장하는 것이다.In addition, in FIG. 5, when a specific node wants to verify data stored in B 42 , 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 42 . do. That is, the specific node stores only seven blocks in total. This is to store a smaller number of blocks than to store all blocks of all 13 blockchains.

이와 같이, 본 발명의 블록체인 시스템은 모든 노드가 블록체인의 모든 블록을 저장할 필요가 없다는 장점이 있다. 이는 노드가 부담해야 하는 컴퓨팅 작업 및 노드가 확보해야 하는 저장 공간을 감소시킬 수 있다는 장점이 있다. 이는 컴퓨팅 능력과 저장 공간이 상대적으로 제한된 모바일 장치 및 웨어러블 장치 등도 용이하게 블록체인 시스템의 노드로 참여할 수 있게 한다.As such, 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.

도 6을 참조하여, 본 발명의 다른 일 실시예에 따른 블록체인 시스템에 대해서 설명하도록 한다. 도 6은 본 발명의 다른 일 실시예에 따른 블록체인 시스템의 예시적인 블록도이다.Referring to Figure 6, it will be described with respect to the blockchain system according to another embodiment of the present invention. 6 is an exemplary block diagram of a blockchain system according to another embodiment of the present invention.

설명의 편의를 위해서, 도 6을 참조하여 본 발명의 실시예를 설명하면서 도 5를 참조하여 이미 설명한 것과 동일한 내용 중 일부는 생략하도록 한다.For convenience of description, some embodiments of the present invention will be omitted with reference to FIG. 5 while the embodiments of the present invention are described with reference to FIG. 6.

본 발명의 블록체인 시스템은 메인 브랜치(1000) 및 서브 브랜치(1002, 1005)를 포함한다.The blockchain system of the present invention includes a main branch 1000 and sub branches 1002 and 1005.

최초 제2 형 블록은 해당 최초 제2 형 블록 직전 블록의 적어도 일부의 해시값을 포함한다. 즉, 도 5를 참조하여 설명한 것과 달리, 최초 제2 형 블록은 최초 블록(B0)의 해시값(H0)을 포함하는 것이 아니라 해당 최초 제2 형 블록 직전 블록의 적어도 일부의 해시값을 포함하는 것이다.The first second type block includes 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.

구체적으로, 도 6을 참조하면 최초 제2 형 블록은 B2에 해당한다. B2를 기준으로 직전 블록은 B1에 해당한다. 따라서 B2는 B1의 적어도 일부의 해시값(H1)을 포함한다.Specifically, referring to FIG. 6, the first second type block corresponds to B 2 . Based on B 2 , the immediately preceding block corresponds to B 1 . Thus B 2 comprises at least a portion of the hash value H 1 of B 1 .

최초 제2 형 블록은 직전 블록의 적어도 일부의 해시값을 2개로 구분하여 포함할 수도 있고, 하나로 포함할 수도 있다. 도 6을 참조하면, 최초 제2 형 블록은 B2는 B1의 적어도 일부의 해시값(H1)을 구분하여 포함하는 것으로 도시하였지만 이에 한정되는 것은 아니다.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 2 is shown to include at least a portion of the hash value H 1 of B 1 , but is not limited thereto.

도 6의 블록체인 시스템에서, 특정 노드가 제2 형 이벤트의 데이터만의 검증을 원할 경우를 가정하여 설명한다. 상술한 것과 같이, 제2 형 이벤트의 데이터는 제2 형 블록에 포함되게 된다. 따라서 상기 특정 노드는 최초 제2 형 블록 직전의 블록과 제2 형 블록만을 저장하고, 이를 활용하여 데이터를 검증하는 것이 가능하다.In the blockchain system of FIG. 6, it is assumed that a specific node wants to verify only data of a type 2 event. As described above, the data of the type 2 event is included in the type 2 block. Accordingly, the specific node may store only the block immediately before the first type 2 block and the type 2 block, and verify data using the type node.

구체적으로 도 6에서, 특정 노드가 B7에 저장된 데이터의 검증을 원할 경우, 상기 특정 노드는 메인 브랜치(1000)의 최초 제2 형 블록 직전의 블록과 제2 형 블록만을 저장하고 있으면 된다. 즉, 상기 특정 노드는 총 5개의 블록만을 저장하고 있는 것이다. 이는 총 14개로 구성된 모든 블록체인의 모든 블록을 저장하는 것이나, 총 9개로 구성된 메인 브랜치(1000)의 모든 블록을 저장하는 것보다 작은 개수의 블록을 저장하는 것이다.In detail, in FIG. 6, when a specific node wants to verify data stored in B 7 , the specific node needs to store only the block immediately before the first type 2 block and the type 2 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 block chains consisting of 14, or to store a smaller number of blocks than to store all the blocks of the main branch 1000 consisting of a total of nine.

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

100, 200: 블록
110, 210: 블록 헤더
120, 220: 블록 몸체
1000: 메인 브랜치
1001, 1002, 1004, 1005: 서브 브랜치
100, 200: block
110, 210: block header
120, 220: block body
1000: main branch
1001, 1002, 1004, 1005: sub branch

Claims (10)

블록체인 시스템에 있어서,
최초(genesis) 블록 및 적어도 하나의 제2 형 블록을 포함하는 메인 브랜치를 포함하고,
상기 메인 브랜치에 포함된 블록은 상기 최초 블록을 시작으로 각각 블록의 생성 순서에 따라 연결되고,
상기 최초 블록을 제외한 상기 메인 브랜치에 포함된 블록은 상기 메인 브랜치에서 해당 블록 직전에 생성된 블록의 적어도 일부의 해시값을 포함하고,
상기 제2 형 블록 중 적어도 일부는 상기 메인 브랜치에서 해당 제2 형 블록 직전에 생성된 제2 형 블록의 적어도 일부의 해시값을 포함하는 블록체인 시스템.
In a blockchain system,
A main branch comprising a genesis block and at least one second type block,
Blocks included in the main branch are connected according to the generation order of blocks, starting with the first block,
The block included in the main branch except for the first block includes a hash value of at least a portion of a block generated immediately before the corresponding block in the main branch,
And at least some of the second type blocks include hash values of at least some of the second type blocks generated immediately before the corresponding second type blocks in the main branch.
제1 항에 있어서,
상기 적어도 일부의 제2 형 블록은 상기 직전에 생성된 블록의 적어도 일부의 해시값과 상기 직전에 생성된 제2 형 블록의 적어도 일부의 해시값을 구분하여 포함하는 블록체인 시스템.
According to claim 1,
The at least part of the second type block includes a hash value of at least a portion of the block generated immediately before the at least a portion of the second type block generated immediately before the block chain system.
제1 항에 있어서,
상기 적어도 일부의 제2 형 블록이 포함하는 상기 직전에 생성된 블록의 적어도 일부의 해시값과 상기 직전에 생성된 제2 형 블록의 적어도 일부의 해시값이 동일한 경우, 하나의 해시값만을 포함하는 블록체인 시스템.
According to claim 1,
When the hash value of at least a portion of the immediately generated block included in the at least some second type block and the at least some hash values of the immediately generated second type block are the same, only one hash value is included. Blockchain system.
제1 항에 있어서,
상기 제2 형 블록은 제2 형 블록 중 가장 먼저 생성된 최초 제2 형 블록 및 상기 최초 제2 형 블록 이후에 생성된 후속 제2 형 블록을 포함하고,
상기 후속 제2 형 블록은 상기 메인 브랜치에서 해당 후속 제2 형 블록 직전에 생성된 제2 형 블록의 적어도 일부의 해시값을 포함하는 블록체인 시스템.
According to claim 1,
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,
And the subsequent second type block 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.
제4 항에 있어서,
상기 최초 제2 형 블록은 상기 최초 블록의 적어도 일부의 해시값을 포함하는 블록체인 시스템.
The method of claim 4, wherein
And the first second type block includes a hash value of at least a portion of the first block.
제4 항에 있어서,
상기 최초 제2 형 블록은 상기 최초 제2 형 블록 직전 블록의 적어도 일부의 해시값을 포함하고, 다른 블록의 적어도 일부의 해시값은 포함하지 않는 블록체인 시스템.
The method of claim 4, wherein
And the first second type block includes a hash value of at least a portion of the block immediately before the first second type block and does not include a hash value of at least a portion of another block.
제1 항에 있어서,
상기 제2 형 블록은 해당 제2 형 블록을 루트 블록으로 하는 포킹을 허용하는 블록체인 시스템.
According to claim 1,
The second type block is a blockchain system that allows forking with the second type block as a root block.
제1 항에 있어서,
상기 제2 형 블록은 해당 제2 형 블록을 루트 블록으로 하여 서브 블록이 연결되는 것을 허용하는 블록체인 시스템.
According to claim 1,
The second type block is a blockchain system that allows sub-blocks to be connected using the second type block as a root block.
제1 항에 있어서,
상기 제2 형 블록 중 적어도 일부를 루트 블록으로 하여 포킹된 서브 브랜치를 더 포함하는 블록체인 시스템.
According to claim 1,
And a sub branch forked using at least a portion of the second type block as a root block.
제1 항에 있어서,
상기 제2 형 블록 중 적어도 일부를 루트 블록으로 하여 연결된 적어도 하나의 서브 블록을 포함하는 서브 브랜치를 더 포함하는 블록체인 시스템.
According to claim 1,
And a sub branch including at least one sub block connected with at least a portion of the second type block as a root block.
KR1020180020031A 2018-02-20 2018-02-20 Blockchain system KR20190099936A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180020031A KR20190099936A (en) 2018-02-20 2018-02-20 Blockchain system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180020031A KR20190099936A (en) 2018-02-20 2018-02-20 Blockchain system

Publications (1)

Publication Number Publication Date
KR20190099936A true KR20190099936A (en) 2019-08-28

Family

ID=67775185

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180020031A KR20190099936A (en) 2018-02-20 2018-02-20 Blockchain system

Country Status (1)

Country Link
KR (1) KR20190099936A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021079416A1 (en) * 2019-10-21 2021-04-29 株式会社東芝 Tampering verification method and tampering verification system

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101751025B1 (en) 2017-01-03 2017-06-26 주식회사 온더 Smart system for trading stock based blockchein
KR101763827B1 (en) 2016-04-07 2017-08-02 주식회사 라이프시맨틱스 System, method and program for transmitting health data by block-chain

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101763827B1 (en) 2016-04-07 2017-08-02 주식회사 라이프시맨틱스 System, method and program for transmitting health data by block-chain
KR101751025B1 (en) 2017-01-03 2017-06-26 주식회사 온더 Smart system for trading stock based blockchein

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021079416A1 (en) * 2019-10-21 2021-04-29 株式会社東芝 Tampering verification method and tampering verification system
JPWO2021079416A1 (en) * 2019-10-21 2021-04-29

Similar Documents

Publication Publication Date Title
KR102017739B1 (en) Blockchain system and method of creating blockchain
Di Pierro What is the blockchain?
CA3052884C (en) Parallel execution of transactions in a blockchain network based on smart contract whitelists
KR20180124541A (en) Blockchain system and data managing method using blockchain
KR20200083936A (en) Parallel execution of transactions on the blockchain network
US10007803B2 (en) Searching over encrypted keywords in a database
EP3776250B1 (en) Performing map iterations in blockchain-based system
CN107786328A (en) A kind of method, service node device and computer-readable medium for generating key
CN108292351A (en) Use the data verification method and system of the Hash tree of such as time-centered Merkel's Hash tree etc
US9196111B1 (en) Automated teller machine (“ATM”) dynamic keypad
US20200294046A1 (en) Selection of digital properties for transactions
CN112883117B (en) Data synchronization method, equipment and computer readable storage medium
CN109981588B (en) Data transaction service processing method and system based on block chain
US20130019104A1 (en) Cell level data encryption
US20210365946A1 (en) Payslip verification for blockchain transaction
KR102272164B1 (en) Method for distributing a large-capacity electronic document using a smart contract in a blockchain
KR20190099936A (en) Blockchain system
KR20190113210A (en) Blockchain system
KR20190113211A (en) Blockchain system
KR20200089877A (en) A privatekey management method
AU2013205125B1 (en) Method and system for the secure transfer and verification of ownership of digital sequences
KR20190135822A (en) Blockchain system
KR20190135823A (en) Blockchain system
KR102365914B1 (en) Method and system for distributing an electronic document including personal information using a smart contract a in based on a blockchain
Agrawal et al. A role of blockchain in IoT and financial applications

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right