KR20200096045A - Blockchin generation apparatus, method for sharding blockchain thereof, and system the same - Google Patents

Blockchin generation apparatus, method for sharding blockchain thereof, and system the same Download PDF

Info

Publication number
KR20200096045A
KR20200096045A KR1020190061272A KR20190061272A KR20200096045A KR 20200096045 A KR20200096045 A KR 20200096045A KR 1020190061272 A KR1020190061272 A KR 1020190061272A KR 20190061272 A KR20190061272 A KR 20190061272A KR 20200096045 A KR20200096045 A KR 20200096045A
Authority
KR
South Korea
Prior art keywords
shard
nonce
node
consensus
nodes
Prior art date
Application number
KR1020190061272A
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 한국전자통신연구원
Publication of KR20200096045A publication Critical patent/KR20200096045A/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/104Peer-to-peer [P2P] networks
    • H04L67/1061Peer-to-peer [P2P] networks using node-based peer discovery mechanisms
    • H04L67/1065Discovery involving distributed pre-established resource-based relationships among peers, e.g. based on distributed hash tables [DHT] 
    • 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/1061Peer-to-peer [P2P] networks using node-based peer discovery mechanisms
    • H04L67/1072Discovery involving ranked list compilation of candidate peers

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

The present invention is to provide a method for sharding a blockchain in which a subject of a distributed consensus of a specific block height of a specific shard cannot be predicted and an apparatus thereof. According to the present invention, a method of sharding a blockchain of a blockchain generation apparatus may comprise the steps of: getting a nonce value from a nonce chain at a node; allocating the node to a random shard using the nonce value; and selecting a consensus node in order to select a consensus subject for the allocated shard.

Description

블록체인 생성 장치, 그것의 블록체인을 샤딩하는 방법 및 그것을 포함하는 시스템{BLOCKCHIN GENERATION APPARATUS, METHOD FOR SHARDING BLOCKCHAIN THEREOF, AND SYSTEM THE SAME}Blockchain generation device, a method of sharding its blockchain, and a system including it {BLOCKCHIN GENERATION APPARATUS, METHOD FOR SHARDING BLOCKCHAIN THEREOF, AND SYSTEM THE SAME}

본 발명은 블록체인 생성 장치, 그것의 블록체인을 샤딩하는 방법 및 그것을 포함하는 시스템에 관한 것이다.The present invention relates to an apparatus for generating a block chain, a method for sharding a block chain thereof, and a system including the same.

일반적으로, 블록체인은 투명성과 보안성 등에 장점을 지니고 있지만, 데이터 처리 성능의 한계로 인해 기존 서비스에 쉽게 적용되지 못하고 있다. 이를 해결하기 위해서 블록체인을 병렬 처리하는 샤딩(Sharding) 기술이 주목받고 있다. 기본적으로 샤딩은 물리적으로 다른 데이터베이스에 데이터를 수평 분할 방식으로 분산 저장하고 조회하는 방법이다. 블록체인의 샤딩 기술은 블록체인의 확장성을 높이기 위하여, 블록체인 네트워크를 샤드(SHARD)로 수평분할하고, 각 샤드의 분산합의 주체가 데이터를 나누어 처리함으로써 병렬 처리가 가능케 하고 있다. 그 결과로써, 블록체인에 참여하는 분산합의 노드 개수가 증가하면, 샤드의 개수를 늘림으로써 블록체인의 성능이 향상될 수 있다.In general, blockchain has advantages such as transparency and security, but it is not easily applied to existing services due to limitations in data processing performance. In order to solve this problem, a sharding technology that processes blockchain in parallel is drawing attention. Basically, sharding is a method of distributing and retrieving data in a physically different database in a horizontal partitioning method. In order to increase the scalability of the blockchain, the blockchain sharding technology horizontally divides the blockchain network into shards, and the distributed consensus subject of each shard divides and processes data, enabling parallel processing. As a result, if the number of distributed consensus nodes participating in the blockchain increases, the performance of the blockchain can be improved by increasing the number of shards.

한국공개특허: 10-2018-0113145, 공개일: 2018년 10월 15일, 제목: 블록체인 기반 실시간 거래 처리 방법 및 그 시스템.Korean Patent Publication: 10-2018-0113145, Publication date: October 15, 2018, Title: Blockchain-based real-time transaction processing method and system thereof. 미국공개특허: US 2018―351732, 공개일: 2018년 12월 6일, 제목: EHANCING PROCESSING EFFICIENCY OF BLOCKCHAIN TECHONOGIES USING PAPALLEL SERVICE DATA PROCESSING.US Patent Publication: US 2018-351732, Publication Date: December 6, 2018, Title: EHANCING PROCESSING EFFICIENCY OF BLOCKCHAIN TECHONOGIES USING PAPALLEL SERVICE DATA PROCESSING.

본 발명의 목적은, 특정 샤드의 특정 블록 높이의 분산합의 주체를 예측할 수 없는 블록체인을 샤딩하는 방법 및 장치를 제공하는 데 있다.An object of the present invention is to provide a method and apparatus for sharding a block chain in which the subject of a distributed consensus of a specific block height of a specific shard cannot be predicted.

본 발명의 목적은, 특정 노드는 계속해서 동일한 샤드의 분산합의 주체로 선정되지 않도록 하는 블록체인을 샤딩하는 방법 및 장치를 제공하는 데 있다.It is an object of the present invention to provide a method and apparatus for sharding a blockchain in which a specific node is not continuously selected as the subject of distributed consensus of the same shard.

본 발명의 목적은, 특정 노드를 계속해서 임의의 샤드의 분산합의 주체로 선정하기 위해 추가적인 합의 과정이 없도록 하는 블록체인을 샤딩하는 방법 및 장치를 제공하는 데 있다.It is an object of the present invention to provide a method and apparatus for sharding a blockchain that does not have an additional consensus process in order to continuously select a specific node as a distributed consensus subject of an arbitrary shard.

본 발명의 목적은, 각 샤드에서 분산합의에 필요한 최소한의 노드가 그 자격을 얻을 수 있는 블록체인을 샤딩하는 방법 및 장치를 제공하는 데 있다.An object of the present invention is to provide a method and apparatus for sharding a blockchain in which the minimum number of nodes required for distributed agreement in each shard can obtain the qualification.

본 발명의 목적은, 노드의 연산 능력과 무관하게 분산합의 자격을 얻을 수 있는 블록체인을 샤딩하는 방법 및 장치를 제공하는 데 있다.An object of the present invention is to provide a method and apparatus for sharding a blockchain capable of obtaining a distributed consensus qualification regardless of the computational capability of a node.

본 발명의 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재들로부터 당업자에게 명확하게 이해될 수 있을 것이다The technical problems of the present invention are not limited to the technical problems mentioned above, and other technical problems that are not mentioned will be clearly understood by those skilled in the art from the following description.

본 발명의 실시 예에 따른 블록체인 생성 장치의 블록체인을 샤딩하는 방법은, 노드에서 난스 체인(nonce chain)으로부터 난스 값을 가져오는 단계; 상기 난스 값을 이용하여 상기 노드를 임의의 샤드에 배정하는 단계; 및 상기 배정된 샤드에 합의 주체를 선정하기 위하여 합의 노드를 선정하는 단계를 포함할 수 있다.A method of sharding a block chain of an apparatus for generating a block chain according to an embodiment of the present invention includes: obtaining a nonce value from a nonce chain at a node; Allocating the node to a random shard by using the nonce value; And selecting a consensus node to select a consensus subject for the allocated shard.

실시 예에 있어서, 상기 난스 체인은 고유의 값을 반복적으로 해쉬함으로써 생성되는 것을 특징으로 한다.In an embodiment, the nonce chain is generated by repeatedly hashing a unique value.

실시 예에 있어서, 상기 노드는 상기 난스 체인의 마지막 해쉬값을 다른 노드들에 공개되는 것을 특징으로 한다.In an embodiment, the node is characterized in that the last hash value of the nonce chain is disclosed to other nodes.

실시 예에 있어서, 상기 마지막 해쉬값을 공개할 때, 상기 노드는 상기 난스 체인을 사용하기 시작할 블록 번호를 상기 다른 노드들에 동시에 공개하는 것을 특징으로 한다.In an embodiment, when publishing the last hash value, the node simultaneously discloses a block number from which to use the nonce chain to the other nodes.

실시 예에 있어서, 상기 임의의 샤드에 배정하는 단계는, 상기 난스 값을 샤드의 개수로 나누는 단계; 및 상기 나눈 결과에 따른 나머지 값을 이용하여 상기 노드를 상기 임의의 샤드에 배정하는 단계를 포함할 수 있다.In an embodiment, the step of allocating the random shard may include dividing the nonce value by the number of shards; And allocating the node to the random shard by using the remaining value according to the result of the division.

실시 예에 있어서, 블록체인의 블록의 높이 마다 상기 노드의 상기 난스 값이 변경되는 것을 특징으로 한다.In an embodiment, the nonce value of the node is changed for each block height of the block chain.

실시 예에 있어서, 상기 합의 노드를 선정하는 단계는, 이전 블록의 정보를 근거로 하여 다음 블록의 합의 노드를 선정하는 단계를 더 포함할 수 있다.In an embodiment, the selecting of the consensus node may further include selecting a consensus node of a next block based on information of a previous block.

실시 예에 있어서, 상기 합의 노드를 선정하는 단계는, 상기 배정된 샤드의 합의 노드 선정 여부를 확인하기 위한 연산을 수행하는 단계를 더 포함할 수 있다.In an embodiment, the step of selecting the consensus node may further include performing an operation for confirming whether to select the consensus node of the allocated shard.

실시 예에 있어서, 상기 노드는 연산 능력과 무관하게 분산합의 자격을 부여하기 위하여 상기 연산의 회수를 제한하는 것을 특징으로 한다.In an embodiment, the node is characterized in that the number of times of the operation is limited in order to qualify for distributed agreement regardless of the operation capability.

실시 예에 있어서, 상기 배정된 샤드의 합의 노드의 개수는, 합의에 참여 가능한 노드의 개수(n), 합의에 필요한 최소 노드의 개수(x), 및 상기 최소 노드의 개수 이하가 선택될 확률 값(k)에 의해 결정되는 것을 특징으로 한다.In an embodiment, the number of consensus nodes of the allocated shard is the number of nodes that can participate in consensus (n), the minimum number of nodes required for consensus (x), and a probability value at which less than the number of the minimum nodes is selected. It is characterized by being determined by (k).

본 발명의 실시 예에 따른 블록체인 시스템은, 참여 노드들; 제 1 높이의 제 1 블록체인을 갖는 제 1 샤드; 및 상기 제 1 높이의 제 2 블록체인을 갖는 제 2 샤드를 포함하고, 상기 참여 노드들의 각각은, 난스 체인(nonce chain)으로부터 읽혀진 난스 값에 따라 상기 제 1 샤드 및 상기 제 2 샤드에 배정되고, 상기 난스 값에 따라 상기 배정된 샤드의 합의 노드로 선정되는 것을 특징으로 한다.Blockchain system according to an embodiment of the present invention, participation nodes; A first shard having a first block chain of a first height; And a second shard having a second block chain having the first height, wherein each of the participating nodes is assigned to the first shard and the second shard according to a nonce value read from a nonce chain, , It is characterized in that it is selected as a consensus node of the allocated shard according to the nonce value.

실시 예에 있어서, 상기 참여 노드들의 각각은, 상기 난스 체인의 마지막 난스 값과 대응하는 난스 값을 사용하는 시작 높이를 다른 노드들에 공개하는 것을 특징으로 한다.In an embodiment, each of the participating nodes discloses a starting height using a nonce value corresponding to a last nonce value of the nonce chain to other nodes.

실시 예에 있어서, 상기 다른 노드들의 각각은 상기 마지막 난스 값을 이용하여 상기 참여 노드들의 각각에서 사용할 난스 값을 검증하는 것을 특징으로 한다.In an embodiment, each of the other nodes verifies a nonce value to be used by each of the participating nodes by using the last nonce value.

실시 예에 있어서, 상기 참여 노드들의 각각은 각 블록 높이에 따라 상기 제 1 샤드 및 상기 제 2 샤드 중에서 어느 하나로 배정되는 것을 특징으로 한다.In an embodiment, each of the participating nodes is assigned to one of the first shard and the second shard according to each block height.

실시 예에 있어서, 상기 참여 노드들의 각각은 상기 난스 값을 이용해서 상기 블록 높이에 대해 배정받은 샤드를 아는 것을 특징으로 한다.In an embodiment, each of the participating nodes knows the shard assigned to the block height using the nonce value.

실시 예에 있어서, 상기 참여 노드들의 각각은, 아래의 수학식과 같이,

Figure pat00001
상기 난스 체인으로부터 얻은 난스 값(
Figure pat00002
)과 상기 배정받은 샤드의 이전 블록의 해시 값(
Figure pat00003
)을 해쉬한 값 쿠폰 값(coupon)이 난이도(
Figure pat00004
)보다 작은 지에 따라 합의 노드 선정 여부를 알아내는 것을 특징으로 한다.In an embodiment, each of the participating nodes, as shown in the following equation,
Figure pat00001
The nonce value obtained from the above nonce chain (
Figure pat00002
) And the hash value of the previous block of the allocated shard (
Figure pat00003
) Is hashed, and the coupon value is the difficulty level (
Figure pat00004
It is characterized by determining whether to select a consensus node according to whether it is smaller than ).

실시 예에 있어서, 상기 난이도(

Figure pat00005
)는 상기 참여 노드의 개수(n), 각 샤드에서 합의에 필요한 최소 노드의 개수(x), 합의에 필요한 최소 노드의 개수 이하로 선택될 확률(k)에 의해 계산되는 것을 특징으로 한다.In an embodiment, the difficulty level (
Figure pat00005
) Is calculated by the number of participating nodes (n), the minimum number of nodes required for consensus in each shard (x), and the probability (k) of being selected less than the minimum number of nodes required for consensus.

본 발명의 실시 예에 따른 블록체인 생성 장치는, 적어도 하나의 프로세서; 및 상기 적어도 하나의 프로세서에서 실행되는 적어도 하나의 인스트럭션을 저장하는 메모리를 포함하고, 상기 적어도 하나의 인스트럭션은, 난스 체인(nonce chain)으로부터 난스 값을 읽고; 상기 난스 값을 이용하여 상기 블록체인 생성 장치를 임의의 샤드에 배정하고; 및 상기 배정된 샤드의 합의 노드 선정을 위한 연산을 수행하도록 상기 적어도 하나의 프로세서에 실행되는 것을 특징으로 한다.Block chain generation apparatus according to an embodiment of the present invention, at least one processor; And a memory for storing at least one instruction executed by the at least one processor, wherein the at least one instruction reads a nonce value from a nonce chain; Allocating the block chain generating device to a random shard using the nonce value; And executing an operation for selecting a consensus node of the allocated shards in the at least one processor.

실시 예에 있어서, 상기 난스 체인은 상기 블록체인 생성 장치의 랜덤한 값을 복수번 해쉬함으로써 생성되는 것을 특징으로 한다.In an embodiment, the nonce chain is generated by hashing a random value of the block chain generating device a plurality of times.

실시 예에 있어서, 상기 배정된 샤드는 사전에 결정된 연산 방식에 의해 상기 난스 값을 근거로 하여 배정되는 것을 특징으로 한다.In an embodiment, the assigned shard is assigned based on the nonce value by a predetermined calculation method.

본 발명의 실시 예에 따른 블록체인을 샤딩하는 방법 및 장치는, 특정 샤드의 특정 블록 높이의 분산합의 주체를 예측할 수 없기 때문에, 악의적인 노드가 합의 주체 노드를 예측하여 공격하는 것이 불가능하다.In the method and apparatus for sharding a block chain according to an embodiment of the present invention, it is impossible for a malicious node to predict and attack the consensus subject node because it is not possible to predict the subject of distributed consensus of a specific block height of a specific shard.

본 발명의 실시 예에 따른 블록체인을 샤딩하는 방법 및 장치는, 특정 노드가 계속해서 동일한 샤드의 분산합의 주체로 선정되지 않기 때문에 악의적인 노드가 해당 샤드를 지속적으로 공격하는 것이 불가능하다.In the method and apparatus for sharding a block chain according to an embodiment of the present invention, it is impossible for a malicious node to continuously attack a corresponding shard because a specific node is not continuously selected as the subject of distributed consensus of the same shard.

본 발명의 실시 예에 따른 블록체인을 샤딩하는 방법 및 장치는, 특정 노드를 계속해서 다른 샤드의 분산합의 주체로 선정하기 위해 추가적인 합의 과정이 없기 때문에 이를 위한 연산 및 통신 비용이 없다.The method and apparatus for sharding a block chain according to an embodiment of the present invention do not have an additional consensus process in order to continuously select a specific node as a distributed consensus subject of another shard, so there is no computation and communication cost for this.

본 발명의 실시 예에 따른 블록체인을 샤딩하는 방법 및 장치는, 각 샤드에 대해 분산합의에 필요한 최소한의 노드가 분산합의 자격을 얻을 수 있어서 분산합의 참여 노드 간 빠른 합의가 가능하다.In the method and apparatus for sharding a block chain according to an embodiment of the present invention, a minimum number of nodes required for distributed consensus for each shard can obtain distributed consensus qualification, thereby enabling rapid consensus among nodes participating in the distributed consensus.

본 발명의 실시 예에 따른 블록체인을 샤딩하는 방법 및 장치는, 노드가 연산 능력과 무관하게 분산합의 자격을 얻을 수 있어서 강력한 연산 능력을 확보한 일부의 노드가 분산합의 자격을 독점 할 수 없다.In the method and apparatus for sharding a block chain according to an embodiment of the present invention, since a node can obtain a distributed consensus qualification regardless of its computing power, some nodes that have secured strong computing power cannot monopolize the distributed consensus qualification.

이하에 첨부되는 도면들은 본 실시 예에 관한 이해를 돕기 위한 것으로, 상세한 설명과 함께 실시 예들을 제공한다. 다만, 본 실시예의 기술적 특징이 특정 도면에 한정되는 것은 아니며, 각 도면에서 개시하는 특징들은 서로 조합되어 새로운 실시 예로 구성될 수 있다.
도 1은 일반적인 블록체인을 샤딩하는 방법을 개념적으로 보여주는 도면이다.
도 2는 일반적인 샤딩 처리 방법을 제공하는 블록체인 플랫폼을 예시적으로 보여주는 도면이다.
도 3은 본 발명의 실시 예에 따른 블록체인을 샤딩하는 방법을 개념적으로 설명하기 위한 도면이다.
도 4는 본 발명의 실시 예에 따른 블록체인 샤딩 방법에서 공격자의 분산합의 주체 예측 시나리오를 예시적으로 보여주는 도면이다.
도 5는 본 발명의 실시 예에 따른 블록체인 샤딩 방법에서 공격자 합의노드의 공격 시나리오를 예시적으로 보여주는 도면이다.
도 6은 본 발명의 실시 예에 따른 블록체인 샤딩 방법에서 합의노드 선정의 효과를 개념적으로 보여주는 도면이다.
도 7은 각 노드가 샤드를 배정 받고, 합의 주체 선정 여부를 판단할 때 사용하는 nonce chain을 설명하기 위한 도면이다.
도 8은 노드가 각 블록 높이에 대해 하나의 샤드로 배정 되는 과정을 설명하기 위한 도면이다.
도 9는 노드가 각 블록 높이에 대해 합의 주체로 선정되는 과정을 설명하기 위한 도면이다.
도 10은 본 발명의 실시 예에 따른 난이도(difficulty) 결정하는 방식을 예시적으로 보여주는 도면이다.
도 11은 본 발명의 실시 예에 따른 블록체인을 샤딩 방법을 예시적으로 보여주는 흐름도이다.
도 12는 본 발명의 실시 예에 따른 블록체인 생성 장치(1000)를 예시적으로 보여주는 도면이다.
The accompanying drawings are provided to help understanding of the present embodiment, and provide embodiments together with a detailed description. However, the technical features of the present embodiment are not limited to a specific drawing, and features disclosed in each drawing may be combined with each other to constitute a new embodiment.
1 is a diagram conceptually showing a method of sharding a general blockchain.
2 is a diagram illustrating a block chain platform that provides a general sharding processing method as an example.
3 is a diagram for conceptually explaining a method of sharding a block chain according to an embodiment of the present invention.
FIG. 4 is a diagram illustrating an attacker's distributed consensus subject prediction scenario in a block chain sharding method according to an embodiment of the present invention.
5 is a diagram illustrating an attack scenario of an attacker consensus node in a block chain sharding method according to an embodiment of the present invention.
6 is a diagram conceptually showing the effect of selecting a consensus node in a block chain sharding method according to an embodiment of the present invention.
7 is a diagram for explaining a nonce chain used when each node receives a shard and determines whether to select a consensus subject.
8 is a diagram for explaining a process in which a node is allocated to one shard for each block height.
9 is a diagram for explaining a process in which a node is selected as a consensus subject for each block height.
10 is a diagram illustrating a method of determining a difficulty according to an embodiment of the present invention.
11 is a flowchart illustrating a method of sharding a block chain according to an embodiment of the present invention.
12 is a diagram illustrating an apparatus 1000 for generating a block chain according to an embodiment of the present invention.

아래에서는 도면들을 이용하여 본 발명의 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있을 정도로 본 발명의 내용을 명확하고 상세하게 기재할 것이다.In the following, the contents of the present invention will be described clearly and in detail so that those skilled in the art of the present invention can easily implement the drawings using the drawings.

본 발명은 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있는바, 특정 실시 예들을 도면에 예시하고 본문에 상세하게 설명하고자 한다. 그러나 이는 본 발명을 특정한 개시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 제 1, 제 2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로 사용될 수 있다. 예를 들어, 본 발명의 권리 범위로부터 이탈되지 않은 채 제 1 구성요소는 제 2 구성요소로 명명될 수 있고, 유사하게 제 2 구성요소도 제 1 구성요소로 명명될 수 있다. 어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 혹은 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. The present invention can be applied to various changes and may have various forms, and specific embodiments will be illustrated in the drawings and described in detail in the text. However, this is not intended to limit the present invention to specific disclosure forms, and it should be understood that all modifications, equivalents, and substitutes included in the spirit and scope of the present invention are included. Terms such as first and second may be used to describe various elements, but the elements should not be limited by the terms. The terms may be used for the purpose of distinguishing one component from other components. For example, the first component may be referred to as the second component without departing from the scope of the present invention, and similarly, the second component may also be referred to as the first component. When an element is said to be "connected" or "connected" to another component, it is understood that other components may be directly connected to or connected to the other component, but other components may exist in the middle. It should be. On the other hand, when a component is referred to as being "directly connected" or "directly connected" to another component, it should be understood that there is no other component in the middle.

본 출원에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 혹은 "가지다" 등의 용어는 실시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 혹은 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 혹은 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 혹은 이들을 조합한 것들의 존재 혹은 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다. 다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미이다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미인 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Terms used in the present application are only used to describe specific embodiments, and are not intended to limit the present invention. Singular expressions include plural expressions unless the context clearly indicates otherwise. In this application, the terms "include" or "have" are intended to indicate the existence of a feature, number, step, action, component, part or combination thereof carried out, one or more other features or numbers. It should be understood that it does not preclude the existence or addition possibilities of, steps, actions, components, parts or combinations thereof. Unless otherwise defined, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art to which the present invention belongs. Terms as defined in a commonly used dictionary should be interpreted as having a meaning consistent with the meaning in the context of the related technology, and should not be interpreted as an ideal or excessively formal meaning unless explicitly defined in this application. .

본 발명의 실시 예에 따른 블록체인 장치 및 그것의 방법은, 고성능 데이터 처리를 안전하게 하기 위해서 랜덤 노드에 의해서 블록체인을 샤딩(수평 분할)할 수 있다.The block chain device and method thereof according to an embodiment of the present invention can shard (horizontally divide) the block chain by random nodes in order to secure high-performance data processing.

도 1은 일반적인 블록체인을 샤딩하는 방법을 개념적으로 보여주는 도면이다. 도 1을 참조하면, 블록체인을 병렬로 처리하기 위하여 메인 체인은 복수의 샤드들(SHARD 0, SHARD 1, ?? , SHARD N, N은 2 이상의 정수)로 변환될 수 있다.1 is a diagram conceptually showing a method of sharding a general blockchain. Referring to FIG. 1, in order to process the blockchain in parallel, the main chain may be converted into a plurality of shards (SHARD 0, SHARD 1, ??, SHARD N, N are integers of 2 or more).

복수의 샤드들(SHARD 0, ... , SHARD N)의 각각은 배정된 분산합의(Distributed Consensus) 주체에 의해 블록을 생성할 수 있다.Each of the plurality of shards (SHARD 0, ..., SHARD N) may generate a block by an assigned Distributed Consensus subject.

도 2는 일반적인 샤딩 처리 방법을 제공하는 블록체인 플랫폼을 예시적으로 보여주는 도면이다. 도 2을 참조하면, 블록체인 플랫폼에서 고성능 데이터 처리를 위해 블록체인을 병렬처리 하는 방식은 다음과 같다.2 is a diagram illustrating a block chain platform that provides a general sharding processing method as an example. Referring to FIG. 2, a method of parallel processing a blockchain for high-performance data processing in a blockchain platform is as follows.

먼저, DS 위원회(Directory Service Committee)는 분산합의 주체를 결정한다. DS 위원회는 DS 블록체인을 통해 구성된다. DS 블록체인에 블록을 연결하는데 성공한 마지막 n개 노드가 DS 위원(DS NODE)들이 된다.First, the DS Committee (Directory Service Committee) decides the subject of variance agreement. The DS committee is formed through the DS blockchain. The last n nodes that succeeded in connecting blocks to the DS blockchain become DS NODEs.

한편, DS 블록체인은 PoW(Proof of Work) 작업증명 방식으로 새로운 블록을 추가한다. 따라서 DS 위원회는 어떤 노드가 다음 PoW 작업증명을 마칠 때까지 고정된다. 이때, 가장 마지막으로 DS 위원이 된 노드가 DS 리더(Leader)노드이다.On the other hand, the DS blockchain adds a new block with a PoW (Proof of Work) proof-of-work method. Therefore, the DS committee is fixed until a node completes the next PoW Proof of Work. At this time, the node that became the last DS member is the DS Leader node.

DS 리더 노드는 분산합의 노드를 각 샤드로 배정하고, 이를 DS 위원회에 제안하고, 동의를 얻는 역할을 담당한다. DS 리더 노드로부터 합의 주체로 선정되기 위해서 현재 DS 위원회 구성을 입력으로 하는 PoW 작업증명을 통과해야 한다. DS 리더 노드는 작업증명을 통과한 m개의 분산합의 노드를 각 분산합의 노드가 제출한 nonce 값에 따라 정렬하고, 1개의 샤드에 분산합의 주체로 배정하고, DS 위원회의 동의를 얻는다. 상술 된 방식으로 각 샤드의 분산합의 주체가 결정된다.The DS leader node is responsible for allocating distributed consensus nodes to each shard, proposing this to the DS committee, and obtaining consent. In order to be selected as the consensus subject from the DS leader node, it is necessary to pass the PoW proof of work with the current DS committee composition as input. The DS leader node sorts the m distributed consensus nodes that have passed the proof-of-work according to the nonce value submitted by each distributed consensus node, allocates one shard as the subject of the distributed consensus, and obtains the consent of the DS committee. The subject of the dispersion sum of each shard is determined in the manner described above.

각 샤드의 분산합의 주체가 데이터를 병렬로 처리함으로써, 고성능 데이터 처리가 가능한 블록체인 시스템을 제공된다. 하지만 이러한 방식의 병렬처리 방법은 아래의 문제점을 갖는다. 첫째로, 일정 시간동안 각 샤드의 분산합의 주체가 고정되기 때문에 악위적인 노드가 합의 노드를 예측하여 공격할 수 있다. 둘째로, 악의적인 노드의 공격을 예방하기 위해 각 샤드의 분산합의 주체를 변경하기 위해서 DS 위원회의 동의 절차가 추가적으로 필요하기 때문에 비용이 크다. 셋째로, 노드의 연산 능력이 높을 수록 DS 위원회에 들어갈 확률과 분산합의 주체가 될 확률이 높아지기 때문에 강력한 연산 능력을 확보한 일부의 노드는 분산합의 자격을 독점 할 수 있다.The distributed consensus subject of each shard processes data in parallel, providing a blockchain system capable of high-performance data processing. However, this parallel processing method has the following problems. First, since the subject of the distributed consensus of each shard is fixed for a certain period of time, a malicious node can predict and attack the consensus node. Second, the cost is high because the DS committee's consent procedure is additionally required to change the distributed consensus subject of each shard to prevent malicious node attacks. Third, the higher the computing power of a node, the higher the probability of joining the DS committee and becoming the subject of the variance sum, so some nodes with strong computing power can monopolize the variance consensus qualification.

본 발명의 실시 예에 따른 블록체인을 샤딩하는 방법 및 장치는, 상술된 문제점들을 해결하기 위하여 랜덤 노드(Random Node)에 의한 블록체인 수평분할(샤드)을 제공할 수 있다.The method and apparatus for sharding a block chain according to an embodiment of the present invention may provide a block chain horizontal division (shard) by a random node in order to solve the above-described problems.

도 3은 본 발명의 실시 예에 따른 블록체인을 샤딩하는 방법을 개념적으로 설명하기 위한 도면이다. 도 3을 참조하면, 고성능 데이터 처리를 위해 2개의 샤드(SHARD 0, SHARD 1)에서 데이터를 병렬 처리 하고 있다. 총 8개의 노드들이 블록체인 네트워크에 참여하고 있다. 만일, 병렬처리를 하지 않는 경우 8개의 모든 노드가 하나의 블록을 생성하기 위한 합의 과정에 참여할 수 있다. 도 3에 도시된 바와 같이, 2개의 샤드들(SHARD 0, SHARD 1)로 데이터를 나누어 처리하면, 동시에 두 개의 블록이 생성될 수 있다.3 is a diagram for conceptually explaining a method of sharding a block chain according to an embodiment of the present invention. Referring to FIG. 3, data is processed in parallel in two shards (SHARD 0 and SHARD 1) for high-performance data processing. A total of 8 nodes are participating in the blockchain network. If parallel processing is not performed, all 8 nodes can participate in the consensus process to generate one block. As shown in FIG. 3, when data is divided into two shards (SHARD 0 and SHARD 1) and processed, two blocks may be simultaneously generated.

도 3에서는 2번 블록과 4번 블록에 대해서만 합의 주체로 선정된 노드들이 표시된다. 예를 들어, 제 1 샤드(SHARD 0)의 2번 블록에 대해 합의 주체로 선정된 노드는 N1, N2, N3, N4 이고, 제 2 샤드(SHARD 1)의 2번 블록에 대해 합의 주체로 선정된 노드는 N5, N6, N7, N8 이다. 이와 같이 8개의 노드들(N1 ~ N8)이 2개의 샤드들(SHARD 0, SHARD 1)로 나뉘어 데이터를 병렬 처리함으로써, 블록체인 기반 고성능 데이터 처리가 제공될 수 있다.In FIG. 3, nodes selected as consensus subjects only for blocks 2 and 4 are displayed. For example, nodes selected as consensus subjects for block 2 of the first shard (SHARD 0) are N1, N2, N3, and N4, and are selected as consensus subjects for block 2 of the second shard (SHARD 1). The nodes are N5, N6, N7, N8. As described above, the eight nodes N1 to N8 are divided into two shards SHARD 0 and SHARD 1 to process data in parallel, thereby providing high-performance data processing based on a blockchain.

한편, 제 1 노드(N1)는 2번 블록에 대해서 제 1 샤드(SHARD 0)의 합의 주체로써 데이터 처리에 참가하고, 4번 블록에 대해서 제 2 샤드(SHARD 1)의 합의 주체로써 데이터 처리에 참가할 수 있다. 이는 특정 샤드의 합의 주체를 계속 변경함으로써, 병렬처리를 안전하게 하기 위함이다. 예를 들어, 제 1 샤드(SHARD 0)를 공격하려는 악의적인 노드가 존재하더라도, 해당 노드는 계속해서 제 1 샤드(SHARD 0)에 배정될 수 없다.On the other hand, the first node (N1) participates in data processing as the consensus subject of the first shard (SHARD 0) for block 2, and the consensus subject of the second shard (SHARD 1) for block 4 You can participate. This is to secure parallel processing by continuously changing the consensus subject of a specific shard. For example, even if there is a malicious node that attempts to attack the first shard (SHARD 0), the corresponding node cannot be continuously assigned to the first shard (SHARD 0).

도 4는 본 발명의 실시 예에 따른 블록체인 샤딩 방법에서 공격자의 분산합의 주체 예측 시나리오를 예시적으로 보여주는 도면이다. 도 4를 참조하면, 본 발명의 실시 예에 따른 블록체인 샤딩 방법은 특정 샤드의 합의 주체를 변경함으로써, 제 1 샤드(SHARD 0) 및 제 2 샤드(SHARD 1)의 특정 블록 높이의 분산합의 주체의 예측이 불가하다. 따라서 악의적인 노드는 분산합의 주체를 예측하여 공격할 수 없다.FIG. 4 is a diagram illustrating an attacker's distributed consensus subject prediction scenario in a block chain sharding method according to an embodiment of the present invention. 4, the block chain sharding method according to an embodiment of the present invention changes the consensus subject of a specific shard, thereby distributing the consensus subject of a specific block height of the first shard (SHARD 0) and the second shard (SHARD 1). Is impossible to predict. Therefore, malicious nodes cannot predict and attack the subject of distributed consensus.

도 5는 본 발명의 실시 예에 따른 블록체인 샤딩 방법에서 공격자 합의노드의 공격 시나리오를 예시적으로 보여주는 도면이다. 도 5를 참조하면, 특정 노드가 계속해서 다른 샤드의 분산합의 주체로 선정됨으로써, 악의적인 노드는 계속해서 동일한 샤드 공격을 할 수 없다. 5 is a diagram illustrating an attack scenario of an attacker consensus node in a block chain sharding method according to an embodiment of the present invention. Referring to FIG. 5, since a specific node is continuously selected as the subject of distributed consensus of other shards, a malicious node cannot continuously attack the same shard.

도 6은 본 발명의 실시 예에 따른 블록체인 샤딩 방법에서 합의노드 선정의 효과를 개념적으로 보여주는 도면이다. 본 발명의 실시 예에 따른 블록체인을 샤딩하는 방법은, 합의 주체를 매 블록마다 예측 불가능하도록 추가적인 합의 과정을 필요치 않는다. 따라서 추가적인 연산 및 통신 비용이 야기되지 않는다.6 is a diagram conceptually showing the effect of selecting a consensus node in a block chain sharding method according to an embodiment of the present invention. The method of sharding a block chain according to an embodiment of the present invention does not require an additional consensus process so that the consensus subject is unpredictable for each block. Therefore, no additional computation and communication costs are incurred.

또한, 갹 샤드(SHARD 0, SHARD 1)는 연산 능력과 무관한 최소한의 노드로 분산합의 자격을 획득할 수 있다. 이는 강력한 연산 능력 기반의 분산합의 자격 독점을 예방하고, 최소한의 노드 사이에서 빠른 합의가 가능케 한다.In addition, the shard (SHARD 0, SHARD 1) can acquire the qualification for distributed consensus with the minimum number of nodes irrelevant to the computational capability. This prevents the monopoly of distributed consensus qualifications based on strong computational power, and enables fast consensus among the minimum number of nodes.

한편, 샤드의 개수, 노드의 개수, 하나의 블록을 합의하기 위한 합의 주체의 개수가 특정한 값으로 제한되지 않는다고 이해되어야 할 것이다.On the other hand, it should be understood that the number of shards, the number of nodes, and the number of consensus subjects to agree on one block are not limited to a specific value.

본 발명의 실시 예에 따른 블록체인을 샤딩하는 방법 및 장치는, 다른 노드가 예측할 수 없는 nonce 값을 nonce chain으로부터 가져오고, 임의의 샤드에 노드를 배정하고, 각 샤드에서 최소의 노드가 합의 주체로 선정할 수 있다.In the method and apparatus for sharding a block chain according to an embodiment of the present invention, a nonce value that cannot be predicted by another node is obtained from a nonce chain, a node is assigned to a random shard, and the minimum node in each shard is a consensus subject. Can be selected as

도 7은 각 노드가 샤드를 배정 받고, 합의 주체 선정 여부를 판단할 때 사용하는 nonce chain을 설명하기 위한 도면이다. 도 7을 참조하면, 노드는 합의 주체로 선정되기 위해 먼저 nonce chain을 생성하고, 시작 높이(start height)와 마지막 난스(last nonce)를 다른 노드에게 공개한다. 여기서 start height는 nonce chain을 사용하기 시작할 블록의 높이이다. last nonce는 노드가 앞으로 사용할 nonce값을 검증하기 위한 값이다.7 is a diagram for explaining a nonce chain used when each node receives a shard and determines whether to select a consensus subject. Referring to FIG. 7, a node first creates a nonce chain to be selected as a consensus subject, and discloses a start height and a last nonce to other nodes. Here, start height is the height of the block to start using the nonce chain. The last nonce is a value to verify the nonce value that the node will use in the future.

실시 예에 있어서, nonce chain는 임의의 nonce를 복수번 해쉬함으로써 생성될 수 있다. 여기서 임의의 nonce는 노드의 개인 키일 수 있다.In an embodiment, the nonce chain may be generated by hashing an arbitrary nonce multiple times. Here, the arbitrary nonce may be the private key of the node.

예를 들어, 도 7에 도시된 제 1 노드(N1)가 height(높이)가 1인 블록에서 사용할 수 있는 nonce값은 0xe1 이다. 제 1 노드(N1)의 nonoce 값은 다른 노드가 예측할 수 없다. 하지만 제 1 노드(N1)가 nonce 값을 공개하면, 다른 노드는 last nonce를 이용하여 미리 등록한 nonce chain으로부터 얻은 nonce 값인지 검증할 수 있다. 즉, nonce chain을 사용하면 각 노드는 특정 높이 h에 대해 다른 노드가 예측 할 수 없는 nonce 값(

Figure pat00006
)을 얻을 수 있다.For example, a nonce value that can be used in a block in which the first node N1 shown in FIG. 7 has a height of 1 is 0xe1. The nonoce value of the first node N1 cannot be predicted by other nodes. However, if the first node N1 discloses the nonce value, the other node can verify whether the nonce value is obtained from the nonce chain registered in advance by using the last nonce. In other words, using a nonce chain, each node has a nonce value that other nodes cannot predict for a specific height h (
Figure pat00006
) Can be obtained.

도 8은 노드가 각 블록 높이에 대해 하나의 샤드로 배정 되는 과정을 설명하기 위한 도면이다. 도 8을 참조하면, 제 1 노드(N1)는 블록 높이 1, 2, 3에 대해서 제 1 샤드(SHARD 0), 제 2 샤드(SHARD 1), 제 1 샤드(SHARD 0)의 순서로 배정될 수 있다.8 is a diagram for explaining a process in which a node is allocated to one shard for each block height. Referring to FIG. 8, the first node N1 is allocated in the order of a first shard (SHARD 0), a second shard (SHARD 1), and a first shard (SHARD 0) for block heights 1, 2, and 3 I can.

제 1 노드(N1)는 nonce chain을 공개하고, 각 블록 높이에 대해 아래의 수학식을 사용해서 배정받은 샤드를 알아낼 수 있다.The first node N1 discloses the nonce chain, and can find out the assigned shard using the following equation for each block height.

Figure pat00007
Figure pat00007

여기서, Ns는 샤드의 개수이다.Here, N s is the number of shards.

수학식 1에 따르면, 각 노드는 nonce chain으로부터 얻은

Figure pat00008
값을 이용해서 높이 h에 대해 배정받은 샤드를 알아 낼 수 있다.According to Equation 1, each node is obtained from a nonce chain.
Figure pat00008
You can use the value to find out the shard assigned for height h.

제 1 노드(N1)는 높이 1에 대한 nonce 값으로 0xe1을 갖고 있다. 샤드의 개수가 2일 때, 제 1 노드(N1)는 수학식 1에 따라 제 1 샤드(SHARD 0)에 배정될 수 있다.The first node N1 has 0xe1 as a nonce value for height 1. When the number of shards is 2, the first node N1 may be assigned to the first shard SHARD 0 according to Equation 1.

한편, 수학식 1에서 노드의 nonce값을 임의의 샤드로 맵핑하기 위해 단순한 나머지 연산을 사용하였다. 하지만 본 발명의 샤드 맵핑이 여기에 제한되지 않는 다고 이해되어야 할 것이다.Meanwhile, in Equation 1, a simple residual operation was used to map the nonce value of a node to an arbitrary shard. However, it should be understood that the shard mapping of the present invention is not limited thereto.

한편, 어떤 노드의

Figure pat00009
값은 블록의 높이에 따라 계속 달라지기 때문에 노드는 계속해서 임의의 샤드에 배정 될 수 있다.Meanwhile, of which node
Figure pat00009
Nodes can continue to be assigned to arbitrary shards because the value keeps changing with the height of the block.

한편, 수학식 1에서 Ns 값은 노드간 통신을 통해 공유하거나 블록에 Ns값을 기록하여 관리 할 수 있다. 하지만 본 발명에 여기에 제한되지 않는다고 이해되어야 할 것이다.Meanwhile, in Equation 1, the value of N s may be shared through communication between nodes or managed by recording the value of N s in a block. However, it should be understood that the present invention is not limited thereto.

도 9는 노드가 각 블록 높이에 대해 합의 주체로 선정되는 과정을 설명하기 위한 도면이다. 도 9를 참조하면, 합의 주체 선정은 예측 불가능한 분산합의 주체 선정 방법을 기반으로 동작할 수 있다.9 is a diagram for explaining a process in which a node is selected as a consensus subject for each block height. Referring to FIG. 9, the consensus subject selection may operate based on an unpredictable variance consensus subject selection method.

제 1 노드(N1)는 블록 높이 1에 대해서 제 1 샤드(SHARD 0)의 합의 주체로 선정되고, 블록 높이 2에 대해서 합의 주체로 선정되지 못하고, 블록 높이 3에 대해서는 제 2 샤드(SHARD 1)의 합의 주체로 선정될 수 있다.The first node (N1) is selected as the consensus subject of the first shard (SHARD 0) for block height 1, cannot be selected as the consensus subject for block height 2, and the second shard (SHARD 1) for block height 3 Can be selected as the consensus subject of

제 1 노드(N1)는 nonce chain을 공개하고, 도 8에 도시된 바와 같이 배정받은 샤드를 알아낸 후에, 아래의 수학식을 사용해서 분산합의 주체 선정 여부를 알아낼 수 있다.After the first node N1 discloses the nonce chain and finds out the assigned shard as shown in FIG. 8, it can determine whether or not the subject of the distributed sum is selected using the following equation.

Figure pat00010
Figure pat00010

수학식 2에 따르면, 각 노드는 nonce chain으로부터 얻은

Figure pat00011
값과 배정받은 샤드의 이전 블록의 해시 값(
Figure pat00012
)을 이용해서 분산합의 주체 선정 여부를 알아 낼 수 있다. 한편, 수학식 2에서
Figure pat00013
가 특정 해시 함수로 제한되지 않는다고 이해되어야 할 것이다. 또한, 수학식 2에서
Figure pat00014
을 연산한 값은 coupon값이다. 여기서 난이도(
Figure pat00015
)는 coupon의 기준이 된다.According to Equation 2, each node is obtained from a nonce chain.
Figure pat00011
The value and the hash value of the previous block of the assigned shard (
Figure pat00012
) Can be used to find out whether the subject of the variance agreement is selected. Meanwhile, in Equation 2
Figure pat00013
It should be understood that is not limited to a specific hash function. Also, in Equation 2
Figure pat00014
The calculated value of is the coupon value. Here the difficulty (
Figure pat00015
) Is the standard of the coupon.

실시 예에 있어서, 이전 블록의 해시 값(

Figure pat00016
)에 대하여 모든 노드는 이전 블록이 결정될 때까지 분산합의 주체 선정 여부를 예측할 수 있다.In an embodiment, the hash value of the previous block (
Figure pat00016
), all nodes can predict whether or not to select the subject of variance until the previous block is determined.

실시 예에 있어서, nonce chain으로부터 얻은

Figure pat00017
값은 다음과 같은 특징을 갖게 한다. 연산 능력을 이용해서 nonce 값을 바꾸어 가면서 분산 합의 주체가 될 확률은 높일 수 없다. 다른 노드의 nonce 값을 알 수 없음으로, 다른 노드의 합의 주체 선정 여부를 알 수 없다. 다른 노드가 nonce 값을 공개하면, 해당 노드가 공개한 nonce chain을 기반으로 합의 주체 선정 여부를 검증할 수 있다.In an embodiment, obtained from the nonce chain
Figure pat00017
The value has the following characteristics. It is not possible to increase the probability of becoming the subject of the variance sum by changing the nonce value using computational power. Since the nonce value of other nodes is unknown, it is not possible to know whether or not the consensus subject of other nodes is selected. When another node discloses the nonce value, it can be verified whether the consensus subject is selected based on the nonce chain disclosed by the node.

한편, 수학식 2에서 난이도(

Figure pat00018
)는 분산합의에 필요한 최소한의 노드만 분산합의 자격을 얻도록 모든 노드가 높이 h에 대해 사용하는 동일한 값일 수 있다.On the other hand, in Equation 2, the difficulty (
Figure pat00018
) Can be the same value that all nodes use for height h so that only the minimum number of nodes required for distributed consensus qualify for distributed consensus.

한편, 합의에 참여 가능한 노드 수를 n이라 하고, 각 샤드의 합의에 필요한 최소 노드수를 x라 하고, 합의에 필요한 최소 노드수 이하가 선택될 확률 값을 k라 할 때, 이 세개의 변수(n, x, k)를 사용하여 합의 주체 개수 제어하는 난이도(

Figure pat00019
)를 계산될 수 있다.On the other hand, when n is the number of nodes that can participate in consensus, the minimum number of nodes required for consensus of each shard is x, and k is the probability value that less than the minimum number of nodes required for consensus is selected, these three variables ( The difficulty of controlling the number of subjects in the consensus using n, x, k) (
Figure pat00019
) Can be calculated.

실시 예에 있어서, 난이도(

Figure pat00020
) 값을 조정함으로써 분산 합의에 필요한 최소한의 노드만 분산 합의 자격이 부여될 수 있다.In the embodiment, the difficulty (
Figure pat00020
), only the minimum number of nodes required for distributed consensus can be eligible for distributed consensus.

한편, 분산 합의 노드의 개수는 정규분포(n,p)로 나타낼 수 있다.Meanwhile, the number of distributed consensus nodes can be represented by a normal distribution (n,p).

도 10은 본 발명의 실시 예에 따른 난이도(difficulty) 결정하는 방식을 예시적으로 보여주는 도면이다. 도 10을 참조하면, n은 nonce chain을 공개한 노드의 개수이고, p는 difficulty/max_difficulty 이다. 난이도(difficulty)는 분산 합의에 필요한 노드의 최소한의 노드의 개수(x)가 특정 확률이 나오도록 결정될 수 있다.10 is a diagram illustrating a method of determining a difficulty according to an embodiment of the present invention. Referring to FIG. 10, n is the number of nodes to which the nonce chain is disclosed, and p is difficulty/max_difficulty. The difficulty level (difficulty) can be determined such that the minimum number of nodes (x) of nodes required for distributed consensus yields a specific probability.

도 11은 본 발명의 실시 예에 따른 블록체인을 샤딩 방법을 예시적으로 보여주는 흐름도이다. 도 3 내지 도 11을 참조하면, 블록체인을 샤딩하는 방법은 다음과 같이 진행될 수 있다.11 is a flowchart illustrating a method of sharding a block chain according to an embodiment of the present invention. 3 to 11, a method of sharding a block chain may proceed as follows.

노드(예를 들어, N1)는 다른 노드가 예측할 수 없는 nonce 값을 nonce chain에서 가져올 수 있다(S110). nonce 값을 이용하여 임의의 샤드에 노드가 배정(allocate)될 수 있다(S120). 배정된 노드에서 대응하는 샤드에 최소의 노드가 합의 주체로 선정될 수 있다(S130).A node (eg, N1) may obtain a nonce value that is not predictable by another node from the nonce chain (S110). A node may be assigned to an arbitrary shard using the nonce value (S120). A minimum node may be selected as a consensus subject to a corresponding shard from the assigned node (S130).

실시 예에 있어서, nonce chain은 임의의 nonce 값을 반복 해시하여 만든 해시 체인일 수 있다. 실시 예에 있어서, 노드는 해시 체인의 가장 마지막 값(last nonce)을 다른 노드에게 공개하고, 이전 nonce 값부터 차례 대로 사용할 수 있다.In an embodiment, the nonce chain may be a hash chain created by repeatedly hashing an arbitrary nonce value. In an embodiment, the node may disclose the last nonce of the hash chain to other nodes, and use the previous nonce value sequentially.

실시 예에 있어서, 노드가 사용하는 nonce 값은 해시의 역상 저항성 특징으로 인해 다른 노드가 예측할 수 없다. 하지만 nonce 값을 공개하였을 때 간단한 연산만으로, last nonce를 공개한 nonce chain으로부터 얻은 nonce 값인지 쉽게 검증 가능하다.In an embodiment, the nonce value used by the node cannot be predicted by other nodes due to the anti-phase resistance characteristic of the hash. However, when the nonce value is disclosed, it is possible to easily verify whether it is a nonce value obtained from the nonce chain that disclosed the last nonce with a simple operation.

실시 예에 있어서, last nonce 값을 공개할 때, nonce chain을 사용하기 시작할 블록 번호(start height)를 같이 공개하고, 매 블록 높이 마다 한 개의 nonce 값이 소모될 수 있다.In an embodiment, when the last nonce value is disclosed, the block number (start height) to start using the nonce chain is disclosed together, and one nonce value may be consumed for each block height.

실시 예에 있어서, 매 블록 높이 마다 예측 불가능하게 각 노드를 임의의 샤드에 배정하기 위해서, nonce chain에서 가져온 nonce 값을 이용해서 각 노드가 샤드에 배정될 수 있다.In an embodiment, in order to unpredictably allocate each node to a random shard for each block height, each node may be assigned to a shard using a nonce value obtained from a nonce chain.

실시 예에 있어서, nonce 값을 샤드의 개수로 나누고, 그 나머지 값을 이용해서 노드가 샤드에 배정될 수 있다.In an embodiment, a nonce value may be divided by the number of shards, and a node may be assigned to a shard using the remaining value.

실시 예에 있어서, 매 블록 높이 마다 노드의 nonce 값이 바뀜에 따라 추가적인 연산이나 통신 없이도 특정 노드는 계속해서 임의의 샤드에 배정될 수 있다.In an embodiment, as the nonce value of the node changes for each block height, a specific node may be continuously assigned to a random shard without additional computation or communication.

실시 예에 있어서, 노드 자신은 배정될 샤드를 미리 예측 할 수 있더라도, 해당 샤드에서의 합의 주체 선정 여부를 미리 알 수 없도록 하기 위해서, 배정된 샤드의 이전 블록이 생성되기 전까지 다음 블록의 합의 주체가 예측될 수 없다. 이를 위하여 이전 블록의 정보를 기반으로 다음 블록의 합의 주체가 선정될 수 있다.In an embodiment, even if the node itself can predict the shard to be allocated in advance, in order not to know in advance whether the consensus subject is selected in the shard, the consensus subject of the next block is It cannot be predicted. For this, the consensus subject of the next block may be selected based on the information of the previous block.

실시 예에 있어서, 노드의 연산 능력과 무관하게 분산합의 자격을 부여하도록, 합의 주체 선정 여부를 확인하는 연산 기회가 제한될 수 있다. 이를 위하여 nonce chain으로부터 얻은 nonce 값만 사용될 수 있다.In an embodiment, a computational opportunity for confirming whether to select a consensus subject may be limited so as to grant a distributed consensus qualification regardless of the computational capability of a node. For this, only the nonce value obtained from the nonce chain can be used.

실시 예에 있어서, 합의에 참여 가능한 노드 수가 n이고, 각 샤드의 합의에 필요한 최소 노드 개수가 x이고, 합의에 필요한 최소 노드수 이하가 선택될 확률 값이 k 일 때, 이 세개의 변수(n, x, k)를 통해 합의 주체 개수가 제어될 수 있다.In an embodiment, when the number of nodes that can participate in consensus is n, the minimum number of nodes required for consensus of each shard is x, and the probability value that less than the minimum number of nodes required for consensus is selected is k, these three variables (n The number of consensus subjects can be controlled through, x, k).

도 12는 본 발명의 실시 예에 따른 블록체인 생성 장치(1000)를 예시적으로 보여주는 도면이다. 도 12를 참조하면, 블록체인 생성 장치(1000)는 적어도 하나의 프로세서(1100), 네트워크 인터페이스(1200), 메모리(1300), 디스플레이(1400), 및 입출력 장치(1500)를 포함할 수 있다.12 is a diagram illustrating an apparatus 1000 for generating a block chain according to an embodiment of the present invention. Referring to FIG. 12, the block chain generating apparatus 1000 may include at least one processor 1100, a network interface 1200, a memory 1300, a display 1400, and an input/output device 1500.

프로세서(1100)는 도 3 내지 도 11을 통하여 적어도 하나의 장치를 포함하거나, 도 3 내지 도 11을 통하여 전술한 적어도 하나의 방법으로 구현될 수 있다. 프로세서(1100)는, 상술된 바와 같이, 난스 체인(nonce chain)으로부터 난스 값을 읽고, 난스 값을 이용하여 블록체인 생성 장치(1000)를 임의의 샤드에 배정하고; 및 배정된 샤드의 합의 노드 선정을 위한 연산을 수행하도록 인스트럭션들(instructions)을 실행할 수 있다.The processor 1100 may include at least one device through FIGS. 3 to 11, or may be implemented by at least one method described above through FIGS. 3 to 11. The processor 1100 reads a nonce value from a nonce chain, as described above, and assigns the block chain generating device 1000 to a random shard by using the nonce value; And it is possible to execute instructions (instructions) to perform an operation for selecting a consensus node of the assigned shard.

프로세서(1100)는 프로그램을 실행하고, 블록체인 생성 장치(1000)을 제어할 수 있다. 생성 장치(1000)는 입출력 장치(1500)를 통하여 외부 장치(예를 들어, 퍼스널 컴퓨터 혹은 네트워크)에 연결되고, 데이터를 교환할 수 있다. 블록체인 생성 장치(1000)는 이동 전화, 스마트 폰, PDA, 태블릿 컴퓨터, 랩톱 컴퓨터 등 모바일 장치, 퍼스널 컴퓨터, 태블릿 컴퓨터, 넷북 등 컴퓨팅 장치, 혹은 텔레비전, 스마트 텔레비전, 게이트 제어를 위한 보안 장치 등 전자 제품 등 다양한 전자 시스템을 포함할 수 있다.The processor 1100 may execute a program and control the block chain generating device 1000. The generation device 1000 is connected to an external device (eg, a personal computer or a network) through the input/output device 1500 and may exchange data. The block chain generation device 1000 is a mobile phone, a smart phone, a PDA, a tablet computer, a mobile device such as a laptop computer, a computing device such as a personal computer, a tablet computer, and a netbook, or an electronic device such as a television, a smart television, and a security device for gate control. It may include various electronic systems such as products.

네트워크 인터페이스(1200)는 외부의 네트워크와 다양한 유/무선 방식에 의해 통신을 수행하도록 구현될 수 있다.The network interface 1200 may be implemented to perform communication with an external network through various wired/wireless methods.

메모리(1300)는 컴퓨터에서 읽을 수 있는 명령어(instruction)를 포함할 수 있다. 프로세서(1100)는 메모리(1300)에 저장된 명령어가 프로세서(1100)에서 실행됨에 따라 앞서 언급된 동작들을 수행할 수 있다. 메모리(1300)는 휘발성 메모리 혹은 비휘발성 메모리일 수 있다. 메모리(1300)는 사용자의 데이터를 저장하도록 저장 장치를 포함할 수 있다. 저장 장치는 eMMC(embedded multimedia card), SSD(solid state drive), UFS(universal flash storage) 등 일 수 있다. 저장 장치는 적어도 하나의 비휘발성 메모리 장치를 포함할 수 있다. 비휘발성 메모리 장치는, 낸드 플래시 메모리(NAND Flash Memory), 수직형 낸드 플래시 메모리(Vertical NAND; VNAND), 노아 플래시 메모리(NOR Flash Memory), 저항성 램(Resistive Random Access Memory: RRAM), 상변화 메모리(Phase-Change Memory: PRAM), 자기저항 메모리(Magnetoresistive Random Access Memory: MRAM), 강유전체 메모리(Ferroelectric Random Access Memory: FRAM), 스핀주입 자화반전 메모리(Spin Transfer Torque Random Access Memory: STT-RAM) 등이 될 수 있다.The memory 1300 may include instructions that can be read by a computer. The processor 1100 may perform the aforementioned operations as instructions stored in the memory 1300 are executed by the processor 1100. The memory 1300 may be a volatile memory or a nonvolatile memory. The memory 1300 may include a storage device to store user data. The storage device may be an embedded multimedia card (eMMC), a solid state drive (SSD), a universal flash storage (UFS), or the like. The storage device may include at least one nonvolatile memory device. Non-volatile memory devices include NAND flash memory, vertical NAND (VNAND), NOR flash memory, resistive random access memory (RRAM), and phase change memory. (Phase-Change Memory: PRAM), Magnetoresistive Random Access Memory (MRAM), Ferroelectric Random Access Memory (FRAM), Spin Transfer Torque Random Access Memory (STT-RAM), etc. Can be

이상에서 설명된 실시 예들은 하드웨어 구성요소, 소프트웨어 구성요소, 및/혹은 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치, 방법 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(Arithmetic Logic Unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(Field Programmable Gate Array), PLU(Programmable Logic Unit), 마이크로프로세서, 혹은 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 혹은 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(Operating System; OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. The embodiments described above may be implemented as a hardware component, a software component, and/or a combination of a hardware component and a software component. For example, the devices, methods, and components described in the embodiments are, for example, a processor, a controller, an Arithmetic Logic Unit (ALU), a digital signal processor, a microcomputer, a field programmable gate (FPGA). Array), PLU (Programmable Logic Unit), microprocessor, or any other device capable of executing and responding to instructions, it can be implemented using one or more general purpose computers or special purpose computers. The processing device may execute an operating system (OS) and one or more software applications executed on the operating system.

또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 대응하는 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소 (processing element) 및/혹은 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수의 프로세서 혹은 하나의 프로세서 및 하나의 제어기(controller)를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.In addition, the processing device may access, store, manipulate, process, and generate data in response to the execution of the software. For the convenience of understanding, although it is sometimes described that one processing device is used, those of ordinary skill in the corresponding technical field, the processing device is a plurality of processing elements and/or multiple types of processing. You can see that it can contain elements. For example, the processing device may include a plurality of processors or one processor and one controller. In addition, other processing configurations, such as parallel processors, are possible.

소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 혹은 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 혹은 결합적으로 (collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/혹은 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 혹은 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 혹은 장치, 혹은 전송되는 신호파(signal wave)에 영구적으로, 혹은 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.Software may include a computer program, code, instruction, or a combination of one or more of these, and configure the processing unit to operate as desired or process it independently or collectively. You can command the device. Software and/or data is any type of machine, component, physical device, virtual equipment, computer storage medium or device to be interpreted by the processing device or to provide instructions or data to the processing device. , Or may be permanently or temporarily embodyed in a transmitted signal wave. The software may be distributed on networked computer systems, and stored or executed in a distributed manner. Software and data may be stored in one or more computer-readable recording media.

실시 예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 혹은 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시 예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체 (magneto-optical media), 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.The method according to the embodiment may be implemented in the form of program instructions that can be executed through various computer means and may be recorded on a computer-readable medium. The computer-readable medium may include program instructions, data files, data structures, etc. alone or in combination. The program instructions recorded in the medium may be specially designed and configured for the embodiment, or may be known to and usable by those skilled in computer software. Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks, and magnetic tapes, optical media such as CD-ROMs and DVDs, and magnetic media such as floptical disks. -Includes hardware devices specially configured to store and execute program instructions such as magneto-optical media, ROM, RAM, flash memory, etc. Examples of program instructions include high-level language code that can be executed by a computer using an interpreter, etc., as well as machine language codes produced by a compiler. The hardware device described above may be configured to operate as one or more software modules to perform the operation of the embodiment, and vice versa.

본 발명의 실시 예에 따른 블록체인을 샤딩하는 방법 및 장치는, 특정 샤드의 특정 블록 높이의 분산합의 주체를 예측할 수 없기 때문에, 악의적인 노드가 합의 주체 노드를 예측하여 공격하는 것이 불가능하다.In the method and apparatus for sharding a block chain according to an embodiment of the present invention, it is impossible for a malicious node to predict and attack the consensus subject node because it is not possible to predict the subject of distributed consensus of a specific block height of a specific shard.

본 발명의 실시 예에 따른 블록체인을 샤딩하는 방법 및 장치는, 특정 노드가 계속해서 동일한 샤드의 분산합의 주체로 선정되지 않기 때문에 악의적인 노드가 해당 샤드를 지속적으로 공격하는 것이 불가능하다.In the method and apparatus for sharding a block chain according to an embodiment of the present invention, it is impossible for a malicious node to continuously attack a corresponding shard because a specific node is not continuously selected as the subject of distributed consensus of the same shard.

본 발명의 실시 예에 따른 블록체인을 샤딩하는 방법 및 장치는, 특정 노드를 계속해서 다른 샤드의 분산합의 주체로 선정하기 위해 추가적인 합의 과정이 없기 때문에 이를 위한 연산 및 통신 비용이 없다.The method and apparatus for sharding a block chain according to an embodiment of the present invention do not have an additional consensus process to continuously select a specific node as a distributed consensus subject of another shard, so there is no computation and communication cost for this.

본 발명의 실시 예에 따른 블록체인을 샤딩하는 방법 및 장치는, 각 샤드에 대해 분산합의에 필요한 최소한의 노드가 분산합의 자격을 얻을 수 있어서 분산합의 참여 노드 간 빠른 합의가 가능하다.In the method and apparatus for sharding a block chain according to an embodiment of the present invention, a minimum number of nodes required for distributed consensus for each shard can obtain distributed consensus qualification, enabling rapid consensus among nodes participating in the distributed consensus.

본 발명의 실시 예에 따른 블록체인을 샤딩하는 방법 및 장치는, 노드가 연산 능력과 무관하게 분산합의 자격을 얻을 수 있어서 강력한 연산 능력을 확보한 일부의 노드가 분산합의 자격을 독점 할 수 없다.In the method and apparatus for sharding a block chain according to an embodiment of the present invention, a node can obtain a distributed consensus qualification regardless of its computing power, so that some nodes with strong computing power cannot monopolize the distributed consensus qualification.

한편, 상술 된 본 발명의 내용은 발명을 실시하기 위한 구체적인 실시 예들에 불과하다. 본 발명은 구체적이고 실제로 이용할 수 있는 수단 자체뿐 아니라, 장차 기술로 활용할 수 있는 추상적이고 개념적인 아이디어인 기술적 사상을 포함할 것이다.Meanwhile, the contents of the present invention described above are only specific examples for carrying out the invention. The present invention will include not only specific and practically usable means itself, but also technical ideas that are abstract and conceptual ideas that can be utilized as future technologies.

SHARD 0: 제 1 샤드
SHARD 1: 제 2 샤드
N1 ~ N8: 노드
1000: 블록체인 생성 장치
SHARD 0: 1st shard
SHARD 1: second shard
N1 to N8: nodes
1000: Blockchain generation device

Claims (20)

블록체인 생성 장치의 블록체인을 샤딩하는 방법에 있어서,
노드에서 난스 체인(nonce chain)으로부터 난스 값을 가져오는 단계;
상기 난스 값을 이용하여 상기 노드를 임의의 샤드에 배정하는 단계; 및
상기 배정된 샤드에 합의 주체를 선정하기 위하여 합의 노드를 선정하는 단계를 포함하는 방법.
In the method of sharding a block chain of a block chain generating device,
Obtaining a nonce value from a nonce chain at the node;
Allocating the node to a random shard by using the nonce value; And
And selecting a consensus node to select a consensus subject for the allocated shard.
제 1 항에 있어서,
상기 난스 체인은 고유의 값을 반복적으로 해쉬함으로써 생성되는 것으로 특징으로 하는 방법.
The method of claim 1,
The method of claim 1, wherein the nonce chain is generated by repeatedly hashing a unique value.
제 2 항에 있어서,
상기 노드는 상기 난스 체인의 마지막 해쉬값을 다른 노드들에 공개되는 것을 특징으로 하는 방법.
According to claim 2,
Wherein the node discloses the last hash value of the nonce chain to other nodes.
제 3 항에 있어서,
상기 마지막 해쉬값을 공개할 때, 상기 노드는 상기 난스 체인을 사용하기 시작할 블록 번호를 상기 다른 노드들에 동시에 공개하는 것을 특징으로 하는 방법.
The method of claim 3,
When publishing the last hash value, the node simultaneously discloses a block number from which to use the nonce chain to the other nodes.
제 1 항에 있어서,
상기 임의의 샤드에 배정하는 단계는,
상기 난스 값을 샤드의 개수로 나누는 단계; 및
상기 나눈 결과에 따른 나머지 값을 이용하여 상기 노드를 상기 임의의 샤드에 배정하는 단계를 포함하는 방법.
The method of claim 1,
The step of assigning to the random shard,
Dividing the nonce value by the number of shards; And
And allocating the node to the random shard by using the remaining value according to the result of the division.
제 1 항에 있어서,
블록체인의 블록의 높이 마다 상기 노드의 상기 난스 값이 변경되는 것을 특징으로 하는 방법.
The method of claim 1,
The method, characterized in that the nonce value of the node is changed for each block height of the block chain.
제 1 항에 있어서,
상기 합의 노드를 선정하는 단계는,
이전 블록의 정보를 근거로 하여 다음 블록의 합의 노드를 선정하는 단계를 더 포함하는 방법.
The method of claim 1,
The step of selecting the consensus node,
The method further comprising the step of selecting a consensus node of the next block based on the information of the previous block.
제 1 항에 있어서,
상기 합의 노드를 선정하는 단계는,
상기 배정된 샤드의 합의 노드 선정 여부를 확인하기 위한 연산을 수행하는 단계를 더 포함하는 방법.
The method of claim 1,
The step of selecting the consensus node,
The method further comprising the step of performing an operation to check whether the consensus node of the allocated shard is selected.
제 8 항에 있어서,
상기 노드는 연산 능력과 무관하게 분산합의 자격을 부여하기 위하여 상기 연산의 회수를 제한하는 것을 특징으로 하는 방법.
The method of claim 8,
The method of claim 1, wherein the node limits the number of times of the operation in order to grant the variance sum qualification regardless of the operation capability.
제 1 항에 있어서,
상기 배정된 샤드의 합의 노드의 개수는, 합의에 참여 가능한 노드의 개수(n), 합의에 필요한 최소 노드의 개수(x), 및 상기 최소 노드의 개수 이하가 선택될 확률 값(k)에 의해 결정되는 것을 특징으로 하는 방법.
The method of claim 1,
The number of consensus nodes of the allocated shard is determined by the number of nodes that can participate in consensus (n), the minimum number of nodes required for consensus (x), and a probability value (k) at which less than the number of the minimum nodes is selected. Method, characterized in that determined.
참여 노드들;
제 1 높이의 제 1 블록체인을 갖는 제 1 샤드; 및
상기 제 1 높이의 제 2 블록체인을 갖는 제 2 샤드를 포함하고,
상기 참여 노드들의 각각은,
난스 체인(nonce chain)으로부터 읽혀진 난스 값에 따라 상기 제 1 샤드 및 상기 제 2 샤드에 배정되고, 상기 난스 값에 따라 상기 배정된 샤드의 합의 노드로 선정되는 것을 특징으로 하는 블록체인 시스템.
Participating nodes;
A first shard having a first block chain of a first height; And
Including a second shard having a second block chain of the first height,
Each of the participating nodes,
A blockchain system, characterized in that: assigned to the first shard and the second shard according to a nonce value read from a nonce chain, and selected as a consensus node of the assigned shard according to the nonce value.
제 11 항에 있어서,
상기 참여 노드들의 각각은,
상기 난스 체인의 마지막 난스 값과 대응하는 난스 값을 사용하는 시작 높이를 다른 노드들에 공개하는 것을 특징으로 하는 블록체인 시스템.
The method of claim 11,
Each of the participating nodes,
Blockchain system, characterized in that the nonce value of the nonce chain and the start height using the corresponding nonce value is disclosed to other nodes.
제 12 항에 있어서,
상기 다른 노드들의 각각은 상기 마지막 난스 값을 이용하여 상기 참여 노드들의 각각에서 사용할 난스 값을 검증하는 것을 특징으로 하는 블록체인 시스템.
The method of claim 12,
Each of the other nodes verifies a nonce value to be used by each of the participating nodes by using the last nonce value.
제 11 항에 있어서,
상기 참여 노드들의 각각은 각 블록 높이에 따라 상기 제 1 샤드 및 상기 제 2 샤드 중에서 어느 하나로 배정되는 것을 특징으로 하는 블록체인 시스템.
The method of claim 11,
Each of the participating nodes is assigned to one of the first shard and the second shard according to each block height.
제 14 항에 있어서,
상기 참여 노드들의 각각은 상기 난스 값을 이용해서 상기 블록 높이에 대해 배정받은 샤드를 아는 것을 특징으로 하는 블록체인 시스템.
The method of claim 14,
Each of the participating nodes knows the shard assigned to the block height by using the nonce value.
제 14 항에 있어서,
상기 참여 노드들의 각각은, 아래의 수학식과 같이,
Figure pat00021

상기 난스 체인으로부터 얻은 난스 값(
Figure pat00022
)과 상기 배정받은 샤드의 이전 블록의 해시 값(
Figure pat00023
)을 해쉬한 값 쿠폰 값(coupon)이 난이도(
Figure pat00024
)보다 작은 지에 따라 합의 노드 선정 여부를 알아내는 것을 특징으로 하는 블록체인 시스템.
The method of claim 14,
Each of the participating nodes, as shown in the following equation,
Figure pat00021

The nonce value obtained from the above nonce chain (
Figure pat00022
) And the hash value of the previous block of the allocated shard (
Figure pat00023
) Is hashed, and the coupon value is the difficulty level (
Figure pat00024
Blockchain system characterized by determining whether to select a consensus node based on whether it is smaller than ).
제 16 항에 있어서,
상기 난이도(
Figure pat00025
)는 상기 참여 노드의 개수(n), 각 샤드에서 합의에 필요한 최소 노드의 개수(x), 합의에 필요한 최소 노드의 개수 이하로 선택될 확률(k)에 의해 계산되는 것을 특징으로 하는 블록체임 시스템.
The method of claim 16,
The above difficulty level (
Figure pat00025
) Is a block chain characterized in that it is calculated by the number of participating nodes (n), the minimum number of nodes required for consensus in each shard (x), and the probability (k) to be selected less than the minimum number of nodes required for consensus system.
블록체인 생성 장치에 있어서,
적어도 하나의 프로세서; 및
상기 적어도 하나의 프로세서에서 실행되는 적어도 하나의 인스트럭션을 저장하는 메모리를 포함하고,
상기 적어도 하나의 인스트럭션은,
난스 체인(nonce chain)으로부터 난스 값을 읽고;
상기 난스 값을 이용하여 상기 블록체인 생성 장치를 임의의 샤드에 배정하고; 및
상기 배정된 샤드의 합의 노드 선정을 위한 연산을 수행하도록 상기 적어도 하나의 프로세서에 실행되는 것을 특징으로 하는 블록체인 생성 장치.
In the block chain generation device,
At least one processor; And
A memory for storing at least one instruction executed by the at least one processor,
The at least one instruction,
Read nonce value from nonce chain;
Allocating the block chain generating device to a random shard using the nonce value; And
Blockchain generation apparatus, characterized in that executed in the at least one processor to perform an operation for selecting a consensus node of the assigned shard.
제 18 항에 있어서,
상기 난스 체인은 상기 블록체인 생성 장치의 랜덤한 값을 복수번 해쉬함으로써 생성되는 것을 특징으로 하는 블록체인 생성 장치.
The method of claim 18,
The nonce chain is generated by hashing a random value of the block chain generating device a plurality of times.
제 18 항에 있어서,
상기 배정된 샤드는 사전에 결정된 연산 방식에 의해 상기 난스 값을 근거로을 하여 배정되는 것을 특징으로 하는 블록체인 생성 장치.
The method of claim 18,
The allocated shard is allocated based on the nonce value by a predetermined operation method.
KR1020190061272A 2019-02-01 2019-05-24 Blockchin generation apparatus, method for sharding blockchain thereof, and system the same KR20200096045A (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020190013891 2019-02-01
KR20190013891 2019-02-01

Publications (1)

Publication Number Publication Date
KR20200096045A true KR20200096045A (en) 2020-08-11

Family

ID=72048253

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190061272A KR20200096045A (en) 2019-02-01 2019-05-24 Blockchin generation apparatus, method for sharding blockchain thereof, and system the same

Country Status (1)

Country Link
KR (1) KR20200096045A (en)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112764714A (en) * 2021-01-28 2021-05-07 上海朝夕网络技术有限公司 Self-excitation random number generation method based on intelligent contract and terminal equipment
KR20220058270A (en) * 2020-10-30 2022-05-09 주식회사 블록오디세이 Method of providing platform for mobile blockchain network, Mobile device and Recording medium
CN114520812A (en) * 2021-08-16 2022-05-20 西安电子科技大学 Storage rotation method, system, equipment and application for block chain fragmentation system
CN115022061A (en) * 2022-06-14 2022-09-06 安徽中科大国祯信息科技有限责任公司 Block chain fragmentation method and system based on minimum segmentation method
CN115834592A (en) * 2021-09-16 2023-03-21 中移系统集成有限公司 Transaction execution method, device, equipment and storage medium based on block chain
KR20240063615A (en) * 2022-11-03 2024-05-10 주식회사 블룸테크놀로지 System and method for distributing nodes across two shards in blockchain network
WO2024207843A1 (en) * 2023-12-11 2024-10-10 天翼云科技有限公司 Blockchain-based outsourcing trusted computing method and system, and storage medium

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180113145A (en) 2017-04-05 2018-10-15 삼성에스디에스 주식회사 Method for processing blockchain based real-time transaction and system thereof

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180113145A (en) 2017-04-05 2018-10-15 삼성에스디에스 주식회사 Method for processing blockchain based real-time transaction and system thereof

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
미국공개특허: US 2018-351732, 공개일: 2018년 12월 6일, 제목: EHANCING PROCESSING EFFICIENCY OF BLOCKCHAIN TECHONOGIES USING PAPALLEL SERVICE DATA PROCESSING.

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220058270A (en) * 2020-10-30 2022-05-09 주식회사 블록오디세이 Method of providing platform for mobile blockchain network, Mobile device and Recording medium
CN112764714A (en) * 2021-01-28 2021-05-07 上海朝夕网络技术有限公司 Self-excitation random number generation method based on intelligent contract and terminal equipment
CN112764714B (en) * 2021-01-28 2023-10-03 上海朝夕网络技术有限公司 Self-excitation random number generation method based on intelligent contract and terminal equipment
CN114520812A (en) * 2021-08-16 2022-05-20 西安电子科技大学 Storage rotation method, system, equipment and application for block chain fragmentation system
CN114520812B (en) * 2021-08-16 2023-02-14 西安电子科技大学 Memory rotation method, system, equipment and application for block chain fragmentation system
CN115834592A (en) * 2021-09-16 2023-03-21 中移系统集成有限公司 Transaction execution method, device, equipment and storage medium based on block chain
CN115022061A (en) * 2022-06-14 2022-09-06 安徽中科大国祯信息科技有限责任公司 Block chain fragmentation method and system based on minimum segmentation method
CN115022061B (en) * 2022-06-14 2024-02-06 安徽中科大国祯信息科技有限责任公司 Block chain slicing method and system based on minimum cutting method
KR20240063615A (en) * 2022-11-03 2024-05-10 주식회사 블룸테크놀로지 System and method for distributing nodes across two shards in blockchain network
WO2024096420A1 (en) * 2022-11-03 2024-05-10 주식회사 블룸테크놀로지 System and method for distributing nodes in blockchain network
WO2024207843A1 (en) * 2023-12-11 2024-10-10 天翼云科技有限公司 Blockchain-based outsourcing trusted computing method and system, and storage medium

Similar Documents

Publication Publication Date Title
KR20200096045A (en) Blockchin generation apparatus, method for sharding blockchain thereof, and system the same
CN110599160B (en) Method and apparatus for selecting distributed consensus nodes based on random number attestation
CN108323200B (en) Data training method and device based on block chain, storage medium and block chain link points
US11113103B2 (en) Task parallel processing method, apparatus and system, storage medium and computer device
JP6804668B2 (en) Block data validation method and equipment
CN109416721B (en) Privacy preserving machine learning
JP7430744B2 (en) Improving machine learning models to improve locality
KR102342840B1 (en) Method and appartaus for selecting distributed consensus node based on proof-of-nonce
TW201946413A (en) Programmable data storage device and programmable network data storage system
CN107621959B (en) Electronic device and software training method and computing system thereof
US9483393B1 (en) Discovering optimized experience configurations for a software application
CN104050201A (en) Method and equipment for managing data in multi-tenant distributive environment
US10467052B2 (en) Cluster topology aware container scheduling for efficient data transfer
US9536075B2 (en) Dynamic resource sharing
US20170063825A1 (en) System and method for authenticating user using contact list
CN109308191A (en) Branch prediction method and device
CN113011553A (en) Accelerator, method of operating an accelerator, and apparatus including an accelerator
Yu et al. A Security‐Awareness Virtual Machine Management Scheme Based on Chinese Wall Policy in Cloud Computing
US9069621B2 (en) Submitting operations to a shared resource based on busy-to-success ratios
US10078492B2 (en) Generating pseudo-random numbers using cellular automata
JP6614632B2 (en) Method for calculating hash value capable of generating one or more hash functions by changing a predetermined position for selecting bits, and computer and computer program therefor
CN105988724B (en) The method and storage equipment of more copy write storage devices
CN115934354A (en) Online storage method and device
EP4020156B1 (en) Reducing latency of hardware trusted execution environments
JP2018106709A (en) METHOD OF PROCESSING OpenCL KERNEL AND COMPUTING DEVICE TO IMPLEMENT THE SAME