KR102216858B1 - An Automated Method of Electing and Dismissing Delegate Node of Blockchain Network - Google Patents

An Automated Method of Electing and Dismissing Delegate Node of Blockchain Network Download PDF

Info

Publication number
KR102216858B1
KR102216858B1 KR1020190136050A KR20190136050A KR102216858B1 KR 102216858 B1 KR102216858 B1 KR 102216858B1 KR 1020190136050 A KR1020190136050 A KR 1020190136050A KR 20190136050 A KR20190136050 A KR 20190136050A KR 102216858 B1 KR102216858 B1 KR 102216858B1
Authority
KR
South Korea
Prior art keywords
node
voting
candidate
nodes
representative
Prior art date
Application number
KR1020190136050A
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 KR1020190136050A priority Critical patent/KR102216858B1/en
Application granted granted Critical
Publication of KR102216858B1 publication Critical patent/KR102216858B1/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/1051Group master selection mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/30Decision processes by autonomous network management units using voting and bidding

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Theoretical Computer Science (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

Disclosed is an automated method for electing and dismissing a delegate node of a blockchain network. According to one embodiment of the present invention, the method for electing and dismissing a delegate node of a blockchain network includes the following steps of: in a case wherein candidate nodes of participant nodes of a blockchain set as a candidate node or voting node do not receive a message broadcast from a delegate node for a preset time, transmitting a voting request message along with an electronic signature to each of the other participant nodes, and then, switching the state of each of the candidate nodes from a candidate state to a nominee state; delivering election voting details from a candidate node, obtaining a majority of voting responses, of the candidate nodes to an endorser node; if the endorser node verifies whether the voting is fair based on the election voting details, enabling an orderer node to create a transaction for registering the candidate node, obtaining a majority of voting responses, as a delegate node into the blockchain and spreading the transaction to all the participant nodes; and electing the candidate node, obtaining a majority of voting responses, as a delegate node, and then, broadcasting a preset message from the elected delegate node. Each of the participant nodes has a right to dismiss the delegate node, the voting node performs a voting activity, and the candidate nodes starts a voting activity and an election to be a delegate node.

Description

블록체인 네트워크의 대표노드를 선출 및 해임 하는 자동화된 방법{An Automated Method of Electing and Dismissing Delegate Node of Blockchain Network}An Automated Method of Electing and Dismissing Delegate Node of Blockchain Network}

본 발명은 블록체인 네트워크의 대표노드를 선출하고 해임하는 기술에 관한 것으로, 보다 구체적으로는 블록체인 네트워크에서 특정 노드에 권한을 집중시키기 않고 대표노드를 공정하게 선출하고 해임할 수 있는 방법에 관한 것이다.The present invention relates to a technology for electing and dismissing a representative node of a block chain network, and more specifically, to a method for fairly electing and dismissing a representative node without concentrating authority on a specific node in the block chain network. .

블록체인은 암호화폐 비트코인(BitCoin)의 기반기술로 등장한 분산 원장(Ledger) 기술로서, 트랜잭션들을 블록 단위로 연결(chaining)하여 한번 완료되면 변경이나 수정이 불가능한 분산 공개 데이터베이스(Tapscott, D., Tapscott, A., 2016. Blockchain revolution: how the technology behind bitcoin is changing money, business, and the world. Penguin.)로, 다음과 같은 구성요소를 갖는다.Blockchain is a distributed ledger technology that emerged as the base technology of the cryptocurrency Bitcoin (BitCoin), and is a distributed public database (Tapscott, D., which cannot be changed or modified once it is completed by chaining transactions in blocks). Tapscott, A., 2016. Blockchain revolution: how the technology behind bitcoin is changing money, business, and the world.Penguin.), it has the following components.

(1) 블록체인 네트워크: 상호 독립적이고 분산된 노드 (피어) 들의 연결(1) Blockchain network: connection of mutually independent and distributed nodes (peers)

(2) 분산 블록체인: 연결된 블록으로 구성된 원장(2) Distributed Blockchain: Ledger composed of connected blocks

(3) 노드: 블록체인의 기능을 수행하는 응용 혹은 시스템(3) Node: An application or system that performs the functions of a blockchain

(4) 블록체인 사용자: 사용자 응용 혹은 지갑(4) Blockchain User: User application or wallet

이 기술은 기존의 리더/팔로워(Leader/Follower) 아키텍처 스타일 분산 데이터베이스의 중앙집권화된 관리권한을 다수의 노드에 분산시킴으로써, 관리기관에 대한 신뢰(trust) 가정 없이도 신뢰할 수 있는 데이터베이스가 유지되도록 한다. 그러나 블록체인 기술은 일련의 합의 절차로 인한 성능 저하와 전파 지연 문제로 인해, 트랜잭션의 처리속도가 느리다는 한계를 가진다. 블록체인의 확장성을 개선하기 위해, Cosmos(Kwon, J., Buchman, E., Cosmos: A network of distributed ledgers. White Paper. 2017. https://cosmos.network/whitepaper), EOS(Cox, T. EOS.IO Technical White Paper. 2017. https://github.com/EOSIO/Documentation/blob/master/TechnicalWhitePaper.md), bitshares(Schuh, F., Larimer, D., 2017. Bitshares 2.0: General overview. https://bitshares.org ) 는 공통적으로 Delegated Proof-of-Stake(DPos)를 사용한다. DPoS는 참여 노드들 가운데 대표노드단을 구성하여 이들에게 블록을 검증하고 생성하는 권한을 위임한다. Cosmos은 100개, EOS와 Steemit은 21개, bitshares은 101개의 대표노드를 선출한다. 이 방법들은 소수의 대표노드들만 합의에 참여하기 때문에 블록 검증 및 생성 비용을 상당히 절감시킬 수 있다. 그러나, 노드가 가진 지분 예를 들어, 토큰, 코인 등의 양에 비례하여 투표 권한을 부여하기 때문에 소수 노드들의 투표로 대표노드가 결정될 수 있다는 한계가 있다. 일반노드가 대표노드를 감시하여 부적절한 행위를 막을 수 있지만, 이 기능 또한 많은 지분을 가진 노드에 권한이 집중된다. 또한, 이들은 사용자가 직접 대표노드를 수동으로 투표해야 한다는 한계를 지닌다.This technology distributes the centralized management authority of the existing leader/follower architecture style distributed database to multiple nodes, so that a trusted database can be maintained without the assumption of trust in the management organization. However, blockchain technology has a limitation in that the transaction processing speed is slow due to performance degradation and propagation delay problems caused by a series of consensus procedures. To improve the scalability of the blockchain, Cosmos (Kwon, J., Buchman, E., Cosmos: A network of distributed ledgers. White Paper. 2017. https://cosmos.network/whitepaper), EOS (Cox, T. EOS.IO Technical White Paper. 2017. https://github.com/EOSIO/Documentation/blob/master/TechnicalWhitePaper.md), bitshares (Schuh, F., Larimer, D., 2017. Bitshares 2.0: General overview.https://bitshares.org) commonly uses Delegated Proof-of-Stake (DPos). DPoS forms a representative node among participating nodes and delegates the authority to verify and create blocks to them. Cosmos will elect 100, EOS and Steemit will elect 21, and bitshares will elect 101 representative nodes. These methods can significantly reduce the cost of verifying and generating blocks because only a few representative nodes participate in consensus. However, since voting rights are granted in proportion to the amount of shares, for example, tokens, coins, etc. owned by a node, there is a limitation that a representative node can be determined by voting by a few nodes. Although the general node can monitor the representative node to prevent inappropriate behavior, this function is also concentrated in the node with a large stake. In addition, these have a limitation that the user must manually vote for the representative node.

Raft 알고리즘(Ongaro, D., Ousterhout, J., 2014. In search of an understandable consensus algorithm. In 2014 {USENIX} Annual Technical Conference, pp. 305-319.)은 클라이언트의 명령을 한 클러스터의 여러 노드에서 동일하게 수행함으로써 노드들의 상태를 동일하게 관리하는 자동화된 분산 합의 알고리즘이다. 이 알고리즘은 노드의 결함으로 인해 발생되는 문제를 차단함으로써 안전성을 보장하기 위해 사용된다. 예를 들어, 한 노드가 결함으로 인해 잘못된 결과를 생성한 경우, 알고리즘에 의해 그 노드는 다른 노드들과 합의를 이루지 못하여 기각되고 결함이 없는 다수의 노드가 생성하는 결과로 수렴되어 최종적으로 올바른 결과를 얻게 된다. 한 클러스터의 노드들을 동일한 상태로 만들기 위해, Raft는 클러스터의 리더를 선출한다.The Raft algorithm (Ongaro, D., Ousterhout, J., 2014. In search of an understandable consensus algorithm. In 2014 {USENIX} Annual Technical Conference, pp. 305-319.) is a method of commanding a client from multiple nodes in a cluster. It is an automated distributed consensus algorithm that manages the states of nodes equally by performing the same. This algorithm is used to ensure safety by blocking problems caused by node defects. For example, if a node produces an incorrect result due to a defect, the node is rejected by the algorithm because it cannot reach consensus with other nodes, and the result is converged to the result generated by a number of nodes without defects. Is obtained. In order to keep the nodes of a cluster in the same state, Raft elects the leader of the cluster.

도 1은 Raft의 리더 선출 절차를 보여주는 노드의 상태 천이 다이어그램을 나타낸 것으로, 팔로워 노드가 리더 노드로 선출되는 과정은 다음과 같다.1 is a diagram showing a state transition diagram of a node showing a procedure for selecting a leader of Raft, and a process of selecting a follower node as a leader node is as follows.

1) 노드의 초기 상태는 팔로워이며, 팔로워 노드는 다른 노드들에게 투표를 요청받을 시, 즉각 투표한다.1) The initial state of a node is a follower, and when a follower node receives a vote from other nodes, it immediately votes.

2) 팔로워 노드는 리더 노드로부터 heartbeat 메시지를 주기적으로 받는다. 그러나 리더 노드의 문제로 인해, 타임 아웃 시간 동안 heartbeat 메시지를 받지 못하면 다른 노드들에게 투표를 요청 한 후, 후보(Candidate) 상태로 전환된다. 동률 득표 확률을 줄이기 위해, 타임 아웃 시간은 임의의 값으로 설정될 수 있으며 이 때, 전역 변수 텀(term)의 값을 증가시킬 수 있다.2) The follower node periodically receives a heartbeat message from the leader node. However, due to the problem of the leader node, if the heartbeat message is not received during the timeout period, after requesting votes from other nodes, it is converted into a candidate state. In order to reduce the probability of winning a tie, the timeout time may be set to an arbitrary value, and at this time, the value of the global variable term may be increased.

3-1) 투표 결과, 과반수 득표 시 리더 상태로 전환 한다.3-1) As a result of the voting, if the majority of the votes are voted, it will switch to the leader status.

3-2) 투표 결과, 동률이 되거나 과반수를 득표하지 못하면 후보노드는 다른 노드들에게 투표를 재요청한다.3-2) As a result of the voting, if there is a tie or the majority of the votes are not voted, the candidate node requests another node to vote.

3-3) 투표 중, 다른 노드로부터 heartbeat 메시지가 수신되면 팔로워 상태로 전환된다.3-3) During voting, if a heartbeat message is received from another node, it is converted to a follower state.

4) 리더 노드는 다른 노드들에게 heartbeat 메시지를 브로드캐스트(broadcast)한다.4) The leader node broadcasts a heartbeat message to other nodes.

5) 자신보다 더 높은 텀(term)을 가진 노드로부터 heartbeat 메시지가 수신되면 팔로워 상태로 전환된다.5) When a heartbeat message is received from a node with a higher term than itself, it switches to the follower state.

선출된 리더는 클라이언트로부터 받은 명령들을 복제하여 다른 노드들에게 전달하고 전달받은 노드는 복제된 명령들을 동일한 순서로 수행하여 리더와 동일한 상태를 유지한다. The elected leader duplicates the commands received from the client and delivers them to other nodes, and the received node maintains the same state as the leader by executing the duplicated commands in the same order.

하지만, 이러한 Raft의 투표 알고리즘은 노드간의 큰 성능 차이와 노드의 부적절한 행동 가능성을 고려하지 않기 때문에 블록체인을 위한 신뢰할 수 있는 대표노드를 선출하는데 한계가 있다.However, since Raft's voting algorithm does not take into account the large performance difference between nodes and the possibility of inappropriate behavior of nodes, there is a limit to selecting a reliable representative node for the blockchain.

본 발명의 실시예들은, 블록체인 네트워크에서 특정 노드에 권한을 집중시키기 않고 대표노드를 공정하게 선출하고 해임함으로써, 블록체인 시스템의 신뢰성을 유지하면서 확장성을 향상시킬 수 있는 방법을 제공한다.Embodiments of the present invention provide a method for improving scalability while maintaining the reliability of a blockchain system by fairly electing and dismissing a representative node without concentrating authority on a specific node in a blockchain network.

본 발명의 일 실시예에 따른 블록체인 네트워크의 대표노드 선출 및 해임 방법은 후보노드 또는 투표노드로 설정된 블록체인의 참여 노드들 중 후보노드에서 대표노드로부터 브로드캐스트(broadcast)되는 메시지가 미리 설정된 일정 시간 동안 수신되지 않는 경우 다른 참여 노드들 각각에게 투표 요청 메시지를 전자 서명과 함께 전송한 후 상기 후보노드 각각에서 상태를 후보(candidate) 상태에서 지명 후보(nominee) 상태로 전환하는 단계; 상기 후보노드 중 과반수의 투표 응답을 획득한 후보노드에서 검증 노드(endorser)로 선출 투표 내역을 전달하는 단계; 상기 검증 노드에서 상기 선출 투표 내역에 기초하여 투표가 정당하게 이루어 진 것이 검증되면 주문 노드(orderer)에서 과반수의 투표 응답을 획득한 후보노드를 블록체인에 대표노드로 등록하기 위한 트랜잭션을 생성하고 모든 참여 노드들에게 전파하는 단계; 및 상기 과반수의 투표 응답을 획득한 후보노드를 대표노드로 선출한 후 상기 선출된 대표노드에서 미리 설정된 메시지를 브로드캐스트하는 단계를 포함하고, 상기 참여 노드들 각각은 상기 대표노드를 해임할 수 있는 권한을 가지며, 상기 투표노드는 투표 활동을 수행하고, 상기 후보노드는 투표 활동과 대표 노드가 되기 위한 선거를 개시하는 기능을 수행하는 것을 특징으로 한다.A method for selecting and dismissing a representative node of a blockchain network according to an embodiment of the present invention includes a preset schedule in which a message broadcast from the representative node in the candidate node among participating nodes in the block chain set as a candidate node or a voting node Transmitting a voting request message to each of the other participating nodes together with an electronic signature when not received for a period of time, and then switching the state of each of the candidate nodes from a candidate state to a nominee state; Transmitting the election voting details to an endorser from a candidate node that has obtained a majority vote response among the candidate nodes; If the verification node verifies that the voting was legitimately made based on the election voting history, the order node generates a transaction to register the candidate node that has obtained a majority vote response on the blockchain as a representative node, and all Propagating to participating nodes; And broadcasting a preset message from the elected representative node after selecting a candidate node that has obtained the majority vote response as a representative node, wherein each of the participating nodes can dismiss the representative node. It has authority, and the voting node performs a voting activity, and the candidate node performs a voting activity and a function of initiating an election to become a representative node.

나아가, 본 발명의 일 실시예에 따른 블록체인 네트워크의 대표노드 선출 및 해임 방법은 상기 참여 노드들 중 어느 하나의 노드에서 상기 선출된 대표노드의 해임 사유와 해임 투표를 다른 참여 노드들에게 요청하는 단계; 상기 다른 참여 노드들 각각에서 해임 투표에 대한 해임 투표 응답을 전자 서명과 함께 상기 어느 하나의 노드로 전달하는 단계; 상기 어느 하나의 노드에서 상기 전달된 해임 투표 응답에 기초하여 해임 투표에 대해 과반수 노드가 동의한 경우 상기 검증 노드로 상기 해임 투표에 대한 해임 투표 내역을 전달하는 단계; 상기 검증 노드에서 상기 해임 투표 내역에 기초하여 해임 투표가 정당하게 이루어 진 것이 검증되면 상기 주문 노드에서 상기 선출된 대표노드의 해임을 블록체인에 등록하기 위한 트랜잭션을 생성하고 모든 참여 노드들에게 전파하는 단계; 및 상기 선출된 대표노드를 해임하는 단계를 더 포함할 수 있다.Furthermore, in the method for selecting and dismissing a representative node of a blockchain network according to an embodiment of the present invention, a request for dismissal of the elected representative node and a dismissal vote from any one of the participating nodes to other participating nodes step; Transmitting a dismissal voting response to the dismissal vote from each of the other participating nodes together with an electronic signature to the any one node; Transmitting the dismissal voting details for the dismissal vote to the verification node when a majority of nodes agree to the dismissal vote based on the transmitted dismissal voting response from the one node; If the verification node verifies that the dismissal voting was properly made based on the dismissal voting history, the ordering node creates a transaction to register the dismissal of the elected representative node in the blockchain and propagates it to all participating nodes. step; And it may further include the step of dismissing the elected representative node.

상기 블록체인 네트워크의 대표노드 선출 및 해임 방법은 하이퍼레저 패브릭 프레임워크를 기반으로 수행될 수 있다.The method of selecting and dismissing the representative node of the blockchain network may be performed based on the Hyperledger Fabric framework.

상기 참여 노드들 중 두 참여 노드들 간의 통신은 P2P(peer-to-peer) 메시지를 사용하고, 상기 검증 노드와 상기 주문 노드 중 어느 하나의 노드와 상기 참여 노드들 간의 통신은 블록체인 메시지를 사용할 수 있다.Communication between two participating nodes among the participating nodes uses a peer-to-peer (P2P) message, and communication between the participating nodes and any one of the verification node and the ordering node uses a blockchain message. I can.

상기 대표노드로 등록하기 위한 트랜잭션을 생성하고 모든 참여 노드들에게 전파하는 단계와 상기 선출된 대표노드의 해임을 블록체인에 등록하기 위한 트랜잭션을 생성하고 모든 참여 노드들에게 전파하는 단계는 전자 서명을 통해 투표자들의 신원과 투표 내역을 확인함으로써, 상기 투표와 상기 해임 투표가 정당하게 이루어졌는지에 대한 검증을 수행할 수 있다.The steps of creating a transaction for registration as the representative node and propagating it to all participating nodes and creating a transaction for registering the dismissal of the elected representative node on the blockchain and disseminating it to all participating nodes require an electronic signature. By verifying the identity of the voters through the voter and the vote history, it is possible to verify whether the vote and the dismissal vote have been properly made.

본 발명의 실시예들에 따르면, 블록체인 네트워크의 대표노드를 공정하게 선출하고 해임할 수 있기 때문에 모든 노드가 블록을 검증하고 생성하는 대신, 선출된 대표노드만 블록체인을 관리하면 되므로, 블록체인 네트워크의 성능이 월등히 개선될 수 있다.According to the embodiments of the present invention, since the representative node of the blockchain network can be fairly elected and dismissed, instead of verifying and creating blocks, all nodes only need to manage the block chain. Network performance can be significantly improved.

본 발명의 실시예들에 따르면, 특정 노드에게 권한을 집중시키지 않고 대표노드를 선출할 수 있고, 선출된 대표노드에 권한을 제한하기 위해 모든 참여 노드는 대표노드를 해임시킬 수 있는 권한을 갖도록 함으로써, 권한의 균형을 이루어 대표노드의 신뢰성을 높일 수 있다.According to embodiments of the present invention, a representative node can be elected without concentrating the authority to a specific node, and in order to limit the authority to the elected representative node, all participating nodes have the authority to dismiss the representative node. In addition, the reliability of the representative node can be increased by balancing authority.

본 발명의 실시예들에 따르면, 블록체인 네트워크의 대표노드를 공정하게 선출하고 해임할 수 있기 때문에 확장성 문제를 원초적으로 해결할 수 있다.According to the embodiments of the present invention, since the representative node of the blockchain network can be elected and dismissed fairly, the problem of scalability can be fundamentally solved.

본 발명의 실시예들에 따르면, 본 발명이 블록체인 시스템의 확장성 문제를 개선하기 위해 사용된다면 소수의 대표노드가 블록체인의 블록을 검증 및 생성함으로써 비용을 대폭 감소시킬 수 있다. According to embodiments of the present invention, if the present invention is used to improve the scalability problem of a blockchain system, a small number of representative nodes can significantly reduce the cost by verifying and generating blocks of the blockchain.

도 1은 Raft의 리더 선출 절차를 보여주는 노드의 상태 천이 다이어그램을 나타낸 것이다.
도 2는 본 발명에서 블록체인 네트워크의 대표노드가 선출되는 과정을 보여주는 상태 천이 다이어그램을 나타낸 것이다.
도 3은 본 발명의 대표노드 선출 시나리오에 대한 일 예시도를 나타낸 것이다.
도 4는 본 발명의 대표노드 해임 시나리오에 대한 일 예시도를 나타낸 것이다.
1 is a diagram showing a state transition diagram of a node showing a Raft leader election procedure.
2 shows a state transition diagram showing a process in which a representative node of a blockchain network is elected in the present invention.
3 shows an exemplary diagram for a representative node election scenario of the present invention.
4 shows an exemplary diagram for a representative node dismissal scenario of the present invention.

본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나, 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다.Advantages and features of the present invention, and a method of achieving them will become apparent with reference to the embodiments described below in detail together with the accompanying drawings. However, the present invention is not limited to the embodiments disclosed below, but will be implemented in a variety of different forms, only these embodiments make the disclosure of the present invention complete, and common knowledge in the technical field to which the present invention pertains. It is provided to completely inform the scope of the invention to those who have, and the invention is only defined by the scope of the claims.

본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며, 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 및/또는 "포함하는(comprising)"은 언급된 구성요소, 단계, 동작 및/또는 소자는 하나 이상의 다른 구성요소, 단계, 동작 및/또는 소자의 존재 또는 추가를 배제하지 않는다.The terms used in this specification are for describing exemplary embodiments, and are not intended to limit the present invention. In this specification, the singular form also includes the plural form unless specifically stated in the phrase. As used in the specification, "comprises" and/or "comprising" refers to the presence of one or more other components, steps, actions and/or elements, and/or elements, steps, actions and/or elements mentioned. Or does not exclude additions.

다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또한, 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다.Unless otherwise defined, all terms (including technical and scientific terms) used in the present specification may be used as meanings that can be commonly understood by those of ordinary skill in the art to which the present invention belongs. In addition, terms defined in a commonly used dictionary are not interpreted ideally or excessively unless explicitly defined specifically.

이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예들을 보다 상세하게 설명하고자 한다. 도면 상의 동일한 구성요소에 대해서는 동일한 참조 부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.Hereinafter, preferred embodiments of the present invention will be described in more detail with reference to the accompanying drawings. The same reference numerals are used for the same elements in the drawings, and duplicate descriptions for the same elements are omitted.

기존 연구들의 대표노드 선출 시스템의 경우, 각 노드가 가진 자산의 양에 비례하여 투표 권한을 행사한다. 따라서 많은 자산을 가진 노드에게 대표노드를 선출하는 권한이 집중된다.In the case of the representative node election system of the existing studies, voting rights are exercised in proportion to the amount of assets each node has. Therefore, the authority to elect a representative node is concentrated on nodes with many assets.

본 발명의 실시예들은, 블록체인 네트워크에서 특정 노드에 권한을 집중시키기 않고 대표노드를 공정하게 선출하고 해임함으로써, 블록체인 시스템의 신뢰성을 유지하면서 확장성을 향상시키는 것을 그 요지로 한다.Embodiments of the present invention aim to improve scalability while maintaining the reliability of the blockchain system by fairly electing and dismissing a representative node without concentrating authority on a specific node in the blockchain network.

이 때, 본 발명은 다음의 두 기능을 고려하여 블록체인 네트워크의 대표노드를 선출하고 해임할 수 있다. 여기서, 두 기능은 첫째, 블록체인의 대표노드는 블록체인의 기능을 대표로 수행할 수 있어야 하므로, 노드의 능력에 따라 대표노드로 선출 가능한 노드와 불가능한 노드로 구분되어야 하고, 둘째, 대표노드의 권한 집중을 완화하기 위해, 참여 노드는 대표노드를 해임할 수 있는 권한을 가져야 한다.At this time, the present invention may elect and dismiss a representative node of the blockchain network in consideration of the following two functions. Here, the two functions are: First, the representative node of the block chain must be able to perform the function of the block chain as a representative, so it must be divided into a node that can be elected as a representative node and an impossible node according to the capability of the node, and second, the representative node To alleviate the concentration of authority, participating nodes should have the authority to dismiss the representative node.

이러한 본 발명은 Raft 합의 알고리즘을 확장하여 블록체인 네트워크의 참여 노드에게 동등한 투표 권한을 부여하여 권한의 집중을 완화시키는 것 뿐만 아니라 일반 노드가 대표노드의 부적절한 행위를 감시하여 해임시킬 수 있는 기능을 통해 대표노드의 부적절한 행위를 막을 수 있다.The present invention extends the Raft consensus algorithm to give equal voting rights to participating nodes in the blockchain network to relieve the concentration of authority, as well as through a function that allows general nodes to monitor and dismiss inappropriate behavior of the representative node. Improper behavior of the representative node can be prevented.

본 발명의 방법에 대해 도 2 내지 도 4를 참조하여 상세히 설명하면 다음과 같다.The method of the present invention will be described in detail with reference to FIGS. 2 to 4 as follows.

도 2는 본 발명에서 블록체인 네트워크의 대표노드가 선출되는 과정을 보여주는 상태 천이 다이어그램을 나타낸 것이다.2 shows a state transition diagram showing a process in which a representative node of a blockchain network is elected in the present invention.

본 발명의 방법은 특정 노드에 권한을 집중시키지 않고 블록체인 네트워크의 대표노드 선출 및 해임을 위하여, Raft의 리더 노드 선출 알고리즘을 다섯 가지 요소에서 확장 및 보완할 수 있으며, 다섯 가지 요소는 1) 노드의 타입 및 역할, 2) 노드의 상태, 3) 메시지 유형, 4) 대표노드 선출 및 등록, 5) 대표노드 해임일 수 있다.The method of the present invention can extend and supplement Raft's leader node election algorithm in five elements, in order to select and remove a representative node of a blockchain network without concentrating authority on a specific node, and the five elements are 1) node Type and role, 2) node status, 3) message type, 4) representative node election and registration, 5) representative node dismissal.

이러한 다섯 가지 요소에 대해 설명하면 다음과 같다.These five factors will be described as follows.

1) 노드의 타입 및 역할: 블록체인의 참여 노드는 투표노드 또는 후보노드 중 하나를 선택할 수 있다. 투표노드는 투표 활동만 가능하지만 후보노드는 투표 활동뿐만 아니라 대표노드가 되기 위한 선거를 개시할 수 있다. 따라서, 사용자는 목적에 맞게 노드의 타입 설정이 가능하다. 모든 노드는 대표노드의 부적절한 행위를 감시하고, 적발 시 대표노드의 해임 투표를 진행할 수 있다. 이를 통해, 대표노드로의 권한 집중을 막는다.1) Node type and role: Participating nodes in the blockchain can select either a voting node or a candidate node. Voting nodes are only capable of voting activities, but candidate nodes can initiate elections to become representative nodes as well as voting activities. Therefore, the user can set the node type according to the purpose. All nodes can monitor the representative node's inappropriate behavior and vote for dismissal of the representative node when detected. This prevents the concentration of authority to the representative node.

2) 노드의 상태: Raft는 다중 노드의 상태를 동일하게 관리하기 위해 사용되는 반면, 본 발명의 방법은 블록체인의 대표노드를 선출하기 위해 사용된다. 이러한 목적의 차이로 인해, 본 발명의 방법은 Raft와 다른 용어를 사용한다. Raft는 노드의 상태를 팔로워(Follower), 후보(Candidate), 리더(Leader)로 정의하는 반면, 본 발명의 방법은 투표노드의 상태를 Voting으로 정의하고, 후보노드의 상태를 후보(Candidate), 지명 후보(Nominee), 대표(Delegate)로 정의한다.2) Node state: Raft is used to manage the state of multiple nodes equally, while the method of the present invention is used to elect a representative node of the blockchain. Due to this difference in purpose, the method of the present invention uses a different term than Raft. Raft defines the state of a node as a follower, a candidate, and a leader, whereas the method of the present invention defines the state of a voting node as Voting, and the state of a candidate node is defined as a candidate (Candidate), It is defined as Nominee or Delegate.

3) 메시지 유형: Raft와 달리, 본 발명의 방법은 두 가지 유형의 메시지를 사용한다. 첫째는 peer-to-peer (P2P) 메시지로, 두 노드 간의 통신을 위해 사용된다. 본 발명의 방법에서 이 메시지 유형은 투표 요청/응답, 해임 요청/응답과 같이 블록체인에 등록되지 않는 활동을 위해 사용된다. 두 번째는 블록체인 메시지로, 주어진 데이터를 검증하거나 블록체인에 등록시키기 위해 사용된다. 본 발명의 방법에서 이 메시지 유형은 투표자들의 투표 내역을 검증하고 트랜잭션을 통해 투표 내역과 결과를 블록체인에 등록하여 모든 참여노드에게 공개하기 위해 사용된다.3) Message Type: Unlike Raft, the method of the present invention uses two types of messages. The first is a peer-to-peer (P2P) message, which is used for communication between two nodes. In the method of the present invention, this message type is used for activities that are not registered in the blockchain, such as voting request/response and dismissal request/response. The second is a blockchain message, which is used to verify or register given data on the blockchain. In the method of the present invention, this message type is used to verify the voter's voting history, register the voting details and results through a transaction in the blockchain, and disclose them to all participating nodes.

4) 대표노드 선출 및 등록: Raft와 같이, 대표노드는 참여노드들의 투표를 통해 선출된다. 그러나 본 발명의 방법은 투표자들의 신원 확인과 투표 내역을 검증하기 위해, 전자 서명을 사용한다. 서명된 투표지는 투표 권한을 소유한 투표자가 올바르게 투표했음을 증명한다. 또한 본 발명의 방법은 대표노드가 투표를 통해 공정히 선출되었다는 사실을 공개하기 위해, 투표 내역과 결과를 블록체인에 등록(commit)한다. 이를 통해, 부정행위가 발생되지 않도록 예방할 수 있다. 선출된 대표노드는 heartbeat 메시지를 브로드캐스트하여 대표노드가 정상적으로 동작하고 있음을 알린다.4) Representative node election and registration: Like Raft, representative nodes are elected through voting by participating nodes. However, the method of the present invention uses an electronic signature to verify the identity of voters and to verify the voting history. A signed ballot certifies that the voter with voting authority has voted correctly. In addition, the method of the present invention registers (commit) the vote details and results in the blockchain in order to disclose the fact that the representative node has been fairly elected through voting. Through this, it is possible to prevent fraudulent behavior from occurring. The elected representative node announces that the representative node is operating normally by broadcasting a heartbeat message.

5) 대표노드의 해임: 모든 참여노드는 대표노드의 부적절한 행위 또는 자격 미달 등의 사유에 대한 해임 투표를 진행할 수 있다. 해임 투표 시, 전자 서명을 통해 투표자들의 신원과 투표 내역을 확인한다. 과반 득표 시, 대표노드는 해임되고 투표 내역과 해임 사실을 블록체인에 등록한다. 대표노드가 해임되면, 후보노드들은 대표노드가 되기 위한 투표를 시작한다.5) Dismissal of Representative Node: All participating nodes may vote for dismissal for reasons such as inappropriate behavior or ineligibility of the representative node. When voting for dismissal, an electronic signature is used to verify the voters' identity and voting history. In the event of a majority vote, the representative node is dismissed and the voting details and dismissal are registered on the blockchain. When the representative node is dismissed, the candidate nodes begin voting to become the representative node.

이러한 본 발명에 대해 도 3과 도 4를 참조하여 대표노드를 선출하고 해임하는 과정에 대해 상세히 설명한다.The process of selecting and dismissing a representative node for the present invention will be described in detail with reference to FIGS. 3 and 4.

도 3은 본 발명의 대표노드 선출 시나리오에 대한 일 예시도를 나타낸 것으로, 두 개의 후보노드와 세 개의 투표노드가 대표노드를 선출하는 시나리오에 대한 일 예시도를 나타낸 것이다.3 shows an exemplary diagram for a representative node election scenario according to the present invention, and illustrates an exemplary diagram for a scenario in which two candidate nodes and three voting nodes elect a representative node.

여기서, 본 발명의 시나리오는 하이퍼레저 패브릭 프레임워크를 기반으로 할 수 있다.Here, the scenario of the present invention may be based on the hyperledger fabric framework.

도 3에 도시된 바와 같이, 대표노드 선출 시나리오에 대해 설명하면, 후보노드는 미리 설정된 임의의 시간 동안 대표노드의 heartbeat 메시지를 수신 받지 못하면 모든 노드에게 투표 요청 메시지를 전자 서명과 함께 전송한 후, 후보(candidate) 상태에서 지명 후보(nominee) 상태로 전환한다. 그 후, 과반수를 먼저 득표한 노드는 검증 노드(endorser)에게 투표 내역을 전달하여 검증 받는다. 검증 노드는 투표자의 서명과 투표지를 대조하여 투표가 올바르게 이뤄졌음을 검증한다. 검증이 완료되면 주문 노드(orderer)는 대표노드를 블록체인에 등록하기 위해 트랜잭션을 생성하고 전파하여 모든 참여노드에게 알린다. 선출된 대표노드는 정상적으로 동작하고 있음을 알리기 위해 heartbeat 메시지를 브로드캐스트한다. 물론, 나머지 후보노드는 지명 후보(nominee) 상태에서 후보(candidate) 상태로 전환하며, 선출된 대표노드는 상태를 지명 후보(nominee) 상태에서 대표(delegate) 상태로 전환한다.As shown in FIG. 3, when the representative node election scenario is described, if the candidate node does not receive the representative node's heartbeat message for a predetermined time, it transmits a voting request message to all nodes together with an electronic signature, Transition from the candidate state to the nominee state. After that, the node that first received the majority of the votes is verified by passing the voting details to the endorser. The verification node verifies that the voting was done correctly by checking the voter's signature and the ballot. When verification is complete, the orderer creates and propagates a transaction to register the representative node on the blockchain, and notifies all participating nodes. The elected representative node broadcasts a heartbeat message to inform that it is operating normally. Of course, the remaining candidate nodes switch from the nominee state to the candidate state, and the elected representative node changes the state from the nominee state to the delegate state.

도 4는 본 발명의 대표노드 해임 시나리오에 대한 일 예시도를 나타낸 것으로, 도 3과 마찬가지로 두 개의 후보노드와 세 개의 투표노드가 대표노드를 해임하는 시나리오에 대한 일 예시도를 나타낸 것이다.FIG. 4 shows an exemplary diagram for a representative node dismissal scenario of the present invention, and as in FIG. 3, an exemplary diagram for a scenario in which two candidate nodes and three voting nodes dismiss a representative node.

도 4에 도시된 바와 같이, 대표노드 해임 시나리오에 대해 설명하면, 한 참여노드가 대표노드의 부적절한 행위를 적발한 경우, 해임 사유와 함께 해임 투표를 요청한다. 해임 투표를 요청 받은 노드들은 사유를 확인하고 전자 서명과 함께 응답한다. 과반수의 노드가 동의하면 검증 노드에게 검증 받은 후, 투표가 유효하면 주문 노드를 통해 대표노드의 해임을 블록체인에 등록하기 위한 트랜잭션을 생성하고, 모든 참여 노드들에게 전파하여 알린 후 대표노드가 해임되었음을 블록체인에 등록한다. 블록체인을 통해 대표노드의 해임 사실을 알게 된 후보노드는 대표노드가 되기 위해 도 3에서 설명한 대표노드 선출 시나리오를 따른다.As illustrated in FIG. 4, when a representative node dismissal scenario is described, when a participating node detects an inappropriate behavior of the representative node, a dismissal vote is requested along with the reason for dismissal. Nodes that are requested to vote for dismissal check the reason and respond with an electronic signature. If the majority of nodes agree, it is verified by the verification node, and if the vote is valid, a transaction to register the dismissal of the representative node in the blockchain is created through the order node, and the representative node is dismissed after disseminating it to all participating nodes. Is registered in the blockchain. The candidate node, who learns that the representative node has been dismissed through the blockchain, follows the scenario for selecting the representative node described in FIG. 3 in order to become the representative node.

이와 같이, 본 발명의 실시예에 따른 방법은 블록체인 네트워크의 대표노드를 공정하게 선출하고 해임할 수 있기 때문에 모든 노드가 블록을 검증하고 생성하는 대신, 선출된 대표노드만 블록체인을 관리하면 되므로, 블록체인 네트워크의 성능이 월등히 개선될 수 있다.As described above, in the method according to the embodiment of the present invention, since the representative node of the block chain network can be fairly elected and dismissed, instead of verifying and generating the block, all nodes only need to manage the block chain. , The performance of the blockchain network can be significantly improved.

또한, 본 발명의 실시예에 따른 방법은 특정 노드에게 권한을 집중시키지 않고 대표노드를 선출할 수 있고, 선출된 대표노드에 권한을 제한하기 위해 모든 참여 노드는 대표노드를 해임시킬 수 있는 권한을 갖도록 함으로써, 권한의 균형을 이루어 대표노드의 신뢰성을 높일 수 있다.In addition, in the method according to an embodiment of the present invention, a representative node can be elected without concentrating the authority to a specific node, and in order to limit the authority to the elected representative node, all participating nodes have the authority to dismiss the representative node. By having it, it is possible to increase the reliability of the representative node by balancing authority.

또한, 본 발명의 실시예에 따른 방법은 블록체인 네트워크의 대표노드를 공정하게 선출하고 해임할 수 있기 때문에 확장성 문제를 원초적으로 해결할 수 있다.In addition, the method according to the embodiment of the present invention can fundamentally solve the scalability problem because the representative node of the blockchain network can be fairly elected and dismissed.

소프트웨어는 컴퓨터 프로그램(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 these, configuring the processing unit to behave as desired or processed independently or collectively. You can command the device. Software and/or data may be interpreted by a processing device or to provide instructions or data to a processing device, of any type of machine, component, physical device, virtual equipment, computer storage medium or device. , Or may be permanently or temporarily embodyed in a transmitted signal wave. The software may be distributed over networked computer systems and stored or executed in a distributed manner. Software and data may be stored on one or more computer-readable recording media.

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

이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.Although the embodiments have been described by the limited embodiments and drawings as described above, various modifications and variations can be made from the above description to those of ordinary skill in the art. For example, the described techniques are performed in a different order from the described method, and/or components such as a system, structure, device, circuit, etc. described are combined or combined in a form different from the described method, or other components Alternatively, even if substituted or substituted by an equivalent, an appropriate result can be achieved.

그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.Therefore, other implementations, other embodiments, and claims and equivalents fall within the scope of the claims to be described later.

Claims (5)

노드의 능력에 따라 대표노드로 선출 가능한 후보노드 또는 대표노드로 선출 불가능한 투표노드로 설정된 블록체인의 참여 노드들 중 후보노드에서 대표노드로부터 브로드캐스트(broadcast)되는 메시지가 미리 설정된 일정 시간 동안 수신되지 않는 경우 다른 참여 노드들 각각에게 투표 요청 메시지를 전자 서명과 함께 전송한 후 상기 후보노드 각각에서 상태를 후보(candidate) 상태에서 지명 후보(nominee) 상태로 전환하는 단계;
상기 지명 후보 상태로 전환된 후보노드 중 과반수의 투표 응답을 먼저 획득한 후보노드에서 검증 노드(endorser)로 선출 투표 내역을 전달하는 단계;
상기 검증 노드에서 상기 선출 투표 내역에 기초하여 투표가 정당하게 이루어 진 것이 검증되면 주문 노드(orderer)에서 과반수의 투표 응답을 획득한 후보노드를 블록체인에 대표노드로 등록하기 위한 트랜잭션을 생성하고 모든 참여 노드들에게 전파하는 단계;
상기 과반수의 투표 응답을 획득한 후보노드를 대표노드로 선출한 후 상기 선출된 대표노드에서 미리 설정된 메시지를 브로드캐스트하는 단계; 및
상기 대표노드로 선출된 후보노드를 지명 후보 상태에서 대표 상태로 전환하고, 상기 대표노드로 선출된 후보노드를 제외한 나머지 후보노드를 지명 후보 상태에서 후보 상태로 전환하는 단계
를 포함하고,
상기 참여 노드들 각각은
상기 대표노드로의 권한 집중을 방지하기 위하여, 상기 대표노드의 부적절한 행위를 감시하여 상기 대표노드의 부적절한 행위를 적발하는 경우 상기 대표노드를 해임할 수 있는 해임 투표의 진행 권한을 가지며,
상기 투표노드는
투표 활동을 수행하고,
상기 후보노드는
투표 활동과 대표 노드가 되기 위한 선거를 개시하는 기능을 수행하며,
상기 참여 노드들 중 두 참여 노드들 간의 통신은
P2P(peer-to-peer) 메시지를 사용하고,
상기 검증 노드와 상기 주문 노드 중 어느 하나의 노드와 상기 참여 노드들 간의 통신은
주어진 데이터를 검증하거나 블록체인에 등록시키기 위하여 블록체인 메시지를 사용하며,
상기 참여 노드들 중 어느 하나의 노드에서 상기 선출된 대표노드의 해임 사유와 해임 투표를 다른 참여 노드들에게 요청하는 단계;
상기 다른 참여 노드들 각각에서 해임 투표에 대한 해임 투표 응답을 전자 서명과 함께 상기 어느 하나의 노드로 전달하는 단계;
상기 어느 하나의 노드에서 상기 전달된 해임 투표 응답에 기초하여 해임 투표에 대해 과반수 노드가 동의한 경우 상기 검증 노드로 상기 해임 투표에 대한 해임 투표 내역을 전달하는 단계;
상기 검증 노드에서 상기 해임 투표 내역에 기초하여 해임 투표가 정당하게 이루어 진 것이 검증되면 상기 주문 노드에서 상기 선출된 대표노드의 해임을 블록체인에 등록하기 위한 트랜잭션을 생성하고 모든 참여 노드들에게 전파하는 단계; 및
상기 선출된 대표노드를 해임하는 단계
를 더 포함하고,
상기 대표노드로 등록하기 위한 트랜잭션을 생성하고 모든 참여 노드들에게 전파하는 단계와 상기 선출된 대표노드의 해임을 블록체인에 등록하기 위한 트랜잭션을 생성하고 모든 참여 노드들에게 전파하는 단계는
전자 서명을 통해 투표자들의 신원과 투표 내역을 확인함으로써, 상기 투표와 상기 해임 투표가 정당하게 이루어졌는지에 대한 검증을 수행하는 것을 특징으로 하는 블록체인 네트워크의 대표노드 선출 및 해임 방법.
Depending on the node's capabilities, a message broadcasted from the representative node from the candidate node among participating nodes in the blockchain that can be elected as a representative node or a voting node that cannot be selected as a representative node is not received for a predetermined period of time. If not, transmitting a voting request message to each of the other participating nodes together with an electronic signature, and then switching the state of each of the candidate nodes from a candidate state to a nominee state;
Transmitting the details of election voting from a candidate node that first obtained a majority vote response among the candidate nodes converted to the nomination candidate state to an endorser;
If the verification node verifies that the voting was legitimately made based on the election voting history, the order node generates a transaction to register the candidate node that has obtained a majority vote response on the blockchain as a representative node, and all Propagating to participating nodes;
Selecting a candidate node that has obtained the majority vote response as a representative node and broadcasting a preset message from the selected representative node; And
Converting the candidate node elected as the representative node from the nominated candidate state to the representative state, and converting the remaining candidate nodes excluding the candidate node elected as the representative node from the nominated candidate state to the candidate state
Including,
Each of the participating nodes
In order to prevent the concentration of authority to the representative node, the representative node has the authority to conduct a dismissal vote to dismiss the representative node when inappropriate behavior of the representative node is detected by monitoring the inappropriate behavior of the representative node,
The voting node is
Conduct voting activities,
The candidate node is
It performs voting activities and functions to initiate elections to become representative nodes,
Communication between two participating nodes among the participating nodes is
Use peer-to-peer (P2P) messages,
Communication between the participating nodes and any one of the verification node and the order node
Blockchain messages are used to verify given data or register on the blockchain,
Requesting a reason for dismissal and a vote for dismissal of the elected representative node from any one of the participating nodes from other participating nodes;
Transmitting a dismissal voting response to the dismissal vote from each of the other participating nodes together with an electronic signature to any one node;
Transmitting the dismissal voting details for the dismissal vote to the verification node when a majority of nodes agree to the dismissal vote based on the transmitted dismissal voting response from the one node;
If the verification node verifies that the dismissal voting was properly made based on the dismissal voting history, the ordering node creates a transaction to register the dismissal of the elected representative node in the blockchain and propagates it to all participating nodes. step; And
Dismissing the elected representative node
Including more,
The steps of creating a transaction for registration as the representative node and propagating it to all participating nodes and creating a transaction for registering the dismissal of the elected representative node in the blockchain and propagating it to all participating nodes
A method for selecting and dismissing a representative node of a blockchain network, characterized in that by verifying the identity and voting history of voters through an electronic signature, verification of whether the voting and the dismissal voting have been properly made.
삭제delete 제1항에 있어서,
상기 블록체인 네트워크의 대표노드 선출 및 해임 방법은
하이퍼레저 패브릭 프레임워크를 기반으로 수행되는 것을 특징으로 하는 블록체인 네트워크의 대표노드 선출 및 해임 방법.
The method of claim 1,
The method of selecting and dismissing the representative node of the blockchain network is
A method of selecting and dismissing a representative node of a blockchain network, characterized in that it is performed based on the Hyperledger Fabric framework.
삭제delete 삭제delete
KR1020190136050A 2019-10-30 2019-10-30 An Automated Method of Electing and Dismissing Delegate Node of Blockchain Network KR102216858B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190136050A KR102216858B1 (en) 2019-10-30 2019-10-30 An Automated Method of Electing and Dismissing Delegate Node of Blockchain Network

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190136050A KR102216858B1 (en) 2019-10-30 2019-10-30 An Automated Method of Electing and Dismissing Delegate Node of Blockchain Network

Publications (1)

Publication Number Publication Date
KR102216858B1 true KR102216858B1 (en) 2021-02-18

Family

ID=74688443

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190136050A KR102216858B1 (en) 2019-10-30 2019-10-30 An Automated Method of Electing and Dismissing Delegate Node of Blockchain Network

Country Status (1)

Country Link
KR (1) KR102216858B1 (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113723962A (en) * 2021-11-04 2021-11-30 中国信息通信研究院 Block chain authority management method and block chain system
CN114726856A (en) * 2022-02-28 2022-07-08 重庆市先进区块链研究院 Self-adaptive master selection method based on Raft
CN114900529A (en) * 2022-06-09 2022-08-12 上海万向区块链股份公司 Block typing method and system
CN118316776A (en) * 2024-04-18 2024-07-09 上海黔易数据科技有限公司 Verification node processing method and system of block chain

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102038052B1 (en) * 2019-04-22 2019-10-29 국방과학연구소 Method for Collective Decision Making and Robot Performing the Same

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102038052B1 (en) * 2019-04-22 2019-10-29 국방과학연구소 Method for Collective Decision Making and Robot Performing the Same

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113723962A (en) * 2021-11-04 2021-11-30 中国信息通信研究院 Block chain authority management method and block chain system
CN114726856A (en) * 2022-02-28 2022-07-08 重庆市先进区块链研究院 Self-adaptive master selection method based on Raft
CN114900529A (en) * 2022-06-09 2022-08-12 上海万向区块链股份公司 Block typing method and system
CN118316776A (en) * 2024-04-18 2024-07-09 上海黔易数据科技有限公司 Verification node processing method and system of block chain

Similar Documents

Publication Publication Date Title
KR102216858B1 (en) An Automated Method of Electing and Dismissing Delegate Node of Blockchain Network
Androulaki et al. Hyperledger fabric: a distributed operating system for permissioned blockchains
Baudet et al. State machine replication in the libra blockchain
CN108492103B (en) Joint block chain consensus method
Nguyen et al. A survey about consensus algorithms used in blockchain.
Pahlajani et al. Survey on private blockchain consensus algorithms
Yu et al. Repucoin: Your reputation is your power
Shahaab et al. Applicability and appropriateness of distributed ledgers consensus protocols in public and private sectors: A systematic review
CN107301600B (en) Core construction method of block chain Internet model for cross-chain transaction
CN109034813B (en) Representative node device election method and device, computer device and storage medium
Saito et al. What’s so different about blockchain?—blockchain is a probabilistic state machine
CN112541758A (en) Multi-round voting type fault-tolerant sequencing consensus mechanism and method based on block chain
CN110351133A (en) Method and device for the host node hand-off process in block catenary system
US20210026745A1 (en) Methods, systems, and computer readable media for providing byzantine fault tolerance
US11381589B2 (en) Systems and methods for distributed extended common vulnerabilities and exposures data management
Panja et al. A smart contract system for decentralized borda count voting
CN110110555A (en) Voting method and device in a kind of block chain
Yadav et al. A comparative study on consensus mechanism with security threats and future scopes: Blockchain
CN112883114A (en) Transaction processing method and device applied to block chain
CN110611701B (en) Parameter configuration and transaction processing method based on block chain
KR20200059234A (en) Smart contract execution with distributed reconciliation
CN111476548A (en) Title review method and system based on block chain
Kiayias et al. On the security properties of e-voting bulletin boards
Merlini et al. On public decentralized ledger oracles via a paired-question protocol
CN110602217A (en) Block chain-based alliance management method, device, equipment and storage medium

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant