KR102060435B1 - Method and apparatus of blockchain smart contract using proof-of-repuation-of-network as consensus algorithm - Google Patents
Method and apparatus of blockchain smart contract using proof-of-repuation-of-network as consensus algorithm Download PDFInfo
- Publication number
- KR102060435B1 KR102060435B1 KR1020190057467A KR20190057467A KR102060435B1 KR 102060435 B1 KR102060435 B1 KR 102060435B1 KR 1020190057467 A KR1020190057467 A KR 1020190057467A KR 20190057467 A KR20190057467 A KR 20190057467A KR 102060435 B1 KR102060435 B1 KR 102060435B1
- Authority
- KR
- South Korea
- Prior art keywords
- node
- network
- consensus
- block
- smart contract
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1044—Group management mechanisms
- H04L67/1053—Group management mechanisms with pre-configuration of logical or physical connections with a determined number of other peers
- H04L67/1057—Group management mechanisms with pre-configuration of logical or physical connections with a determined number of other peers involving pre-assessment of levels of reputation of peers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1087—Peer-to-peer [P2P] networks using cross-functional networking aspects
- H04L67/1093—Some peer nodes performing special functions
Abstract
Description
아래 실시예들은 블록체인을 기반으로 한 스마트 계약 기술에 관한 것이다.The following embodiments are related to smart contract technology based on blockchain.
스마트 계약(Smart Contract)은 계약 이행 및 검증의 과정이 네트워크로 자동화되어, 계약실행 조건을 확인하는 중개인 등의 간섭 없이, 그리고 중개수수료 등의 추가 비용 발생 없이 계약 당사자인 클라이언트(Client) 간에 권리와 의무의 효과가 직접적으로, 전자적으로, 즉각적으로 발생하는 신종 계약 처리 형태이다.Smart Contract is a network that automates the process of contract execution and verification through the network, so that the rights and the rights between the contracting parties are not negotiated by the intermediary to check the terms of the contract and without additional fees such as brokerage fees. The effect of the obligation is a form of new contract processing that occurs directly, electronically and immediately.
스마트 계약은 블록체인에 기록됨으로써 한 번 체결된 후에 조작이나 변형이 불가하도록 보관될 수 있다. 이를 통해, 복잡한 사업상의 계약을 적은 비용과 합의에 따른 신뢰를 바탕으로 안전하게 스마트 계약으로 실행할 수 있게 되었다. 스마트 계약을 기록하는 블록체인을 블록체인 스마트 계약 시스템이라고 부를 수 있다.Smart contracts can be stored on the blockchain so that they can't be manipulated or modified once signed. This allows complex business contracts to be safely executed as smart contracts with low cost and consensus trust. A blockchain that records smart contracts can be called a blockchain smart contract system.
한편, 블록체인 스마트 계약 시스템에 적용되는 합의 알고리즘은 기존의 블록체인 가상화폐 시스템에 적용되던 합의 알고리즘들과 다를 필요가 있다. 즉, 일반적으로 스마트 계약의 내역은 가상 화폐의 거래 내역보다 훨씬 긴 스트링(String) 데이터로 이루어지기 때문에, 작업증명방식(POW)의 합의 알고리즘을 따를 경우, 모든 노드들이 훨씬 긴 string의 hash key를 찾기 위해 작업을 수행하게 되고, 이는 막대한 에너지 및 전력 손실로 이어지게 된다. 또한, 지분증명방식(POS)은 가상화폐를 많이 보유한 노드일수록 블록을 생성할 기회를 많이 얻게 되는 방식이나, 블록체인 스마트 계약 시스템의 경우 반드시 가상화폐를 전제로 하지 않기 때문에, 단순히 금전(또는 가상화폐)을 많이 보유한 노드에게 블록을 생성할 기회를 많이 주는 것은 합의 알고리즘으로서의 정당성이 결여된다.Meanwhile, the consensus algorithm applied to the blockchain smart contract system needs to be different from the consensus algorithms applied to the existing blockchain virtual currency system. That is, since the details of smart contracts are generally composed of string data that is much longer than the transaction history of virtual currency, when following the consensus algorithm of proof of work (POW), all nodes receive a hash key of a much longer string. The work is done to find, which leads to enormous energy and power losses. In addition, proof of ownership (POS) is a method in which more nodes with more cryptocurrency have more opportunities to create blocks, but in the case of blockchain smart contract system, it is not necessarily premised on cryptocurrency. Giving nodes with a lot of money a lot of opportunities to create blocks lacks justification as a consensus algorithm.
이에 따라, 블록체인 스마트 계약 시스템에 유효 적절하게 적용될 수 있는 합의 알고리즘이 요청되고 있다.Accordingly, there is a demand for a consensus algorithm that can be effectively applied to a blockchain smart contract system.
실시예들은 노드들의 성능 자료를 기초로 노드들의 네트워크 평판을 생성하고, 노드들의 네트워크 평판에 기초하여 스마트 계약의 내역을 포함하는 블록을 생성할 노드를 지목하고, 지목된 노드가 생성한 블록을 블록체인에 포함시키는 과정을 제공하고자 한다.Embodiments generate a network reputation of the nodes based on the performance data of the nodes, point to the node to generate a block containing the details of the smart contract based on the network reputation of the nodes, block the block generated by the indicated node We want to provide a process for inclusion in the chain.
실시예들은 노드가 유효하지 않은 블록을 생성한 경우, 노드의 네트워크 평판에 감점을 적용하고, 노드가 연속적으로 일정 횟수 이상 유효한 블록을 생성하거나, 유효하지 않은 블록을 최초로 검증한 경우, 노드의 네트워크 평판에 가점을 부여하는 과정을 제공하고자 한다.Embodiments apply a deduction to a node's network reputation if the node generates an invalid block, and if the node generates a valid block more than a predetermined number of times in a row or first validates an invalid block, the node's network We want to provide a process for adding value to our reputation.
이상을 통해, 블록체인 스마트 계약 시스템에 참여하는 노드들이 네트워크 평판에 입각하여 행동하고 평가되는, 네트워크 평판 증명을 합의 알고리즘으로 가지는 블록체인 스마트 계약 시스템을 제공하고자 한다.Through the above, it is intended to provide a blockchain smart contract system having a network reputation proof as a consensus algorithm, in which nodes participating in the blockchain smart contract system act and evaluate based on the network reputation.
나아가, 실시예들은 상기 배경 기술에서 언급한 과제들 및 본 명세서에서 드러나는 해당 기술 분야의 과제들을 해결하기 위한 네트워크 평판 증명을 합의 알고리즘으로 사용하는 블록체인 스마트 계약 방법 및 장치를 제공하고자 한다.Furthermore, embodiments provide a blockchain smart contract method and apparatus using a network reputation proof as a consensus algorithm for solving the problems mentioned in the background art and the problems in the related art.
일실시예에 따른 방법은 스마트 계약의 주체인 클라이언트(Client)로부터 스마트 계약의 내역을 전송 받은 스마트 계약 노드(Smart Contract Node)에게서 상기 스마트 계약의 내역을 획득하는 단계; 인덱스 서버(Index Server)로부터 부여 받은 순번이 도래한 경우, P2P 서브 네트워크(P2P-Sub Network)에 연결된 합의 노드(Consensus Node)들 중에서 상기 스마트 계약의 내역을 포함하는 블록을 생성할 합의 노드를 지목하는 단계; 지목된 합의 노드로 상기 스마트 계약의 내역을 전송하는 단계; 상기 지목된 합의 노드로부터 상기 스마트 계약의 내역을 포함하는 블록을 획득하는 단계; 상기 스마트 계약 노드, 상기 인덱스 서버로부터 순번을 부여 받은 네트워크 노드(Network Node)들, 및 상기 P2P 서브 네트워크에 연결된 합의 노드들 중 적어도 하나로 상기 블록을 전송하는 단계; 및 상기 블록을 블록체인에 포함시키는 단계를 포함할 수 있다.According to an embodiment, there is provided a method of obtaining a smart contract from a smart contract node that has received a smart contract from a client, which is a subject of a smart contract. When the sequence number granted from the index server arrives, the consensus node that is to generate a block including the details of the smart contract among consensus nodes connected to the P2P-sub network is indicated. Making; Transmitting the details of the smart contract to the indicated consensus node; Obtaining a block containing the details of the smart contract from the indicated consensus node; Transmitting the block to at least one of the smart contract node, network nodes assigned a number from the index server, and consensus nodes connected to the P2P subnetwork; And including the block in the blockchain.
일실시예에 따르면, 상기 블록을 생성할 합의 노드를 지목하는 단계는, 상기 합의 노드들의 성능 자료를 획득하는 단계; 각각의 합의 노드의 성능 자료를 기초로, 각각의 합의 노드의 네트워크 평판을 생성하는 단계; 상기 각각의 합의 노드의 네트워크 평판을 기초로, 각각의 합의 노드가 블록을 생성할 노드로 지목될 확률을 생성하는 단계; 상기 확률들을 기초로, 블록을 생성할 합의 노드를 지목하는 단계를 포함할 수 있다.According to one embodiment, specifying a consensus node to generate the block comprises: obtaining performance data of the consensus nodes; Generating a network reputation of each consensus node based on the performance data of each consensus node; Based on the network reputation of each consensus node, generating a probability that each consensus node will be identified as a node to generate a block; Based on the probabilities, the method may include identifying a consensus node to generate a block.
일실시예에 따르면, 상기 각각의 합의 노드의 성능 자료는 해당 합의 노드의 네트워크 연결 환경에 관한 정보를 포함하며, 상기 각각의 합의 노드의 네트워크 평판은 해당 합의 노드의 네트워크 연결 환경의 응답성과 관련한 수치를 포함할 수 있다.According to an embodiment, the performance data of each consensus node includes information on the network connection environment of the corresponding consensus node, and the network reputation of each consensus node is a numerical value related to the responsiveness of the network connection environment of the consensus node. It may include.
일실시예에 따른 장치는 하드웨어와 결합되어 상술한 방법들 중 어느 하나의 항의 방법을 실행시키기 위하여 매체에 저장된 컴퓨터 프로그램에 의해 제어될 수 있다.The apparatus according to one embodiment may be controlled by a computer program stored in a medium in combination with hardware to carry out the method of any one of the aforementioned methods.
일실시예에 따른 장치는 스마트 계약의 주체인 클라이언트(Client)로부터 스마트 계약의 내역을 전송 받은 스마트 계약 노드(Smart Contract Node)에게서 상기 스마트 계약의 내역을 획득하고, 인덱스 서버(Index Server)로부터 부여 받은 순번이 도래한 경우, P2P 서브 네트워크(P2P-Sub Network)에 연결된 합의 노드(Consensus Node)들 중에서 상기 스마트 계약의 내역을 포함하는 블록을 생성할 합의 노드를 지목하고, 지목된 합의 노드로 상기 스마트 계약의 내역을 전송하고, 상기 지목된 합의 노드로부터 상기 스마트 계약의 내역을 포함하는 블록을 획득하고, 상기 스마트 계약 노드, 상기 인덱스 서버로부터 순번을 부여 받은 네트워크 노드(Network Node)들, 및 상기 P2P 서브 네트워크에 연결된 합의 노드들로 상기 블록을 전송하고, 상기 블록을 블록체인에 포함시키는 프로세서를 포함할 수 있다.According to an embodiment, the device obtains the details of the smart contract from the smart contract node that has received the details of the smart contract from the client, which is the subject of the smart contract, and assigns the details of the smart contract from the index server. When the received sequence number arrives, the consensus nodes connected to the P2P-Sub network are selected from the consensus nodes to generate a block including the details of the smart contract, and the consensus node is designated as the consensus node. Transmits the details of the smart contract, obtains a block including the details of the smart contract from the indicated consensus node, receives the sequence number from the smart contract node, the index server, and the network node; A program that transmits the block to consensus nodes connected to the P2P subnetwork and includes the block in the blockchain. It can include documents.
실시예들은 노드들의 성능 자료를 기초로 노드들의 네트워크 평판을 생성하고, 노드들의 네트워크 평판에 기초하여 스마트 계약의 내역을 포함하는 블록을 생성할 노드를 지목하고, 지목된 노드가 생성한 블록을 블록체인에 포함시키는 과정을 제공할 수 있다.Embodiments generate a network reputation of the nodes based on the performance data of the nodes, point to the node to generate a block containing the details of the smart contract based on the network reputation of the nodes, block the block generated by the indicated node It can provide a process for inclusion in the chain.
실시예들은 노드가 유효하지 않은 블록을 생성한 경우, 노드의 네트워크 평판에 감점을 적용하고, 노드가 연속적으로 일정 횟수 이상 유효한 블록을 생성하거나, 유효하지 않은 블록을 최초로 검증한 경우, 노드의 네트워크 평판에 가점을 부여하는 과정을 제공할 수 있다.Embodiments apply a deduction to a node's network reputation if the node generates an invalid block, and if the node generates a valid block more than a predetermined number of times in a row or first validates an invalid block, the node's network It can provide a process of adding points to the reputation.
이상을 통해, 블록체인 스마트 계약 시스템에 참여하는 노드들이 네트워크 평판에 입각하여 행동하고 평가되는, 네트워크 평판 증명을 합의 알고리즘으로 가지는 블록체인 스마트 계약 시스템을 제공할 수 있다.Through the above, it is possible to provide a blockchain smart contract system having a network reputation proof as a consensus algorithm, in which nodes participating in the blockchain smart contract system act and evaluate based on the network reputation.
한편, 실시예들에 따른 효과는 이상에서 언급한 것으로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 아래의 기재로부터 해당 기술 분야의 통상의 지식을 가진 자에게 명확히 이해될 수 있을 것이다.On the other hand, the effects according to the embodiments are not limited to those mentioned above, and other effects that are not mentioned will be clearly understood by those skilled in the art from the following description.
도 1은 일실시예에 따른 블록체인 스마트 계약 시스템을 설명하기 위한 도면이다.
도 2는 일실시예에 따른 인덱스 서버와 네트워크 노드의 동작을 설명하기 위한 도면이다.
도 3은 일실시예에 따른 블록 생성 과정을 설명하기 위한 도면이다.
도 4는 일실시예에 따른 클라이언트, 스마트 계약 노드, 네트워크 노드, 및 합의 노드의 동작을 설명하기 위한 도면이다.
도 5는 일실시예에 따른 네트워크 노드와 합의 노드의 동작을 설명하기 위한 도면이다.
도 6은 일실시예에 따른 블록을 블록체인에 포함시키는 과정을 설명하기 위한 순서도이다.
도 7은 일실시예에 따른 합의 노드를 지목하는 과정을 설명하기 위한 순서도이다.
도 8은 일실시예에 따른 네트워크 평판을 생성하는 과정을 설명하기 위한 도면이다.
도 9는 일실시예에 따른 장치의 구성의 예시도이다.1 is a diagram illustrating a blockchain smart contract system according to an exemplary embodiment.
2 is a diagram illustrating an operation of an index server and a network node, according to an exemplary embodiment.
3 is a diagram for describing a block generation process, according to an exemplary embodiment.
4 is a diagram illustrating an operation of a client, a smart contract node, a network node, and a consensus node according to an embodiment.
5 is a diagram illustrating an operation of a network node and a consensus node according to an embodiment.
6 is a flowchart illustrating a process of including a block in a blockchain according to an embodiment.
7 is a flowchart illustrating a process of pointing to a consensus node according to an embodiment.
8 is a diagram for describing a process of generating a network reputation according to an exemplary embodiment.
9 is an exemplary diagram of a configuration of an apparatus according to an embodiment.
이하에서, 첨부된 도면을 참조하여 실시예들을 상세하게 설명한다. 그러나, 실시예들에는 다양한 변경이 가해질 수 있어서 특허출원의 권리 범위가 이러한 실시예들에 의해 제한되거나 한정되는 것은 아니다. 실시예들에 대한 모든 변경, 균등물 내지 대체물이 권리 범위에 포함되는 것으로 이해되어야 한다.Hereinafter, exemplary embodiments will be described in detail with reference to the accompanying drawings. However, various changes may be made to the embodiments so that the scope of the patent application is not limited or limited by these embodiments. It is to be understood that all changes, equivalents, and substitutes for the embodiments are included in the scope of rights.
실시예들에 대한 특정한 구조적 또는 기능적 설명들은 단지 예시를 위한 목적으로 개시된 것으로서, 다양한 형태로 변경되어 실시될 수 있다. 따라서, 실시예들은 특정한 개시형태로 한정되는 것이 아니며, 본 명세서의 범위는 기술적 사상에 포함되는 변경, 균등물, 또는 대체물을 포함한다.Specific structural or functional descriptions of the embodiments are disclosed for purposes of illustration only, and may be practiced in various forms. Accordingly, the embodiments are not limited to the specific disclosure, and the scope of the present specification includes changes, equivalents, or substitutes included in the technical idea.
제1 또는 제2 등의 용어를 다양한 구성요소들을 설명하는데 사용될 수 있지만, 이런 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 해석되어야 한다. 예를 들어, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소는 제1 구성요소로도 명명될 수 있다.Terms such as first or second may be used to describe various components, but such terms should be interpreted only for the purpose of distinguishing one component from another component. For example, the first component may be referred to as a second component, and similarly, the second component may also be referred to as a first component.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다.When a component is referred to as being "connected" to another component, it should be understood that there may be a direct connection or connection to that other component, but there may be other components in between.
실시예에서 사용한 용어는 단지 설명을 목적으로 사용된 것으로, 한정하려는 의도로 해석되어서는 안된다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terminology used herein is for the purpose of description and should not be construed as limiting. Singular expressions include plural expressions unless the context clearly indicates otherwise. In this specification, terms such as "comprise" or "have" are intended to indicate that there is a feature, number, step, action, component, part, or combination thereof described on the specification, and one or more other features. It is to be understood that the present invention does not exclude the possibility of the presence or the addition of numbers, steps, operations, components, components, or a combination thereof.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless defined otherwise, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art. Terms such as those defined in the commonly used dictionaries should be construed as having meanings consistent with the meanings in the context of the related art and shall not be construed in ideal or excessively formal meanings unless expressly defined in this application. Do not.
또한, 첨부 도면을 참조하여 설명함에 있어, 도면 부호에 관계없이 동일한 구성 요소는 동일한 참조부호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 실시예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 실시예의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.In addition, in the description with reference to the accompanying drawings, the same components regardless of reference numerals will be given the same reference numerals and duplicate description thereof will be omitted. In the following description of the embodiment, when it is determined that the detailed description of the related known technology may unnecessarily obscure the gist of the embodiment, the detailed description thereof will be omitted.
실시예들은 퍼스널 컴퓨터, 랩톱 컴퓨터, 태블릿 컴퓨터, 스마트 폰, 텔레비전, 스마트 가전 기기, 지능형 자동차, 키오스크, 웨어러블 장치 등 다양한 형태의 제품으로 구현될 수 있다.Embodiments may be implemented in various forms of products, such as personal computers, laptop computers, tablet computers, smart phones, televisions, smart home appliances, intelligent cars, kiosks, wearable devices, and the like.
도 1은 일실시예에 따른 블록체인 스마트 계약 시스템을 설명하기 위한 도면이다.1 is a diagram illustrating a blockchain smart contract system according to an exemplary embodiment.
블록체인 스마트 계약 시스템은 인덱스 서버(Index Server, 100); 네트워크 노드(Network Node, 110, 120, 130, 140); 스마트 계약 노드(Smart Contract Node, 115, 125, 135, 145); 합의 노드(Consensus Node, 111-113, 121-123, 131-133, 141-143); 및 클라이언트(Client, 146, 147)를 포함할 수 있다. 이들은 하드웨어 및 소프트웨어의 조합으로, 전용서버, 범용서버, 데스크톱 PC, 랩톱 PC, Mac, 스마트 폰, 스마트 패드, 태블릿 PC 등과 같은 모든 종류의 유무선 통신이 가능한 장치 또는 이들의 집합으로 이루어진 그룹일 수 있다The blockchain smart contract system includes an
도 1 내지 8에서, 인덱스 서버(100)는 도트 무늬로 도시되고; 네트워크 노드들(110, 120, 130, 140)은 체크 무늬로 도시되고; 스마트 계약 노드들(115, 125, 135, 145)은 가로선 무늬로 도시되고; 합의 노드들(111-113, 121-123, 131-133, 141-143)은 세로선 무늬로 도시되고; 클라이언트들(146, 147)은 지그재그 무늬로 도시된다.1 to 8, the
또한, 블록체인 스마트 계약 시스템은 P2P 네트워크(109) 및 P2P 서브 네트워크들(119, 129, 139, 149)을 포함할 수 있다. P2P 네트워크(109) 및 P2P 서브 네트워크들(119, 129, 139, 149)은 노드들 상호 간에 정보 교환이 가능하도록 연결하는 분산형 연결 구조로, 3G, LTE, 5G, 블루투스 통신, NFC 네트워크, 인터넷, 전용선, LAN, 인트라넷 등 중에서 적어도 하나의 통신 방식에 의해 동작할 수 있으며, TCP, UDP 등의 통신 프로토콜을 사용할 수 있다.In addition, the blockchain smart contract system may include a
도 1 및 3에서, P2P 네트워크(P2P Network, 109)는 실선으로 도시되고 P2P 서브 네트워크들(P2P Sub Network, 119, 129, 139, 149)은 파선으로 도시된다.1 and 3, the
인덱스 서버(100)는 적어도 하나 이상의 네트워크 노드(110, 120, 130, 140)를 포함하는 그룹을 관리할 수 있다. 인덱스 서버(100)는 검증 절차를 거쳐 그룹에 포함된 네트워크 노드(110, 120, 130, 140)들을 P2P 네트워크(109)에 참여시킬 수 있고, 네트워크 노드들(110, 120, 130, 140)에게 스마트 계약의 내역을 포함하는 블록을 생성할 합의 노드를 지목하는 순번을 부여할 수 있다.The
각각의 네트워크 노드(110, 120, 130, 140)는 적어도 하나 이상의 합의 노드(111-113, 121-123, 131-133, 141-143)를 포함하는 서브 그룹을 관리할 수 있고, 자신이 관리하는 서브 그룹에 속하는 합의 노드들의 네트워크 평판(Reputation of Network)을 생성, 저장, 및 갱신할 수 있다. 각각의 네트워크 노드(110, 120, 130, 140)는 자신의 순번이 도래하면, 블록을 생성할 합의 노드를 지목할 수 있다.Each
합의 노드는 네트워크 노드의 지목에 따라 스마트 계약의 내역을 포함하는 블록을 생성할 수 있다. 서브 그룹 내의 합의 노드들은 P2P 서브 네트워크로 서브 그룹 내의 다른 합의 노드들 및 서브 그룹을 관리하는 네트워크 노드와 연결될 수 있다. 지목된 합의 노드가 스마트 계약의 내역이 조작되지 않은 유효한 블록을 생성할 경우, 금전 또는 가상화폐 등의 보상이 지급될 수 있다.The consensus node may generate a block containing the details of the smart contract according to the point of the network node. Consensus nodes in a subgroup may be connected to other consensus nodes in the subgroup and a network node managing the subgroup in a P2P subnetwork. If the indicated consensus node generates a valid block in which the details of the smart contract have not been manipulated, compensation such as money or virtual currency may be paid.
예를 들어, 네트워크 노드 A(110) 및 네트워크 노드 A(110)가 관리하는 서브 그룹에 포함되는 합의 노드 A1(111); 합의 노드 A2(112); 합의 노드 A3(113)는 P2P 서브 네트워크 A(119)로 서로 연결될 수 있다. 네트워크 노드 B(120) 및 네트워크 노드 B(120)가 관리하는 서브 그룹에 포함되는 합의 노드 B1(121); 합의 노드 B2(122); 합의 노드 B3(123)는 P2P 서브 네트워크 B(129)로 서로 연결될 수 있다. 네트워크 노드 C(130) 및 네트워크 노드 C(130)가 관리하는 서브 그룹에 포함되는 합의 노드 C1(131); 합의 노드 C2(132); 합의 노드 C3(133)는 P2P 서브 네트워크 C(139)로 서로 연결될 수 있다. 네트워크 노드 D(140) 및 네트워크 노드 D(140)가 관리하는 서브 그룹에 포함되는 합의 노드 D1(141); 합의 노드 D2(142); 합의 노드 D3(143)는 P2P 서브 네트워크 D(149)로 서로 연결될 수 있다.For example,
P2P 서브 네트워크(119)이 형성되는 과정은 다음과 같을 수 있으나, 이에 한정되지는 않는다. 우선, 네트워크 노드(110)는 P2P 서브 네트워크용 TCP-서버를 오픈할 수 있다. 이후, 합의 노드들(111, 112, 113)은 TCP-클라이언트로 네트워크 노드(110)에 접속할 수 있다. 이때, P2P 네트워크(109) 및 P2P 서브 네트워크(119) 간에는 TCP 방식으로 통신이 이루어질 수 있다. 또한, P2P 네트워크(109) 및 P2P 서브 네트워크(119) 간에는 멀티 캐스트(multicast)를 사용할 수 있다. 다른 P2P 서브 네트워크(129, 139, 149)들이 형성되는 과정도 동일할 수 있다.The process of forming the
스마트 계약 노드(115, 125, 135, 145)는 스마트 계약의 주체인 클라이언트들(146, 147)을 P2P 네트워크(109) 및 P2P 서브 네트워크들(119, 129, 139, 149)과 연결시켜 주는 역할을 수행한다. 스마트 계약 노드(115, 125, 135, 145)는 클라이언트(146, 147)로부터 스마트 계약의 모든 세부 사항을 전송 받아 저장할 수 있다.The
각각의 스마트 계약 노드(115, 125, 135, 145)는 리전(region)이라고 부르는 특정한 구역 단위를 담당할 수 있다. 리전은 법률, 세율, 관세, 규칙, 조례, 특례 등이 구분되는 지역 단위 또는 국가 단위일 수 있다. 리전 내에서 이루어지는 스마트 계약은 해당 리전을 담당하는 스마트 계약 노드에게 전송될 수 있다. 이를 통해, 가령, 한국의 법에 따라 부동산 매매 계약을 체결하려는 클라이언트 X(146)와 클라이언트 Y(147)가 일본의 스마트 계약 노드(135)에게 스마트 계약의 모든 세부 사항을 전달하는 일은 없도록 할 수 있다. 리전을 담당하는 스마트 계약 노드들(115, 125, 135, 145)은 리전 내에서 일어나는 스마트 계약들의 모든 세부 사항을 열람하는 데이터베이스로서 기능할 수 있다.Each
스마트 계약 노드(115, 125, 135, 145)는 P2P 서브 네트워크(119, 129, 139, 149)를 통해 네트워크 노드 및 합의 노드들과 연결될 수 있다. 예를 들어, 스마트 계약 노드 A(115)는 P2P 서브 네트워크 A(119); 스마트 계약 노드 B(125)는 P2P 서브 네트워크 B(129); 스마트 계약 노드 C(135)는 P2P 서브 네트워크 C(139); 스마트 계약 노드 D(145)는 P2P 서브 네트워크 D(149)와 연결될 수 있다. 이를 통해, 리전 내에서 생성된 스마트 계약의 내역은 다른 리전의 P2P 서브 네트워크가 아닌 해당 리전의 P2P 서브 네트워크에서 모두 블록화 될 수 있다.
클라이언트(147, 148)는 스마트 계약의 주체로, 스마트 계약을 체결한 후 리전을 담당하는 스마트 계약 노드(145)에게 스마트 계약의 모든 세부 사항을 전달할 수 있다. 클라이언트(147, 149)들은 DApp일 수도 있고 Personal일 수도 있다. 한편, 블록체인 스마트 계약 시스템은 부동산 등기소, 차량 등록 사업소, 은행, 가상화폐 거래소 등과 연동되어 있을 수 있다. 이를 통해, 클라이언트 간의 스마트 계약이 체결될 경우, 금전 또는 가상화폐의 이체가 전자적으로 즉시 이루어질 수 있으며, 재산권의 등기 또는 등록 역시 전자적으로 즉시 이루어질 수 있다.
이상을 정리하면, 클라이언트들(146, 147)은 가령, 클라이언트 X(146)가 클라이언트 Y(147) 소유의 부동산 R을 매매하는 스마트 계약 등을 체결할 수 있다. 스마트 계약의 체결에 따른 권리와 의무의 발생은 즉시 이루어질 수 있다. 클라이언트(146, 147) 간에 스마트 계약이 체결된 후, 스마트 계약의 모든 세부 사항은 스마트 계약 노드 D(145)에게 전달될 수 있다. 스마트 계약 노드 D(145)는 스마트 계약의 모든 세부 사항의 전부 또는 일부에 해당하는 스마트 계약의 내역을 네트워크 노드 D(140)로 전송할 수 있다. 네트워크 노드 D(140)는 자신의 순번이 도래한 경우, P2P 서브 네트워크 D(149)에 연결된 합의 노드들(141, 142, 143) 중에서 스마트 계약의 내역을 포함하는 블록을 생성할 합의 노드를 생성할 수 있다. 지목된 합의 노드, 가령, 합의 노드 D1(141)은 스마트 계약의 내역을 포함하는 블록을 생성한 후 네트워크 노드 D(140)에게 전달할 수 있다. 네트워크 노드 D(140)은 스마트 계약 노드 D(145), P2P 네트워크(109)에 연결된 다른 네트워크 노드들(110, 120, 130), 및 P2P 서브 네트워크 D(149)에 연결된 다른 합의 노드들(142, 143)에게 블록을 전송할 수 있다. 이후, 각각의 노드는 블록을 블록체인에 포함시킬 수 있다.In summary, the
이하, 도 2를 참조하여, 인덱스 서버와 네트워크 노드의 동작과 관련된 실시예가 설명된다. 도 3을 참조하여, 블록 생성 과정과 관련된 실시예가 설명된다. 도 4를 참조하여, 클라이언트, 스마트 계약 노드, 네트워크 노드, 및 합의 노드의 동작과 관련된 실시예가 설명된다. 도 5를 참조하여, 네트워크 노드와 합의 노드의 동작과 관련된 실시예가 설명된다. 도 6을 참조하여, 블록을 블록체인에 포함시키는 과정과 관련된 실시예가 설명된다. 도 7을 참조하여, 합의 노드를 지목하는 과정과 관련된 실시예가 설명된다. 도 8을 참조하여, 네트워크 평판을 생성하는 과정과 관련된 실시예가 설명된다.2, an embodiment related to the operation of the index server and the network node will be described. 3, an embodiment related to a block generation process will be described. With reference to FIG. 4, an embodiment related to the operation of a client, a smart contract node, a network node, and a consensus node is described. 5, an embodiment related to the operation of a network node and a consensus node is described. Referring to FIG. 6, an embodiment related to a process of including a block in a blockchain will be described. 7, an embodiment related to the process of pointing to a consensus node is described. 8, an embodiment related to a process of generating a network reputation is described.
도 2는 일실시예에 따른 인덱스 서버와 네트워크 노드의 동작을 설명하기 위한 도면이다.2 is a diagram illustrating an operation of an index server and a network node, according to an exemplary embodiment.
우선, 인덱스 서버(100)는 네트워크 노드들(110, 120, 130, 140)을 P2P 네트워크(109)에 참여시키고, 네트워크 노드들(110, 120, 130, 140)에게 순번을 부여할 수 있다(210).First, the
네트워크 노드들(110, 120, 130, 140)은 블록체인 스마트 계약 시스템에서 서로 간에 P2P 네트워크(109)를 형성하고; 합의 노드들(111-113, 121-123, 131-133, 141-143)을 관리하며; 스마트 계약 노드(115, 125, 135, 145)와 연결됨으로써 클라이언트들(146, 147)을 블록체인 스마트 계약 시스템과 연결시켜 주는 중추적인 역할을 수행한다. 이러한 작업들을 수행하기 위해, 네트워크 노드들(110, 120, 130, 140)의 성능은 일반적으로 우수해야 한다.The
따라서, 인덱스 서버(100)는 자신이 관리하는 그룹의 네트워크 노드들(110, 120, 130, 140)이 P2P 네트워크(109)에 참여하기 적합한지 검증할 수 있다. 검증 방법으로는, 네트워크 노드(110, 120, 130, 140)의 네트워크 평판(Reputation of Network)이 임계 값 이상인지를 판별하는 방식 등으로 이루어질 수 있다.Accordingly, the
여기서, 네트워크 평판은 수치로 표현될 수 있으며, 네트워크 노드의 성능 자료를 기초로 계산될 수 있다. 성능 자료는 네트워크 연결 환경, 하드웨어 사양, 가관측성, 가제어성 등을 포함할 수 있다. 한편, i)네트워크 노드의 성능 자료를 기초로 네트워크 노드의 네트워크 평판을 계산하는 과정 및 ii)네트워크 노드의 성능 자료에 포함되는 네트워크 연결 환경, 하드웨어 사양, 가관측성, 가제어성은 도 8을 참조하여 후술되는 iii)합의 노드의 성능 자료를 기초로 합의 노드의 네트워크 평판을 계산하는 과정 및 iv)합의 노드의 성능 자료에 포함되는 네트워크 연결 환경, 하드웨어 사양, 가관측성, 가제어성과 동일하므로, i) 및 ii)에 대한 설명은 도 8을 참조하여 후술되는 iii) 및 iv)에 대한 설명으로 갈음한다.Here, the network reputation may be represented by a numerical value and may be calculated based on performance data of the network node. Performance data can include network connectivity, hardware specifications, observability, and controllability. On the other hand, i) the process of calculating the network reputation of the network node based on the performance data of the network node and ii) the network connection environment, hardware specifications, observability, controllability included in the performance data of the network node with reference to Figure 8 Iii) the process of calculating the network reputation of the consensus node based on the performance data of the consensus node and iv) the network connection environment, hardware specification, observability, and controllability included in the performance data of the consensus node, i) And ii) will be replaced with descriptions of iii) and iv) which will be described later with reference to FIG. 8.
또한, 네트워크 노드의 네트워크 평판은 네트워크 노드가 블록체인 스마트 계약 시스템에서 활동한 실적을 바탕으로 감점이 이루어질 수 있다. 예를 들어, 특정 네트워크 노드(110)가 지목한 합의 노드(111)가 스마트 계약의 내역이 조작된 유효하지 않은 블록을 생성한 경우, 네트워크 노드(110)의 네트워크 평판은 감점이 이루어질 수 있다. 감점에 의해 네트워크 노드(110)의 네트워크 평판이 임계 값 미만으로 내려갈 경우, 네트워크 노드(110)는 P2P 네트워크(109)로부터 차단될 수 있다. 네트워크 평판의 감점에 의해 네트워크 노드가 P2P 네트워크(109)로부터 차단되는 경우, 인덱스 서버(100)는 해당 네트워크 노드가 일정 기간 동안 다시 P2P 네트워크(109)에 참여할 수 없도록 통제할 수 있다.In addition, the network reputation of the network node can be deducted based on the performance of the network node in the blockchain smart contract system. For example, if the
인덱스 서버(100)는 검증을 마친 네트워크 노드들(110, 120, 130, 140)의 IP 주소를 획득할 수 있으며, 검증이 완료된 네트워크 노드(110, 120, 130, 140)들은 P2P 네트워크(109)로 서로 연결될 수 있다. 예를 들어, 네트워크 노드 A, B, C(110, 120, 130)가 미리 P2P 네트워크(109)에 참여하고 있는 상황에서, 네트워크 노드 D(140)가 검증을 마치고 새롭게 P2P 네트워크(109)에 참여하고자 하는 경우, 네트워크 노드(140)는 P2P 네트워크용 TCP-서버를 오픈할 수 있다. 인덱스 서버(100)는 새롭게 참여하고자 하는 네트워크 노드 D(140)의 IP 주소를 P2P 네트워크(109)에 이미 참여한 네트워크 노드 A, B, C(110, 120, 130)로 전달할 수 있다. 네트워크 노드 D(140)에 대한 정보를 받은 네트워크 노드 A, B, C(110, 120, 130)는 새롭게 참여하고자 하는 네트워크 노드 D(140)가 오픈한 TCP-서버에 TCP-클라이언트로 접속함으로써, 네트워크 노드들(110, 120, 130, 140)은 P2P 네트워크(109)로 서로 연결될 수 있다.The
다음으로, 인덱스 서버(100)는 네트워크 노드들(110, 120, 130, 140)에게 블록을 생성할 합의 노드를 지목하는 순번을 부여할 수 있다. 구체적으로, 인덱스 서버(100)는 라운드 로빈 리스트(Round Robin List)에 따른 순환적인 순번을 각 네트워크 노드(110, 120, 130, 140)에게 부여할 수 있다. 이때, 인덱스 서버(100)가 위치한 물리적 위치와 지역적으로 가장 가까운 물리적 위치에 위치한 네트워크 노드 A(110)가 라운드 로빈 리스트의 1번 순번을 받을 수 있다. 다음으로, 네트워크 노드 A(110)가 위치한 물리적 위치와 지역적으로 가장 가까운 물리적 위치에 위치한 네트워크 노드 B(120)가 라운드 로빈 리스트의 2번 순번을 받을 수 있다. 이와 같은 방식으로 네트워크 노드 C(130)의 순번이 3번, 네트워크 노드 D(140)의 순번이 4번으로 정해질 수 있다. 이와 같은 방식으로 노드들의 순번을 정함으로써, 노드와 인덱스 서버(100) 사이의 통신 회선의 거리 노드 간의 통신 회선의 거리를 최소화할 수 있어, 서로 간에 효율적이고 보다 빠른 통신이 이루어질 수 있다.Next, the
네트워크 노드들의 순번이 정해진 후, 네트워크 노드들은 순번에 따라 자신이 연결된 P2P 서브 네트워크에서 블록을 생성할 합의 노드를 지목할 수 있고, 합의 노드가 블록을 생성한 후 이를 네트워크 노드에게 알리면, 네트워크 노드는 P2P 네트워크(109)의 다른 네트워크 노드들에게 블록 생성을 알릴 수 있다(220).After the network nodes are numbered, the network nodes can identify consensus nodes that will generate blocks in the P2P subnetwork to which they are connected in turn, and if the consensus node generates a block and then informs the network node, the network node Block generation may be informed to other network nodes of the
예컨대, 순번 1인 네트워크 노드 A(110)는 P2P 서브 네트워크 A(119)에서 블록을 생성할 합의 노드를 지목할 수 있고, P2P 서브 네트워크 A(119)에 연결된 특정 합의 노드(111)가 블록을 생성한 후 이를 네트워크 노드 A(110)에게 알리면, 네트워크 노드 A(110)은 P2P 네트워크(109)의 다른 네트워크 노드들(120, 130, 140)에게 블록이 생성됐음을 알릴 수 있다. 다음으로, 순번 2인 네트워크 노드 B(120)가 위 과정을 동일하게 수행할 수 있고, 그 다음으로, 순번 3인 네트워크 노드 C(130)가 위 과정을 동일하게 수행할 수 있고, 이어지는 순서로, 순번 4인 네트워크 노드 D(140)가 위 과정을 동일하게 수행할 수 있다. 이후, 라운드 로빈 리스트의 순환성에 따라, 다시 순번 1인 네트워크 노드 B(120)가 위 과정을 동일하게 수행할 수 있으며, 이러한 주기는 반복될 수 있다.For example,
네트워크 노드가 합의 노드를 지목하는 과정은 합의 노드의 네트워크 평판을 기초로 생성한 확률에 의해 이루어질 수 있다. 또한, 네트워크 노드들은 블록이 생성됐음을 알림 받은 후, 블록체인에 블록을 포함시킬 수 있으며, 자신이 연결된 P2P 서브 네트워크에 새로운 블록이 생성됐음을 브로드캐스트(broadcast)할 수 있다. 네트워크 노드가 합의 노드를 지목하는 구체적인 과정 및 블록이 생성됐음을 알림 받은 네트워크 노드들이 다음으로 수행하는 구체적인 동작은 도 6 내지 8을 참고하여 후술된다.The process of selecting a consensus node by the network node may be performed by a probability generated based on the network reputation of the consensus node. Also, after being notified that the block has been created, the network nodes may include the block in the blockchain and broadcast that a new block is generated in the P2P subnetwork to which the network node is connected. A detailed process of the network node pointing to the consensus node and a detailed operation performed by the network nodes notified that the block has been generated will be described later with reference to FIGS. 6 to 8.
도 3은 일실시예에 따른 블록 생성 과정을 설명하기 위한 도면이다.3 is a diagram for describing a block generation process, according to an exemplary embodiment.
P2P 네트워크(109)에 참여한 각각의 네트워크 노드(110, 120, 130, 140)는 인덱스 서버(100)가 지정한 순번에 따라 자신이 연결된 P2P 서브 네트워크(119, 129, 139, 149) 내에서 블록을 생성할 합의 노드(111-113, 121-123, 131-133, 141-143)를 지목할 수 있다. 이하에서는, 네트워크 노드들(110, 120, 130, 140)이 블록을 생성할 합의 노드를 지목하는 주기성을 가지는 순서를 티어(tier)라 한다. 블록 체인 시스템은 복수 개의 티어를 가질 수 있다. 예를 들어, 도 3에 도시된 것과 같이, 티어 1(310)과 티어 2(320)가 있을 수 있다. 도 3에서, 티어 1(310)은 일점쇄선으로 도시되고 티어 2(320)는 점선으로 도시된다Each of the
티어 1(310)은 인덱스 서버(100)가 라운드 로빈 리스트(Round Robin List)에 입각하여 각 네트워크 노드(110, 120, 130, 140)에게 부여한 순번에 따라 네트워크 노드들(110, 120, 130, 140)이 블록을 생성할 합의 노드를 지목하는 순서일 수 있다. 이때, 인덱스 서버(100)가 위치한 물리적 위치와 지역적으로 가장 가까운 물리적 위치에 위치한 네트워크 노드 A(110)가 라운드 로빈 리스트의 1번 순번을 받을 수 있다. 다음으로, 네트워크 노드 A(110)가 위치한 물리적 위치와 지역적으로 가장 가까운 물리적 위치에 위치한 네트워크 노드 B(120)가 라운드 로빈 리스트의 2번 순번을 받을 수 있다. 이와 같은 방식으로 네트워크 노드 C(130)의 순번이 3번, 네트워크 노드 D(140)의 순번이 4번으로 정해질 수 있다. 이 경우, 티어 1(310)은 네트워크 노드 A(110), 네트워크 노드 B(120), 네트워크 노드 C(130), 네트워크 노드 D(140)가 순서대로 블록을 생성할 합의 노드를 지목한 후, 다시 네트워크 노드 A(110)부터 블록을 생성할 합의 노드를 지목하는 주기성을 가지는 순서일 수 있다.
티어 2(320)는 선택적으로 운용되는 티어일 수 있다. 티어 2(320)는 티어 1(310)의 라운드 로빈 리스트에 포함되는 네트워크 노드의 수가 증가하여, 특정 네트워크 노드가 자신이 연결된 P2P 서브 네트워크에서 합의 노드를 다시 지목할 때까지 걸리는 시간이 특정 시간, 예를 들어 1초를 초과할 경우 운용할 수 있다. 예를 들어, 티어 2(320)는 네트워크 노드 C(130), 네트워크 노드 B(120), 네트워크 노드 A(110), 네트워크 노드 D(140)가 순서대로 블록을 생성할 합의 노드를 지목한 후, 다시 네트워크 노드 C(130)부터 블록을 생성할 합의 노드를 지목하는 주기성을 가지는 순서일 수 있다.
이처럼 복수의 티어를 운영함으로써, 블록체인 스마트 계약 시스템은 P2P 네트워크(109)에 참여하는 네트워크 노드의 수가 증가할 경우, 단위 시간 동안 보다 많은 스마트 계약을 블록화하여 블록체인에 포함시킬 수 있다.By operating a plurality of tiers as described above, when the number of network nodes participating in the
이하에서는 도 3을 참고하여 블록이 생성되는 과정을 예시적으로 설명한다.Hereinafter, a process of generating a block will be described with reference to FIG. 3.
블록체인 스마트 계약 시스템은 주기성을 가지는 순서에 따라, 가령 티어 1(310)에 따라 블록을 생성할 수 있다. 각각의 네트워크 노드(110, 120, 130, 140)는 티어 1(310)에 따른 순서가 도래하면 자신이 연결된 P2P 서브 네트워크(119, 129, 139, 149) 내에서 블록을 생성할 합의 노드를 지목할 수 있다. 합의 노드를 지목하는 과정은 각각의 합의 노드의 네트워크 평판을 기초로 이루어질 수 있으며, 이와 관련한 구체적인 내용은 도 6 내지 8을 참조하여 후술된다.The blockchain smart contract system may generate blocks according to the
이후, 지목된 합의 노드는 스마트 계약의 내역을 포함하는 블록을 생성할 수 있다. 지목된 합의 노드가 스마트 계약의 내역이 조작되지 않은 유효한 블록을 생성할 경우, 금전 또는 가상화폐 등의 보상이 지급될 수 있다. 지목된 합의 노드는 자신이 연결된 P2P 서브 네트워크에 연결된 네트워크 노드로 블록의 생성을 알릴 수 있다. 블록의 생성을 알리면서, 생성된 블록을 함께 전송할 수 있다. 블록이 생성됐음을 알림 받은 네트워크 노드는 자신과 P2P 서브 네트워크로 연결된 스마트 계약 노드; 다른 네트워크 노드들; 및 자신이 연결된 P2P 서브 네트워크에 연결된 합의 노드들에게 블록이 생성됐음을 알릴 수 있으며, 이 과정에서 생성된 블록을 함께 전송할 수 있다.The indicated consensus node may then generate a block containing the details of the smart contract. If the indicated consensus node generates a valid block in which the details of the smart contract have not been manipulated, compensation such as money or virtual currency may be paid. The indicated consensus node may inform the network node connected to the P2P subnetwork to which it is connected to the generation of the block. Informing the generation of the block, the generated block can be transmitted together. The network node notified that the block has been created includes: a smart contract node connected to itself and a P2P subnetwork; Other network nodes; And it can inform the consensus nodes connected to the P2P sub-network to which it is connected that the block has been generated, and transmit the generated block together in this process.
보다 구체적으로, 티어 1(310)에 따라, 먼저 네트워크 노드 A(110)는 P2P 서브 네트워크 A(119)에 연결된 합의 노드 A1(111), 합의 노드 A2(112), 및 합의 노드 A3(113) 중에서 블록을 생성할 합의 노드를 지목할 수 있다. 가령, 네트워크 노드 A(110)는 합의 노드 A1(111)을 지목할 수 있다.More specifically, according to
이후, 합의 노드 A1(111)는 스마트 계약의 내용을 포함하는 블록을 생성할 수 있다. 합의 노드 A1(111)는 P2P 서브 네트워크 A(119)에 연결된 네트워크 노드 A(110)로 블록의 생성을 알릴 수 있으며, 생성된 블록을 함께 전송할 수 있다. 네트워크 노드 A(110)는 스마트 계약 노드 A(115); 네트워크 노드 B, C, D(120, 130, 140); 및 합의 노드 A2, A3(112, 113)에게 블록이 생성됐음을 알릴 수 있으며, 이 과정에서 생성된 블록을 함께 전송할 수 있다.Thereafter, the
다음으로, 티어 1(310)에 따라 다음 순번인 네트워크 노드 B(120)를 중심으로 위 과정과 대응되는 과정이 수행될 수 있다. 즉, 네트워크 노드 B(120)는 P2P 서브 네트워크 B(129)에 연결된 합의 노드 B1(121), 합의 노드 B2(122), 및 합의 노드 B3(123) 중에서 블록을 생성할 합의 노드를 지목할 수 있다. 가령, 네트워크 노드 B(120)는 합의 노드 B1(121)을 지목할 수 있다.Next, a process corresponding to the above process may be performed around the
이후, 합의 노드 B1(121)는 스마트 계약의 내용을 포함하는 블록을 생성할 수 있다. 합의 노드 B1(121)는 P2P 서브 네트워크 B(129)에 연결된 네트워크 노드 B(120)로 블록의 생성을 알릴 수 있으며, 생성된 블록을 함께 전송할 수 있다. 네트워크 노드 B(120)는 스마트 계약 노드 B(125); 네트워크 노드 A, C, D(110, 130, 140); 및 합의 노드 B2, B3(122, 123)에게 블록이 생성됐음을 알릴 수 있으며, 이 과정에서 생성된 블록을 함께 전송할 수 있다.Thereafter, the
다음으로, 다음 순번인 네트워크 노드 C(130)를 중심으로 위 과정과 대응되는 과정이 수행될 수 있고, 다음 순번인 네트워크 노드 D(140)를 중심으로 위 과정과 대응되는 과정이 수행될 수 있고, 이후, 다시 네트워크 노드 A(130)를 중심으로 위 과정과 대응되는 과정이 수행되는 주기가 시작할 수 있다. 한편, 네트워크 노드의 수가 증가하여, 네트워크 노드 A(110)가 합의 노드를 다시 지목할 때까지 걸리는 시간이 특정 시간, 예를 들어 1초를 초과할 경우, 티어 2(320)에 따른 블록 생성도 함께 운용될 수 있다.Next, a process corresponding to the above process may be performed centering on the next turn
도 4는 일실시예에 따른 클라이언트, 스마트 계약 노드, 네트워크 노드, 및 합의 노드의 동작을 설명하기 위한 도면이다.4 is a diagram illustrating an operation of a client, a smart contract node, a network node, and a consensus node according to an embodiment.
예를 들어, 클라이언트 X(146)가 클라이언트 Y(147) 소유의 부동산 R을 매매하는 스마트 계약이 체결되는 경우를 생각할 수 있다.For example, consider a case where a smart contract is concluded where
이 경우, 우선, 네트워크 노드(140)는 합의 노드들(141, 142)의 네트워크 평판을 생성할 수 있다(410). 네트워크 노드(140)는 자체적으로 또는 인덱스 서버(100)와 연동하여, 합의 노드들(141, 142)의 네트워크 평판을 생성, 저장, 및 갱신할 수 있다. 네트워크 평판을 생성하는 구체적인 과정은 도 8을 참고하여 후술된다.In this case, first,
다음으로, 제 1 스마트 계약의 내역이 전송될 수 있다(421).Next, details of the first smart contract may be transmitted (421).
구체적으로, 클라이언트 X(146)가 클라이언트 Y(147) 소유의 부동산 R을 매매하는 스마트 계약이 체결될 수 있고; 클라이언트 Y(147)는 스마트 계약의 모든 세부 사항을 스마트 계약 노드 D(145)로 전송할 수 있고; 스마트 계약 노드 D(145)는 스마트 계약의 모든 세부 사항의 전부 또는 일부에 해당하는 스마트 계약의 내역을 네트워크 노드 D(140)로 전송할 수 있다.Specifically, a smart contract may be concluded in which
네트워크 노드 D(140)는 합의 노드 D1(141)의 네트워크 평판과 합의 노드 D2(142)의 네트워크 평판을 기초로 각각의 합의 노드가 블록을 생성할 합의 노드를 지목될 확률을 생성한 후, 확률에 기초하여 블록을 생성할 합의 노드를 선택할 수 있다. 네트워크 노드 D(140)는 지목된 합의 노드로 스마트 계약의 내역을 전송할 수 있다.
예를 들어, 합의 노드 D1(141)의 네트워크 평판이 600이고 합의 노드 D2(142)의 네트워크 평판이 400이라면, 합의 노드 D1(141)가 블록을 생성할 합의 노드로 지목될 확률은 60%로 설정될 수 있고, 합의 노드 D2(142)가 블록을 생성할 합의 노드로 지목될 확률은 40%로 설정될 수 있다. 네트워크 노드 D(140)는 확률에 기초하여 합의 노드 D1(141)를 블록을 생성할 합의 노드로 지목하고, 합의 노드 D1(141)로 스마트 계약의 내역을 전송할 수 있다.For example, if the network reputation of
여기서, 스마트 계약의 내역은 클라이언트들(146, 147)이 체결한 스마트 계약의 모든 세부 사항일 수도 있고, 스마트 계약의 핵심 내용들일 수도 있다. 가령, 클라이언트 X(146)가 클라이언트 Y(147) 소유의 부동산 R을 매매하는 스마트 계약이 체결된 경우, 스마트 계약의 내역에는 적어도 “OOOO년 OO월 OO일에 클라이언트 X는 클라이언트 Y에게 매매대금을 지급했다.” 및 “동일한 날짜에 클라이언트 Y(147)에서 클라이언트 X(146)로 부동산 R의 소유권 이전 등기가 이루어졌다.”와 같이 스마트 계약의 핵심 내용들인 대금지급내역이나 등기사항 등이 포함될 수 있다.Here, the details of the smart contract may be all the details of the smart contract signed by the
다음으로, 블록체인 시스템의 노드들은 제 1 스마트 계약의 내역을 포함하는 블록을 블록체인에 포함시킬 수 있다(431).Next, nodes of the blockchain system may include a block including the details of the first smart contract in the blockchain (431).
우선, 제 1 스마트 계약의 내역을 전송 받은 합의 노드 D1(141)은 스마트 계약의 내역을 포함하는 블록을 생성할 수 있다. 블록에는 블록 생성에 관한 서지사항(블록 생성 날짜, 블록을 생성한 노드 등); 스마트 계약의 내역; 블록의 유효성 검사 시 사용되는 hash key 등이 포함될 수 있다. 지목된 합의 노드가 스마트 계약의 내역이 조작되지 않은 유효한 블록을 생성할 경우, 금전 또는 가상화폐 등의 보상이 지급될 수 있다.First, the
합의 노드 D1(141)은 P2P 서브 네트워크 D(149)에 연결된 네트워크 노드 D(140)로 블록의 생성을 알릴 수 있으며, 생성된 블록을 함께 전송할 수 있다. 네트워크 노드 D(140)는 스마트 계약 노드 D(145) 및 합의 노드 D2(142)에게 블록이 생성됐음을 알릴 수 있으며, 이 과정에서 생성된 블록을 함께 전송할 수 있다. 스마트 계약 노드 D(145); 네트워크 노드 D(140); 합의 노드 D1(141); 및 합의 노드 D2(142)는 블록을 블록체인에 포함시킬 수 있다.The
이때, 각각의 노드가 블록을 블록체인에 포함시키는 형태는 서로 다를 수 있다. At this time, each node includes a block in the blockchain may be different.
구체적으로, 스마트 계약 노드는 전송 받은 블록에 기본으로 포함된 블록 생성에 관한 서지사항(블록 생성 날짜, 블록을 생성한 노드 등); 스마트 계약의 내역; 블록의 유효성 검사 시 사용되는 hash key 등에 더하여, 스마트 계약 노드가 저장해둔 클라이언트들 간의 스마트 계약의 모든 세부 사항을 전송 받은 블록에 참조로 포함시킬 수 있다. 이하에서는, 이러한 블록을 풀 블록(Full Block)이라 한다. 스마트 계약 노드는 풀 블록의 형태로 블록을 블록체인에 포함시킬 수 있다. 요컨대, 스마트 계약 노드 D(145)는 합의 노드 D1(141)이 생성한 블록에 클라이언트 X(146)와 클라이언트 X(146)간의 스마트 계약의 모든 세부 사항을 참조로 포함시킨 블록을 블록체인에 포함시킬 수 있다.Specifically, the smart contract node includes bibliographic information (block creation date, node that generated the block, etc.) related to block generation included basically in the received block; Breakdown of smart contracts; In addition to the hash key used to validate the block, all details of the smart contract between the clients stored by the smart contract node can be included in the received block as a reference. Hereinafter, such a block is called a full block. Smart contract nodes can include blocks in the blockchain in the form of full blocks. In short, the smart
한편, 블록에 기본으로 포함된 블록 생성에 관한 서지사항(블록 생성 날짜, 블록을 생성한 노드 등); 스마트 계약의 내역; 블록의 유효성 검사 시 사용되는 hash key 등으로 이루어진 블록을 미디엄 블록(Medium Block)이라 한다. 네트워크 노드 및 블록을 생성한 합의 노드는 미디엄 블록의 형태로 블록을 블록체인에 포함시킬 수 있다. 요컨대, 네트워크 노드 D(140) 및 합의 노드 D1(141)은 미디엄 블록을 블록체인에 포함시킬 수 있다.On the other hand, bibliographic information (block creation date, node that generated the block, etc.) related to block generation included in the block as a basis; Breakdown of smart contracts; A block composed of a hash key used for validating a block is called a medium block. The network node and the consensus node that created the block may include the block in the blockchain in the form of a medium block. In short,
또한, 블록을 생성한 합의 노드와 동일한 P2P 서브 네트워크에 연결된 합의 노드들은 전송 받은 블록에 기본으로 포함된 블록 생성에 관한 서지사항(블록 생성 날짜, 블록을 생성한 노드 등); 스마트 계약의 내역; 블록의 유효성 검사 시 사용되는 hash key 등에서, 스마트 계약의 내역을 제외한 서지사항과 hash key에 대한 정보만을 블록에 남겨둘 수 있다. 이하에서는, 이러한 블록을 라이트 블록(Light Block)이라 한다. 블록을 생성한 합의 노드와 동일한 P2P 서브 네트워크에 연결된 합의 노드들은 라이트 블록의 형태로 블록을 블록체인에 포함시킬 수 있다. 요컨대, 합의 노드 D2(142)는 합의 노드 D1(141)이 생성한 블록에서 스마트 계약의 내역을 제외한 블록을 블록체인에 포함시킬 수 있다. 한편, 블록을 생성한 합의 노드와 다른 P2P 서브 네트워크에 연결된 합의 노드들은 블록을 블록체인에 포함시키지 않을 수 있다.In addition, consensus nodes connected to the same P2P sub-network as the consensus node that generated the block may include bibliographic information (block creation date, node that generated the block, etc.) related to block generation included in the received block as a basis; Breakdown of smart contracts; In the hash key used when validating the block, only the information about the citation and the hash key except the details of the smart contract can be left in the block. Hereinafter, such a block is called a light block. Consensus nodes connected to the same P2P subnetwork as the consensus node that created the block may include the block in the blockchain in the form of a light block. In other words, the
이와 같이 블록체인 스마트 계약 시스템은 노드 역할별로 서로 다른 블록을 블록체인에 포함시키도록 구성됨으로써, 노드 간 역할 분담이 이루어질 수 있다. 우선, 법률 등이 구분되는 지역이나 국가를 담당하는 스마트 계약 노드는 특정 지역이나 국가의 스마트 계약에 대한 모든 정보를 수집할 수 있게 된다. 저장 능력이 우수한 네트워크 노드는 P2P 네트워크(109)를 통해 획득되는 스마트 계약의 내역들을 수집하여 종합적인 데이터베이스로서 역할을 수행할 수 있게 된다. 연산 능력이 좋은 합의 노드는 블록을 생성해내지만, 블록체인에 많은 용량의 자료를 저장하지는 않게 함으로써, 하드웨어 및 소프트웨어 성능을 연산 능력에 집중할 수 있게 한다. As such, the blockchain smart contract system is configured to include different blocks for each node role in the blockchain, thereby enabling role sharing between nodes. First, the smart contract node in charge of the region or country where the law is divided can collect all the information about the smart contract of a specific region or country. The network node having a high storage capacity may serve as a comprehensive database by collecting details of smart contracts obtained through the
다음으로, 제 2 스마트 계약의 내역을 전송할 수 있다(422).Next, the details of the second smart contract may be transmitted (422).
우선, 과정(421)과 동일한 경과를 거쳐, 네트워크 노드 D(140)는 제 2 스마트 계약의 내역을 획득할 수 있다. 이어서, 합의 노드 D1(141)의 네트워크 평판이 600이고 합의 노드 D2(142)의 네트워크 평판이 400이라면, 합의 노드 D1(141)가 블록을 생성할 합의 노드로 지목될 확률은 60%로 설정될 수 있고, 합의 노드 D2(142)가 블록을 생성할 합의 노드로 지목될 확률은 40%로 설정될 수 있다. 네트워크 노드 D(140)는 확률에 기초하여 합의 노드 D2(142)를 블록을 생성할 합의 노드로 지목하고, 합의 노드 D2(142)로 스마트 계약의 내역을 전송할 수 있다.First, the
다음으로, 블록체인 시스템의 노드들은 제 2 스마트 계약의 내역을 포함하는 블록을 블록체인에 포함시킬 수 있다(432). 구체적으로, 합의 노드 D2(142)는 블록을 생성한 후, P2P 서브 네트워크 D(149)에 연결된 네트워크 노드 D(140)로 블록의 생성을 알릴 수 있으며, 이때 생성된 블록을 함께 전송할 수 있다. 네트워크 노드 D(140)는 스마트 계약 노드 D(145) 및 합의 노드 D1(141)에게 블록이 생성됐음을 알릴 수 있으며, 이 과정에서 생성된 블록을 함께 전송할 수 있다. 스마트 계약 노드 D(145)는 풀 블록의 형태로; 네트워크 노드 D(140) 및 합의 노드 D2(142)는 미디엄 블록의 형태로; 합의 노드 D1(141)은 라이트 블록의 형태로 블록을 블록체인에 포함시킬 수 있다.Next, nodes of the blockchain system may include a block including the details of the second smart contract in the blockchain (432). Specifically, after generating the block, the
도 5는 일실시예에 따른 네트워크 노드와 합의 노드의 동작을 설명하기 위한 도면이다.5 is a diagram illustrating an operation of a network node and a consensus node according to an embodiment.
우선, 네트워크 노드들은 합의 노드들의 네트워크 평판을 생성할 수 있다(510, 520). 구체적으로, 합의 노드 A1(111)은 자신의 성능 자료를 자신과 P2P 서브 네트워크 A(119)로 연결된 네트워크 노드 A(110)으로 전송할 수 있고, 네트워크 노드 A(110)는 합의 노드 A1(111)의 네트워크 평판을 생성할 수 있다. 합의 노드 B1(121)은 자신의 성능 자료를 자신과 P2P 서브 네트워크 B(129)로 연결된 네트워크 노드 B(120)로 전송할 수 있고, 네트워크 노드 B(120)는 합의 노드 B1(121)의 네트워크 평판을 생성할 수 있다. 성능 자료를 기초로 네트워크 평판이 생성되는 구체적인 과정은 도 8을 참조하여 후술된다.First, network nodes may generate a network reputation of consensus nodes (510, 520). Specifically, the
다음으로, 블록체인 시스템의 노드들은 합의 노드 A1(111)이 생성한 블록을 블록체인에 포함시킬 수 있다(511). 먼저, 네트워크 노드 A(110)은 티어 1(310)에 따른 자신이 순번이 도래했을 때, 합의 노드 A1(111)을 블록을 생성할 합의 노드로 지목하고, 합의 노드 A1(111)로 스마트 계약 노드 A(115)로부터 획득한 스마트 계약의 내역을 전송할 수 있다. 만약 네트워크 노드 A(110)가 획득한 스마트 계약의 내역이 없다면, 블록을 생성할 합의 노드를 지목하는 것을 패스하고, 티어 1(310)에 따른 순번이 다시 도래할 때까지 대기한다.Next, nodes of the blockchain system may include the block generated by the
지목된 합의 노드 A1(111)은 블록 생성에 관한 서지사항(블록 생성 날짜, 블록을 생성한 노드 등); 스마트 계약의 내역; 블록의 유효성 검사 시 사용되는 hash key 등에 관한 정보를 포함하는 블록을 생성한 후, 네트워크 노드 A(110)에게 블록 생성을 알린다. 이 때, 합의 노드 A1(111)에 의해 생성된 블록이 네트워크 노드 A(110)로 전송될 수 있다.The indicated
이어서, 네트워크 노드 A(110)는 P2P 네트워크(109)에 연결된 네트워크 노드 B(120)에게 블록 생성을 알리고, 네트워크 노드 B(120)은 자신과 P2P 서브 네트워크 B(129)로 연결된 합의 노드 B1(121)에게 블록 생성을 알린다. 이 과정에서, 네트워크 노드 A(110)에 의해 생성된 블록이 각 노드에게 전송될 수 있다.
블록을 전송 받은 노드들은 블록을 블록체인에 포함시킬 수 있다. 네트워크 노드 A(110) 및 네트워크 노드 B(120)은 미디엄 블록의 형태로 블록을 블록체인에 포함시킬 수 있다. 블록을 생성한 합의 노드 A1(111) 역시 미디엄 블록의 형태로 블록을 블록체인에 포함시킬 수 있다. 합의 노드 A1(111)과 다른 P2P 서브 네트워크에 연결된 합의 노드 B1(121)은 블록을 블록체인을 포함시키지 않을 수 있다. Nodes that receive the block can include the block in the blockchain. The
다음으로, 블록체인 시스템의 노드들은 네트워크 노드 B(120)가 지목한 합의 노드 B1(121)이 생성한 블록을 블록체인에 포함시킬 수 있다(521). 먼저, 네트워크 노드 B(120)는 티어 1(310)에 따라 네트워크 노드 A(110) 다음으로 자신이 순번이 도래했을 때, 합의 노드 B1(121)을 블록을 생성할 합의 노드로 지목하고, 합의 노드 B1(121)로 스마트 계약 노드 B(125)로부터 획득한 스마트 계약의 내역을 전송할 수 있다. 만약 네트워크 노드 B(120)가 획득한 스마트 계약의 내역이 없다면, 블록을 생성할 합의 노드를 지목하는 것을 패스하고, 티어 1(310)에 따른 순번이 다시 도래할 때까지 대기한다.Next, the nodes of the blockchain system may include the block generated by the
지목된 합의 노드 B1(121)은 블록 생성에 관한 서지사항(블록 생성 날짜, 블록을 생성한 노드 등); 스마트 계약의 내역; 블록의 유효성 검사 시 사용되는 hash key 등에 관한 정보를 포함하는 블록을 생성한 후, 네트워크 노드 B(120)에게 블록 생성을 알린다. 이 때, 합의 노드 B1(121)에 의해 생성된 블록이 네트워크 노드 B(120)로 전송될 수 있다.The identified
이어서, 네트워크 노드 B(120)는 P2P 네트워크(109)에 연결된 네트워크 노드 A(110)에게 블록 생성을 알리고, 네트워크 노드 A(110)는 자신과 P2P 서브 네트워크 A(119)로 연결된 합의 노드 A1(111)에게 블록 생성을 알린다. 이 과정에서, 네트워크 노드 B(110)에 의해 생성된 블록이 각 노드에게 전송될 수 있다.
블록을 전송 받은 노드들은 블록을 블록체인에 포함시킬 수 있다. 네트워크 노드 B(120) 및 네트워크 노드 A(110)은 미디엄 블록의 형태로 블록을 블록체인에 포함시킬 수 있다. 블록을 생성한 합의 노드 B1(121) 역시 미디엄 블록의 형태로 블록을 블록체인에 포함시킬 수 있다. 합의 노드 B1(121)과 다른 P2P 서브 네트워크에 연결된 합의 노드 A1(111)은 블록을 블록체인을 포함시키지 않을 수 있다.Nodes that receive the block can include the block in the blockchain. The
이와 같은 과정을 반복하여, P2P 네트워크(109)의 각 네트워크 노드(110, 120, 130, 140)는 자신의 순번이 도래했을 때, 자신이 연결된 P2P 서브 네트워크(119, 129, 139, 149) 내에서 블록을 생성할 합의 노드(111-113, 121-123, 131-133, 141-143)를 지목하고, 지목된 합의 노드에서 생성된 블록은 합의 노드를 지목한 네트워크 노드를 통해 블록체인 스마트 계약 시스템의 노드들로 전송될 수 있다. 네트워크 노드들 및 블록을 생성한 합의 노드는 미디엄 블록의 형태로; 블록을 생성한 합의 노드와 동일한 P2P 서브 네트워크에 연결된 합의 노드들은 라이트 블록의 형태로; 및 블록을 생성한 합의 노드와 동일한 P2P 서브 네트워크에 연결된 스마트 계약 노드는 풀 블록의 형태로 블록을 블록체인에 포함시킬 수 있다.By repeating the above process, each
도 6은 일실시예에 따른 블록을 블록체인에 포함시키는 과정을 설명하기 위한 순서도이다.6 is a flowchart illustrating a process of including a block in a blockchain according to an embodiment.
도 6을 참조하여 설명되는 네트워크 노드는 상술한 네트워크 노드 D(140)일 수 있고, 스마트 계약 노드는 상술한 스마트 계약 노드 D(145)일 수 있다. 도 6을 참조하여 설명되는 각 과정에서, 도 1 내지 5을 참조하여 설명된 내용과 중복되는 부분은 반복적인 설명을 생략한다.The network node described with reference to FIG. 6 may be the
우선, 네트워크 노드(140)는 스마트 계약의 주체인 클라이언트로부터 스마트 계약의 내역을 전송 받은 스마트 계약 노드에게서 스마트 계약의 내역을 획득할 수 있다(610). 예를 들어, 클라이언트 X(146)가 클라이언트 Y(147) 소유의 부동산 R을 매매하는 스마트 계약이 체결되는 경우를 생각할 수 있다. 스마트 계약 노드 (145)는 클라이언트들(146, 147)이 체결한 스마트 계약의 모든 세부 사항을 획득할 수 있다. 스마트 계약 노드 (145)는 스마트 계약의 모든 세부 사항의 전부 또는 일부에 해당하는 스마트 계약의 내역으로 네트워크 노드 (140)로 전송할 수 있다. 스마트 계약의 내역에는 적어도 “OOOO년 OO월 OO일에 클라이언트 X는 클라이언트 Y에게 매매대금을 지급했다.” 및 “동일한 날짜에 클라이언트 Y(147)에서 클라이언트 X(146)로 부동산 R의 소유권 이전 등기가 이루어졌다.”와 같이 스마트 계약의 핵심 내용들인 대금지급내역이나 등기사항 등이 포함될 수 있다.First, the
다음으로, 네트워크 노드(140)는 인덱스 서버로부터 부여 받은 순번이 도래한 경우, P2P 서브 네트워크에 연결된 합의 노드들 중에서 스마트 계약의 내역을 포함하는 블록을 생성할 합의 노드를 지목할 수 있다(620). 이때, 인덱스 서버(100)가 부여한 순번은 도 1 및 3을 참조하여 설명된 라운드 로빈 리스트에 의한 순번일 수 있다.Next, when the sequence number received from the index server arrives, the
한편, 순번이 도래한 네트워크 노드(140)가 블록을 생성할 합의 노드를 지목하는 과정은 합의 노드의 네트워크 평판(Network Reputation)을 기초로 이루어지는 일련의 과정일 수 있다. 가령, 네트워크 노드(140)는 P2P 서브 네트워크(149)에 연결된 합의 노드들(141, 142, 143) 중에서, 네트워크 평판을 기초로 이루어지는 일련의 과정을 통해, 합의 노드(141)을 블록을 생성할 합의 노드로 지목할 수 있다. 한편, 블록을 생성할 합의 노드를 지목하는 구체적인 과정은 도 7을 참조하여 후술된다.On the other hand, the process that the
이어서, 네트워크 노드(140)는 지목된 합의 노드(141)로 스마트 계약의 내역을 전송할 수 있다(630). 지목된 합의 노드(141)는 네트워크 노드(140)로부터 전송 받은 스마트 계약의 내역을 포함하는 블록을 생성할 수 있다. 블록에는 블록 생성에 관한 서지사항(블록 생성 날짜, 블록을 생성한 노드 등); 스마트 계약의 내역; 블록의 유효성 검사 시 사용되는 hash key 등이 포함될 수 있다. The
이어지는 순서로, 지목된 합의 노드(141)로부터 스마트 계약의 내역을 포함하는 블록을 획득할 수 있다(640). 지목된 합의 노드(141)는 P2P 서브 네트워크 D(149)에 연결된 네트워크 노드(140)로 블록의 생성을 알릴 수 있다. 이때, 합의 노드 D1(141)은 생성한 블록을 함께 전송할 수 있다.In the following order, a block containing the details of the smart contract may be obtained from the indicated consensus node 141 (640). The indicated
다음으로, 네트워크 노드(140)는 스마트 계약 노드(145), 인덱스 서버(100)로부터 순번을 부여 받은 네트워크 노드들(110, 120, 130), 및 P2P 서브 네트워크에 연결된 합의 노드들 중 적어도 하나로 블록을 전송할 수 있다(650). 가령, 네트워크 노드(140)는 지목된 합의 노드(141) 이외에 P2P 서브 네트워크(149)에 포함된 합의 노드들(142, 143)로 블록을 전송할 수 있다. 한편, 블록을 전송 받은 각각의 네트워크 노드(110, 120, 130)는 자신이 연결된 P2P 서브 네트워크의 합의 노드들에게 블록이 생성됐음을 알릴 수 있으며, 이 과정에서 생성된 블록을 함께 전송할 수 있다. 구체적으로, 네트워크 노드 A(110)는 P2P 서브 네트워크 A(119)에 연결된 합의 노드 A1(111), 합의 노드 A2(112), 및 합의 노드 A3(113)에게 블록 생성을 알리며 블록을 전송할 수 있고; 네트워크 노드 B(120)는 P2P 서브 네트워크 B(129)에 연결된 합의 노드 B1(121), 합의 노드 B2(122), 및 합의 노드 B3(123)에게 블록 생성을 알리며 블록을 전송할 수 있고; 네트워크 노드 C(130)는 P2P 서브 네트워크 C(139)에 연결된 합의 노드 C1(131), 합의 노드 C2(132), 및 합의 노드 C3(133)에게 블록 생성을 알리며 블록을 전송할 수 있다.Next, the
생성된 블록을 전송 받은 합의 노드들(111-113, 121-123, 131-133, 142, 143)은 지목된 합의 노드(141)가 블록을 생성하는 과정에서 스마트 계약의 내용을 조작한 유효하지 않은 블록을 생성했는지 여부를 확인하도록 설정될 수 있다. 이를 위해, 다른 합의 노드들(111-113, 121-123, 131-133, 142, 143)은 P2P 네트워크(109) 및 P2P 서브 네트워크(119, 129, 139, 149)를 통해 네트워크 노드(140) 또는 스마트 계약 노드 (145)로부터 조작되지 않은 스마트 계약의 내역을 전송 받을 수 있고, 조작되지 않은 스마트 계약의 내역을 전송 받은 블록의 hash key와 결합하여, SHA256 등의 해시 함수에 적용해 볼 수 있다. 이때, output hash가 미리 정의된 특정 값 이하로 출력되는지 확인해 봄으로써, 지목된 합의 노드(141)가 생성한 블록의 유효성을 검사할 수 있다. 이밖에도 다른 합의 노드들이 블록의 유효성을 검사하는 속도가 지목된 합의 노드(141)가 블록을 생성하는 속도보다 빠른 유효성 검사 방법이라면 어떤 것이든 차용될 수 있다. The consensus nodes 111-113, 121-123, 131-133, 142, and 143 that have received the generated block are not valid when the indicated
지목된 합의 노드(141)가 유효한 블록을 생성했다면 지목된 합의 노드(141)에게 금전 또는 가상화폐 등의 보상이 주어질 수 있으며, 연속적으로 일정 횟수 이상 유효한 블록을 생성할 경우, 지목된 합의 노드(141)의 네트워크 평판에 가점을 줄 수 있다. 한편, 지목된 합의 노드(141)가 유효하지 않은 블록을 생성한 경우, 지목된 합의 노드 (141)의 네트워크 평판에 가점을 줄 수 있으며, 지목된 합의 노드(141)가 유효하지 않은 블록을 생성했음을 발견한 최초의 합의 노드에게는 네트워크 평판에 가점을 줄 수 있다. 이 경우, 도 7 및 8을 참조하여 후술되는 설명에서 확인할 수 있듯이, 해당 합의 노드는 블록을 생성할 합의 노드로 지목될 확률이 높아지며, 블록을 생성할 합의 노드로 지목되어 유효한 블록을 생성할 경우, 금전 또는 가상화폐 등의 보상이 주어질 수 있다. 이처럼 유효하지 않은 블록을 검증한 합의 노드에게 네트워크 평판에 가점을 줌으로써, 합의 노드들이 유효하지 않은 블록을 적극적으로 발견하도록 참여시킬 수 있다.If the indicated
이어서, 블록체인 스마트 계약 시스템의 노드들은 블록을 블록체인에 포함시킬 수 있다(660). 이때, 스마트 계약 노드 D(145)는 풀 블록의 형태로; 네트워크 노드들(110, 120, 130, 140) 및 지목된 합의 노드(141)는 미디엄 블록의 형태로; 지목된 합의 노드(141) 외 P2P 서브 네트워크 (149)에 연결된 합의 노드들(142, 143)은 라이트 블록의 형태로 블록을 블록체인에 포함시킬 수 있다. 이와 같이 블록체인 스마트 계약 시스템은 노드 역할별로 서로 다른 블록을 블록체인에 포함시킬 수 있으며, 이에 따른 구체적인 효과는 도 4를 참조하여 전술한 설명에서 확인할 수 있다.Subsequently, nodes of the blockchain smart contract system may include the block in the blockchain (660). At this time, the smart
도 7은 일실시예에 따른 합의 노드를 지목하는 과정을 설명하기 위한 순서도이다.7 is a flowchart illustrating a process of pointing to a consensus node according to an embodiment.
블록을 생성할 합의 노드를 지목하는 과정은 네트워크 노드(140)에서 이루어지거나, 네트워크 노드(140)를 관리하는 인덱스 서버(100)와 연동하여 이루어질 수 있다.The process of selecting a consensus node to generate a block may be performed in the
우선, 네트워크 노드(140)는 합의 노드들(141, 142, 143)의 성능 자료를 획득할 수 있다(621). 네트워크 노드(140)는 각각의 합의 노드(141, 142, 143)로부터 자신의 성능 자료를 획득하여 인덱스 서버(100)으로 전송할 수 있다. First, the
이때, 성능 자료는 합의 노드의 네트워크 연결 환경에 관한 정보를 포함할 수 있다. 또한, 성능 자료는 합의 노드의 하드웨어 사양에 관한 정보를 포함할 수 있다. 또한, 성능 자료는 합의 노드가 시스템방정식 문제에 대해 주어진 시간 내에 측정 가능한 출력상태로부터 시스템을 구성하고 있는 상태변수를 발견할 수 있는지 여부인 가관측성에 관한 정보를 포함할 수 있다. 또한, 성능 자료는 합의 노드가 상기 시스템방정식 문제에 대해 특정 초기상태를 주어진 시간 내에 원하는 최종상태로 변환시킬 수 있는지 여부인 가제어성에 관한 정보를 포함할 수 있다.In this case, the performance data may include information about the network connection environment of the consensus node. In addition, the performance data may include information about the hardware specification of the consensus node. In addition, the performance data may include information about the observability, whether the consensus node can detect the state variables that make up the system from the measurable output state within a given time for the system equation problem. In addition, the performance data may include information about controllability, such as whether a consensus node can transform a particular initial state for the system equation problem into a desired final state within a given time.
다음으로, 네트워크 노드(140)는 또는 인덱스 서버(100)는 각각의 합의 노드의 성능 자료를 기초로, 각각의 합의 노드의 네트워크 평판을 생성할 수 있다(622). 각각의 합의 노드(141, 142, 143)의 네트워크 평판은 수치로 표현될 수 있다. 예를 들어, 합의 노드 D1(141)의 네트워크 평판은 600; 합의 노드 D2(142)의 네트워크 평판은 300; 합의 노드 D3(143)의 네트워크 평판은 100일으로 생성될 수 있다. 그러나 이러한 숫자들은 예시일 뿐이며, 네트워크 평판은 자연수뿐만 아니라 정수, 유리수, 또는 실수로 표현될 수도 있다. 네트워크 노드(140)는 또는 인덱스 서버(100)가 합의 노드들의 네트워크 평판을 생성하는 과정은 도 8을 참조하여 후술된다.Next,
이어서, 네트워크 노드(140) 또는 인덱스 서버(100)은 각각의 합의 노드의 네트워크 평판을 기초로, 각각의 합의 노드가 블록을 생성할 노드로 지목될 확률을 생성할 수 있다(623). 구체적으로, 각각의 합의 노드가 블록을 생성할 노드로 지목될 확률은 전체 합의 노드들의 네트워크 평판의 총합에서 특정 합의 노드의 네트워크 평판의 비중을 통해 생성될 수 있다. 예를 들어, 합의 노드 D1(141)의 네트워크 평판은 600; 합의 노드 D2(142)의 네트워크 평판은 300; 합의 노드 D3(143)의 네트워크 평판은 100일 경우, 합의 노드 D1(141)이 블록을 생성할 노드로 지목될 확률은 60%; 합의 노드 D2(142)가 블록을 생성할 노드로 지목될 확률은 30%; 합의 노드 D3(143)가 블록을 생성할 노드로 지목될 확률은 10%로 생성될 수 있다.Subsequently,
네트워크 평판을 기초로 생성한 확률은 예시일 뿐이며, 얼마든지 다른 계산 방법에 따라 확률이 생성될 수 있다. 구체적으로, 합의 노드의 네트워크 평판을 합의 노드의 네트워크 평판에 따라 증가하는 인센티브와 곱한 값을 바탕으로 확률이 생성될 수 있다. 예를 들어, 네트워크 노드(140) 또는 인덱스 서버(100)는 합의 노드 D1(141)의 네트워크 평판은 600에 인센티브 1.6을 곱한 값 960; 합의 노드 D2(142)의 네트워크 평판은 300에 인센티브 1.3을 곱한 값 390; 합의 노드 D3(143)의 네트워크 평판은 100에 인센티브 1.1을 곱한 값 110을 바탕으로, 각각의 합의 노드가 블록을 생성할 노드로 지목될 확률을 생성할 수 있다. 이 경우, 합의 노드 D1(141)이 블록을 생성할 노드로 지목될 확률은 66%; 합의 노드 D2(142)가 블록을 생성할 노드로 지목될 확률은 27%; 합의 노드 D3(143)가 블록을 생성할 노드로 지목될 확률은 7%로 생성될 수 있다. 이러한 방식을 사용할 경우, 네트워크 평판이 높을수록 인센티브도 커지므로, 네트워크 평판이 높으면 높을수록 블록을 생성할 노드로 지목될 확률이 보다도 높아진다. 이러한 점은 합의 노드들이 네트워크 평판을 높이기 위해 행동하도록 동기를 부여할 수 있다.Probability generated based on network reputation is only an example, and the probability may be generated according to any other calculation method. Specifically, the probability may be generated based on a value obtained by multiplying the consensus node's network reputation with an incentive that increases with the consensus node's network reputation. For example, the
이어지는 순서로, 확률들을 기초로, 블록을 생성할 합의 노드를 지목할 수 있다(624). 예를 들어, 네트워크 노드(140)는 자체적으로 생성한 확률 또는 인덱스 서버(100)가 생성한 후 전송해 준 확률을 기초로, 합의 노드 D1(141), 합의 노드 D2(142), 합의 노드 D3(143) 중에서 블록을 생성할 합의 노드로 지목할 수 있다. 가령, 합의 노드 D1(141)이 블록을 생성할 노드로 지목될 확률은 60%; 합의 노드 D2(142)가 블록을 생성할 노드로 지목될 확률은 30%; 합의 노드 D3(143)가 블록을 생성할 노드로 지목될 확률은 10%일 수 있으며, 네트워크 노드(140)는 30%의 확률에 따라 현재 순번에서는 합의 노드 D2(142)를 블록을 생성할 합의 노드로 지목할 수 있다.In the following order, based on the probabilities, one can point to a consensus node to generate a block (624). For example, the
도 8은 일실시예에 따른 네트워크 평판을 생성하는 과정을 설명하기 위한 도면이다.8 is a diagram for describing a process of generating a network reputation according to an exemplary embodiment.
도 8을 참조하면, P2P 서브 네트워크 D(149)에 가장 먼저 연결된 합의 노드 D2(142); 그 다음으로 연결된 합의 노드 D3(143); 및 그 다음으로 연결된 합의 노드 D1(141) 중에서 합의 노드 D1(141)이 가장 높은 네트워크 평판을 가질 수 있고; 합의 노드 D2(142)가 그 다음으로 높은 네트워크 평판을 가질 수 있고; 합의 노드 D3(143)이 그 다음으로 높은 네트워크 평판을 가질 수 있다. 이하에서는, 각 합의 노드(141, 142, 143)의 네트워크 평판이 계산되는 과정이 설명된다.8,
우선, 합의 노드의 네트워크 평판은 합의 노드의 성능 자료를 기초로 생성될 수 있다.First, the network reputation of the consensus node may be generated based on the performance data of the consensus node.
여기서 성능 자료란 합의 노드의 네트워크 연결 환경에 관한 정보를 포함할 수 있다. 네트워크 연결 환경에 관한 정보는 합의 노드(141, 142, 143)가 P2P 서브 네트워크(149)에 유선을 통해 접속했는지 또는 무선을 통해 접속했는지 여부; 무선을 통해 접속했다면, 통신 방식 (5G, WiFi, 3G, LTE 등); 인터넷 속도; 인터넷 서비스 제공사업자에 대한 정보 등을 포함할 수 있다.Here, the performance data may include information on the network connection environment of the consensus node. Information about the network connection environment may include whether the
이 경우, 합의 노드의 네트워크 평판은 해당 합의 노드의 네트워크의 연결 환경의 응답성과 관련한 수치를 포함할 수 있다. 구체적으로, 유선을 통해 P2P 서브 네트워크(149)에 접속했을 경우 무선을 통해 P2P 서브 네트워크(149)에 접속한 경우보다 더 높은 수치를 부여할 수 있다. 또한, 무선을 통해 P2P 서브 네트워크(149)에 접속했다면, 5G를 이용했을 때 가장 높은 수치를 부여할 수 있고, Wifi를 이용했을 경우 LTE나 3G보다 높은 수치를 부여할 수 있다. 또한, GBps(gigabytes per second)나 MBps(megabytes per second)로 표현되는 합의 노드(141, 142, 143)의 인터넷 속도를 스케일화하여 수치 값으로 사용할 수 있다. 또한, 인터넷 서비스 제공사업자의 시장점유율 등의 지표를 참고하여 수치 값에 반영할 수 있다. In this case, the network reputation of the consensus node may include a number related to the responsiveness of the connection environment of the network of the consensus node. In detail, when the
이처럼 합의 노드(141, 142, 143)의 네트워크의 연결 환경의 응답성과 관련한 수치를 합의 노드의 네트워크 평판에 포함시킴으로써, 네트워크 연결 환경이 우수한 합의 노드(141, 142, 143)일수록 높은 네트워크 평판을 가질 수 있다. 이를 통해, 우수한 네트워크 연결 환경을 가진 합의 노드(141, 142, 143)가 높은 확률로 블록을 생성할 노드로 지목될 것이므로, 빠른 블록 생성 속도 등이 보장될 수 있다.As such, the numerical values relating to the responsiveness of the network connection environment of the
나아가, 성능 자료란 합의 노드(141, 142, 143)의 하드웨어 사양에 관한 정보를 포함할 수 있다. 구체적으로, 합의 노드(141, 142, 143)의 CPU 종류 및 성능; GPU의 개수, 종류 및 성능; RAM의 크기; 클럭 속도에 대한 정보 등을 포함할 수 있다.Furthermore, the performance data may include information about hardware specifications of the
이 경우, 합의 노드의 네트워크 평판은 해당 합의 노드의 하드웨어 사양의 가용성과 관련한 수치를 포함할 수 있다. 구체적으로, CPU의 기종이 최신 기종이고, 더 많은 코어 수를 가지고 있을 경우 더 높은 수치를 부여할 수 있다. 또한, GPU의 개수가 많을수록, 기종이 최신 기종일수록, 기타 GPU의 성능을 표시하는 값이 높을수록 높은 수치를 부여할 수 있다. 또한, 합의 노드(141, 142, 143)의 클럭 수나 RAM의 크기를 스케일화한 값을 수치 값에 반영할 수도 있다.In this case, the network reputation of the consensus node may include a number relating to the availability of the hardware specification of the consensus node. Specifically, when the CPU model is the latest model and has a larger number of cores, a higher number can be given. In addition, the larger the number of GPUs, the more recent model, and the higher the value indicating the performance of other GPUs, the higher the number. In addition, the numerical value may reflect the clock number of the
이처럼 합의 노드(141, 142, 143)의 하드웨어 사양의 가용성과 관련한 수치를 합의 노드의 네트워크 평판에 포함시킴으로써, 하드웨어 사양이 우수한 합의 노드(141, 142, 143)일수록 높은 네트워크 평판을 가질 수 있다. 이를 통해, 우수한 하드웨어 사양을 가진 합의 노드(141, 142, 143)가 높은 확률로 블록을 생성할 노드로 지목될 것이므로, 빠른 블록 생성 속도 등이 보장될 수 있다.As such, the numerical values relating to the availability of the hardware specifications of the
나아가, 성능 자료란 합의 노드(141, 142, 143)가 시스템방정식 문제에 대해 주어진 시간 내에 측정 가능한 출력상태로부터 시스템을 구성하고 있는 상태변수를 발견할 수 있는지 여부인 가관측성에 관한 정보를 포함할 수 있다. 구체적으로, 합의 노드(141, 142, 143)는 네트워크 노드(140)로부터 시스템방정식 문제를 제공받을 수 있고, 이 문제를 주어진 시간 동안 연산하는 작업을 수행할 수 있다.Further, the performance data may include information about observability, whether the
이 경우, 합의 노드의 네트워크 평판은 해당 합의 노드의 가관측성과 관련한 수치를 포함할 수 있다. 구체적으로, 합의 노드(141, 142, 143)가 주어진 시간 동안 시스템방정식 문제를 해결했다면 특정 수치만큼의 가점을 부여할 수 있다. 또한, 합의 노드(141, 142, 143)가 시스템방정식 문제를 해결한 경우, 주어졌던 전체 시간에서 남은 시간만큼의 값을 스케일화한 값을 수치 값으로 사용할 수 있다.In this case, the network reputation of the consensus node may include a number related to the observability of the consensus node. Specifically, if the
이처럼 합의 노드(141, 142, 143)의 가관측성과 관련한 수치를 합의 노드의 네트워크 평판에 포함시킴으로써, 작업 처리 성능이 우수한 합의 노드(141, 142, 143)일수록 높은 네트워크 평판을 가질 수 있다. 이를 통해, 우수한 작업 처리 성능을 가진 합의 노드(141, 142, 143)가 높은 확률로 블록을 생성할 노드로 지목될 것이므로, 빠른 블록 생성 속도 등이 보장될 수 있다.As such, by including the numerical values related to the observability of the
또한, 성능 자료란 합의 노드(141, 142, 143)가 시스템방정식 문제에 대해 특정 초기상태를 주어진 시간 내에 원하는 최종상태로 변환시킬 수 있는지 여부인 가제어성에 관한 정보를 포함할 수 있다. 구체적으로, 합의 노드(141, 142, 143)는 네트워크 노드(140)로부터 시스템방정식 문제를 제공받을 수 있고, 이 문제를 주어진 시간 동안 연산하는 작업을 수행할 수 있다.In addition, the performance data may include information about controllability, which is whether the
이 경우, 합의 노드의 네트워크 평판은 해당 합의 노드의 가제어성과 관련한 수치를 포함할 수 있다. 구체적으로, 합의 노드(141, 142, 143)가 주어진 시간 동안 시스템방정식 문제를 해결했다면 특정 수치만큼의 가점을 부여할 수 있다. 또한, 합의 노드(141, 142, 143)가 시스템방정식 문제를 해결한 경우, 주어졌던 전체 시간에서 남은 시간만큼의 값을 스케일화한 값을 수치 값으로 사용할 수 있다. In this case, the network reputation of the consensus node may include a number related to the controllability of the consensus node. Specifically, if the
이처럼 합의 노드(141, 142, 143)의 가관측성과 관련한 수치를 합의 노드의 네트워크 평판에 포함시킴으로써, 작업 처리 성능이 우수한 합의 노드(141, 142, 143)일수록 높은 네트워크 평판을 가질 수 있다. 이를 통해, 우수한 작업 처리 성능을 가진 합의 노드(141, 142, 143)가 높은 확률로 블록을 생성할 노드로 지목될 것이므로, 빠른 블록 생성 속도 등이 보장될 수 있다.As such, by including the numerical values related to the observability of the
또한, 성능 자료는 상기에 언급된 성능 자료들의 조합으로 이루어진 정보를 포함할 수 있으며, 이 경우 합의 노드의 네트워크 평판은 상기에 언급된 수치들의 조합으로 구성된 수치를 포함할 수 있다. 이와 같이 합의 노드(141, 142, 143)의 네트워크 연결 환경의 응답성; 하드웨어 사양의 가용성; 가관측성; 및 가제어성과 관련한 수치를 합의 노드의 네트워크 평판에 포함시킴으로써, 작업 처리 성능이 우수한 합의 노드(141, 142, 143)들이 높은 네트워크 평판을 가질 수 있다. 합의 노드의 네트워크 평판이 높을수록 높은 확률로 블록을 생성할 노드로 지목되므로, 빠른 블록 생성 속도 등이 보장될 수 있다. In addition, the performance data may include information consisting of a combination of the above-mentioned performance data, in which case the network reputation of the consensus node may include a value consisting of a combination of the above-mentioned values. Thus, the responsiveness of the network connection environment of the
나아가, 합의 노드의 네트워크 평판은 합의 노드(141, 142, 143)가 블록체인 스마트 계약 시스템에서 어떻게 행동하는가에 따라 가점 또는 감점이 부여될 수 있다. 가령, 합의 노드(141)가 조작된 스마트 계약의 내역을 포함하는 유효하지 않은 블록을 생성했음이 발견될 경우, 해당 합의 노드(141)는 네트워크 평판에서 감점을 받아 차후에 블록을 생성할 노드로 지목될 확률이 줄어들 수 있다. 반면, 합의 노드(142)가 연속적으로 일정 횟수 이상 올바른 스마트 계약의 내역을 포함하는 유효한 블록을 생성한 경우, 해당 합의 노드(142)는 네트워크 평판에서 가점을 받아 차후에 블록을 생성할 노드로 지목될 확률이 올라갈 수 있다. Further, the network reputation of the consensus node may be given additional points or deductions depending on how the
또한, 스마트 계약 하나당 네트워크 평판에 기초한 확률에 기반하여 지목한 하나의 합의 노드만 블록을 생성할 수 있도록 함으로써, 블록이 분기되는 포크(fork) 현상을 피할 수 있다. 네트워크 평판이 높은 합의 노드가 높은 확률로 블록을 생성할 것이고, 네트워크 평판이 높다는 것은 합의 노드가 연속적으로 유효한 블록을 생성해왔다는 뜻이므로, 지목된 합의 노드가 생성한 블록은 일차적으로 유효하다고 신뢰할 수 있게 된다.In addition, by allowing only one consensus node to generate a block based on the probability based on the network reputation per smart contract, the fork phenomenon of the block can be avoided. A consensus node with a high network reputation will generate blocks with a high probability, and a high network reputation means that the consensus node has continuously generated valid blocks, so that the blocks generated by the indicated consensus nodes are primarily valid. do.
나아가, 블록이 생성된 경우, 블록을 생성한 합의 노드(141) 외 다른 모든 합의 노드들은 생성된 블록의 유효성을 검증할 수 있고, 유효하지 않은 블록을 검증한 최초의 합의 노드(143)에게 네트워크 평판에 가점을 줄 수 있다. 어느 합의 노드라도 블록의 유효성을 검증할 수 있게 하고, 유효하지 않은 블록을 검증한 최초의 합의 노드(143)는 네트워크 평판에 가점을 부여해줌으로써, 합의 노드들이 서로가 생성한 블록을 검증하도록 동기 부여를 할 수 있고, 이를 통해 높은 네트워크 평판을 가진 합의 노드가 유효하지 않은 블록을 생성하여 블록체인 시스템을 장악하려는 51% 공격(51% attack)을 막을 수 있게 된다.Furthermore, when a block is generated, all other consensus nodes other than the
이처럼 합의 노드가 유효하지 않은 블록을 생성한 경우 네트워크 평판에 감점을 적용하고, 연속적으로 일정 횟수 이상 유효한 블록을 생성하거나 유효하지 않은 블록을 최초로 검증한 경우 네트워크 평판에 가점을 부여할 수 있다. 이를 통해, 합의 노드들이 조작된 스마트 계약의 내역을 포함하는 유효하지 않은 블록을 생성하는 것을 방지할 수 있고, 올바른 스마트 계약의 내역을 포함하는 유효한 블록을 생성하도록 독려할 수 있다.In this way, if the consensus node generates an invalid block, the deduction is applied to the network reputation, and if the contiguous node generates a valid block more than a predetermined number of times or if the invalid block is first verified, the network reputation may be added. This may prevent consensus nodes from generating invalid blocks that contain the details of the manipulated smart contract, and may encourage generating valid blocks that contain the details of the correct smart contract.
이상을 통해, 블록체인 스마트 계약 시스템에 참여하는 노드들이 네트워크 평판에 입각하여 행동하고 평가되는, 네트워크 평판 증명을 합의 알고리즘으로 가지는 블록체인 스마트 계약 시스템이 형성될 수 있다.Through the above, a blockchain smart contract system having a network reputation proof as a consensus algorithm in which nodes participating in the blockchain smart contract system behaves and is evaluated based on the network reputation can be formed.
도 9는 일실시예에 따른 장치의 구성의 예시도이다.9 is an exemplary diagram of a configuration of an apparatus according to an embodiment.
일실시예에 따른 장치(901)는 프로세서(902) 및 메모리(903)를 포함한다. 일실시예에 따른 장치(901)는 상술한 인덱스 서버(100), 네트워크 노드(110, 120, 130, 140), 스마트 계약 노드(115, 125, 135, 145), 합의 노드(111-113, 121-123, 131-133, 141-143) 또는 클라이언트(146, 147)일 수 있다. 프로세서는 도 1 내지 도 8을 통하여 전술한 적어도 하나의 장치들을 포함하거나, 도 1 내지 도 8을 통하여 전술한 적어도 하나의 방법을 수행할 수 있다. 메모리(903)는 상술한 방법과 관련된 정보를 저장하거나 상술한 방법이 구현된 프로그램을 저장할 수 있다. 메모리(903)는 휘발성 메모리 또는 비휘발성 메모리일 수 있다.
프로세서(902)는 프로그램을 실행하고, 장치(901)를 제어할 수 있다. 프로세서(902)에 의하여 실행되는 프로그램의 코드는 메모리(903)에 저장될 수 있다. 장치(901)는 입출력 장치(도면 미 표시)를 통하여 외부 장치(예를 들어, 퍼스널 컴퓨터 또는 네트워크)에 연결되고, 데이터를 교환할 수 있다.The
이상에서 설명된 실시예들은 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치, 방법 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 컨트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.The embodiments described above may be implemented as hardware components, software components, and / or combinations of hardware components and software components. For example, the devices, methods, and components described in the embodiments may include, for example, processors, controllers, arithmetic logic units (ALUs), digital signal processors, microcomputers, field programmable gates (FPGAs). It may be implemented using one or more general purpose or special purpose computers, such as an array, a programmable logic unit (PLU), a microprocessor, or any other device capable of executing and responding to instructions. The processing device may execute an operating system (OS) and one or more software applications running on the operating system. The processing device may also access, store, manipulate, process, and generate data in response to the execution of the software. For the convenience of understanding, a processing device may be described as one being used, but a person skilled in the art will appreciate that the processing device includes a plurality of processing elements and / or a plurality of types of processing elements. It can be seen that it may include. For example, the processing device may include a plurality of processors or one processor and one controller. In addition, other processing configurations are possible, such as parallel processors.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical d인덱스 서버(100)k)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.The method according to the embodiment may be embodied in the form of program instructions that can be executed by various computer means and recorded on a computer readable medium. The computer readable medium may include program instructions, data files, data structures, and the like, alone or in combination. The program instructions recorded on the media may be those specially designed and constructed for the purposes of the embodiments, or they may be of the kind well-known and available to those having skill in the computer software arts. Examples of computer readable recording media include magnetic media such as hard disks, floppy disks, and magnetic tape, optical media such as CD-ROMs, DVDs, and
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.The software may include a computer program, code, instructions, or a combination of one or more of the above, and configure the processing device to operate as desired, or process it independently or collectively. You can command the device. Software and / or data may be any type of machine, component, physical device, virtual equipment, computer storage medium or device in order to be interpreted by or to provide instructions or data to the processing device. Or may be permanently or temporarily embodied in a signal wave to be transmitted. The software may be distributed over networked computer systems so that they may be stored or executed in a distributed manner. Software and data may be stored on one or more computer readable recording media.
이상과 같이 실시예들이 비록 한정된 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기를 기초로 다양한 기술적 수정 및 변형을 적용할 수 있다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.Although the embodiments have been described with reference to the accompanying drawings, those skilled in the art may apply various technical modifications and variations based on the above. For example, the described techniques may be performed in a different order than the described method, and / or components of the described systems, structures, devices, circuits, etc. may be combined or combined in a different manner than the described method, or other components. Or even if replaced or replaced by equivalents, an appropriate result can be achieved.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 청구범위의 범위에 속한다.Therefore, other implementations, other embodiments, and equivalents to the claims are within the scope of the following claims.
Claims (5)
인덱스 서버(Index Server)로부터 부여 받은 순번이 도래한 경우, P2P 서브 네트워크(P2P-Sub Network)에 연결된 합의 노드(Consensus Node)들 중에서 상기 스마트 계약의 내역을 포함하는 블록을 생성할 합의 노드를 지목하는 단계;
지목된 합의 노드로 상기 스마트 계약의 내역을 전송하는 단계;
상기 지목된 합의 노드로부터 상기 스마트 계약의 내역을 포함하는 블록을 획득하는 단계;
상기 스마트 계약 노드, 상기 인덱스 서버로부터 순번을 부여 받은 네트워크 노드(Network Node)들, 및 상기 P2P 서브 네트워크에 연결된 합의 노드들 중 적어도 하나로 상기 블록을 전송하는 단계; 및
상기 블록을 블록체인에 포함시키는 단계;
를 포함하며,
상기 블록을 생성할 합의 노드를 지목하는 단계는,
상기 합의 노드들의 성능 자료를 획득하는 단계;
각각의 합의 노드의 성능 자료를 기초로, 각각의 합의 노드의 네트워크 평판을 생성하는 단계;
상기 각각의 합의 노드의 네트워크 평판을 기초로, 각각의 합의 노드가 블록을 생성할 노드로 지목될 확률을 생성하는 단계;
상기 확률들을 기초로, 블록을 생성할 합의 노드를 지목하는 단계;
를 포함하는,
네트워크 평판 증명을 합의 알고리즘으로 사용하는 블록체인 스마트 계약 방법.
Obtaining the details of the smart contract from a smart contract node that has received the details of the smart contract from a client, which is the subject of the smart contract;
When the sequence number granted by the index server arrives, the consensus node that is to create a block including the details of the smart contract among consensus nodes connected to a P2P-sub network is indicated. Making;
Transmitting the details of the smart contract to the indicated consensus node;
Obtaining a block containing the details of the smart contract from the indicated consensus node;
Transmitting the block to at least one of the smart contract node, network nodes assigned a sequence number from the index server, and consensus nodes connected to the P2P subnetwork; And
Including the block in a blockchain;
Including;
Pointing to the consensus node to generate the block,
Obtaining performance data of the consensus nodes;
Generating a network reputation of each consensus node based on the performance data of each consensus node;
Based on the network reputation of each consensus node, generating a probability that each consensus node will be identified as a node to generate a block;
Based on the probabilities, pointing to a consensus node to generate a block;
Including,
Blockchain smart contract method that uses proof of network reputation as a consensus algorithm.
상기 각각의 합의 노드의 성능 자료는 해당 합의 노드의 네트워크 연결 환경에 관한 정보를 포함하며,
상기 각각의 합의 노드의 네트워크 평판은 해당 합의 노드의 네트워크 연결 환경의 응답성과 관련한 수치를 포함하는,
네트워크 평판 증명을 합의 알고리즘으로 사용하는 블록체인 스마트 계약 방법.
The method of claim 1,
The performance data of each consensus node includes information on the network connection environment of the consensus node.
The network reputation of each consensus node includes a numerical value relating to the responsiveness of the network connection environment of the consensus node.
Blockchain smart contract method that uses proof of network reputation as a consensus algorithm.
A computer program stored in a computer readable recording medium in combination with hardware to carry out the method of claim 1.
인덱스 서버(Index Server)로부터 부여 받은 순번이 도래한 경우, P2P 서브 네트워크(P2P-Sub Network)에 연결된 합의 노드(Consensus Node)들 중에서 상기 스마트 계약의 내역을 포함하는 블록을 생성할 합의 노드를 지목하고,
지목된 합의 노드로 상기 스마트 계약의 내역을 전송하고,
상기 지목된 합의 노드로부터 상기 스마트 계약의 내역을 포함하는 블록을 획득하고,
상기 스마트 계약 노드, 상기 인덱스 서버로부터 순번을 부여 받은 네트워크 노드(Network Node)들, 및 상기 P2P 서브 네트워크에 연결된 합의 노드들 중 적어도 하나로 상기 블록을 전송하고,
상기 블록을 블록체인에 포함시키는 프로세서
를 포함하며,
상기 프로세서가 상기 블록을 생성할 합의 노드를 지목하는 프로세스는,
상기 합의 노드들의 성능 자료를 획득하고.
각각의 합의 노드의 성능 자료를 기초로, 각각의 합의 노드의 네트워크 평판을 생성하고,
상기 각각의 합의 노드의 네트워크 평판을 기초로, 각각의 합의 노드가 블록을 생성할 노드로 지목될 확률을 생성하고,
상기 확률들을 기초로, 블록을 생성할 합의 노드를 지목하는 프로세스
를 포함하는,
네트워크 평판 증명을 합의 알고리즘으로 사용하는 블록체인 스마트 계약 장치.
Obtain the details of the smart contract from the smart contract node (Smart Contract Node) received the details of the smart contract from the client (Client), the subject of the smart contract,
When the sequence number granted by the index server arrives, the consensus node that is to create a block including the details of the smart contract among consensus nodes connected to a P2P-sub network is indicated. and,
Send the details of the smart contract to the specified consensus node,
Obtaining a block containing the details of the smart contract from the indicated consensus node,
Transmit the block to at least one of the smart contract node, network nodes assigned a number from the index server, and consensus nodes connected to the P2P subnetwork;
Processor to include the block in the blockchain
Including;
The process for the processor to point to a consensus node to generate the block includes:
Obtaining performance data of the consensus nodes;
Based on the performance data of each consensus node, generate a network reputation of each consensus node,
Based on the network reputation of each consensus node, generating a probability that each consensus node will be identified as a node to generate a block,
A process of pointing to a consensus node to generate a block based on the probabilities
Including,
Blockchain smart contract device that uses proof of network reputation as a consensus algorithm.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190057467A KR102060435B1 (en) | 2019-05-16 | 2019-05-16 | Method and apparatus of blockchain smart contract using proof-of-repuation-of-network as consensus algorithm |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190057467A KR102060435B1 (en) | 2019-05-16 | 2019-05-16 | Method and apparatus of blockchain smart contract using proof-of-repuation-of-network as consensus algorithm |
Publications (1)
Publication Number | Publication Date |
---|---|
KR102060435B1 true KR102060435B1 (en) | 2019-12-30 |
Family
ID=69103380
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020190057467A KR102060435B1 (en) | 2019-05-16 | 2019-05-16 | Method and apparatus of blockchain smart contract using proof-of-repuation-of-network as consensus algorithm |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102060435B1 (en) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112083950A (en) * | 2020-09-14 | 2020-12-15 | 电子科技大学 | Block chain consensus node to-be-packaged data selection method based on branch and bound method |
CN113486118A (en) * | 2021-07-21 | 2021-10-08 | 银清科技有限公司 | Consensus node selection method and device |
WO2022116900A1 (en) * | 2020-12-02 | 2022-06-09 | 王志诚 | Method and apparatus for blockchain consensus |
CN114757674A (en) * | 2022-06-15 | 2022-07-15 | 中科链安(北京)科技有限公司 | Consensus method, system and storage medium for rewarding and punishing ability based on intelligent contract |
CN117294720A (en) * | 2023-11-27 | 2023-12-26 | 江西农业大学 | Block chain consensus method, device, storage medium and equipment |
-
2019
- 2019-05-16 KR KR1020190057467A patent/KR102060435B1/en active IP Right Grant
Non-Patent Citations (2)
Title |
---|
HONGFANG LU et al., "Blockchain Technology in the Oil and Gas Industry: A Review of Applications, Opportunities, Challenges, and Risks", IEEE Access (2019.04.11.) |
Sujata Tamang, "Decentralized Reputation Model and Trust Framework", UPPSALA UNIVERSITET (2018.12.) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112083950A (en) * | 2020-09-14 | 2020-12-15 | 电子科技大学 | Block chain consensus node to-be-packaged data selection method based on branch and bound method |
CN112083950B (en) * | 2020-09-14 | 2022-02-11 | 电子科技大学 | Block chain consensus node to-be-packaged data selection method based on branch and bound method |
WO2022116900A1 (en) * | 2020-12-02 | 2022-06-09 | 王志诚 | Method and apparatus for blockchain consensus |
CN113486118A (en) * | 2021-07-21 | 2021-10-08 | 银清科技有限公司 | Consensus node selection method and device |
CN113486118B (en) * | 2021-07-21 | 2023-09-22 | 银清科技有限公司 | Consensus node selection method and device |
CN114757674A (en) * | 2022-06-15 | 2022-07-15 | 中科链安(北京)科技有限公司 | Consensus method, system and storage medium for rewarding and punishing ability based on intelligent contract |
CN117294720A (en) * | 2023-11-27 | 2023-12-26 | 江西农业大学 | Block chain consensus method, device, storage medium and equipment |
CN117294720B (en) * | 2023-11-27 | 2024-02-20 | 江西农业大学 | Block chain consensus method, device, storage medium and equipment |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102060435B1 (en) | Method and apparatus of blockchain smart contract using proof-of-repuation-of-network as consensus algorithm | |
Vatankhah Barenji et al. | Blockchain-based ubiquitous manufacturing: A secure and reliable cyber-physical system | |
JP7278453B2 (en) | Method, storage medium, electronic device, transaction verification node, super node and blockchain network for managing transactions in blockchain network | |
US10938567B2 (en) | Parallel-chain architecture for blockchain systems | |
CN111414210B (en) | Method, apparatus and computer readable storage medium for generating side chains based on main chains | |
US11789767B2 (en) | Cooperative cloud infrastructure using blockchains for hardware ownership and access | |
JP6983890B2 (en) | Computer-enhanced systems and methods for enabling complex functions on the blockchain while maintaining security-based limits on script size and opcode limits. | |
US11750679B1 (en) | Systems and methods for it management of distributed computing resources on a peer-to-peer network | |
JP7393426B2 (en) | An intelligent, autonomous, decentralized marketplace for distributed computing and storage | |
CN103916455A (en) | Method And System For Data Replication | |
CN108347483B (en) | Decentralized computing system based on double-layer network | |
CN103814358A (en) | Virtual machine placement within server farm | |
CN109711840B (en) | Transaction data processing method and device and storage medium | |
KR20200096045A (en) | Blockchin generation apparatus, method for sharding blockchain thereof, and system the same | |
Nguyen et al. | A blockchain-based iterative double auction protocol using multiparty state channels | |
US20150195140A1 (en) | Apparatus and method for sharing data by using topology | |
CN113689270A (en) | Method for determining black product device, electronic device, storage medium, and program product | |
Du et al. | A Novel Oracle-aided Industrial IoT Blockchain: Architecture, Challenges, and Potential Solutions | |
Nguyen et al. | Trustless framework for iterative double auction based on blockchain | |
CN108768767B (en) | Method and device for determining bandwidth capacity | |
TW201546626A (en) | Resource restriction | |
KR20210066348A (en) | A terminal device and a method for consturcting secure block chain based on neural block clusters | |
US20230100485A1 (en) | Neural consensus-based blockchain network system for performing random consensus proof using non-random consensus proof-based blockchain network | |
KR20190105734A (en) | Mining node and method for mining | |
KR20230071790A (en) | A Neural consensus-based blockchain network system that performs random consensus proof using non-random consensus proof-based blockchain network |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |