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 PDF

Info

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
Application number
KR1020190057467A
Other languages
Korean (ko)
Inventor
정경채
김성기
류준선
양종만
정병두
이정민
Original Assignee
주식회사 모파스
김성기
정경채
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 모파스, 김성기, 정경채 filed Critical 주식회사 모파스
Priority to KR1020190057467A priority Critical patent/KR102060435B1/en
Application granted granted Critical
Publication of KR102060435B1 publication Critical patent/KR102060435B1/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/1044Group management mechanisms 
    • H04L67/1053Group management mechanisms  with pre-configuration of logical or physical connections with a determined number of other peers
    • H04L67/1057Group 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
    • 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/1087Peer-to-peer [P2P] networks using cross-functional networking aspects
    • H04L67/1093Some peer nodes performing special functions

Abstract

Disclosed are a method of a blockchain-based smart contract using Proof-of-Reputation-of-Network as a consensus algorithm, and an apparatus thereof. According to one embodiment of the present invention, the method comprises the steps of: acquiring details of a smart contract from a smart contract node which has received the details of a smart contract from a client which is a subject of the smart contract; choosing, when a sequence number granted from an index server comes round, a consensus node for generating a block including the details of a smart contract among consensus nodes connected to a P2P-sub network; transmitting the details of a smart contract to the chosen consensus node; obtaining, from the chosen consensus node, the block including the details of a smart contract; transmitting the block to at least one of the smart contract node, network nodes which have received the sequence number from the index server, and the consensus nodes connected to the P2P-sub network; and including the block in a blockchain.

Description

네트워크 평판 증명을 합의 알고리즘으로 사용하는 블록체인 스마트 계약 방법 및 장치 {METHOD AND APPARATUS OF BLOCKCHAIN SMART CONTRACT USING PROOF-OF-REPUATION-OF-NETWORK AS CONSENSUS ALGORITHM}METHOD AND APPARATUS OF BLOCKCHAIN SMART CONTRACT USING PROOF-OF-REPUATION-OF-NETWORK AS CONSENSUS ALGORITHM}

아래 실시예들은 블록체인을 기반으로 한 스마트 계약 기술에 관한 것이다.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 index server 100; Network nodes (Network Nodes 110, 120, 130, 140); Smart contract nodes 115, 125, 135, and 145; Consensus nodes 111-113, 121-123, 131-133, 141-143; And clients 146 and 147. These are a combination of hardware and software, which may be a group or a group of devices capable of all kinds of wired and wireless communication such as a dedicated server, a general purpose server, a desktop PC, a laptop PC, a Mac, a smartphone, a smart pad, a tablet PC, and the like.

도 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 index server 100 is shown in polka dots; Network nodes 110, 120, 130, 140 are shown in checkered; Smart contract nodes 115, 125, 135, and 145 are shown in horizontal stripes; Consensus nodes 111-113, 121-123, 131-133, 141-143 are shown in vertical pattern; Clients 146 and 147 are shown in a zigzag pattern.

또한, 블록체인 스마트 계약 시스템은 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 P2P network 109 and P2P sub-networks 119, 129, 139, 149. The P2P network 109 and the P2P subnetworks 119, 129, 139, and 149 are distributed connection structures that allow information exchange between nodes, and include 3G, LTE, 5G, Bluetooth communication, NFC network, and the Internet. , A dedicated line, a LAN, an intranet, or the like, may operate by at least one communication method, and a communication protocol such as TCP or UDP may be used.

도 1 및 3에서, P2P 네트워크(P2P Network, 109)는 실선으로 도시되고 P2P 서브 네트워크들(P2P Sub Network, 119, 129, 139, 149)은 파선으로 도시된다.1 and 3, the P2P Network 109 is shown in solid lines and the P2P Sub Networks 119, 129, 139, 149 are shown in broken lines.

인덱스 서버(100)는 적어도 하나 이상의 네트워크 노드(110, 120, 130, 140)를 포함하는 그룹을 관리할 수 있다. 인덱스 서버(100)는 검증 절차를 거쳐 그룹에 포함된 네트워크 노드(110, 120, 130, 140)들을 P2P 네트워크(109)에 참여시킬 수 있고, 네트워크 노드들(110, 120, 130, 140)에게 스마트 계약의 내역을 포함하는 블록을 생성할 합의 노드를 지목하는 순번을 부여할 수 있다.The index server 100 may manage a group including at least one network node 110, 120, 130, 140. The index server 100 may join the network nodes 110, 120, 130, and 140 included in the group to the P2P network 109 through a verification procedure, and give the network nodes 110, 120, 130, and 140 to the network nodes 110, 120, 130, and 140. It may be assigned a sequence number that points to a consensus node to generate a block containing the details of the smart contract.

각각의 네트워크 노드(110, 120, 130, 140)는 적어도 하나 이상의 합의 노드(111-113, 121-123, 131-133, 141-143)를 포함하는 서브 그룹을 관리할 수 있고, 자신이 관리하는 서브 그룹에 속하는 합의 노드들의 네트워크 평판(Reputation of Network)을 생성, 저장, 및 갱신할 수 있다. 각각의 네트워크 노드(110, 120, 130, 140)는 자신의 순번이 도래하면, 블록을 생성할 합의 노드를 지목할 수 있다.Each network node 110, 120, 130, 140 may manage a subgroup comprising at least one consensus node 111-113, 121-123, 131-133, 141-143, and manages itself. A network reputation (Reputation of Network) of consensus nodes belonging to a subgroup may be generated, stored, and updated. Each network node 110, 120, 130, 140 may point to a consensus node to generate a block when its turn arrives.

합의 노드는 네트워크 노드의 지목에 따라 스마트 계약의 내역을 포함하는 블록을 생성할 수 있다. 서브 그룹 내의 합의 노드들은 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, consensus node A1 111 included in a subgroup managed by network node A 110 and network node A 110; Consensus node A2 112; Consensus node A3 113 may be connected to each other to P2P sub-network A 119. Consensus node B1 121 included in a network node B 120 and a subgroup managed by network node B 120; Consensus node B2 122; Consensus node B3 123 may be connected to each other to the P2P sub-network B (129). Consensus node C1 131 included in network node C 130 and subgroups managed by network node C 130; Consensus node C2 132; Consensus node C3 133 may be connected to each other through a P2P sub-network C (139). Consensus node D1 141 included in network node D 140 and subgroups managed by network node D 140; Consensus node D2 142; Consensus node D3 143 may be connected to each other to P2P subnetwork D 149.

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 P2P sub network 119 may be as follows, but is not limited thereto. First, network node 110 may open a TCP-server for a P2P subnetwork. The consensus nodes 111, 112, 113 can then connect to the network node 110 with a TCP-client. In this case, communication may be performed between the P2P network 109 and the P2P subnetwork 119 in a TCP manner. In addition, multicast may be used between the P2P network 109 and the P2P subnetwork 119. The process of forming other P2P sub-networks 129, 139, and 149 may be the same.

스마트 계약 노드(115, 125, 135, 145)는 스마트 계약의 주체인 클라이언트들(146, 147)을 P2P 네트워크(109) 및 P2P 서브 네트워크들(119, 129, 139, 149)과 연결시켜 주는 역할을 수행한다. 스마트 계약 노드(115, 125, 135, 145)는 클라이언트(146, 147)로부터 스마트 계약의 모든 세부 사항을 전송 받아 저장할 수 있다.The smart contract node 115, 125, 135, 145 connects the clients 146, 147, which are the subjects of the smart contract, with the P2P network 109 and the P2P subnetworks 119, 129, 139, 149. Do this. The smart contract nodes 115, 125, 135, and 145 may receive and store all details of the smart contract from the clients 146 and 147.

각각의 스마트 계약 노드(115, 125, 135, 145)는 리전(region)이라고 부르는 특정한 구역 단위를 담당할 수 있다. 리전은 법률, 세율, 관세, 규칙, 조례, 특례 등이 구분되는 지역 단위 또는 국가 단위일 수 있다. 리전 내에서 이루어지는 스마트 계약은 해당 리전을 담당하는 스마트 계약 노드에게 전송될 수 있다. 이를 통해, 가령, 한국의 법에 따라 부동산 매매 계약을 체결하려는 클라이언트 X(146)와 클라이언트 Y(147)가 일본의 스마트 계약 노드(135)에게 스마트 계약의 모든 세부 사항을 전달하는 일은 없도록 할 수 있다. 리전을 담당하는 스마트 계약 노드들(115, 125, 135, 145)은 리전 내에서 일어나는 스마트 계약들의 모든 세부 사항을 열람하는 데이터베이스로서 기능할 수 있다.Each smart contract node 115, 125, 135, 145 may be responsible for a particular zonal unit called a region. Regions can be regional or national, where laws, tax rates, tariffs, rules, bylaws, exceptions, etc. are separated. Smart contracts made within a region can be sent to the smart contract node in charge of the region. This ensures, for example, that client X (146) and client Y (147) wishing to enter into a real estate sales contract in accordance with Korean law do not communicate all the details of the smart contract to the smart contract node 135 in Japan. have. The smart contract nodes 115, 125, 135, and 145 in charge of the region may function as a database to view all the details of the smart contracts occurring within the region.

스마트 계약 노드(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 서브 네트워크에서 모두 블록화 될 수 있다.Smart contract nodes 115, 125, 135, and 145 may be connected with network nodes and consensus nodes via P2P subnetworks 119, 129, 139, 149. For example, smart contract node A 115 may include P2P subnetwork A 119; The smart contract node B 125 may include a P2P sub-network B 129; Smart contract node C 135 includes P2P sub-network C 139; The smart contract node D 145 may be connected with the P2P subnetwork D 149. Through this, the details of the smart contract created in the region may be blocked in the P2P subnetwork of the region instead of the P2P subnetwork of the other region.

클라이언트(147, 148)는 스마트 계약의 주체로, 스마트 계약을 체결한 후 리전을 담당하는 스마트 계약 노드(145)에게 스마트 계약의 모든 세부 사항을 전달할 수 있다. 클라이언트(147, 149)들은 DApp일 수도 있고 Personal일 수도 있다. 한편, 블록체인 스마트 계약 시스템은 부동산 등기소, 차량 등록 사업소, 은행, 가상화폐 거래소 등과 연동되어 있을 수 있다. 이를 통해, 클라이언트 간의 스마트 계약이 체결될 경우, 금전 또는 가상화폐의 이체가 전자적으로 즉시 이루어질 수 있으며, 재산권의 등기 또는 등록 역시 전자적으로 즉시 이루어질 수 있다.Clients 147 and 148 are subjects of the smart contract, and after entering into the smart contract, may transmit all the details of the smart contract to the smart contract node 145 in charge of the region. Clients 147 and 149 may be DApps or Personals. Meanwhile, the blockchain smart contract system may be linked with a real estate registry office, a vehicle registration office, a bank, a virtual currency exchange, and the like. Through this, when a smart contract between clients is concluded, the transfer of money or virtual currency can be made electronically immediately, and the registration or registration of property rights can also be made electronically immediately.

이상을 정리하면, 클라이언트들(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 clients 146 and 147 may conclude, for example, a smart contract in which the client X 146 buys and sells the real estate R owned by the client Y 147. The emergence of rights and obligations resulting from the conclusion of smart contracts can take place immediately. After the smart contract is concluded between the clients 146, 147, all details of the smart contract can be communicated to the smart contract node D 145. The smart contract node D 145 may transmit the details of the smart contract corresponding to all or part of all the details of the smart contract to the network node D 140. The network node D 140 generates a consensus node that will generate a block including the details of the smart contract among consensus nodes 141, 142, and 143 connected to the P2P sub-network D 149 when its turn arrives. can do. The indicated consensus node, such as consensus node D1 141, may generate a block containing the details of the smart contract and forward it to network node D 140. Network node D 140 is smart contract node D 145, other network nodes 110, 120, 130 connected to P2P network 109, and other consensus nodes 142 connected to P2P subnetwork D 149. , Block 143). Each node can then include the block in the blockchain.

이하, 도 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 index server 100 may join the network nodes 110, 120, 130, and 140 to the P2P network 109, and assign the order to the network nodes 110, 120, 130, and 140 ( 210).

네트워크 노드들(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 network nodes 110, 120, 130, 140 form a P2P network 109 between each other in the blockchain smart contract system; Manage consensus nodes 111-113, 121-123, 131-133, 141-143; By connecting to the smart contract node 115, 125, 135, 145 plays a pivotal role to connect the clients 146, 147 with the blockchain smart contract system. In order to perform these tasks, the performance of network nodes 110, 120, 130, 140 should generally be good.

따라서, 인덱스 서버(100)는 자신이 관리하는 그룹의 네트워크 노드들(110, 120, 130, 140)이 P2P 네트워크(109)에 참여하기 적합한지 검증할 수 있다. 검증 방법으로는, 네트워크 노드(110, 120, 130, 140)의 네트워크 평판(Reputation of Network)이 임계 값 이상인지를 판별하는 방식 등으로 이루어질 수 있다.Accordingly, the index server 100 may verify whether the network nodes 110, 120, 130, and 140 of the group managed by the index server are suitable to participate in the P2P network 109. The verification method may include a method of determining whether a network reputation of the network nodes 110, 120, 130, and 140 is greater than or equal to a threshold value.

여기서, 네트워크 평판은 수치로 표현될 수 있으며, 네트워크 노드의 성능 자료를 기초로 계산될 수 있다. 성능 자료는 네트워크 연결 환경, 하드웨어 사양, 가관측성, 가제어성 등을 포함할 수 있다. 한편, 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 consensus node 111 pointed at by a particular network node 110 has generated an invalid block in which the details of the smart contract have been manipulated, the network reputation of the network node 110 may be penalized. When the network reputation of the network node 110 is lowered below the threshold by the deduction point, the network node 110 may be disconnected from the P2P network 109. When the network node is blocked from the P2P network 109 by the deduction of network reputation, the index server 100 may control that the network node cannot participate in the P2P network 109 again for a certain period of time.

인덱스 서버(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 index server 100 may obtain IP addresses of the verified network nodes 110, 120, 130, and 140, and the verified network nodes 110, 120, 130, and 140 may perform the P2P network 109. Can be connected to each other. For example, in a situation where the network nodes A, B, and C 110, 120, and 130 participate in the P2P network 109 in advance, the network node D 140 completes the verification and newly joins the P2P network 109. If desired, the network node 140 may open a TCP-server for a P2P network. The index server 100 may transfer the IP address of the network node D 140 to be newly joined to the network nodes A, B, and C (110, 120, 130) already participating in the P2P network 109. The network nodes A, B, and C (110, 120, 130) that have received the information about the network node D 140 connect to the TCP-server opened by the network node D 140 to be newly joined as a TCP-client. The network nodes 110, 120, 130, 140 may be connected to each other via a P2P network 109.

다음으로, 인덱스 서버(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 index server 100 may give the network nodes 110, 120, 130, and 140 a sequence number for identifying a consensus node for generating a block. In detail, the index server 100 may give each network node 110, 120, 130, 140 a cyclic order according to a round robin list. At this time, the network node A 110 located at the physical location nearest to the physical location where the index server 100 is located may receive the first order of the round robin list. Next, the network node B 120 located at the physical location nearest to the physical location where the network node A 110 is located may receive the second turn of the round robin list. In this manner, the network node C 130 may be set to 3 times and the network node D 140 may be set to 4 times. By ordering the nodes in this manner, the distance of the communication line between the nodes and the distance of the communication line between the node and the index server 100 can be minimized, so that efficient and faster communication can be achieved between each other.

네트워크 노드들의 순번이 정해진 후, 네트워크 노드들은 순번에 따라 자신이 연결된 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 P2P network 109.

예컨대, 순번 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, network node A 110, which is sequence number 1, may designate a consensus node to generate a block in P2P subnetwork A 119, and a specific consensus node 111 connected to P2P sub network A 119 may select a block. After generating and notifying the network node A 110, the network node A 110 may notify other network nodes 120, 130, and 140 of the P2P network 109 that the block has been created. Next, the network node B 120, which is sequence 2, may perform the same process, and then, the network node C 130, which is sequence 3, may perform the same process, and in the following order. In step 4, the network node D 140 may perform the same process. Then, according to the circularity of the round robin list, network node B 120, which is sequence number 1 again, may perform the same process, and this cycle may be repeated.

네트워크 노드가 합의 노드를 지목하는 과정은 합의 노드의 네트워크 평판을 기초로 생성한 확률에 의해 이루어질 수 있다. 또한, 네트워크 노드들은 블록이 생성됐음을 알림 받은 후, 블록체인에 블록을 포함시킬 수 있으며, 자신이 연결된 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 network nodes 110, 120, 130, and 140 participating in the P2P network 109 blocks blocks in the P2P subnetworks 119, 129, 139, and 149 to which the index server 100 is connected. Consensus nodes (111-113, 121-123, 131-133, 141-143) to be created can be indicated. Hereinafter, the order in which the network nodes 110, 120, 130, and 140 have a periodicity that designates a consensus node to generate a block is called a tier. The blockchain system can have a plurality of tiers. For example, as shown in FIG. 3, there may be Tier 1 310 and Tier 2 320. In FIG. 3, Tier 1 310 is shown by dashed line and Tier 2 320 is shown by dashed line.

티어 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)부터 블록을 생성할 합의 노드를 지목하는 주기성을 가지는 순서일 수 있다. Tier 1 310 is a network node 110, 120, 130, according to the order that the index server 100 is assigned to each network node (110, 120, 130, 140) based on a round robin list (Round Robin List) 140 may be an order to indicate a consensus node to generate a block. At this time, the network node A 110 located at the physical location nearest to the physical location where the index server 100 is located may receive the first order of the round robin list. Next, the network node B 120 located at the physical location nearest to the physical location where the network node A 110 is located may receive the second turn of the round robin list. In this manner, the network node C 130 may be set to 3 times and the network node D 140 may be set to 4 times. In this case, Tier 1 310 points to a consensus node where Network Node A 110, Network Node B 120, Network Node C 130, and Network Node D 140 will sequentially generate blocks. Again, the network node A 110 may have a periodicity that indicates a consensus node for generating a block.

티어 2(320)는 선택적으로 운용되는 티어일 수 있다. 티어 2(320)는 티어 1(310)의 라운드 로빈 리스트에 포함되는 네트워크 노드의 수가 증가하여, 특정 네트워크 노드가 자신이 연결된 P2P 서브 네트워크에서 합의 노드를 다시 지목할 때까지 걸리는 시간이 특정 시간, 예를 들어 1초를 초과할 경우 운용할 수 있다. 예를 들어, 티어 2(320)는 네트워크 노드 C(130), 네트워크 노드 B(120), 네트워크 노드 A(110), 네트워크 노드 D(140)가 순서대로 블록을 생성할 합의 노드를 지목한 후, 다시 네트워크 노드 C(130)부터 블록을 생성할 합의 노드를 지목하는 주기성을 가지는 순서일 수 있다.Tier 2 320 may be an optionally operated tier. Tier 2 320 increases the number of network nodes included in the round robin list of Tier 1 310, such that the time it takes for a particular network node to re-point the consensus node in the P2P subnetwork to which it is connected is a specific time, For example, it can be operated when it exceeds 1 second. For example, Tier 2 320 may point to a consensus node where Network Node C 130, Network Node B 120, Network Node A 110, and Network Node D 140 will sequentially generate blocks. In addition, the network node C 130 may be in order of having a periodicity for identifying a consensus node for generating a block.

이처럼 복수의 티어를 운영함으로써, 블록체인 스마트 계약 시스템은 P2P 네트워크(109)에 참여하는 네트워크 노드의 수가 증가할 경우, 단위 시간 동안 보다 많은 스마트 계약을 블록화하여 블록체인에 포함시킬 수 있다.By operating a plurality of tiers as described above, when the number of network nodes participating in the P2P network 109 increases, the blockchain smart contract system may block more smart contracts and include them in the blockchain during a unit time.

이하에서는 도 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 tier 1 310 in an order having periodicity. Each network node 110, 120, 130, 140 points to a consensus node that will generate a block within the connected P2P subnetwork 119, 129, 139, 149 when the order according to tier 1 310 arrives. can do. The process of pointing to a consensus node may be made based on the network reputation of each consensus node, which will be described later with reference to FIGS. 6 to 8.

이후, 지목된 합의 노드는 스마트 계약의 내역을 포함하는 블록을 생성할 수 있다. 지목된 합의 노드가 스마트 계약의 내역이 조작되지 않은 유효한 블록을 생성할 경우, 금전 또는 가상화폐 등의 보상이 지급될 수 있다. 지목된 합의 노드는 자신이 연결된 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 tier 1 310, network node A 110 first establishes consensus node A1 111, consensus node A2 112, and consensus node A3 113 connected to P2P subnetwork A 119. You can specify the consensus node in which to create the block. For example, network node A 110 may point to consensus node A1 111.

이후, 합의 노드 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 consensus node A1 111 may generate a block containing the contents of the smart contract. The consensus node A1 111 may inform the network node A 110 connected to the P2P sub-network A 119 of generating the block and transmit the generated block together. Network node A 110 may include smart contract node A 115; Network nodes B, C, and D (120, 130, 140); And the consensus nodes A2 and A3 (112, 113) can be informed that the block is generated, and can also transmit the block generated in the process.

다음으로, 티어 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 network node B 120, which is the next order, according to the tier 1 310. That is, the network node B 120 may designate an agreement node to generate a block among the agreement node B1 121, the agreement node B2 122, and the agreement node B3 123 connected to the P2P subnetwork B 129. have. For example, network node B 120 may point to consensus node B1 121.

이후, 합의 노드 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 consensus node B1 121 may generate a block including the contents of the smart contract. The consensus node B1 121 may inform the network node B 120 connected to the P2P sub-network B 129 of generating a block and transmit the generated block together. Network node B 120 may include smart contract node B 125; Network nodes A, C, D (110, 130, 140); And the consensus nodes B2 and B3 122 and 123 may be notified that the block is generated, and the generated block may be transmitted together in this process.

다음으로, 다음 순번인 네트워크 노드 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 network node C 130, and a process corresponding to the above process may be performed centering on the next turn network node D 140. Afterwards, a cycle in which a process corresponding to the above process is performed may be started again based on the network node A 130. On the other hand, when the number of network nodes increases, so that the time it takes for the network node A 110 to re-point the consensus node exceeds a certain time, for example, 1 second, block generation according to the tier 2 320 is also performed. Can be operated together.

도 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 client X 146 buys and sells property R owned by client Y 147.

이 경우, 우선, 네트워크 노드(140)는 합의 노드들(141, 142)의 네트워크 평판을 생성할 수 있다(410). 네트워크 노드(140)는 자체적으로 또는 인덱스 서버(100)와 연동하여, 합의 노드들(141, 142)의 네트워크 평판을 생성, 저장, 및 갱신할 수 있다. 네트워크 평판을 생성하는 구체적인 과정은 도 8을 참고하여 후술된다.In this case, first, network node 140 may generate a network reputation of consensus nodes 141, 142 (410). The network node 140 may generate, store, and update the network reputation of the consensus nodes 141, 142 on its own or in conjunction with the index server 100. A detailed process of generating a network reputation will be described later with reference to FIG. 8.

다음으로, 제 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 client X 146 sells real estate R owned by client Y 147; Client Y 147 may send all details of the smart contract to smart contract node D 145; The smart contract node D 145 may transmit the details of the smart contract corresponding to all or part of all the details of the smart contract to the network node D 140.

네트워크 노드 D(140)는 합의 노드 D1(141)의 네트워크 평판과 합의 노드 D2(142)의 네트워크 평판을 기초로 각각의 합의 노드가 블록을 생성할 합의 노드를 지목될 확률을 생성한 후, 확률에 기초하여 블록을 생성할 합의 노드를 선택할 수 있다. 네트워크 노드 D(140)는 지목된 합의 노드로 스마트 계약의 내역을 전송할 수 있다.Network node D 140 generates a probability that each consensus node will point to a consensus node to generate a block based on the network reputation of consensus node D1 141 and the network reputation of consensus node D2 142, and then the probability Can select a consensus node to generate a block based on. Network node D 140 may send the details of the smart contract to the indicated consensus node.

예를 들어, 합의 노드 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 consensus node D1 141 is 600 and the network reputation of consensus node D2 142 is 400, then the probability that consensus node D1 141 is designated as the consensus node to generate a block is 60%. And the probability that consensus node D2 142 will be identified as the consensus node to generate the block may be set to 40%. The network node D 140 may designate the consensus node D1 141 as the consensus node to generate a block based on the probability, and transmit the details of the smart contract to the consensus node D1 141.

여기서, 스마트 계약의 내역은 클라이언트들(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 clients 146 and 147, or may be the core contents of the smart contract. For example, if a smart contract is concluded in which client X 146 buys and sells property R owned by client Y 147, the details of the smart contract include at least “Ow. Payments and registrations, which are the core subjects of the smart contract, such as "the payment was made." And "The transfer of ownership of property R from client Y (147) to client X (146) was made on the same date." have.

다음으로, 블록체인 시스템의 노드들은 제 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 agreement node D1 141 that has received the details of the first smart contract may generate a block including the details of the smart contract. The block includes bibliographic information on the block creation (block creation date, node that created the block, etc.); Breakdown of smart contracts; The hash key used to validate the block can be included. 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.

합의 노드 D1(141)은 P2P 서브 네트워크 D(149)에 연결된 네트워크 노드 D(140)로 블록의 생성을 알릴 수 있으며, 생성된 블록을 함께 전송할 수 있다. 네트워크 노드 D(140)는 스마트 계약 노드 D(145) 및 합의 노드 D2(142)에게 블록이 생성됐음을 알릴 수 있으며, 이 과정에서 생성된 블록을 함께 전송할 수 있다. 스마트 계약 노드 D(145); 네트워크 노드 D(140); 합의 노드 D1(141); 및 합의 노드 D2(142)는 블록을 블록체인에 포함시킬 수 있다.The consensus node D1 141 may inform the network node D 140 connected to the P2P subnetwork D 149 of the block generation, and transmit the generated block together. The network node D 140 may inform the smart contract node D 145 and the consensus node D2 142 that the block has been generated, and may transmit the generated block together. Smart contract node D 145; Network node D 140; Consensus node D1 141; And consensus node D2 142 may include the block in the blockchain.

이때, 각각의 노드가 블록을 블록체인에 포함시키는 형태는 서로 다를 수 있다. 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 contract node D 145 includes in the blockchain a block that contains all the details of the smart contract between client X 146 and client X 146 in the block generated by consensus node D1 141. You can.

한편, 블록에 기본으로 포함된 블록 생성에 관한 서지사항(블록 생성 날짜, 블록을 생성한 노드 등); 스마트 계약의 내역; 블록의 유효성 검사 시 사용되는 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, network node D 140 and consensus node D1 141 may include a medium block in the blockchain.

또한, 블록을 생성한 합의 노드와 동일한 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 consensus node D2 142 may include a block except for the details of the smart contract in the block generated by the consensus node D1 141 in the blockchain. Meanwhile, consensus nodes connected to the P2P subnetwork different from the consensus node that generated the block may not include the block in the blockchain.

이와 같이 블록체인 스마트 계약 시스템은 노드 역할별로 서로 다른 블록을 블록체인에 포함시키도록 구성됨으로써, 노드 간 역할 분담이 이루어질 수 있다. 우선, 법률 등이 구분되는 지역이나 국가를 담당하는 스마트 계약 노드는 특정 지역이나 국가의 스마트 계약에 대한 모든 정보를 수집할 수 있게 된다. 저장 능력이 우수한 네트워크 노드는 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 P2P network 109. Consensus nodes with good computing power generate blocks, but do not store large amounts of data in the blockchain, allowing hardware and software performance to be concentrated on computing power.

다음으로, 제 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 network node D 140 may acquire the details of the second smart contract through the same process as the process 421. Then, if the network reputation of consensus node D1 141 is 600 and the network reputation of consensus node D2 142 is 400, the probability that consensus node D1 141 will be designated as the consensus node to generate a block will be set to 60%. And the probability that the consensus node D2 142 will be identified as the consensus node to generate the block may be set to 40%. Network node D 140 may point consensus node D2 142 as a consensus node to generate a block based on the probability, and send details of the smart contract to consensus node D2 142.

다음으로, 블록체인 시스템의 노드들은 제 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 consensus node D2 142 may inform the network node D 140 connected to the P2P sub-network D 149 of generating the block, and transmit the generated block together. The network node D 140 may inform the smart contract node D 145 and the consensus node D1 141 that the block has been generated, and transmit the generated block together. Smart contract node D 145 is in the form of a full block; Network node D 140 and consensus node D2 142 are in the form of medium blocks; The consensus node D1 141 may include the block in the blockchain in the form of a write block.

도 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 consensus node A1 111 may transmit its performance data to the network node A 110 connected to itself and the P2P subnetwork A 119, and the network node A 110 may agree to the consensus node A1 111. Create a network reputation. Consensus Node B1 121 may transmit its performance data to Network Node B 120 connected to itself and to P2P Sub-Network B 129, and Network Node B 120 may have network reputation of Consensus Node B1 121. Can be generated. A detailed process of generating a network reputation based on the performance data will be described later with reference to FIG. 8.

다음으로, 블록체인 시스템의 노드들은 합의 노드 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 consensus node A1 111 in the blockchain (511). First, the network node A 110 points to the consensus node A1 111 as the consensus node to generate a block when the turn according to the tier 1 310 arrives, and the smart contract to the consensus node A1 111. The details of the smart contract obtained from the node A 115 may be transmitted. If the network node A 110 does not have the details of the acquired smart contract, it passes the selection of the consensus node to generate the block and waits until the turn according to tier 1 310 comes back.

지목된 합의 노드 A1(111)은 블록 생성에 관한 서지사항(블록 생성 날짜, 블록을 생성한 노드 등); 스마트 계약의 내역; 블록의 유효성 검사 시 사용되는 hash key 등에 관한 정보를 포함하는 블록을 생성한 후, 네트워크 노드 A(110)에게 블록 생성을 알린다. 이 때, 합의 노드 A1(111)에 의해 생성된 블록이 네트워크 노드 A(110)로 전송될 수 있다.The indicated consensus node A1 111 may include bibliographic information on block generation (block creation date, node which generated the block, etc.); Breakdown of smart contracts; After generating a block including information about a hash key and the like used for validating the block, the network node A 110 is notified of the block generation. At this time, a block generated by the consensus node A1 111 may be transmitted to the network node A 110.

이어서, 네트워크 노드 A(110)는 P2P 네트워크(109)에 연결된 네트워크 노드 B(120)에게 블록 생성을 알리고, 네트워크 노드 B(120)은 자신과 P2P 서브 네트워크 B(129)로 연결된 합의 노드 B1(121)에게 블록 생성을 알린다. 이 과정에서, 네트워크 노드 A(110)에 의해 생성된 블록이 각 노드에게 전송될 수 있다.Network node A 110 then informs network node B 120 connected to the P2P network 109 of block generation, and network node B 120 connects itself with consensus node B1 (connected to P2P sub-network B 129). 121) tell block creation. In this process, a block generated by network node A 110 may be transmitted to each node.

블록을 전송 받은 노드들은 블록을 블록체인에 포함시킬 수 있다. 네트워크 노드 A(110) 및 네트워크 노드 B(120)은 미디엄 블록의 형태로 블록을 블록체인에 포함시킬 수 있다. 블록을 생성한 합의 노드 A1(111) 역시 미디엄 블록의 형태로 블록을 블록체인에 포함시킬 수 있다. 합의 노드 A1(111)과 다른 P2P 서브 네트워크에 연결된 합의 노드 B1(121)은 블록을 블록체인을 포함시키지 않을 수 있다. Nodes that receive the block can include the block in the blockchain. The network node A 110 and the network node B 120 may include the block in the block chain in the form of a medium block. The consensus node A1 111 that generated the block may also include the block in the blockchain in the form of a medium block. Consensus node B1 121 connected to another P2P subnetwork with consensus node A1 111 may not include the block in the blockchain.

다음으로, 블록체인 시스템의 노드들은 네트워크 노드 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 consensus node B1 121 indicated by the network node B 120 in the blockchain (521). First, network node B 120 points to consensus node B1 121 as a consensus node to generate a block when it arrives in turn after network node A 110 according to tier 1 310. The node B1 121 may transmit the details of the smart contract obtained from the smart contract node B 125. If the network node B 120 does not have the details of the acquired smart contract, it passes the selection of the consensus node to generate the block and waits until the turn according to tier 1 310 comes back.

지목된 합의 노드 B1(121)은 블록 생성에 관한 서지사항(블록 생성 날짜, 블록을 생성한 노드 등); 스마트 계약의 내역; 블록의 유효성 검사 시 사용되는 hash key 등에 관한 정보를 포함하는 블록을 생성한 후, 네트워크 노드 B(120)에게 블록 생성을 알린다. 이 때, 합의 노드 B1(121)에 의해 생성된 블록이 네트워크 노드 B(120)로 전송될 수 있다.The identified consensus node B1 121 includes bibliographic information on block generation (block creation date, node that generated the block, etc.); Breakdown of smart contracts; After generating a block including information about a hash key and the like used when validating the block, the network node B 120 is notified of the block generation. At this time, the block generated by the consensus node B1 121 may be transmitted to the network node B 120.

이어서, 네트워크 노드 B(120)는 P2P 네트워크(109)에 연결된 네트워크 노드 A(110)에게 블록 생성을 알리고, 네트워크 노드 A(110)는 자신과 P2P 서브 네트워크 A(119)로 연결된 합의 노드 A1(111)에게 블록 생성을 알린다. 이 과정에서, 네트워크 노드 B(110)에 의해 생성된 블록이 각 노드에게 전송될 수 있다.Network node B 120 then informs network node A 110 connected to the P2P network 109 of block generation, and network node A 110 connects itself with consensus node A1 (connected to P2P subnetwork A 119). 111) tell block creation. In this process, a block generated by the network node B 110 may be transmitted to each node.

블록을 전송 받은 노드들은 블록을 블록체인에 포함시킬 수 있다. 네트워크 노드 B(120) 및 네트워크 노드 A(110)은 미디엄 블록의 형태로 블록을 블록체인에 포함시킬 수 있다. 블록을 생성한 합의 노드 B1(121) 역시 미디엄 블록의 형태로 블록을 블록체인에 포함시킬 수 있다. 합의 노드 B1(121)과 다른 P2P 서브 네트워크에 연결된 합의 노드 A1(111)은 블록을 블록체인을 포함시키지 않을 수 있다.Nodes that receive the block can include the block in the blockchain. The network node B 120 and the network node A 110 may include the block in the block chain in the form of a medium block. The consensus node B1 121 that generates the block may also include the block in the blockchain in the form of a medium block. Consensus node A1 111 connected to another P2P subnetwork with consensus node B1 121 may not include the block in the blockchain.

이와 같은 과정을 반복하여, 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 network node 110, 120, 130, 140 of the P2P network 109 has its own turn, and the network nodes 110, 129, 139, and 149 are connected to each other. Point out consensus nodes (111-113, 121-123, 131-133, 141-143) to generate blocks, and blocks created from the indicated consensus nodes are blockchain smart contracts through network nodes pointing to consensus nodes. May be sent to nodes in the system. The network nodes and the consensus node that created the block are in the form of a medium block; Consensus nodes connected to the same P2P subnetwork as the consensus node that created the block are in the form of a light block; And the smart contract node connected to the same P2P sub-network as the consensus node that created the block, the block may be included in the block chain in the form of a full block.

도 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 network node D 140 described above, and the smart contract node may be the smart contract node D 145 described above. In each process described with reference to FIG. 6, portions that overlap with the contents described with reference to FIGS. 1 to 5 will not be repeated.

우선, 네트워크 노드(140)는 스마트 계약의 주체인 클라이언트로부터 스마트 계약의 내역을 전송 받은 스마트 계약 노드에게서 스마트 계약의 내역을 획득할 수 있다(610). 예를 들어, 클라이언트 X(146)가 클라이언트 Y(147) 소유의 부동산 R을 매매하는 스마트 계약이 체결되는 경우를 생각할 수 있다. 스마트 계약 노드 (145)는 클라이언트들(146, 147)이 체결한 스마트 계약의 모든 세부 사항을 획득할 수 있다. 스마트 계약 노드 (145)는 스마트 계약의 모든 세부 사항의 전부 또는 일부에 해당하는 스마트 계약의 내역으로 네트워크 노드 (140)로 전송할 수 있다. 스마트 계약의 내역에는 적어도 “OOOO년 OO월 OO일에 클라이언트 X는 클라이언트 Y에게 매매대금을 지급했다.” 및 “동일한 날짜에 클라이언트 Y(147)에서 클라이언트 X(146)로 부동산 R의 소유권 이전 등기가 이루어졌다.”와 같이 스마트 계약의 핵심 내용들인 대금지급내역이나 등기사항 등이 포함될 수 있다.First, the network node 140 may obtain 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 (610). For example, consider a case where a smart contract is concluded where client X 146 buys and sells property R owned by client Y 147. The smart contract node 145 may obtain all the details of the smart contract signed by the clients 146, 147. The smart contract node 145 may transmit to the network node 140 the details of the smart contract corresponding to all or some of all the details of the smart contract. The details of the smart contract include at least “Client X paid client Y on OO OO of OOOO.” And “Registered ownership transfer of property R from client Y (147) to client X (146) on the same date. It is possible to include the payment details or the registration details, which are the core contents of the smart contract.

다음으로, 네트워크 노드(140)는 인덱스 서버로부터 부여 받은 순번이 도래한 경우, P2P 서브 네트워크에 연결된 합의 노드들 중에서 스마트 계약의 내역을 포함하는 블록을 생성할 합의 노드를 지목할 수 있다(620). 이때, 인덱스 서버(100)가 부여한 순번은 도 1 및 3을 참조하여 설명된 라운드 로빈 리스트에 의한 순번일 수 있다.Next, when the sequence number received from the index server arrives, the network node 140 may designate a consensus node that will generate a block including details of the smart contract among consensus nodes connected to the P2P subnetwork (620). . In this case, the order assigned by the index server 100 may be the order by the round robin list described with reference to FIGS. 1 and 3.

한편, 순번이 도래한 네트워크 노드(140)가 블록을 생성할 합의 노드를 지목하는 과정은 합의 노드의 네트워크 평판(Network Reputation)을 기초로 이루어지는 일련의 과정일 수 있다. 가령, 네트워크 노드(140)는 P2P 서브 네트워크(149)에 연결된 합의 노드들(141, 142, 143) 중에서, 네트워크 평판을 기초로 이루어지는 일련의 과정을 통해, 합의 노드(141)을 블록을 생성할 합의 노드로 지목할 수 있다. 한편, 블록을 생성할 합의 노드를 지목하는 구체적인 과정은 도 7을 참조하여 후술된다.On the other hand, the process that the network node 140, which has arrived in turn, specifies the consensus node to generate a block may be a series of processes based on the network reputation of the consensus node. For example, the network node 140 may generate a block from the consensus nodes 141, 142, and 143 connected to the P2P subnetwork 149 based on the network reputation, and generate a block of the consensus node 141. Can be identified as a consensus node. On the other hand, a specific process of pointing to the consensus node to generate a block will be described later with reference to FIG.

이어서, 네트워크 노드(140)는 지목된 합의 노드(141)로 스마트 계약의 내역을 전송할 수 있다(630). 지목된 합의 노드(141)는 네트워크 노드(140)로부터 전송 받은 스마트 계약의 내역을 포함하는 블록을 생성할 수 있다. 블록에는 블록 생성에 관한 서지사항(블록 생성 날짜, 블록을 생성한 노드 등); 스마트 계약의 내역; 블록의 유효성 검사 시 사용되는 hash key 등이 포함될 수 있다. The network node 140 may then transmit 630 the details of the smart contract to the indicated consensus node 141. The indicated consensus node 141 may generate a block including the details of the smart contract received from the network node 140. The block includes bibliographic information on the block creation (block creation date, node that created the block, etc.); Breakdown of smart contracts; The hash key used to validate the block can be included.

이어지는 순서로, 지목된 합의 노드(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 consensus node 141 may inform the network node 140 connected to the P2P subnetwork D 149 to generate the block. At this time, the consensus node D1 141 may transmit the generated block together.

다음으로, 네트워크 노드(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 network node 140 blocks at least one of the smart contract node 145, the network nodes 110, 120, and 130 that are assigned the order from the index server 100, and consensus nodes connected to the P2P subnetwork. 650 may be transmitted. For example, network node 140 may send a block to consensus nodes 142, 143 included in P2P subnetwork 149 in addition to the indicated consensus node 141. Meanwhile, each of the network nodes 110, 120, and 130 receiving the block may inform consensus nodes of the P2P subnetwork to which it is connected that the block is generated, and transmit the generated block together. Specifically, network node A 110 may transmit a block informing block generation A1 111, consensus node A2 112, and consensus node A3 113 connected to P2P subnetwork A 119 and informing a block generation. ; Network node B 120 may send a block to the consensus node B1 121, consensus node B2 122, and consensus node B3 123 connected to the P2P sub-network B 129, informing block generation; The network node C 130 may transmit a block to the consensus node C1 131, the consensus node C2 132, and the consensus node C3 133 connected to the P2P sub-network C 139 and inform the block generation.

생성된 블록을 전송 받은 합의 노드들(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 consensus node 141 manipulates the contents of the smart contract in the process of generating the block. It may be set to check whether or not a block has been created. To this end, the other consensus nodes 111-113, 121-123, 131-133, 142, 143 are connected to the network node 140 via the P2P network 109 and the P2P subnetwork 119, 129, 139, 149. Alternatively, the smart contract node 145 may receive the details of the unmanaged smart contract and combine the details of the unmanaged smart contract with the hash key of the received block and apply it to a hash function such as SHA256. . At this time, by checking whether the output hash is output below a predefined value, the validity of the block generated by the indicated consensus node 141 may be checked. In addition, any other validating method may be borrowed as long as the consensus node 141 whose speed at which other consensus nodes check the validity of the block is faster than the speed at which the consensus node 141 generates a block.

지목된 합의 노드(141)가 유효한 블록을 생성했다면 지목된 합의 노드(141)에게 금전 또는 가상화폐 등의 보상이 주어질 수 있으며, 연속적으로 일정 횟수 이상 유효한 블록을 생성할 경우, 지목된 합의 노드(141)의 네트워크 평판에 가점을 줄 수 있다. 한편, 지목된 합의 노드(141)가 유효하지 않은 블록을 생성한 경우, 지목된 합의 노드 (141)의 네트워크 평판에 가점을 줄 수 있으며, 지목된 합의 노드(141)가 유효하지 않은 블록을 생성했음을 발견한 최초의 합의 노드에게는 네트워크 평판에 가점을 줄 수 있다. 이 경우, 도 7 및 8을 참조하여 후술되는 설명에서 확인할 수 있듯이, 해당 합의 노드는 블록을 생성할 합의 노드로 지목될 확률이 높아지며, 블록을 생성할 합의 노드로 지목되어 유효한 블록을 생성할 경우, 금전 또는 가상화폐 등의 보상이 주어질 수 있다. 이처럼 유효하지 않은 블록을 검증한 합의 노드에게 네트워크 평판에 가점을 줌으로써, 합의 노드들이 유효하지 않은 블록을 적극적으로 발견하도록 참여시킬 수 있다.If the indicated consensus node 141 has generated a valid block, the indicated consensus node 141 may be rewarded with money or virtual currency, and if it generates consecutive blocks more than a certain number of times, the indicated consensus node ( 141) may be added to the network reputation. On the other hand, if the indicated consensus node 141 generates an invalid block, it may give an added value to the network reputation of the indicated consensus node 141, and the indicated consensus node 141 generates an invalid block. The first consensus node that discovers that it has done so can give network reputation an advantage. In this case, as can be seen in the following description with reference to FIGS. 7 and 8, the consensus node has a high probability of being selected as a consensus node to generate a block, and when a valid block is generated by selecting a consensus node to generate a block. Rewards such as money, money or virtual currency can be given. By contributing network reputation to consensus nodes that have validated such invalid blocks, it is possible to engage consensus nodes to actively discover invalid blocks.

이어서, 블록체인 스마트 계약 시스템의 노드들은 블록을 블록체인에 포함시킬 수 있다(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 contract node D 145 is in the form of a full block; The network nodes 110, 120, 130, 140 and the indicated consensus node 141 are in the form of medium blocks; Consensus nodes 142 and 143 connected to the P2P subnetwork 149 in addition to the indicated consensus node 141 may include the block in the blockchain in the form of a light block. As such, the blockchain smart contract system may include different blocks for each node role in the blockchain, and specific effects thereof may be confirmed in the above description with reference to FIG. 4.

도 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 network node 140 or in conjunction with the index server 100 managing the network node 140.

우선, 네트워크 노드(140)는 합의 노드들(141, 142, 143)의 성능 자료를 획득할 수 있다(621). 네트워크 노드(140)는 각각의 합의 노드(141, 142, 143)로부터 자신의 성능 자료를 획득하여 인덱스 서버(100)으로 전송할 수 있다. First, the network node 140 may obtain performance data of the consensus nodes 141, 142, and 143 (621). The network node 140 may obtain its performance data from each of the consensus nodes 141, 142, and 143 and transmit the performance data to the index server 100.

이때, 성능 자료는 합의 노드의 네트워크 연결 환경에 관한 정보를 포함할 수 있다. 또한, 성능 자료는 합의 노드의 하드웨어 사양에 관한 정보를 포함할 수 있다. 또한, 성능 자료는 합의 노드가 시스템방정식 문제에 대해 주어진 시간 내에 측정 가능한 출력상태로부터 시스템을 구성하고 있는 상태변수를 발견할 수 있는지 여부인 가관측성에 관한 정보를 포함할 수 있다. 또한, 성능 자료는 합의 노드가 상기 시스템방정식 문제에 대해 특정 초기상태를 주어진 시간 내에 원하는 최종상태로 변환시킬 수 있는지 여부인 가제어성에 관한 정보를 포함할 수 있다.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, network node 140 or index server 100 may generate a network reputation of each consensus node, based on the performance data of each consensus node (622). The network reputation of each consensus node 141, 142, 143 may be represented numerically. For example, the network reputation of consensus node D1 141 is 600; The network reputation of consensus node D2 142 is 300; The network reputation of consensus node D3 143 may be generated in 100 days. However, these numbers are only examples, and the network reputation may be represented by integers, rational numbers, or real numbers as well as natural numbers. The process of generating the network reputation of the consensus nodes by the network node 140 or the index server 100 will be described later with reference to FIG. 8.

이어서, 네트워크 노드(140) 또는 인덱스 서버(100)은 각각의 합의 노드의 네트워크 평판을 기초로, 각각의 합의 노드가 블록을 생성할 노드로 지목될 확률을 생성할 수 있다(623). 구체적으로, 각각의 합의 노드가 블록을 생성할 노드로 지목될 확률은 전체 합의 노드들의 네트워크 평판의 총합에서 특정 합의 노드의 네트워크 평판의 비중을 통해 생성될 수 있다. 예를 들어, 합의 노드 D1(141)의 네트워크 평판은 600; 합의 노드 D2(142)의 네트워크 평판은 300; 합의 노드 D3(143)의 네트워크 평판은 100일 경우, 합의 노드 D1(141)이 블록을 생성할 노드로 지목될 확률은 60%; 합의 노드 D2(142)가 블록을 생성할 노드로 지목될 확률은 30%; 합의 노드 D3(143)가 블록을 생성할 노드로 지목될 확률은 10%로 생성될 수 있다.Subsequently, network node 140 or index server 100 may generate, based on the network reputation of each consensus node, the probability that each consensus node will be identified as the node that will generate the block (623). Specifically, the probability that each consensus node is designated as a node to generate a block may be generated through the weight of the network reputation of a specific consensus node in the total sum of the network reputations of all the consensus nodes. For example, the network reputation of consensus node D1 141 is 600; The network reputation of consensus node D2 142 is 300; If the network reputation of consensus node D3 143 is 100, then the probability that consensus node D1 141 is designated as the node to generate the block is 60%; The probability that the consensus node D2 142 will be designated as the node to generate the block is 30%; The probability that the consensus node D3 143 will be identified as the node to generate the block may be generated at 10%.

네트워크 평판을 기초로 생성한 확률은 예시일 뿐이며, 얼마든지 다른 계산 방법에 따라 확률이 생성될 수 있다. 구체적으로, 합의 노드의 네트워크 평판을 합의 노드의 네트워크 평판에 따라 증가하는 인센티브와 곱한 값을 바탕으로 확률이 생성될 수 있다. 예를 들어, 네트워크 노드(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 network node 140 or the index server 100 may determine that the network reputation of the consensus node D1 141 is 600 times the incentive 1.6; The network reputation of consensus node D2 142 is equal to 300, the value of incentive 1.3; The network reputation of consensus node D3 143 may generate a probability that each consensus node will be identified as the node that will generate the block, based on the value 110 multiplied by 100 by incentive 1.1. In this case, the probability that the consensus node D1 141 is designated as the node to generate the block is 66%; The probability that the consensus node D2 142 will be designated as the node to generate the block is 27%; The probability that the consensus node D3 143 will be identified as the node that will generate the block may be generated at 7%. With this approach, the higher the network reputation, the greater the incentive, so the higher the network reputation, the higher the probability of being identified as the node that will generate the block. This may motivate consensus nodes to act to increase network reputation.

이어지는 순서로, 확률들을 기초로, 블록을 생성할 합의 노드를 지목할 수 있다(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 network node 140 based on a probability generated by itself or a probability generated by the index server 100 and then transmitted, the node D1 141, the node D2 142, and the node D3. From 143, it can be identified as a consensus node to generate a block. For example, the probability that the consensus node D1 141 will be designated as the node to generate the block is 60%; The probability that the consensus node D2 142 will be designated as the node to generate the block is 30%; The probability that the consensus node D3 143 will be identified as the node to generate the block may be 10%, and the network node 140 may agree on the consensus node D2 142 to generate the block in the current sequence according to a 30% probability. Can be identified as a node.

도 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, consensus node D2 142 first connected to P2P sub-network D 149; Then connected consensus node D3 143; And then among the connected consensus nodes D1 141, the consensus node D1 141 may have the highest network reputation; Consensus node D2 142 may then have the next highest network reputation; Consensus node D3 143 may then have the next highest network reputation. In the following, the process of calculating the network reputation of each consensus node 141, 142, 143 is described.

우선, 합의 노드의 네트워크 평판은 합의 노드의 성능 자료를 기초로 생성될 수 있다.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 consensus nodes 141, 142, and 143 connect to the P2P subnetwork 149 via wire or wirelessly; If connected via wireless, a communication scheme (5G, WiFi, 3G, LTE, etc.); Internet speed; It may include information about Internet service providers.

이 경우, 합의 노드의 네트워크 평판은 해당 합의 노드의 네트워크의 연결 환경의 응답성과 관련한 수치를 포함할 수 있다. 구체적으로, 유선을 통해 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 P2P subnetwork 149 is connected via a wire, a higher value may be given than when the P2P subnetwork 149 is connected via a wireless connection. In addition, if connected to the P2P sub-network 149 via wireless, it is possible to give the highest value when using 5G, and higher than LTE or 3G when using Wifi. In addition, the Internet speeds of the consensus nodes 141, 142, and 143 expressed in gigabytes per second (GBps) or megabytes per second (MBps) may be scaled and used as numerical values. In addition, it can be reflected in the numerical value by referring to the indicators such as the market share of the Internet service provider.

이처럼 합의 노드(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 consensus nodes 141, 142, and 143 are included in the network reputation of the consensus node. Can be. Through this, since the consensus nodes 141, 142, and 143 having excellent network connection environments will be identified as nodes that generate blocks with high probability, a fast block generation speed and the like can be ensured.

나아가, 성능 자료란 합의 노드(141, 142, 143)의 하드웨어 사양에 관한 정보를 포함할 수 있다. 구체적으로, 합의 노드(141, 142, 143)의 CPU 종류 및 성능; GPU의 개수, 종류 및 성능; RAM의 크기; 클럭 속도에 대한 정보 등을 포함할 수 있다.Furthermore, the performance data may include information about hardware specifications of the consensus nodes 141, 142, and 143. Specifically, CPU type and performance of consensus nodes 141, 142, 143; The number, type and performance of the GPUs; The size of the RAM; Information about the clock speed may be included.

이 경우, 합의 노드의 네트워크 평판은 해당 합의 노드의 하드웨어 사양의 가용성과 관련한 수치를 포함할 수 있다. 구체적으로, 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 consensus nodes 141, 142, and 143 and the value of the scale of the RAM.

이처럼 합의 노드(141, 142, 143)의 하드웨어 사양의 가용성과 관련한 수치를 합의 노드의 네트워크 평판에 포함시킴으로써, 하드웨어 사양이 우수한 합의 노드(141, 142, 143)일수록 높은 네트워크 평판을 가질 수 있다. 이를 통해, 우수한 하드웨어 사양을 가진 합의 노드(141, 142, 143)가 높은 확률로 블록을 생성할 노드로 지목될 것이므로, 빠른 블록 생성 속도 등이 보장될 수 있다.As such, the numerical values relating to the availability of the hardware specifications of the consensus nodes 141, 142, and 143 are included in the network reputation of the consensus node, so that the consensus nodes 141, 142, and 143 having excellent hardware specifications may have a higher network reputation. Through this, since the consensus nodes 141, 142, and 143 having excellent hardware specifications will be identified as nodes that generate blocks with high probability, a fast block generation speed and the like can be ensured.

나아가, 성능 자료란 합의 노드(141, 142, 143)가 시스템방정식 문제에 대해 주어진 시간 내에 측정 가능한 출력상태로부터 시스템을 구성하고 있는 상태변수를 발견할 수 있는지 여부인 가관측성에 관한 정보를 포함할 수 있다. 구체적으로, 합의 노드(141, 142, 143)는 네트워크 노드(140)로부터 시스템방정식 문제를 제공받을 수 있고, 이 문제를 주어진 시간 동안 연산하는 작업을 수행할 수 있다.Further, the performance data may include information about observability, whether the consensus nodes 141, 142, and 143 can find the state variables that make up the system from a measurable output state within a given time for a system equation problem. Can be. Specifically, the consensus nodes 141, 142, 143 may be provided with a system equation problem from the network node 140, and may perform a task of calculating the problem for a given time.

이 경우, 합의 노드의 네트워크 평판은 해당 합의 노드의 가관측성과 관련한 수치를 포함할 수 있다. 구체적으로, 합의 노드(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 consensus nodes 141, 142, 143 have solved the system equation problem for a given time, a certain number of points may be given. In addition, when the consensus nodes 141, 142, and 143 solve the system equation problem, the value obtained by scaling the remaining time from the given total time may be used as a numerical value.

이처럼 합의 노드(141, 142, 143)의 가관측성과 관련한 수치를 합의 노드의 네트워크 평판에 포함시킴으로써, 작업 처리 성능이 우수한 합의 노드(141, 142, 143)일수록 높은 네트워크 평판을 가질 수 있다. 이를 통해, 우수한 작업 처리 성능을 가진 합의 노드(141, 142, 143)가 높은 확률로 블록을 생성할 노드로 지목될 것이므로, 빠른 블록 생성 속도 등이 보장될 수 있다.As such, by including the numerical values related to the observability of the consensus nodes 141, 142, and 143 in the network reputation of the consensus node, the consensus nodes 141, 142, and 143 having excellent work processing performance may have a higher network reputation. Through this, since the consensus nodes 141, 142, and 143 having excellent job processing performance will be designated as nodes that generate blocks with high probability, a fast block generation speed and the like can be ensured.

또한, 성능 자료란 합의 노드(141, 142, 143)가 시스템방정식 문제에 대해 특정 초기상태를 주어진 시간 내에 원하는 최종상태로 변환시킬 수 있는지 여부인 가제어성에 관한 정보를 포함할 수 있다. 구체적으로, 합의 노드(141, 142, 143)는 네트워크 노드(140)로부터 시스템방정식 문제를 제공받을 수 있고, 이 문제를 주어진 시간 동안 연산하는 작업을 수행할 수 있다.In addition, the performance data may include information about controllability, which is whether the consensus nodes 141, 142, and 143 can convert a specific initial state to a desired final state in a given time for a system equation problem. Specifically, the consensus nodes 141, 142, 143 may be provided with a system equation problem from the network node 140, and may perform a task of calculating the problem for a given time.

이 경우, 합의 노드의 네트워크 평판은 해당 합의 노드의 가제어성과 관련한 수치를 포함할 수 있다. 구체적으로, 합의 노드(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 consensus nodes 141, 142, 143 have solved the system equation problem for a given time, a certain number of points may be given. In addition, when the consensus nodes 141, 142, and 143 solve the system equation problem, the value obtained by scaling the remaining time from the given total time may be used as a numerical value.

이처럼 합의 노드(141, 142, 143)의 가관측성과 관련한 수치를 합의 노드의 네트워크 평판에 포함시킴으로써, 작업 처리 성능이 우수한 합의 노드(141, 142, 143)일수록 높은 네트워크 평판을 가질 수 있다. 이를 통해, 우수한 작업 처리 성능을 가진 합의 노드(141, 142, 143)가 높은 확률로 블록을 생성할 노드로 지목될 것이므로, 빠른 블록 생성 속도 등이 보장될 수 있다.As such, by including the numerical values related to the observability of the consensus nodes 141, 142, and 143 in the network reputation of the consensus node, the consensus nodes 141, 142, and 143 having excellent work processing performance may have a higher network reputation. Through this, since the consensus nodes 141, 142, and 143 having excellent job processing performance will be designated as nodes that generate blocks with high probability, a fast block generation speed and the like can be ensured.

또한, 성능 자료는 상기에 언급된 성능 자료들의 조합으로 이루어진 정보를 포함할 수 있으며, 이 경우 합의 노드의 네트워크 평판은 상기에 언급된 수치들의 조합으로 구성된 수치를 포함할 수 있다. 이와 같이 합의 노드(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 consensus nodes 141, 142, 143; Availability of hardware specifications; Observability; And by including the numerical value related to the controllability in the network reputation of the consensus node, the consensus nodes 141, 142, and 143 having excellent work processing performance may have a high network reputation. Since the higher the network reputation of the consensus node, the higher the probability, the higher the probability of block generation.

나아가, 합의 노드의 네트워크 평판은 합의 노드(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 consensus nodes 141, 142 and 143 behave in the blockchain smart contract system. For example, if it is found that the consensus node 141 has generated an invalid block containing the details of the manipulated smart contract, the consensus node 141 will be deducted from the network reputation and pointed to the node that will later generate the block. Chances of becoming On the other hand, if the consensus node 142 continuously generates a valid block containing the details of the correct smart contract more than a certain number of times, the consensus node 142 may receive points from the network reputation and be designated as a node to generate a block later. The odds can go up.

또한, 스마트 계약 하나당 네트워크 평판에 기초한 확률에 기반하여 지목한 하나의 합의 노드만 블록을 생성할 수 있도록 함으로써, 블록이 분기되는 포크(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 consensus node 141 that generated the block can validate the generated block and send the network to the first consensus node 143 that validated the invalid block. Can add reputation. Allows any consensus node to validate the block, and the first consensus node 143 that validates an invalid block adds value to the network reputation, thereby motivating the consensus nodes to verify each other's generated blocks. Through this, consensus nodes with high network reputation can create invalid blocks to prevent 51% attack to take over the blockchain system.

이처럼 합의 노드가 유효하지 않은 블록을 생성한 경우 네트워크 평판에 감점을 적용하고, 연속적으로 일정 횟수 이상 유효한 블록을 생성하거나 유효하지 않은 블록을 최초로 검증한 경우 네트워크 평판에 가점을 부여할 수 있다. 이를 통해, 합의 노드들이 조작된 스마트 계약의 내역을 포함하는 유효하지 않은 블록을 생성하는 것을 방지할 수 있고, 올바른 스마트 계약의 내역을 포함하는 유효한 블록을 생성하도록 독려할 수 있다.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)는 휘발성 메모리 또는 비휘발성 메모리일 수 있다. Device 901 according to one embodiment includes a processor 902 and a memory 903. Device 901 according to an embodiment is the above-described index server 100, network nodes (110, 120, 130, 140), smart contract nodes (115, 125, 135, 145), consensus nodes (111-113, 121-123, 131-133, 141-143) or clients 146, 147. The processor may include at least one of the devices described above with reference to FIGS. 1 through 8, or may perform at least one method described above with reference to FIGS. 1 through 8. The memory 903 may store information related to the above-described method, or may store a program in which the above-described method is implemented. The memory 903 may be a volatile memory or a nonvolatile memory.

프로세서(902)는 프로그램을 실행하고, 장치(901)를 제어할 수 있다. 프로세서(902)에 의하여 실행되는 프로그램의 코드는 메모리(903)에 저장될 수 있다. 장치(901)는 입출력 장치(도면 미 표시)를 통하여 외부 장치(예를 들어, 퍼스널 컴퓨터 또는 네트워크)에 연결되고, 데이터를 교환할 수 있다.The processor 902 may execute a program and control the apparatus 901. Code of a program executed by the processor 902 may be stored in the memory 903. The device 901 may be connected to an external device (eg, a personal computer or a network) through an input / output device (not shown) and exchange data.

이상에서 설명된 실시예들은 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치, 방법 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, 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 floppy disk servers 100. magneto-optical media such as) k), and hardware devices specifically configured to store and execute program instructions, such as ROM, RAM, flash memory, and the like. Examples of program instructions include not only machine code generated by a compiler, but also high-level language code that can be executed by a computer using an interpreter or the like. The hardware device described above may be configured to operate as one or more software modules to perform the operations of the embodiments, and vice versa.

소프트웨어는 컴퓨터 프로그램(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)

스마트 계약의 주체인 클라이언트(Client)로부터 스마트 계약의 내역을 전송 받은 스마트 계약 노드(Smart Contract Node)에게서 상기 스마트 계약의 내역을 획득하는 단계;
인덱스 서버(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.
삭제delete 제 1 항에 있어서,
상기 각각의 합의 노드의 성능 자료는 해당 합의 노드의 네트워크 연결 환경에 관한 정보를 포함하며,
상기 각각의 합의 노드의 네트워크 평판은 해당 합의 노드의 네트워크 연결 환경의 응답성과 관련한 수치를 포함하는,
네트워크 평판 증명을 합의 알고리즘으로 사용하는 블록체인 스마트 계약 방법.
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.
하드웨어와 결합되어 제 1 항 또는 제 3 항 중 어느 하나의 항의 방법을 실행시키기 위하여 컴퓨터 판독 가능 기록 매체에 저장된 컴퓨터 프로그램.
A computer program stored in a computer readable recording medium in combination with hardware to carry out the method of claim 1.
스마트 계약의 주체인 클라이언트(Client)로부터 스마트 계약의 내역을 전송 받은 스마트 계약 노드(Smart Contract Node)에게서 상기 스마트 계약의 내역을 획득하고,
인덱스 서버(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.

KR1020190057467A 2019-05-16 2019-05-16 Method and apparatus of blockchain smart contract using proof-of-repuation-of-network as consensus algorithm KR102060435B1 (en)

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)

* Cited by examiner, † Cited by third party
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

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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