KR20200083145A - Fault tolerance consensus method for eliminating interference factors in blockchain networks - Google Patents

Fault tolerance consensus method for eliminating interference factors in blockchain networks Download PDF

Info

Publication number
KR20200083145A
KR20200083145A KR1020190075373A KR20190075373A KR20200083145A KR 20200083145 A KR20200083145 A KR 20200083145A KR 1020190075373 A KR1020190075373 A KR 1020190075373A KR 20190075373 A KR20190075373 A KR 20190075373A KR 20200083145 A KR20200083145 A KR 20200083145A
Authority
KR
South Korea
Prior art keywords
reliability
nodes
verification
global
local
Prior art date
Application number
KR1020190075373A
Other languages
Korean (ko)
Other versions
KR102214849B1 (en
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 PCT/KR2019/007674 priority Critical patent/WO2020138606A1/en
Publication of KR20200083145A publication Critical patent/KR20200083145A/en
Application granted granted Critical
Publication of KR102214849B1 publication Critical patent/KR102214849B1/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/1061Peer-to-peer [P2P] networks using node-based peer discovery mechanisms
    • H04L67/1065Discovery involving distributed pre-established resource-based relationships among peers, e.g. based on distributed hash tables [DHT] 

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)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Computer And Data Communications (AREA)

Abstract

The present invention can provide a fault tolerance consensus method of a blockchain network, which may return to normal consensus by adjusting voting rights of normal nodes and abnormal nodes by changing a consensus boundary by applying a penalty for the abnormal nodes based on voting information of a blockchain verification node.

Description

블록체인 네트워크의 합의 방해요인 제거를 위한 장애 허용 합의 방법{FAULT TOLERANCE CONSENSUS METHOD FOR ELIMINATING INTERFERENCE FACTORS IN BLOCKCHAIN NETWORKS}Fault tolerance consensus method for removing consensus obstacles of blockchain network {FAULT TOLERANCE CONSENSUS METHOD FOR ELIMINATING INTERFERENCE FACTORS IN BLOCKCHAIN NETWORKS}

본 발명은 블록체인 네트워크의 장애 허용 합의 방법에 관한 것으로, 블록체인 네트워크의 합의 방해요인 제거를 위한 장애 허용 합의 방법에 관한 것이다.The present invention relates to a method for consensus to allow an obstacle in a blockchain network, and to a method for consensus to allow an obstacle to remove an obstacle for consensus in a blockchain network.

블록체인 기술은 투명성, 보안성, 비가역성을 지원하는 고 신뢰도 분산화 정보저장소(DB: Database) 기술로서, 단순한 구조로 비가역성을 쉽게 확보할 수 있음에 따라, 무결성이 매우 중요시되는 금융/물류/공공분야 등에서 각광받으며 많은 프로젝트가 진행되고 있다.Blockchain technology is a high-reliability decentralized information storage (DB: Database) technology that supports transparency, security, and irreversibility.As a simple structure, it is easy to secure irreversibility, so financial/logistics/public sector where integrity is very important Many projects are in progress as it has been in the limelight.

합의 알고리즘(Consensus Algorithm)은 다수 노드가 존재하는 P2P 네트워크에서 정보 불일치 발생 시 노드 간 하나의 DB를 유지하기 위해 어떤 정보를 선택할지 결정하는 기술이다. 블록체인은 합의 알고리즘을 통해 블록 생성 권한과 분기된 블록체인 선택에 대한 기법을 결정한다. 대표적 합의 알고리즘은 작업증명(Proof of Work: 이하 PoW)와 지분증명(Proof of Stake: 이하 PoS), 실용적 비잔틴 장애 허용(Practical Byzantine Fault Tolerance: 이하 PBFT) 등이 있다.Consensus Algorithm is a technology that determines which information to select to maintain one DB between nodes when information mismatch occurs in a P2P network in which multiple nodes exist. Blockchain decides the authority for block creation and branched blockchain selection through consensus algorithm. Representative consensus algorithms include Proof of Work (PoW), Proof of Stake (PoS), and Practical Byzantine Fault Tolerance (PBFT).

동일한 타임 스탬프(timestamp)에서 데이터가 서로 다른 블록이 발생하는 블록체인 분기 현상이 나타나면, PoW와 PoS에서는 이후 가장 길게 연장된 블록체인을 선택한다. 그러나 이는 일시적 정보 불일치를 허용하는 방식으로 블록체인의 데이터 신뢰도를 낮추게 된다.If a blockchain branching phenomenon occurs in which blocks with different data occur at the same timestamp, PoW and PoS select the longest extended blockchain. However, this lowers the data reliability of the blockchain in a way that allows for temporary information discrepancies.

반면 PBFT는 블록체인에 추가될 데이터에 대한 합의 노드 간의 정상적인 합의 수행 완료 후에만 블록을 블록체인에 추가함으로써 블록체인 데이터의 불일치를 원천 방지하여, 데이터에 대한 신뢰도를 향상시킨다. PBFT 합의 알고리즘은 약속된 행동을 하지 않는 비잔틴 장애(Byzantine Faulty) 노드가 존재할 수 있는 비동기 네트워크에서도 비잔틴 장애 노드가 일정 비율 이하에서는 정상 합의가 가능하다. 전체 검증 노드 수가 n이고, 장애 노드 수가 f인 경우, PBFT에서는 장애 노드 수(f)가 (n-1)/3 이하이면 합의에 성공할 수 있다. 즉 전체 검증 노드의 수(n)가 장애 노드 수(f)의 3배를 초과(N ≥ 3f+1)하면, 장애 노드가 포함되어도 정상적 합의가 가능하다.On the other hand, PBFT prevents the inconsistency in the blockchain data by adding blocks to the blockchain only after the normal consensus between the consensus nodes for the data to be added to the blockchain is completed, thereby improving the reliability of the data. The PBFT consensus algorithm allows normal consensus of the Byzantine Fault node under a certain ratio even in an asynchronous network where Byzantine Faulty nodes that do not perform the promised action can exist. When the total number of verify nodes is n and the number of fault nodes is f, consensus may be successful in the PBFT if the number of fault nodes f is less than (n-1)/3. That is, if the total number of verification nodes (n) exceeds three times the number of faulty nodes (f) (N ≥ 3f+1), normal consensus is possible even if a faulty node is included.

도 1은 PBFT 합의 알고리즘을 통한 합의 절차의 일예를 나타낸다.1 shows an example of a consensus procedure through a PBFT consensus algorithm.

도 1을 참조하면, PBFT 합의 알고리즘은 요청(Request) 단계(S11), 선 준비 단계(Pre-prepare)(S12), 준비(Prepare) 단계(S13), 결정(Commit) 단계(S14) 및 응신(Reply) 단계(S15)로 구성될 수 있다.Referring to FIG. 1, the PBFT consensus algorithm includes a request (S11), a pre-prepare (S12), a prepare (S13), a commit (S14), and a response (Reply) may be configured in step (S15).

블록체인 네트워크에서 다수의 노드 중 클라이언트(Client)(120)에서 전송된 트랜잭션 요청을 검증하고 합의하여 블록에 추가하는 역할은 검증 노드들(Validating Nodes)(110)이 담당한다. 도1 에서는 일예로 블록체인 네트워크에 4개의 검증 노드(111 ~ 114)가 존재하고, 4개의 검증 노드(111 ~ 114) 중 제1 검증 노드(111)가 클라이언트(120)로부터 트랜잭션 요청을 인가받는 리더 노드이며, 나머지 제2 내지 제4 검증 노드(112 ~ 114)는 리더 노드(111)와 함께 요청된 랜잭션에 대해 합의 검증하는 백업 노드이다.Validation nodes (Validating Nodes) 110 are responsible for verifying and agreeing on a transaction request transmitted from a client 120 among a plurality of nodes in the blockchain network and adding it to the block. In FIG. 1, for example, four verification nodes 111 to 114 exist in the blockchain network, and the first verification node 111 among the four verification nodes 111 to 114 receives a transaction request from the client 120. It is a leader node, and the remaining second to fourth verification nodes 112 to 114 are backup nodes that consensusly verify the requested transaction with the leader node 111.

PBFT 합의 알고리즘의 요청 단계(S11)에서 리더 노드(111)는 적어도 하나의 클라이언트(120)로부터 데이터의 상태 변환, 즉 트랜잭션을 요청하는 데이터를 인가받아 종합하고, 검증 및 정렬한다. 그리고 선 준비 단계(S12)에서 리더 노드(111)는 인가된 블록을 나머지 검증 노드들(112 ~ 114), 즉 백업 노드들로 전파한다. 준비 단계(S13)에서 백업 노드들(112 ~ 114) 각각은 리더 노드(111)에서 블록을 검증하고, 검증 결과가 참이면, 각각 다른 검증 노드들(111 ~ 114)로 준비 메시지를 전파한다. 결정 단계(S14)에서 각 검증 노드들(111 ~ 114)은 2f개 이상의 노드로부터 같은 값을 받으면 결정 메시지를 다른 노드들에게 전파한다. 응신 단계(S15) 단계에서 검증 노드들(111 ~ 114) 각각은 2f+1개 이상의 다른 노드들로부터 같은 값의 결정 메시지를 받으면 해당 블록을 체인에 추가하고, 결과를 클라이언트(120)에게 전달한다. 이에 클라이언트는 f+1 이상의 다른 노드들로부터 동일한 결과를 받으면 해당 결과가 처리된 것으로 확인한다.In the request step (S11) of the PBFT consensus algorithm, the leader node 111 receives the status change of data from at least one client 120, that is, the data requesting the transaction, and synthesizes, verifies, and sorts it. And in the preliminary preparation step (S12), the leader node 111 propagates the applied block to the remaining verification nodes 112 to 114, that is, backup nodes. In the preparation step (S13), each of the backup nodes 112 to 114 verifies the block in the leader node 111, and if the verification result is true, propagates the preparation message to the other verification nodes 111 to 114. In the determination step S14, each of the verification nodes 111 to 114 receives the same value from 2f or more nodes and propagates the determination message to other nodes. In the response step (S15), each of the verification nodes 111 to 114 receives a determination message of the same value from 2f+1 or more other nodes, adds the corresponding block to the chain, and delivers the result to the client 120 . Accordingly, when the client receives the same result from other nodes of f+1 or higher, the client confirms that the result is processed.

이와 같이 PBFT에서는 전체 검증 노드(n)의 2/3를 초과하는 노드를 확보해야만 블록 데이터의 변경이 가능하므로, 51% 이상의 노드를 확보하면 데이터 변조가 가능한 PoW 및 PoS 보다 데이터 변조 공격에 강하지만, 데이터 변조 공격이 전체 검증 노드의 1/3 이상 노드만 확보해도 정상 합의를 실패하게 만들고 정상 합의로 복귀하지 못하도록 교착 상태로 만들 수 있는 문제점이 있다.In this way, since the block data can be changed only by obtaining more than 2/3 of the total verification node (n) in the PBFT, securing more than 51% of the nodes is more resistant to data tampering attacks than PoW and PoS capable of data tampering. However, there is a problem in that a data falsification attack can cause a normal agreement to fail even if only more than one third of the total verification nodes are secured, and a deadlock may not be returned to the normal agreement.

한국 공개 특허 제10-2018-0113140호 (2018.10.15 공개)Korean Open Patent No. 10-2018-0113140 (published 2018.10.15)

본 발명의 목적은 PBFT 합의 알고리즘을 기반으로 신뢰 평가 모델을 접목하여, 비정상 행위에 대한 벌칙 부과를 통해 합의 성공률 향상 및 합의 교착상태에서 정상 합의로 회귀할 수 있도록 하는 블록체인 네트워크의 장애 허용 합의 방법을 제공하는데 있다.The object of the present invention is to incorporate a trust evaluation model based on the PBFT consensus algorithm, improve the success rate of consensus through imposing penalties for abnormal behaviors, and allow a consensus method of a blockchain network to allow a consensus deadlock to return to normal consensus. To provide.

상기 목적을 달성하기 위한 본 발명의 일 실시예에 따른 블록체인 네트워크를 위한 장애 허용 합의 방법은 n개의 검증 노드 중 기지정된 리더 노드가 적어도 하나의 클라이언트로부터 전송된 트랜잭션 요청이 포함된 블록이 수신되면, 상기 리더 노드에 대해 이전 투표 결과로부터 획득된 로컬 신뢰도인 리더 신뢰도를 상기 블록에 포함하여 나머지 검증 노드인 백업 노드들로 전파하는 단계; 상기 백업 노드들 각각이 이전 투표 결과로부터 획득된 자신에 대한 로컬 신뢰도인 백업 신뢰도와 상기 리더 신뢰도를 비교하여, 서로 상이하면 다른 검증 노드들로 리더 신뢰도를 상기 백업 신뢰도로 변경한 준비 메시지를 전파하는 단계; 상기 검증 노드들 각각이 수신한 준비 메시지를 분석하여, 동일한 값을 갖는 로컬 신뢰도의 개수가 기지정된 기준 개수 이상이면, 다른 검증 노드들로 상기 로컬 신뢰도를 글로벌 신뢰도에 적용하여 결정 메시지를 전파하는 단계; 및 상기 검증 노드들 각각이 결정 메시지에 포함된 글로벌 신뢰도의 합을 기반으로 트랜잭션 요청에 대한 투표를 수행하여, 블록을 블록체인에 추가하는 단계; 를 포함한다.In order to achieve the above object, a method of concluding a fault tolerance for a blockchain network according to an embodiment of the present invention, when a given leader node among n verification nodes receives a block including a transaction request transmitted from at least one client , Providing a leader reliability, which is a local reliability obtained from a previous voting result, to the leader node in the block, and propagating to the remaining verification nodes, backup nodes; When each of the backup nodes compares the backup reliability, which is the local reliability of the self obtained from the previous voting results, with the reader reliability, and if they are different from each other, propagates a preparation message that changes the reader reliability to the backup reliability to other verification nodes. step; Analyzing the preparation message received by each of the verification nodes, and if the number of local trusts having the same value is equal to or greater than a predetermined reference number, propagating the decision message by applying the local trust to the global trusts to other verification nodes ; And each of the verification nodes voting for a transaction request based on the sum of global reliability included in the decision message, adding a block to the blockchain; It includes.

상기 블록체인에 추가하는 단계는 상기 n개의 검증 노드들 각각에 대한 글로벌 신뢰도(

Figure pat00001
)의 합이 기지정된 글로벌 기준 비율 이상인지 판별하는 단계; 상기 글로벌 기준 비율 이상이면, 상기 블록에 대한 글로벌 신뢰도 합의가 성공한 것으로 판별하여 블록을 블록체인에 추가하는 단계; 추가된 결과를 상기 클라이언트로 전달하는 단계; 및 합의 성공 여부에 따라 검증 노드 각각에 대한 로컬 신뢰도를 재계산하는 단계; 를 포함할 수 있다.The step of adding to the blockchain is the global reliability of each of the n verification nodes (
Figure pat00001
Determining whether the sum of) is greater than or equal to a predetermined global reference ratio; If it is equal to or greater than the global reference ratio, determining that the global reliability agreement for the block is successful and adding the block to the blockchain; Passing the added result to the client; And recalculating local reliability for each verification node according to whether the agreement is successful. It may include.

상기 로컬 신뢰도를 재계산하는 단계는 글로벌 신뢰도 합의가 성공한 것으로 판별되면, 상기 n개의 검증 노드 중 i번째 검증 노드가 계산한 k번째 검증 노드에 대한 t번째 라운드의 로컬 신뢰도(Ct i,k)를 수학식 In the step of recalculating the local reliability, if it is determined that the global reliability agreement is successful, the local reliability of the t-th round for the k-th verification node calculated by the i-th verification node among the n verification nodes (C t i,k ) Equation

Figure pat00002
Figure pat00002

(여기서

Figure pat00003
는 k번째 검증 노드에 대한 t번째 라운드의 글로벌 신뢰도이고, Vk는 n개의 검증 노드 중 k번째 검증 노드를 의미하고, R은 정상적인 리더 노드의 제안에 동의하는 투표를 수행한 로얄 노드의 집합을 나타내고, F는 장애 노드 집합을 나타내며, α는 패널티 가중치이다.)에 따라 계산하는 단계; 및 글로벌 신뢰도 합의가 실패한 것으로 판별되면, 상기 검증 노드들 각각에 대한 로컬 신뢰도를 수학식(here
Figure pat00003
Is the global reliability of the t-th round for the k-th verification node, V k is the k-th verification node among n verification nodes, and R is the set of royal nodes that have voted to agree to the proposal of the normal leader node. F is a set of faulty nodes, and α is a penalty weight. And when it is determined that the global reliability agreement has failed, the local reliability for each of the verification nodes is expressed by the equation.

Figure pat00004
Figure pat00004

에 따라 계산하는 단계; 를 포함할 수 있다.Calculating according to; It may include.

상기 로컬 신뢰도를 재계산하는 단계는 상기 글로벌 신뢰도 합의 성공 여부에 따라 상기 글로벌 신뢰도에 기반하여 합의 경계(Consensus Bound)가 수학식 The step of recalculating the local reliability is based on whether the global reliability agreement is successful, the consensus boundary is based on the global reliability.

Figure pat00005
Figure pat00005

에 따라 가변될 수 있다.It can be changed according to.

상기 결정 메시지를 전파하는 단계는 상기 검증 노드들 각각이 수신한 준비 메시지를 분석하여, 동일한 값을 갖는 로컬 신뢰도의 개수가 기지정된 기준 개수 이상인지 판별하는 단계; 상기 기준 개수 이상이면, 동일한 값의 로컬 신뢰도를 현재 라운드의 글로벌 신뢰도에 반영하는 단계; 상기 기준 개수 미만이면, 백업 로컬 신뢰도를 현재 라운드의 글로벌 신뢰도에 반영하는 단계; 및 동일한 로컬 신뢰도 값을 갖는 검증 노드들의 글로벌 신뢰도의 합이 기지정된 글로벌 기준 값 이상인지 판별하고, 글로벌 기준 값 이상이면, 결정 메시지를 다른 검증 노드로 전파하는 단계; 를 포함할 수 있다.Propagating the determination message may include analyzing a preparation message received by each of the verification nodes to determine whether the number of local reliability values having the same value is greater than or equal to a predetermined reference number; If the number is greater than or equal to the reference number, reflecting the local reliability of the same value in the global reliability of the current round; If it is less than the reference number, reflecting the backup local reliability to the global reliability of the current round; And determining whether the sum of global reliability of verification nodes having the same local reliability value is equal to or greater than a predetermined global reference value, and if it is equal to or greater than the global reference value, propagating a decision message to another verification node. It may include.

따라서, 본 발명의 실시예에 따른 블록체인 네트워크의 합의 방해요인 제거를 위한 장애 허용 합의 방법은 블록체인의 합의 노드 중 비잔틴 장애 노드들의 합의에 대한 영향력을 낮춰 교착 상태에서 정상 합의로 회귀할 수 있도록 함으로써, 정상적인 합의의 성공률을 높일 수 있다.Therefore, the method of allowing a fault to remove the obstacles to the consensus of the blockchain network according to the embodiment of the present invention reduces the influence on the consensus of the Byzantine obstacle nodes among the consensus nodes of the blockchain so that it can return to the normal consensus in a deadlock. By doing so, it is possible to increase the success rate of a normal agreement.

도 1은 PBFT 합의 알고리즘을 통한 합의 절차의 일예를 나타낸다.
도 2는 본 발명의 일 실시예에 따른 블록체인 네트워크 구성을 나타낸다.
도 3은 블록체인 네트워크의 합의 방해요인 제거를 위한 장애 허용 합의 방법을 나타낸다.
도 4는 본 발명의 일 실시예에 따른 수정된 블록 구조를 나타낸다.
도5 는 본 발명의 일 실시예에 따른 장애 허용 블록체인 단말의 개략적 구조를 나타낸다.
1 shows an example of a consensus procedure through a PBFT consensus algorithm.
2 shows a block chain network configuration according to an embodiment of the present invention.
Fig. 3 shows a method of concluding a disability allowance for removing a blockage of consensus in a blockchain network.
4 shows a modified block structure according to an embodiment of the present invention.
5 shows a schematic structure of a disability-tolerant blockchain terminal according to an embodiment of the present invention.

본 발명과 본 발명의 동작상의 이점 및 본 발명의 실시에 의하여 달성되는 목적을 충분히 이해하기 위해서는 본 발명의 바람직한 실시예를 예시하는 첨부 도면 및 첨부 도면에 기재된 내용을 참조하여야만 한다. In order to fully understand the present invention, the operational advantages of the present invention, and the objects achieved by the practice of the present invention, reference should be made to the accompanying drawings and the contents described in the accompanying drawings, which illustrate preferred embodiments of the present invention.

이하, 첨부한 도면을 참조하여 본 발명의 바람직한 실시예를 설명함으로써, 본 발명을 상세히 설명한다. 그러나, 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며, 설명하는 실시예에 한정되는 것이 아니다. 그리고, 본 발명을 명확하게 설명하기 위하여 설명과 관계없는 부분은 생략되며, 도면의 동일한 참조부호는 동일한 부재임을 나타낸다. Hereinafter, the present invention will be described in detail by explaining preferred embodiments of the present invention with reference to the accompanying drawings. However, the present invention may be implemented in various different forms, and is not limited to the described embodiments. In addition, in order to clearly describe the present invention, parts irrelevant to the description are omitted, and the same reference numerals in the drawings indicate the same members.

명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라, 다른 구성요소를 더 포함할 수 있는 것을 의미한다. 또한, 명세서에 기재된 "...부", "...기", "모듈", "블록" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어나 소프트웨어 또는 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다. Throughout the specification, when a part “includes” a certain component, this means that other components may be further included, rather than excluding other components, unless otherwise specified. In addition, terms such as "... unit", "... group", "module", and "block" described in the specification mean a unit that processes at least one function or operation, which is hardware or software or hardware. And software.

도 2는 본 발명의 일 실시예에 따른 블록체인 네트워크 구성을 나타낸다.2 shows a blockchain network configuration according to an embodiment of the present invention.

도 2를 참조하면, 본 실시예에 따른 블록체인 네트워크(200)는 다수의 노드 중 메쉬 타입(mesh-type)으로 상호 통신이 가능한 n(여기서 n은 자연수)개의 검증 노드(211 ~ 21n)를 포함하여 다수의 클라이언트들로부터 전송되는 트랜잭션 요청을 검증하고 합의하여 블록에 추가할 수 있다. 도 2에서는 설명의 편의를 위하여 검증 노드(211 ~ 21n)를 4개만 도시하였으나, 검증 노드의 개수는 다양하게 조절될 수 있다. 그리고 다수의 검증 노드(211 ~ 21n) 중 제1 검증 노드(211)는 다수의 클라이언트(221 ~ 22m) 중 적어도 하나의 클라이언트로부터 트랜잭션 요청을 인가받는 리더 노드이며, 나머지 제2 내지 제4 검증 노드(212 ~ 21n)는 백업 노드인 것으로 가정한다.Referring to FIG. 2, the blockchain network 200 according to the present embodiment includes n verification nodes 211 to 21n (where n is a natural number) capable of mutual communication in a mesh-type among a plurality of nodes. Including, transaction requests sent from multiple clients can be verified and agreed to be added to the block. In FIG. 2, only four verification nodes 211 to 21n are illustrated for convenience of description, but the number of verification nodes may be variously adjusted. In addition, the first verification node 211 among the plurality of verification nodes 211 to 21n is a leader node receiving a transaction request from at least one of the plurality of clients 221 to 22m, and the remaining second to fourth verification nodes It is assumed that 212 to 21n are backup nodes.

상기한 바와 같이 다수의 검증 노드(211 ~ 21n) 중 리더 노드(211)는 적어도 하나의 클라이언트(221 ~ 22m)로부터 인가된 트랜잭션 요청을 검증 및 정렬하여 다른 검증 노드들인 백업 노드들(212 ~ 21n)로 전파하고, 다수의 검증 노드(211 ~ 21n)간의 합의를 통하여 블록을 확정하고, 블록체인에 추가하는 절차로 블록을 연장 및 유지한다.As described above, among the plurality of verification nodes 211 to 21n, the leader node 211 verifies and sorts the transaction requests authorized from at least one client 221 to 22m to backup nodes 212 to 21n, which are other verification nodes. ), and confirm the block through consensus among multiple verification nodes 211 to 21n, and extend and maintain the block by adding it to the blockchain.

블록체인에 참여하고 있는 모든 n개 검증 노드(211 ~ 21n)는 합의 라운드마다 합의에 참여하며, 특정시점(t0)부터 활동하는 악성 노드는 블록 변조 시도 또는 합의 미참여를 수행한다. 악성 노드가 정상적으로 합의에 참여하는 것은 합의에 영향이 없으며, 악의적 의도를 관철하려면 더 많은 검증 노드들에게 메시지를 보내야 효과적이므로 합의 단계별로 다른 검증 노드에게 정상 메시지와 변조 메시지를 동시에 보내는 것은 고려하지 않는다. 이때 정상 노드가 네트워크 환경에 따라 시간 지연(time delay), 네트워크 혼잡(network congestion) 등에 의해 합의에 참여 실패하게 되더라도, 합의에 부정적 영향을 미치므로 패널티(penalty)를 부여한다.All n verification nodes (211 to 21n) participating in the blockchain participate in the consensus for each round of consensus, and the malicious node operating from a specific point in time (t 0 ) performs block tampering attempts or non-consensus. It is effective to send a message to more verification nodes in order to overcome the malicious intention, because the malicious node normally participates in the consensus, so it is not considered to send the normal message and the tamper message to other verification nodes at the same time. . At this time, even if the normal node fails to participate in the agreement due to a time delay, network congestion, or the like, depending on the network environment, a penalty is given because it has a negative effect on the agreement.

블록체인 네트워크의 n개의 검증 노드(211 ~ 21n) 중 사전에 결정된 리더 노드(211)가 블록을 생성하며, n개 검증 노드(211 ~ 21n) 중 장애(Faulty) 노드의 개수가 f개일 때, 검증 노드 집합(V)과 장애 노드 집합(F), 정상적인 리더 노드(211)의 제안에 동의하는 투표를 한 로얄(Royal) 노드의 집합(R)은 각각 V={Vk|k=1, ..., n}, F={Fk|k=1, ..., f}, R={Rk|k=1, ..., n-f}로 정의될 수 있다.When a predetermined leader node 211 among the n verification nodes 211 to 21n of the blockchain network generates a block, and the number of faulty nodes among the n verification nodes 211 to 21n is f, The verification node set (V), the failure node set (F), and the set of royal nodes (R) that voted to agree to the proposal of the normal leader node 211 are V={V k |k=1, respectively. ..., n}, F={F k |k=1, ..., f}, R={R k |k=1, ..., nf}.

블록체인 네트워크의 n개의 검증 노드(211 ~ 21n) 각각은 결정(commit) 단계에서 수집한 투표 정보를 바탕으로 신뢰도 평가를 실시하여 로컬 신뢰도(Local Credibility)(Ct i,k)를 계산한다. 여기서 i번째 검증 노드(21i)가 계산한 전체 검증 노드에 대한 로컬 신뢰도 집합(Ct i)은 수학식 1과 같이 표현된다.Each of the n verification nodes 211 to 21n of the blockchain network calculates local credibility (C t i,k ) by performing a reliability evaluation based on the voting information collected in the commit phase. Here, the local reliability set C t i for the entire verification node calculated by the i-th verification node 21i is expressed by Equation 1.

Figure pat00006
Figure pat00006

각 검증 노드들(211 ~ 21n)은 t-1 라운드에서 투표를 통해 평가한 로컬 신뢰도(Ct i,k)를 t 라운드까지 유지한다. 리더 노드(211)는 t 라운드 시 자신의 로컬 신뢰도(Ct 1)를 블록과 함께 제안한다. 검증 노드(211 ~ 21n) 간 합의로 결정된 신뢰도는 글로벌 신뢰도로 인정되며 수학식 2로 표현도리 수 있다.Each of the verification nodes 211 to 21n maintains the local reliability (C t i,k ) evaluated by voting in round t-1 until round t. The leader node 211 proposes its local reliability (C t 1 ) together with the block at t round. The reliability determined by the agreement between the verification nodes 211 to 21n is recognized as global reliability and can be expressed by Equation (2).

Figure pat00007
Figure pat00007

블록체인의 최초의 블록인 제네시스 블록(Genesis block)에서 이전 노드에 대한 신뢰도는 1이며, 두번째 블록부터 이전 라운드의 투표결과에 따라 신뢰도를 계산한다. 먼저 정상적인 리더 노드(211)의 제안에 동의하는 투표를 했을 경우 해당 노드는 로얄 노드(R)로 판단하며 이전 라운드의 신뢰도를 유지한다.In the Genesis block, the first block of the blockchain, the reliability of the previous node is 1, and the reliability is calculated according to the voting results of the previous round from the second block. First, if a vote is agreed to the proposal of the normal leader node 211, the node is judged as a royal node (R) and maintains the reliability of the previous round.

그러나 잘못된 투표를 하거나 투표를 하지 않은 장애 노드(F)로 판단되면, 이전 라운드의 전체 장애 노드의 신뢰도를 전체 검증 노드의 신뢰도로 나눈 값에 패털티 가중치(α)를 곱한 값만큼 감소시킨다. 이때 신뢰도 합의 절차(Credibility Consensus Procedures)를 통해 정상적으로 글로벌 신뢰도가 결정된 경우, k번째 노드의 t-1 라운드 로컬 신뢰도(Ct-1 i,k)는 글로벌 신뢰도의 k번째 검증 노드의 t 라운드 글로벌 신뢰도(

Figure pat00008
)와 같다. 이를 통해 로컬 신뢰도(Ct i,k)는 수학식 3과 같이 계산된다.However, if it is judged that the failure node (F) who votes incorrectly or does not vote, the reliability of the total failure node in the previous round divided by the reliability of the total verification node is reduced by the value multiplied by the penalty weight α. At this time, if global reliability is normally determined through credibility consensus procedures, the t-1 round local reliability of the kth node (C t-1 i,k ) is the t round global reliability of the kth verification node of the global reliability. (
Figure pat00008
). Through this, the local reliability (C t i,k ) is calculated as in Equation 3.

Figure pat00009
Figure pat00009

반면, 글로벌 신뢰도의 합의가 실패한다면, 이전 라운드의 로컬 신뢰도를 활용하여 수학식 4와 같이 해당 라운드의 신뢰도를 재계산한다.On the other hand, if the global reliability agreement fails, the reliability of the round is recalculated using Equation 4 using the local reliability of the previous round.

Figure pat00010
Figure pat00010

수학식 3 및 4에서 장애 노드의 개수(f)가 증가할수록 정상 합의에 실패할 확률이 증가한다. 그러므로 장애 노드의 신뢰도 합의 증가에 비례하여 장애 노드들과 전체 검증 노드들(211 ~ 21n)의 신뢰도 합의 비율만큼 패널티를 증가시킴으로써, 장애 노드 합의 영향력을 감소시켜 합의 성공률을 높일 수 있다.In equations (3) and (4), as the number (f) of fault nodes increases, the probability of failure of the normal agreement increases. Therefore, by increasing the penalty by the reliability agreement ratio of the failure nodes and the entire verification nodes 211 to 21n in proportion to the increase in the reliability agreement of the failure node, the influence of the failure node agreement can be reduced to increase the agreement success rate.

이는 다수의 검증 노드에 의한 합의 경계를 적응적으로 변화시켜, 합의 방해 요인인 장애 노드의 존재에도 불구하고, 성공률 향상 및 합의 교착상태에서 정상 합의로 회귀할 수 있도록 하며, 본 실시예에 따른 장해 허용 합의 알고리즘을 적응적 합의 경계(Adaptive Consensus Bound) PBTF(이하: ACB-PBFT) 알고리즘이라 한다.This adaptively changes the consensus boundary by a number of verification nodes, so that despite the existence of a disability node that is a consensus obstacle, the success rate can be improved and the consensus deadlock can be returned to the normal consensus, and the obstacle according to this embodiment The allowable consensus algorithm is called an adaptive consensus bound PBTF (hereafter referred to as ACB-PBFT) algorithm.

각 검증 노드의 신뢰 값(Trust value)을 의미하는 신뢰도는 각 노드별로 계산된다. 계산된 신뢰도를 이용하여 전체 검증 노드가 하나의 신뢰 값을 공유하기 위해서는 3 단계 프로토콜(3-phase protocol) 방식으로 합의를 수행한다.The reliability, which means the trust value of each verification node, is calculated for each node. Using the calculated reliability, consensus is performed in a 3-phase protocol method in order for all the verification nodes to share a single trust value.

도 3은 블록체인 네트워크의 합의 방해요인 제거를 위한 장애 허용 합의 방법을 나타내고, 도 4는 본 발명의 일 실시예에 따른 수정된 블록 구조를 나타낸다.FIG. 3 shows a method of allowing a consensus for disabling an obstacle to consensus in a blockchain network, and FIG. 4 shows a modified block structure according to an embodiment of the present invention.

도 3의 장애 허용 합의 방법을 설명하기에 앞서, 도 4를 참조하여 본 실시예에 따라 수정된 블록 구조를 우선 설명하면, 블록은 블록 헤더(Block Header)(410)와 블록 바디(Block Body)(420)로 구분된다. 그리고 블록 헤더(410)는 버전 필드(Version)(411), 이전 블록 해시 필드(Hash of Prev. Block)(404), 머클 루트 해시 필드(Hash of Merkle Root)(405) 및 타임 스탬프(Time Stamp)(406)로 구성될 수 있다. 한편, 블록 바디(420)는 트랜잭션 카운터(Trasaction Counter)(421), 신뢰도 트랜잭션(Credibility Transaction)(422) 및 트랜잭션(Transactions)(423)으로 구성될 수 있다.Prior to explaining the method of consensing to allow the failure of FIG. 3, first, the modified block structure according to the present embodiment will be described with reference to FIG. 4, and the block includes a block header 410 and a block body. 420. In addition, the block header 410 includes a version field (Version) 411, a previous block hash field (Hash of Prev. Block) 404, a hash field (Hash of Merkle Root) 405, and a time stamp (Time Stamp). ) 406. Meanwhile, the block body 420 may be composed of a transaction counter 421, a reliability transaction 422, and transactions 423.

도 4에 도시된 본 실시예에 따른 블록 구조를 기존의 대표적인 블록체인 시스템인 비트코인의 블록 구조와 비교하면, 본 실시예의 블록체인 네트워크는 블록 생성자인 리더 노드를 비경쟁형으로 선정하므로, 블록 생성자를 결정하기 위해 비트코인에서 사용되는 난이도(Difficulty) 필드와 논스(Nonce) 필드가 제거되었다. 또한 본 실시예에 따른 ACB-PBFT는 각 검증 노드의 투표권(Voting Power)을 의미하는 신되도(Credibility)를 사용하므로, 이하에서 설명하는 신뢰도 합의 절차(Credibility Consensus Procedures)를 통해 합의된 각 검증 노드의 신뢰도 전체 집합인 글로벌 신뢰도를 블록 바디(420) 내 신뢰도 트랜잭션 필드 (422)에 기록하여 블록체인을 유지하고 있는 전체 검증 노드가 동일한 글로벌 신뢰도를 공유할 수 있도록 한다.When the block structure according to the present embodiment shown in FIG. 4 is compared with the block structure of the existing representative blockchain system Bitcoin, the block chain network of the present embodiment selects the block generator leader node as non-competitive, so the block constructor The Difficulty and Nonce fields used in Bitcoin have been removed to determine. In addition, the ACB-PBFT according to the present embodiment uses credibility, which means voting power of each verification node, so each verification node agreed through the Credibility Consensus Procedures described below. The global reliability, which is a full set of reliability, is recorded in the reliability transaction field 422 in the block body 420 so that all verification nodes maintaining the blockchain can share the same global reliability.

이하에서는 도 2 및 도 4를 참조하여, 도 3의 장애 허용 합의 방법을 설명한다. 본 실시예에 따른 장애 허용 합의 방법 또한 기본적으로 도 1에 도시된 PBFT 알고리즘과 마찬가지로, 요청 단계, 선 준비 단계, 준비 단계, 결정 단계 및 응신 단계를 포함하여 수행될 수 있다.Hereinafter, with reference to FIGS. 2 and 4, a method for concluding a fault tolerance of FIG. 3 will be described. The disability tolerant consensus method according to the present embodiment may also basically be performed by including a request step, a preliminary preparation step, a preparation step, a decision step, and a response step, like the PBFT algorithm shown in FIG. 1.

우선 신뢰도 합의 절차를 수행한다. 요청 단계(미도시)에서 적어도 하나의 클라이언트로부터 리더 노드(211)로 트랜잭션 요청이 전송되면, 선 준비 단계에서 리더 노드(211)는 이전 라운드(t-1)의 투표 결과로 계산된 리더 로컬 신뢰도(CL t-1)를 도 4의 블록 데이터의 신뢰도 트랜잭션 필드(422)에 기록하여, 블록을 나머지 검증 노드들인 백업 노드들(212 ~ 21n)에게 전파하여 제안한다(S31). First, the reliability consensus procedure is performed. When a transaction request is transmitted from at least one client to the leader node 211 in the requesting step (not shown), in the preliminary preparation step, the leader node 211 is the leader local reliability calculated as a result of voting in the previous round (t-1). (C L t-1 ) is recorded in the reliability transaction field 422 of the block data of FIG. 4 to propagate the block to the backup nodes 212 to 21n, which are the remaining verification nodes, and propose (S31).

그리고 준비 단계에서 블록을 수신한 백업 노드들(212 ~ 21n) 각각은 이전 라운드(t-1)에서 계산된 자신의 백업 로컬 신뢰도(Ci t-1)와 리더 노드(211)에서 전송된 블록의 신뢰도 트랜잭션 필드(422)에 기록된 리더 로컬 신뢰도(CL t-1)가 동일한지 판별한다(S32).In addition, each of the backup nodes 212 to 21n that has received the block in the preparation phase has its own backup local reliability (C i t-1 ) calculated in the previous round ( t-1 ) and the block transmitted from the leader node 211. It is determined whether the leader local reliability (C L t-1 ) recorded in the reliability transaction field 422 is the same (S32).

판별 결과, 자신의 백업 로컬 신뢰도(Ci t-1)와 리더 로컬 신뢰도(CL t-1)가 동일하면, 리더 로컬 신뢰도(CL t-1)를 선택하고, 선택된 리더 로컬 신뢰도(CL t-1)가 기록된 블록을 준비 메시지로서 리더 노드(211)를 제외한 다른 백업 노드들로 전파한다(S33). 그러나 백업 로컬 신뢰도(Ci t-1)와 리더 로컬 신뢰도(CL t-1)가 서로 상이하면, 블록의 신뢰도 트랜잭션 필드(422)에 백업 로컬 신뢰도(Ci t-1)를 기록하여 리더 노드(211)를 제외한 다른 검증 노드들로 전파한다(S34).As a result of determination, if the backup local reliability (C i t-1 ) and the leader local reliability (C L t-1 ) are the same, the leader local reliability (C L t-1 ) is selected, and the selected leader local reliability (C i t-1 ) is selected. L t-1 ) is propagated to the other backup nodes except the leader node 211 as a preparation message (S33). However, if the backup local reliability (C i t-1 ) and the reader local reliability (C L t-1 ) are different from each other, the backup local reliability (C i t-1 ) is recorded in the block's reliability transaction field 422 to read the reader. It propagates to other verification nodes except the node 211 (S34).

결정 단계에서 모든 검증 노드(211 ~ 21n)는 자신이 선택한 로컬 신뢰도와 다른 검증 노드들로부터 전파된 준비 메시지의 로컬 신뢰도(Ci t-1)를 분석한다(S35). 그리고 분석된 로컬 신뢰도에서 동일한 값을 갖는 로컬 신뢰도의 개수가 전체 검증 노드(211 ~ 21n)의 개수(n)에 대해 기지정된 기준 개수 이상인지 판별한다(S36). 여기서 기준 개수는 일예로 2(n-1)/3로 설정될 수 있다.In the determining step, all the verification nodes 211 to 21n analyze the local reliability (C i t-1 ) of the prepared message propagated from other verification nodes and the local reliability selected by them (S35 ). Then, it is determined whether the number of local reliability having the same value in the analyzed local reliability is greater than or equal to a predetermined reference number with respect to the number n of all the verification nodes 211 to 21n (S36). Here, the reference number may be set to 2(n-1)/3 as an example.

만일 동일한 값을 갖는 로컬 신뢰도(Ck)의 개수가 기준 개수 이상이면, 해당 검증 노드는 동일한 값의 로컬 신뢰도를 현재 라운드의 글로벌 신뢰도(

Figure pat00011
)에 반영하여, 즉 로컬 신뢰도를 블록의 신뢰도 트랜잭션 필드(422)에 기록하여 결정 메시지로서 다른 노드로 전파한다(S37). 그러나 동일한 값을 갖는 로컬 신뢰도의 개수가 기준 개수 미만이면, 백업 로컬 신뢰도(Ci t-1)를 현재 라운드의 글로벌 신뢰도(
Figure pat00012
)에 반영하여 결정 메시지를 다른 검증 노드로 전파한다(S38).If the number of local reliability (C k ) having the same value is greater than or equal to the reference number, the corresponding verification node sets the local reliability of the same value to the global reliability of the current round (
Figure pat00011
), that is, the local reliability is recorded in the block's reliability transaction field 422 and propagated to other nodes as a decision message (S37). However, if the number of local reliability values having the same value is less than the reference number, the backup local reliability (C i t-1 ) is set to the global reliability of the current round (
Figure pat00012
) To propagate the decision message to another verification node (S38).

이때 검증 노드(211 ~ 21n) 각각은 준비 메시지를 전송한 검증 노드들, 즉 동일한 로컬 신뢰도 값을 갖는 검증 노드들의 글로벌 신뢰도의 합이 기지정된 글로벌 기준 값(예를 들면,

Figure pat00013
) 이상인지 판별하고, 글로벌 기준 값 이상이면, 결정 메시지를 다른 검증 노드로 전파하도록 구성될 수 있다.In this case, each of the verification nodes 211 to 21n is a global reference value (for example, a sum of global reliability of verification nodes that transmit a preparation message, that is, verification nodes having the same local reliability value), for example.
Figure pat00013
), and may be configured to propagate the decision message to another verification node if it is greater than or equal to the global reference value.

이러한 과정을 통해 리더 노드(211)가 제안한 리더 신뢰도 또는 전체 검증 노드 중 2f+1개 이상의 검증 노드가 공유하는 동일한 로컬 신뢰도는 글로벌 신뢰도 인정받고, 인정된 글로벌 신뢰도 값이 블록의 신뢰도 트랜잭션 필드(422)에 기록되어 된다.Through this process, the leader reliability proposed by the leader node 211 or the same local reliability shared by 2f+1 or more verification nodes among all verification nodes is recognized as global reliability, and the recognized global reliability value is the block's reliability transaction field (422 ).

본 실시예에서 글로벌 신뢰도(

Figure pat00014
)는 각 검증 노드(211 ~ 21n)의 투표 가중치로 이용될 수 있다. 다수의 검증 노드(211 ~ 21n) 각각은 자신을 포함한 다수의 검증 노드 중 동일한 결과 메시지를 전파한 검증 노드들의 글로벌 신뢰도의 합(
Figure pat00015
)이 기지정된 글로벌 기준 비율 이상인지 판별하고, 다수의 검증 노드(211 ~ 21n) 각각은 글로벌 신뢰도의 합(
Figure pat00016
)이 글로벌 기준 비율 이상이면, 합의가 성공된 것으로 판별하여 블록을 블록체인에 추가하고, 추가된 결과를 클라이언트로 전달한다(S40). 여기서 기준 비율은 일예로
Figure pat00017
로 설정될 수 있다.Global reliability in this embodiment (
Figure pat00014
) May be used as a voting weight for each verification node 211 to 21n. Each of the plurality of verification nodes 211 to 21n is the sum of the global reliability of the verification nodes that propagated the same result message among the plurality of verification nodes including itself (
Figure pat00015
) Is determined to be equal to or greater than a predetermined global reference ratio, and each of the plurality of verification nodes 211 to 21n is the sum of global reliability (
Figure pat00016
) Is greater than the global standard ratio, it is determined that the agreement is successful, the block is added to the blockchain, and the added result is transmitted to the client (S40). Here, the reference ratio is an example
Figure pat00017
Can be set to

상기한 바와 같이, 본 실시예에 따른 ACB-PBFT 합의 방법은 다수의 검증 노드(211 ~ 21n)에 대한 합의 성공을 판단하는 합의 경계(Consensus Bound)가 적응적으로 변화하게 되며, 각각의 합의 경계는 수학식 5와 같이 표현될 수 있다.As described above, in the ACB-PBFT consensus method according to the present embodiment, the consensus boundary for determining consensus success for a plurality of verification nodes 211 to 21n is adaptively changed, and each consensus boundary Can be expressed as Equation (5).

Figure pat00018
Figure pat00018

그리고 블록에 대한 투표 결과에 따라 모든 검증 노드(211 ~ 21n)에 대한 로컬 신뢰도(Ct i)를 수학식 3 또는 4에 따라 재계산한다(S41).Then, the local reliability C t i for all the verification nodes 211 to 21n is recalculated according to Equation 3 or 4 according to the voting result for the block (S41).

도5 는 본 발명의 일 실시예에 따른 장애 허용 블록체인 단말의 개략적 구조를 나타낸다.5 shows a schematic structure of a disability-tolerant blockchain terminal according to an embodiment of the present invention.

도5 를 참조하면, 단말은 정보교환 및 합의수행을 위해 정보 입력부(501), 메모리(502), CPU(503), 메시지 처리부(504), 정보 출력부(505)를 포함할 수 있다.Referring to FIG. 5, the terminal may include an information input unit 501, a memory 502, a CPU 503, a message processing unit 504, and an information output unit 505 for information exchange and agreement.

정보 입력부(501)는 다른 노드로부터 전달받은 투표 정보를 수신하는 역할을 수행한다.The information input unit 501 serves to receive vote information received from another node.

메모리(502)는 CPU에서 처리한 정보들을 저장한다. 구체적으로 메모리는 각 노드의 투표 정보, 계산된 신뢰도 정보, 블록체인 데이터 등의 정보를 저장한다. The memory 502 stores information processed by the CPU. Specifically, the memory stores information such as voting information of each node, calculated reliability information, and blockchain data.

CPU(503)는 수신된 투표 정보를 메시지 처리부(504)로 송신하며, 메시지 처리부에서 수신한 투표 정보를 정보 출력부(505)로 송신한다. 또한 정보 입력부(501), 정보 출력부(505), 메모리(502), 메시지 처리부(504)에 대한 동작을 제어한다.The CPU 503 transmits the received voting information to the message processing unit 504, and transmits the voting information received by the message processing unit to the information output unit 505. In addition, operation of the information input unit 501, the information output unit 505, the memory 502, and the message processing unit 504 is controlled.

메시지 처리부(504)는 타 노드의 투표 정보를 분석하여 신뢰도 정보를 계산 및 합의 단계별 수신되는 메시지를 비교 검증하는 역할을 수행한다.The message processing unit 504 analyzes the voting information of other nodes to calculate the reliability information and compares and validates the received messages at each stage of the agreement.

본 발명에 따른 방법은 컴퓨터에서 실행 시키기 위한 매체에 저장된 컴퓨터 프로그램으로 구현될 수 있다. 여기서 컴퓨터 판독가능 매체는 컴퓨터에 의해 액세스 될 수 있는 임의의 가용 매체일 수 있고, 또한 컴퓨터 저장 매체를 모두 포함할 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 모두 포함하며, ROM(판독 전용 메모리), RAM(랜덤 액세스 메모리), CD(컴팩트 디스크)-ROM, DVD(디지털 비디오 디스크)-ROM, 자기 테이프, 플로피 디스크, 광데이터 저장장치 등을 포함할 수 있다.The method according to the present invention can be implemented as a computer program stored in a medium for execution on a computer. Computer readable media herein can be any available media that can be accessed by a computer, and can also include any computer storage media. Computer storage media includes both volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data, and ROM (readable) Dedicated memory), RAM (random access memory), CD (compact disk)-ROM, DVD (digital video disk)-ROM, magnetic tape, floppy disk, optical data storage, and the like.

본 발명은 도면에 도시된 실시예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다.Although the present invention has been described with reference to the embodiments shown in the drawings, these are merely exemplary, and those skilled in the art will understand that various modifications and other equivalent embodiments are possible therefrom.

따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 청구범위의 기술적 사상에 의해 정해져야 할 것이다.Therefore, the true technical protection scope of the present invention should be defined by the technical spirit of the appended claims.

Claims (5)

n개의 검증 노드 중 기지정된 리더 노드가 적어도 하나의 클라이언트로부터 전송된 트랜잭션 요청이 포함된 블록이 수신되면, 상기 리더 노드에 대해 이전 투표 결과로부터 획득된 로컬 신뢰도인 리더 신뢰도를 상기 블록에 포함하여 나머지 검증 노드인 백업 노드들로 전파하는 단계;
상기 백업 노드들 각각이 이전 투표 결과로부터 획득된 자신에 대한 로컬 신뢰도인 백업 신뢰도와 상기 리더 신뢰도를 비교하여, 서로 상이하면 다른 검증 노드들로 리더 신뢰도를 상기 백업 신뢰도로 변경한 준비 메시지를 전파하는 단계;
상기 검증 노드들 각각이 수신한 준비 메시지를 분석하여, 동일한 값을 갖는 로컬 신뢰도의 개수가 기지정된 기준 개수 이상이면, 다른 검증 노드들로 상기 로컬 신뢰도를 글로벌 신뢰도에 적용하여 결정 메시지를 전파하는 단계; 및
상기 검증 노드들 각각이 결정 메시지에 포함된 글로벌 신뢰도의 합을 기반으로 트랜잭션 요청에 대한 투표를 수행하여, 블록을 블록체인에 추가하는 단계; 를 포함하는 블록체인 네트워크의 장애 허용 합의 방법.
When a block containing a transaction request transmitted from at least one client is received by a designated leader node among n verification nodes, the remaining portion of the block includes the leader reliability, which is the local reliability obtained from the previous voting result, for the leader node. Propagating to backup nodes that are verification nodes;
When each of the backup nodes compares the backup reliability, which is the local reliability of itself obtained from the previous voting results, with the reader reliability, and if they are different, propagates a preparation message that changes the reader reliability to the backup reliability to other verification nodes. step;
Analyzing the preparation message received by each of the verification nodes, and if the number of local trusts having the same value is equal to or greater than a predetermined reference number, propagating the decision message by applying the local trust to the global trusts to other verification nodes ; And
Each of the verification nodes voting for a transaction request based on the sum of global reliability included in the decision message, and adding a block to the blockchain; A method of consensus tolerant of a block chain network comprising a.
제1 항에 있어서, 상기 블록체인에 추가하는 단계는
상기 n개의 검증 노드들 각각에 대한 글로벌 신뢰도(
Figure pat00019
)의 합이 기지정된 글로벌 기준 비율 이상인지 판별하는 단계;
상기 글로벌 기준 비율 이상이면, 상기 블록에 대한 글로벌 신뢰도 합의가 성공한 것으로 판별하여 블록을 블록체인에 추가하는 단계;
추가된 결과를 상기 클라이언트로 전달하는 단계; 및
합의 성공 여부에 따라 검증 노드 각각에 대한 로컬 신뢰도를 재계산하는 단계; 를 포함하는 블록체인 네트워크의 장애 허용 합의 방법.
The method of claim 1, wherein the step of adding to the blockchain
Global reliability for each of the n verification nodes (
Figure pat00019
Determining whether the sum of) is greater than or equal to a predetermined global reference ratio;
If it is equal to or greater than the global reference ratio, determining that the global reliability agreement for the block is successful and adding the block to the blockchain;
Passing the added result to the client; And
Recalculating local reliability of each verification node according to whether the agreement is successful; A method of consensus tolerant of a block chain network comprising a.
제2 항에 있어서, 상기 로컬 신뢰도를 재계산하는 단계는
글로벌 신뢰도 합의가 성공한 것으로 판별되면, 상기 n개의 검증 노드 중 i번째 검증 노드가 계산한 k번째 검증 노드에 대한 t번째 라운드의 로컬 신뢰도(Ct i,k)를 수학식
Figure pat00020

(여기서
Figure pat00021
는 k번째 검증 노드에 대한 t번째 라운드의 글로벌 신뢰도이고, Vk는 n개의 검증 노드 중 k번째 검증 노드를 의미하고, R은 정상적인 리더 노드의 제안에 동의하는 투표를 수행한 로얄 노드의 집합을 나타내고, F는 장애 노드 집합을 나타내며, α는 패널티 가중치이다.)
에 따라 계산하는 단계; 및
글로벌 신뢰도 합의가 실패한 것으로 판별되면, 검증 노드들 각각에 대한 로컬 신뢰도를 수학식
Figure pat00022

에 따라 계산하는 단계; 를 포함하는 블록체인 네트워크의 장애 허용 합의 방법.
The method of claim 2, wherein the step of recalculating the local reliability is
If it is determined that the global reliability agreement is successful, the local reliability (C t i,k ) of the t-th round for the k-th verification node calculated by the i-th verification node among the n verification nodes is expressed by Equation
Figure pat00020

(here
Figure pat00021
Is the global reliability of the t-th round for the k-th verification node, V k is the k-th verification node out of n verification nodes, and R is the set of royal nodes that have voted to agree to the proposal of the normal leader node. F is a set of faulty nodes, and α is a penalty weight.)
Calculating according to; And
If it is determined that the global reliability agreement is unsuccessful, the local reliability for each of the verification nodes is expressed by the equation.
Figure pat00022

Calculating according to; A method of consensus tolerant of a block chain network comprising a.
제3 항에 있어서, 상기 로컬 신뢰도를 재계산하는 단계는
상기 글로벌 신뢰도 합의 성공 여부에 따라 상기 글로벌 신뢰도에 기반하여 합의 경계(Consensus Bound)가 수학식
Figure pat00023

에 따라 가변되는 블록체인 네트워크의 장애 허용 합의 방법.
The method of claim 3, wherein the step of recalculating the local reliability is
Consensus Bound is based on the global reliability according to the success or failure of the global reliability agreement.
Figure pat00023

A method of consensus to allow for the failure of a blockchain network that varies depending on.
제1 항에 있어서, 상기 결정 메시지를 전파하는 단계는
상기 검증 노드들 각각이 수신한 준비 메시지를 분석하여, 동일한 값을 갖는 로컬 신뢰도의 개수가 기지정된 기준 개수 이상인지 판별하는 단계;
기준 개수 이상이면, 동일한 값의 로컬 신뢰도를 현재 라운드의 글로벌 신뢰도에 반영하는 단계;
기준 개수 미만이면, 백업 로컬 신뢰도를 현재 라운드의 글로벌 신뢰도에 반영하는 단계; 및
동일한 로컬 신뢰도 값을 갖는 검증 노드들의 글로벌 신뢰도의 합이 기지정된 글로벌 기준 값 이상인지 판별하고, 글로벌 기준 값 이상이면, 결정 메시지를 다른 검증 노드로 전파하는 단계; 를 포함하는 블록체인 네트워크의 장애 허용 합의 방법.
The method of claim 1, wherein the propagating the decision message is
Analyzing a preparation message received by each of the verification nodes, and determining whether the number of local reliability values having the same value is greater than or equal to a predetermined reference number;
If more than the reference number, reflecting the local reliability of the same value in the global reliability of the current round;
If it is less than the reference number, reflecting the backup local reliability to the global reliability of the current round; And
Determining whether the sum of global reliability of verification nodes having the same local reliability value is equal to or greater than a predetermined global reference value, and if it is equal to or greater than a global reference value, propagating a decision message to another verification node; A method of consensus tolerant of a block chain network comprising a.
KR1020190075373A 2018-12-28 2019-06-25 Fault tolerance consensus method for eliminating interference factors in blockchain networks KR102214849B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/KR2019/007674 WO2020138606A1 (en) 2018-12-28 2019-06-25 Fault-tolerant consensus method for eliminating obstacle factors of consensus in blockchain network

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020180172455 2018-12-28
KR20180172455 2018-12-28

Publications (2)

Publication Number Publication Date
KR20200083145A true KR20200083145A (en) 2020-07-08
KR102214849B1 KR102214849B1 (en) 2021-02-10

Family

ID=71600879

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190075373A KR102214849B1 (en) 2018-12-28 2019-06-25 Fault tolerance consensus method for eliminating interference factors in blockchain networks

Country Status (1)

Country Link
KR (1) KR102214849B1 (en)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112541758A (en) * 2020-12-01 2021-03-23 鲁静 Multi-round voting type fault-tolerant sequencing consensus mechanism and method based on block chain
CN112804333A (en) * 2021-01-15 2021-05-14 北京百度网讯科技有限公司 Exception handling method, device and equipment for out-of-block node and storage medium
KR102337760B1 (en) * 2020-08-27 2021-12-08 연세대학교 산학협력단 Apparatus and method for adaptively managing sharded blockchain network based on Deep Q Network
CN114003584A (en) * 2021-11-02 2022-02-01 贵州大学 Byzantine fault-tolerant consensus method based on evolutionary game
KR20220013846A (en) * 2020-07-27 2022-02-04 한국전자통신연구원 Method and apparatus for agreement of block in blockchain network
KR20220137366A (en) * 2021-04-02 2022-10-12 주식회사 헤세그 Blockchain system resistant to faulty nodes and its operation method

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101727525B1 (en) * 2016-09-05 2017-04-17 주식회사 스케일체인 Block chain based distributed storage method and device thereof
KR20180113140A (en) 2017-04-05 2018-10-15 삼성에스디에스 주식회사 System for processing data based on blockchain and Operating method thereof
KR20180113139A (en) * 2017-04-05 2018-10-15 삼성에스디에스 주식회사 Method for calculating confirmation reliability for blockchain based transaction and Blockchain network monitoring system for performing the method

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101727525B1 (en) * 2016-09-05 2017-04-17 주식회사 스케일체인 Block chain based distributed storage method and device thereof
KR20180113140A (en) 2017-04-05 2018-10-15 삼성에스디에스 주식회사 System for processing data based on blockchain and Operating method thereof
KR20180113139A (en) * 2017-04-05 2018-10-15 삼성에스디에스 주식회사 Method for calculating confirmation reliability for blockchain based transaction and Blockchain network monitoring system for performing the method

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220013846A (en) * 2020-07-27 2022-02-04 한국전자통신연구원 Method and apparatus for agreement of block in blockchain network
KR102337760B1 (en) * 2020-08-27 2021-12-08 연세대학교 산학협력단 Apparatus and method for adaptively managing sharded blockchain network based on Deep Q Network
US11687562B2 (en) 2020-08-27 2023-06-27 Industry-Academic Cooperation Foundation, Yonsei University Apparatus and method for adaptively managing sharded blockchain network based on deep Q network
CN112541758A (en) * 2020-12-01 2021-03-23 鲁静 Multi-round voting type fault-tolerant sequencing consensus mechanism and method based on block chain
CN112804333A (en) * 2021-01-15 2021-05-14 北京百度网讯科技有限公司 Exception handling method, device and equipment for out-of-block node and storage medium
CN112804333B (en) * 2021-01-15 2022-10-11 北京百度网讯科技有限公司 Exception handling method, device and equipment for out-of-block node and storage medium
KR20220137366A (en) * 2021-04-02 2022-10-12 주식회사 헤세그 Blockchain system resistant to faulty nodes and its operation method
CN114003584A (en) * 2021-11-02 2022-02-01 贵州大学 Byzantine fault-tolerant consensus method based on evolutionary game
CN114003584B (en) * 2021-11-02 2024-02-23 贵州大学 Bayesian-preemption fault-tolerant consensus method based on evolution game

Also Published As

Publication number Publication date
KR102214849B1 (en) 2021-02-10

Similar Documents

Publication Publication Date Title
KR102214849B1 (en) Fault tolerance consensus method for eliminating interference factors in blockchain networks
US10795857B2 (en) Blockchain system and method thereof
Lei et al. Reputation-based byzantine fault-tolerance for consortium blockchain
KR102019211B1 (en) Method for generating block chain capable of overcoming byzantine fault
CN108492103B (en) Joint block chain consensus method
Panda et al. Study of blockchain based decentralized consensus algorithms
CN108881187B (en) Cross-link data transmission method and device suitable for permission link scene
US20210026745A1 (en) Methods, systems, and computer readable media for providing byzantine fault tolerance
WO2020138606A1 (en) Fault-tolerant consensus method for eliminating obstacle factors of consensus in blockchain network
Sheng et al. BFT protocol forensics
Hassanzadeh-Nazarabadi et al. Lightchain: A dht-based blockchain for resource constrained environments
KR102337760B1 (en) Apparatus and method for adaptively managing sharded blockchain network based on Deep Q Network
Sun et al. Rtchain: A reputation system with transaction and consensus incentives for e-commerce blockchain
Innerbichler et al. Federated byzantine agreement to ensure trustworthiness of digital manufacturing platforms
Zhou et al. Cssp: The consortium blockchain model for improving the trustworthiness of network software services
Xu et al. Efficient public blockchain client for lightweight users
Kairaldeen et al. Data integrity time optimization of a blockchain IoT smart home network using different consensus and hash algorithms
Fang et al. Pelopartition: Improving blockchain resilience to network partitioning
US11831749B1 (en) Method and system for utilizing the infrastructure of a blockchain to enhance the degree of reliability of another blockchain
CN112700333A (en) Electronic archive consensus method based on block chain
Makhdoom et al. PLEDGE: An IoT-oriented proof-of-honesty based blockchain consensus protocol
Qi et al. Blockchain-Based Light-Weighted Provable Data Possession for Low Performance Devices.
KR20200107113A (en) Method and system for power trading based reliability using blockchain
CN112948847B (en) Block chain-based data sharing system and data correctness verification method
CN111598389B (en) Transaction system for preventing bill market risk based on blockchain

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant