KR102214849B1 - 블록체인 네트워크의 합의 방해요인 제거를 위한 장애 허용 합의 방법 - Google Patents
블록체인 네트워크의 합의 방해요인 제거를 위한 장애 허용 합의 방법 Download PDFInfo
- Publication number
- KR102214849B1 KR102214849B1 KR1020190075373A KR20190075373A KR102214849B1 KR 102214849 B1 KR102214849 B1 KR 102214849B1 KR 1020190075373 A KR1020190075373 A KR 1020190075373A KR 20190075373 A KR20190075373 A KR 20190075373A KR 102214849 B1 KR102214849 B1 KR 102214849B1
- Authority
- KR
- South Korea
- Prior art keywords
- reliability
- nodes
- verification
- global
- block
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1044—Group management mechanisms
- H04L67/1053—Group management mechanisms with pre-configuration of logical or physical connections with a determined number of other peers
- H04L67/1057—Group management mechanisms with pre-configuration of logical or physical connections with a determined number of other peers involving pre-assessment of levels of reputation of peers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1061—Peer-to-peer [P2P] networks using node-based peer discovery mechanisms
- H04L67/1065—Discovery 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
본 발명은 블록체인 검증 노드의 투표 정보를 바탕으로 비정상 노드에 대한 패널티를 적용하여 합의 경계를 가변함으로써, 합의 교착상태에 들어가도 정상 노드와 비정상 노드의 투표권을 조정하여 정상 합의로 회귀할 수 있는 블록체인 네트워크의 장애 허용 합의 방법을 제공할 수 있다.
Description
본 발명은 블록체인 네트워크의 장애 허용 합의 방법에 관한 것으로, 블록체인 네트워크의 합의 방해요인 제거를 위한 장애 허용 합의 방법에 관한 것이다.
블록체인 기술은 투명성, 보안성, 비가역성을 지원하는 고 신뢰도 분산화 정보저장소(DB: Database) 기술로서, 단순한 구조로 비가역성을 쉽게 확보할 수 있음에 따라, 무결성이 매우 중요시되는 금융/물류/공공분야 등에서 각광받으며 많은 프로젝트가 진행되고 있다.
합의 알고리즘(Consensus Algorithm)은 다수 노드가 존재하는 P2P 네트워크에서 정보 불일치 발생 시 노드 간 하나의 DB를 유지하기 위해 어떤 정보를 선택할지 결정하는 기술이다. 블록체인은 합의 알고리즘을 통해 블록 생성 권한과 분기된 블록체인 선택에 대한 기법을 결정한다. 대표적 합의 알고리즘은 작업증명(Proof of Work: 이하 PoW)와 지분증명(Proof of Stake: 이하 PoS), 실용적 비잔틴 장애 허용(Practical Byzantine Fault Tolerance: 이하 PBFT) 등이 있다.
동일한 타임 스탬프(timestamp)에서 데이터가 서로 다른 블록이 발생하는 블록체인 분기 현상이 나타나면, PoW와 PoS에서는 이후 가장 길게 연장된 블록체인을 선택한다. 그러나 이는 일시적 정보 불일치를 허용하는 방식으로 블록체인의 데이터 신뢰도를 낮추게 된다.
반면 PBFT는 블록체인에 추가될 데이터에 대한 합의 노드 간의 정상적인 합의 수행 완료 후에만 블록을 블록체인에 추가함으로써 블록체인 데이터의 불일치를 원천 방지하여, 데이터에 대한 신뢰도를 향상시킨다. PBFT 합의 알고리즘은 약속된 행동을 하지 않는 비잔틴 장애(Byzantine Faulty) 노드가 존재할 수 있는 비동기 네트워크에서도 비잔틴 장애 노드가 일정 비율 이하에서는 정상 합의가 가능하다. 전체 검증 노드 수가 n이고, 장애 노드 수가 f인 경우, PBFT에서는 장애 노드 수(f)가 (n-1)/3 이하이면 합의에 성공할 수 있다. 즉 전체 검증 노드의 수(n)가 장애 노드 수(f)의 3배를 초과(N ≥ 3f+1)하면, 장애 노드가 포함되어도 정상적 합의가 가능하다.
도 1은 PBFT 합의 알고리즘을 통한 합의 절차의 일예를 나타낸다.
도 1을 참조하면, PBFT 합의 알고리즘은 요청(Request) 단계(S11), 선 준비 단계(Pre-prepare)(S12), 준비(Prepare) 단계(S13), 결정(Commit) 단계(S14) 및 응신(Reply) 단계(S15)로 구성될 수 있다.
블록체인 네트워크에서 다수의 노드 중 클라이언트(Client)(120)에서 전송된 트랜잭션 요청을 검증하고 합의하여 블록에 추가하는 역할은 검증 노드들(Validating Nodes)(110)이 담당한다. 도1 에서는 일예로 블록체인 네트워크에 4개의 검증 노드(111 ~ 114)가 존재하고, 4개의 검증 노드(111 ~ 114) 중 제1 검증 노드(111)가 클라이언트(120)로부터 트랜잭션 요청을 인가받는 리더 노드이며, 나머지 제2 내지 제4 검증 노드(112 ~ 114)는 리더 노드(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 이상의 다른 노드들로부터 동일한 결과를 받으면 해당 결과가 처리된 것으로 확인한다.
이와 같이 PBFT에서는 전체 검증 노드(n)의 2/3를 초과하는 노드를 확보해야만 블록 데이터의 변경이 가능하므로, 51% 이상의 노드를 확보하면 데이터 변조가 가능한 PoW 및 PoS 보다 데이터 변조 공격에 강하지만, 데이터 변조 공격이 전체 검증 노드의 1/3 이상 노드만 확보해도 정상 합의를 실패하게 만들고 정상 합의로 복귀하지 못하도록 교착 상태로 만들 수 있는 문제점이 있다.
본 발명의 목적은 PBFT 합의 알고리즘을 기반으로 신뢰 평가 모델을 접목하여, 비정상 행위에 대한 벌칙 부과를 통해 합의 성공률 향상 및 합의 교착상태에서 정상 합의로 회귀할 수 있도록 하는 블록체인 네트워크의 장애 허용 합의 방법을 제공하는데 있다.
상기 목적을 달성하기 위한 본 발명의 일 실시예에 따른 블록체인 네트워크를 위한 장애 허용 합의 방법은 n개의 검증 노드 중 기지정된 리더 노드가 적어도 하나의 클라이언트로부터 전송된 트랜잭션 요청이 포함된 블록이 수신되면, 상기 리더 노드에 대해 이전 투표 결과로부터 획득된 로컬 신뢰도인 리더 신뢰도를 상기 블록에 포함하여 나머지 검증 노드인 백업 노드들로 전파하는 단계; 상기 백업 노드들 각각이 이전 투표 결과로부터 획득된 자신에 대한 로컬 신뢰도인 백업 신뢰도와 상기 리더 신뢰도를 비교하여, 서로 상이하면 다른 검증 노드들로 리더 신뢰도를 상기 백업 신뢰도로 변경한 준비 메시지를 전파하는 단계; 상기 검증 노드들 각각이 수신한 준비 메시지를 분석하여, 동일한 값을 갖는 로컬 신뢰도의 개수가 기지정된 기준 개수 이상이면, 다른 검증 노드들로 상기 로컬 신뢰도를 글로벌 신뢰도에 적용하여 결정 메시지를 전파하는 단계; 및 상기 검증 노드들 각각이 결정 메시지에 포함된 글로벌 신뢰도의 합을 기반으로 트랜잭션 요청에 대한 투표를 수행하여, 블록을 블록체인에 추가하는 단계; 를 포함한다.
상기 블록체인에 추가하는 단계는 상기 n개의 검증 노드들 각각에 대한 글로벌 신뢰도()의 합이 기지정된 글로벌 기준 비율 이상인지 판별하는 단계; 상기 글로벌 기준 비율 이상이면, 상기 블록에 대한 글로벌 신뢰도 합의가 성공한 것으로 판별하여 블록을 블록체인에 추가하는 단계; 추가된 결과를 상기 클라이언트로 전달하는 단계; 및 합의 성공 여부에 따라 검증 노드 각각에 대한 로컬 신뢰도를 재계산하는 단계; 를 포함할 수 있다.
상기 로컬 신뢰도를 재계산하는 단계는 글로벌 신뢰도 합의가 성공한 것으로 판별되면, 상기 n개의 검증 노드 중 i번째 검증 노드가 계산한 k번째 검증 노드에 대한 t번째 라운드의 로컬 신뢰도(Ct i,k)를 수학식
(여기서 는 k번째 검증 노드에 대한 t번째 라운드의 글로벌 신뢰도이고, Vk는 n개의 검증 노드 중 k번째 검증 노드를 의미하고, R은 정상적인 리더 노드의 제안에 동의하는 투표를 수행한 로얄 노드의 집합을 나타내고, F는 장애 노드 집합을 나타내며, α는 패널티 가중치이다.)에 따라 계산하는 단계; 및 글로벌 신뢰도 합의가 실패한 것으로 판별되면, 상기 검증 노드들 각각에 대한 로컬 신뢰도를 수학식
에 따라 계산하는 단계; 를 포함할 수 있다.
상기 로컬 신뢰도를 재계산하는 단계는 상기 글로벌 신뢰도 합의 성공 여부에 따라 상기 글로벌 신뢰도에 기반하여 합의 경계(Consensus Bound)가 수학식
에 따라 가변될 수 있다.
상기 결정 메시지를 전파하는 단계는 상기 검증 노드들 각각이 수신한 준비 메시지를 분석하여, 동일한 값을 갖는 로컬 신뢰도의 개수가 기지정된 기준 개수 이상인지 판별하는 단계; 상기 기준 개수 이상이면, 동일한 값의 로컬 신뢰도를 현재 라운드의 글로벌 신뢰도에 반영하는 단계; 상기 기준 개수 미만이면, 백업 로컬 신뢰도를 현재 라운드의 글로벌 신뢰도에 반영하는 단계; 및 동일한 로컬 신뢰도 값을 갖는 검증 노드들의 글로벌 신뢰도의 합이 기지정된 글로벌 기준 값 이상인지 판별하고, 글로벌 기준 값 이상이면, 결정 메시지를 다른 검증 노드로 전파하는 단계; 를 포함할 수 있다.
따라서, 본 발명의 실시예에 따른 블록체인 네트워크의 합의 방해요인 제거를 위한 장애 허용 합의 방법은 블록체인의 합의 노드 중 비잔틴 장애 노드들의 합의에 대한 영향력을 낮춰 교착 상태에서 정상 합의로 회귀할 수 있도록 함으로써, 정상적인 합의의 성공률을 높일 수 있다.
도 1은 PBFT 합의 알고리즘을 통한 합의 절차의 일예를 나타낸다.
도 2는 본 발명의 일 실시예에 따른 블록체인 네트워크 구성을 나타낸다.
도 3은 블록체인 네트워크의 합의 방해요인 제거를 위한 장애 허용 합의 방법을 나타낸다.
도 4는 본 발명의 일 실시예에 따른 수정된 블록 구조를 나타낸다.
도5 는 본 발명의 일 실시예에 따른 장애 허용 블록체인 단말의 개략적 구조를 나타낸다.
도 2는 본 발명의 일 실시예에 따른 블록체인 네트워크 구성을 나타낸다.
도 3은 블록체인 네트워크의 합의 방해요인 제거를 위한 장애 허용 합의 방법을 나타낸다.
도 4는 본 발명의 일 실시예에 따른 수정된 블록 구조를 나타낸다.
도5 는 본 발명의 일 실시예에 따른 장애 허용 블록체인 단말의 개략적 구조를 나타낸다.
본 발명과 본 발명의 동작상의 이점 및 본 발명의 실시에 의하여 달성되는 목적을 충분히 이해하기 위해서는 본 발명의 바람직한 실시예를 예시하는 첨부 도면 및 첨부 도면에 기재된 내용을 참조하여야만 한다.
이하, 첨부한 도면을 참조하여 본 발명의 바람직한 실시예를 설명함으로써, 본 발명을 상세히 설명한다. 그러나, 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며, 설명하는 실시예에 한정되는 것이 아니다. 그리고, 본 발명을 명확하게 설명하기 위하여 설명과 관계없는 부분은 생략되며, 도면의 동일한 참조부호는 동일한 부재임을 나타낸다.
명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라, 다른 구성요소를 더 포함할 수 있는 것을 의미한다. 또한, 명세서에 기재된 "...부", "...기", "모듈", "블록" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어나 소프트웨어 또는 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다.
도 2는 본 발명의 일 실시예에 따른 블록체인 네트워크 구성을 나타낸다.
도 2를 참조하면, 본 실시예에 따른 블록체인 네트워크(200)는 다수의 노드 중 메쉬 타입(mesh-type)으로 상호 통신이 가능한 n(여기서 n은 자연수)개의 검증 노드(211 ~ 21n)를 포함하여 다수의 클라이언트들로부터 전송되는 트랜잭션 요청을 검증하고 합의하여 블록에 추가할 수 있다. 도 2에서는 설명의 편의를 위하여 검증 노드(211 ~ 21n)를 4개만 도시하였으나, 검증 노드의 개수는 다양하게 조절될 수 있다. 그리고 다수의 검증 노드(211 ~ 21n) 중 제1 검증 노드(211)는 다수의 클라이언트(221 ~ 22m) 중 적어도 하나의 클라이언트로부터 트랜잭션 요청을 인가받는 리더 노드이며, 나머지 제2 내지 제4 검증 노드(212 ~ 21n)는 백업 노드인 것으로 가정한다.
상기한 바와 같이 다수의 검증 노드(211 ~ 21n) 중 리더 노드(211)는 적어도 하나의 클라이언트(221 ~ 22m)로부터 인가된 트랜잭션 요청을 검증 및 정렬하여 다른 검증 노드들인 백업 노드들(212 ~ 21n)로 전파하고, 다수의 검증 노드(211 ~ 21n)간의 합의를 통하여 블록을 확정하고, 블록체인에 추가하는 절차로 블록을 연장 및 유지한다.
블록체인에 참여하고 있는 모든 n개 검증 노드(211 ~ 21n)는 합의 라운드마다 합의에 참여하며, 특정시점(t0)부터 활동하는 악성 노드는 블록 변조 시도 또는 합의 미참여를 수행한다. 악성 노드가 정상적으로 합의에 참여하는 것은 합의에 영향이 없으며, 악의적 의도를 관철하려면 더 많은 검증 노드들에게 메시지를 보내야 효과적이므로 합의 단계별로 다른 검증 노드에게 정상 메시지와 변조 메시지를 동시에 보내는 것은 고려하지 않는다. 이때 정상 노드가 네트워크 환경에 따라 시간 지연(time delay), 네트워크 혼잡(network congestion) 등에 의해 합의에 참여 실패하게 되더라도, 합의에 부정적 영향을 미치므로 패널티(penalty)를 부여한다.
블록체인 네트워크의 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}로 정의될 수 있다.
블록체인 네트워크의 n개의 검증 노드(211 ~ 21n) 각각은 결정(commit) 단계에서 수집한 투표 정보를 바탕으로 신뢰도 평가를 실시하여 로컬 신뢰도(Local Credibility)(Ct i,k)를 계산한다. 여기서 i번째 검증 노드(21i)가 계산한 전체 검증 노드에 대한 로컬 신뢰도 집합(Ct i)은 수학식 1과 같이 표현된다.
각 검증 노드들(211 ~ 21n)은 t-1 라운드에서 투표를 통해 평가한 로컬 신뢰도(Ct i,k)를 t 라운드까지 유지한다. 리더 노드(211)는 t 라운드 시 자신의 로컬 신뢰도(Ct 1)를 블록과 함께 제안한다. 검증 노드(211 ~ 21n) 간 합의로 결정된 신뢰도는 글로벌 신뢰도로 인정되며 수학식 2로 표현도리 수 있다.
블록체인의 최초의 블록인 제네시스 블록(Genesis block)에서 이전 노드에 대한 신뢰도는 1이며, 두번째 블록부터 이전 라운드의 투표결과에 따라 신뢰도를 계산한다. 먼저 정상적인 리더 노드(211)의 제안에 동의하는 투표를 했을 경우 해당 노드는 로얄 노드(R)로 판단하며 이전 라운드의 신뢰도를 유지한다.
그러나 잘못된 투표를 하거나 투표를 하지 않은 장애 노드(F)로 판단되면, 이전 라운드의 전체 장애 노드의 신뢰도를 전체 검증 노드의 신뢰도로 나눈 값에 패털티 가중치(α)를 곱한 값만큼 감소시킨다. 이때 신뢰도 합의 절차(Credibility Consensus Procedures)를 통해 정상적으로 글로벌 신뢰도가 결정된 경우, k번째 노드의 t-1 라운드 로컬 신뢰도(Ct-1 i,k)는 글로벌 신뢰도의 k번째 검증 노드의 t 라운드 글로벌 신뢰도()와 같다. 이를 통해 로컬 신뢰도(Ct i,k)는 수학식 3과 같이 계산된다.
반면, 글로벌 신뢰도의 합의가 실패한다면, 이전 라운드의 로컬 신뢰도를 활용하여 수학식 4와 같이 해당 라운드의 신뢰도를 재계산한다.
수학식 3 및 4에서 장애 노드의 개수(f)가 증가할수록 정상 합의에 실패할 확률이 증가한다. 그러므로 장애 노드의 신뢰도 합의 증가에 비례하여 장애 노드들과 전체 검증 노드들(211 ~ 21n)의 신뢰도 합의 비율만큼 패널티를 증가시킴으로써, 장애 노드 합의 영향력을 감소시켜 합의 성공률을 높일 수 있다.
이는 다수의 검증 노드에 의한 합의 경계를 적응적으로 변화시켜, 합의 방해 요인인 장애 노드의 존재에도 불구하고, 성공률 향상 및 합의 교착상태에서 정상 합의로 회귀할 수 있도록 하며, 본 실시예에 따른 장해 허용 합의 알고리즘을 적응적 합의 경계(Adaptive Consensus Bound) PBTF(이하: ACB-PBFT) 알고리즘이라 한다.
각 검증 노드의 신뢰 값(Trust value)을 의미하는 신뢰도는 각 노드별로 계산된다. 계산된 신뢰도를 이용하여 전체 검증 노드가 하나의 신뢰 값을 공유하기 위해서는 3 단계 프로토콜(3-phase protocol) 방식으로 합의를 수행한다.
도 3은 블록체인 네트워크의 합의 방해요인 제거를 위한 장애 허용 합의 방법을 나타내고, 도 4는 본 발명의 일 실시예에 따른 수정된 블록 구조를 나타낸다.
도 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)으로 구성될 수 있다.
도 4에 도시된 본 실시예에 따른 블록 구조를 기존의 대표적인 블록체인 시스템인 비트코인의 블록 구조와 비교하면, 본 실시예의 블록체인 네트워크는 블록 생성자인 리더 노드를 비경쟁형으로 선정하므로, 블록 생성자를 결정하기 위해 비트코인에서 사용되는 난이도(Difficulty) 필드와 논스(Nonce) 필드가 제거되었다. 또한 본 실시예에 따른 ACB-PBFT는 각 검증 노드의 투표권(Voting Power)을 의미하는 신되도(Credibility)를 사용하므로, 이하에서 설명하는 신뢰도 합의 절차(Credibility Consensus Procedures)를 통해 합의된 각 검증 노드의 신뢰도 전체 집합인 글로벌 신뢰도를 블록 바디(420) 내 신뢰도 트랜잭션 필드 (422)에 기록하여 블록체인을 유지하고 있는 전체 검증 노드가 동일한 글로벌 신뢰도를 공유할 수 있도록 한다.
이하에서는 도 2 및 도 4를 참조하여, 도 3의 장애 허용 합의 방법을 설명한다. 본 실시예에 따른 장애 허용 합의 방법 또한 기본적으로 도 1에 도시된 PBFT 알고리즘과 마찬가지로, 요청 단계, 선 준비 단계, 준비 단계, 결정 단계 및 응신 단계를 포함하여 수행될 수 있다.
우선 신뢰도 합의 절차를 수행한다. 요청 단계(미도시)에서 적어도 하나의 클라이언트로부터 리더 노드(211)로 트랜잭션 요청이 전송되면, 선 준비 단계에서 리더 노드(211)는 이전 라운드(t-1)의 투표 결과로 계산된 리더 로컬 신뢰도(CL t-1)를 도 4의 블록 데이터의 신뢰도 트랜잭션 필드(422)에 기록하여, 블록을 나머지 검증 노드들인 백업 노드들(212 ~ 21n)에게 전파하여 제안한다(S31).
그리고 준비 단계에서 블록을 수신한 백업 노드들(212 ~ 21n) 각각은 이전 라운드(t-1)에서 계산된 자신의 백업 로컬 신뢰도(Ci t-1)와 리더 노드(211)에서 전송된 블록의 신뢰도 트랜잭션 필드(422)에 기록된 리더 로컬 신뢰도(CL t-1)가 동일한지 판별한다(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).
결정 단계에서 모든 검증 노드(211 ~ 21n)는 자신이 선택한 로컬 신뢰도와 다른 검증 노드들로부터 전파된 준비 메시지의 로컬 신뢰도(Ci t-1)를 분석한다(S35). 그리고 분석된 로컬 신뢰도에서 동일한 값을 갖는 로컬 신뢰도의 개수가 전체 검증 노드(211 ~ 21n)의 개수(n)에 대해 기지정된 기준 개수 이상인지 판별한다(S36). 여기서 기준 개수는 일예로 2(n-1)/3로 설정될 수 있다.
만일 동일한 값을 갖는 로컬 신뢰도(Ck)의 개수가 기준 개수 이상이면, 해당 검증 노드는 동일한 값의 로컬 신뢰도를 현재 라운드의 글로벌 신뢰도()에 반영하여, 즉 로컬 신뢰도를 블록의 신뢰도 트랜잭션 필드(422)에 기록하여 결정 메시지로서 다른 노드로 전파한다(S37). 그러나 동일한 값을 갖는 로컬 신뢰도의 개수가 기준 개수 미만이면, 백업 로컬 신뢰도(Ci t-1)를 현재 라운드의 글로벌 신뢰도()에 반영하여 결정 메시지를 다른 검증 노드로 전파한다(S38).
이때 검증 노드(211 ~ 21n) 각각은 준비 메시지를 전송한 검증 노드들, 즉 동일한 로컬 신뢰도 값을 갖는 검증 노드들의 글로벌 신뢰도의 합이 기지정된 글로벌 기준 값(예를 들면, ) 이상인지 판별하고, 글로벌 기준 값 이상이면, 결정 메시지를 다른 검증 노드로 전파하도록 구성될 수 있다.
이러한 과정을 통해 리더 노드(211)가 제안한 리더 신뢰도 또는 전체 검증 노드 중 2f+1개 이상의 검증 노드가 공유하는 동일한 로컬 신뢰도는 글로벌 신뢰도 인정받고, 인정된 글로벌 신뢰도 값이 블록의 신뢰도 트랜잭션 필드(422)에 기록되어 된다.
본 실시예에서 글로벌 신뢰도()는 각 검증 노드(211 ~ 21n)의 투표 가중치로 이용될 수 있다. 다수의 검증 노드(211 ~ 21n) 각각은 자신을 포함한 다수의 검증 노드 중 동일한 결과 메시지를 전파한 검증 노드들의 글로벌 신뢰도의 합()이 기지정된 글로벌 기준 비율 이상인지 판별하고, 다수의 검증 노드(211 ~ 21n) 각각은 글로벌 신뢰도의 합()이 글로벌 기준 비율 이상이면, 합의가 성공된 것으로 판별하여 블록을 블록체인에 추가하고, 추가된 결과를 클라이언트로 전달한다(S40). 여기서 기준 비율은 일예로 로 설정될 수 있다.
상기한 바와 같이, 본 실시예에 따른 ACB-PBFT 합의 방법은 다수의 검증 노드(211 ~ 21n)에 대한 합의 성공을 판단하는 합의 경계(Consensus Bound)가 적응적으로 변화하게 되며, 각각의 합의 경계는 수학식 5와 같이 표현될 수 있다.
그리고 블록에 대한 투표 결과에 따라 모든 검증 노드(211 ~ 21n)에 대한 로컬 신뢰도(Ct i)를 수학식 3 또는 4에 따라 재계산한다(S41).
도5 는 본 발명의 일 실시예에 따른 장애 허용 블록체인 단말의 개략적 구조를 나타낸다.
도5 를 참조하면, 단말은 정보교환 및 합의수행을 위해 정보 입력부(501), 메모리(502), CPU(503), 메시지 처리부(504), 정보 출력부(505)를 포함할 수 있다.
정보 입력부(501)는 다른 노드로부터 전달받은 투표 정보를 수신하는 역할을 수행한다.
메모리(502)는 CPU에서 처리한 정보들을 저장한다. 구체적으로 메모리는 각 노드의 투표 정보, 계산된 신뢰도 정보, 블록체인 데이터 등의 정보를 저장한다.
CPU(503)는 수신된 투표 정보를 메시지 처리부(504)로 송신하며, 메시지 처리부에서 수신한 투표 정보를 정보 출력부(505)로 송신한다. 또한 정보 입력부(501), 정보 출력부(505), 메모리(502), 메시지 처리부(504)에 대한 동작을 제어한다.
메시지 처리부(504)는 타 노드의 투표 정보를 분석하여 신뢰도 정보를 계산 및 합의 단계별 수신되는 메시지를 비교 검증하는 역할을 수행한다.
본 발명에 따른 방법은 컴퓨터에서 실행 시키기 위한 매체에 저장된 컴퓨터 프로그램으로 구현될 수 있다. 여기서 컴퓨터 판독가능 매체는 컴퓨터에 의해 액세스 될 수 있는 임의의 가용 매체일 수 있고, 또한 컴퓨터 저장 매체를 모두 포함할 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 모두 포함하며, ROM(판독 전용 메모리), RAM(랜덤 액세스 메모리), CD(컴팩트 디스크)-ROM, DVD(디지털 비디오 디스크)-ROM, 자기 테이프, 플로피 디스크, 광데이터 저장장치 등을 포함할 수 있다.
본 발명은 도면에 도시된 실시예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다.
따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 청구범위의 기술적 사상에 의해 정해져야 할 것이다.
Claims (5)
- n개의 검증 노드 중 기지정된 리더 노드가 적어도 하나의 클라이언트로부터 전송된 트랜잭션 요청이 포함된 블록이 수신되면, 상기 리더 노드에 대해 상기 검증 노드들이 이전 라운드의 블록 생성에 대해 투표한 결과에서 동의하는 비율에 기초하여 획득되는 리더 신뢰도를 상기 블록에 포함하여 나머지 검증 노드인 백업 노드들로 전파하는 단계;
상기 백업 노드들 각각이 상기 백업 노드들 각각에 대해 상기 검증 노드들이 이전 라운드의 블록 생성에 대해 투표한 결과에서 동의하는 비율에 기초하여 획득되는 자신에 대한 로컬 신뢰도로 정의되는 백업 신뢰도와 상기 리더 신뢰도를 비교하여, 서로 상이하면 다른 검증 노드들로 리더 신뢰도를 상기 백업 신뢰도로 변경한 준비 메시지를 전파하는 단계;
상기 검증 노드들 각각이 수신한 준비 메시지를 분석하여, 동일한 값을 갖는 로컬 신뢰도의 개수가 기지정된 기준 개수 이상이면, 다른 검증 노드들로 상기 로컬 신뢰도를 글로벌 신뢰도에 적용하여 결정 메시지를 전파하는 단계; 및
상기 검증 노드들 각각이 결정 메시지에 포함된 글로벌 신뢰도의 합을 기반으로 트랜잭션 요청에 대한 투표를 수행하여, 블록을 블록체인에 추가하는 단계; 를 포함하되,
상기 결정 메시지를 전파하는 단계는
상기 검증 노드들 각각이 수신한 준비 메시지를 분석하여, 동일한 값을 갖는 로컬 신뢰도의 개수가 기지정된 기준 개수 이상인지 판별하는 단계;
기준 개수 이상이면, 동일한 값의 로컬 신뢰도를 현재 라운드의 글로벌 신뢰도에 반영하는 단계;
기준 개수 미만이면, 백업 로컬 신뢰도를 현재 라운드의 글로벌 신뢰도에 반영하는 단계; 및
동일한 로컬 신뢰도 값을 갖는 검증 노드들의 글로벌 신뢰도의 합이 기지정된 글로벌 기준 값 이상인지 판별하고, 글로벌 기준 값 이상이면, 결정 메시지를 다른 검증 노드로 전파하는 단계; 를 포함하는 블록체인 네트워크의 장애 허용 합의 방법.
- 제2 항에 있어서, 상기 로컬 신뢰도를 재계산하는 단계는
글로벌 신뢰도 합의가 성공한 것으로 판별되면, 상기 n개의 검증 노드 중 i번째 검증 노드가 계산한 k번째 검증 노드에 대한 t번째 라운드의 로컬 신뢰도(Ct i,k)를 수학식
(여기서 는 k번째 검증 노드에 대한 t번째 라운드의 글로벌 신뢰도이고, Vk는 n개의 검증 노드 중 k번째 검증 노드를 의미하고, R은 정상적인 리더 노드의 제안에 동의하는 투표를 수행한 로얄 노드의 집합을 나타내고, F는 장애 노드 집합을 나타내며, α는 패널티 가중치이다.)
에 따라 계산하는 단계; 및
글로벌 신뢰도 합의가 실패한 것으로 판별되면, 검증 노드들 각각에 대한 로컬 신뢰도를 수학식
에 따라 계산하는 단계; 를 포함하는 블록체인 네트워크의 장애 허용 합의 방법. - 삭제
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/KR2019/007674 WO2020138606A1 (ko) | 2018-12-28 | 2019-06-25 | 블록체인 네트워크의 합의 방해요인 제거를 위한 장애 허용 합의 방법 |
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 KR20200083145A (ko) | 2020-07-08 |
KR102214849B1 true KR102214849B1 (ko) | 2021-02-10 |
Family
ID=71600879
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020190075373A KR102214849B1 (ko) | 2018-12-28 | 2019-06-25 | 블록체인 네트워크의 합의 방해요인 제거를 위한 장애 허용 합의 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102214849B1 (ko) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102577432B1 (ko) * | 2020-07-27 | 2023-09-12 | 한국전자통신연구원 | 블록체인 네트워크의 블록 합의 방법 및 장치 |
KR102337760B1 (ko) | 2020-08-27 | 2021-12-08 | 연세대학교 산학협력단 | 심층강화학습 기반 적응적 샤드 블록체인 네트워크 관리 장치 및 방법 |
CN112541758A (zh) * | 2020-12-01 | 2021-03-23 | 鲁静 | 基于区块链的多轮投票式容错排序共识机制与方法 |
CN112804333B (zh) * | 2021-01-15 | 2022-10-11 | 北京百度网讯科技有限公司 | 出块节点的异常处理方法、装置、设备和存储介质 |
KR102574890B1 (ko) * | 2021-04-02 | 2023-09-06 | 주식회사 헤세그 | 장애 노드에 내성을 갖는 블록체인 시스템 및 그 동작 방법 |
CN114003584B (zh) * | 2021-11-02 | 2024-02-23 | 贵州大学 | 一种基于演化博弈的拜占庭容错共识方法 |
WO2024122697A1 (ko) * | 2022-12-09 | 2024-06-13 | 주식회사 리드포인트시스템 | 랜덤 비경쟁 합의에 기반한 블록체인 네트워크 시스템 및 동작 방법 |
WO2024122696A1 (ko) * | 2022-12-09 | 2024-06-13 | 주식회사 리드포인트시스템 | 랜덤 비경쟁 합의에 기반한 블록체인 네트워크 시스템 및 동작 방법 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101727525B1 (ko) * | 2016-09-05 | 2017-04-17 | 주식회사 스케일체인 | 블록체인 기반 분산 저장 방법 및 이를 이용한 장치 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102382127B1 (ko) | 2017-04-05 | 2022-04-04 | 삼성에스디에스 주식회사 | 블록체인 기반의 데이터 처리 시스템 및 그 동작 방법 |
KR102303427B1 (ko) * | 2017-04-05 | 2021-09-23 | 삼성에스디에스 주식회사 | 블록체인 기반 거래에 대한 확정 신뢰도 산출 방법 및 그 방법을 수행하는 블록체인 네트워크 모니터링 시스템 |
-
2019
- 2019-06-25 KR KR1020190075373A patent/KR102214849B1/ko active IP Right Grant
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101727525B1 (ko) * | 2016-09-05 | 2017-04-17 | 주식회사 스케일체인 | 블록체인 기반 분산 저장 방법 및 이를 이용한 장치 |
Also Published As
Publication number | Publication date |
---|---|
KR20200083145A (ko) | 2020-07-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102214849B1 (ko) | 블록체인 네트워크의 합의 방해요인 제거를 위한 장애 허용 합의 방법 | |
CN108881187B (zh) | 一种适用于许可链场景的跨链数据传递方法及设备 | |
US10795857B2 (en) | Blockchain system and method thereof | |
US11790370B2 (en) | Techniques for expediting processing of blockchain transactions | |
KR102019211B1 (ko) | 비잔틴 장애를 극복 가능한 블록체인 생성 방법 | |
US11102001B2 (en) | Trust management system and trust management method | |
US20210026745A1 (en) | Methods, systems, and computer readable media for providing byzantine fault tolerance | |
WO2020138606A1 (ko) | 블록체인 네트워크의 합의 방해요인 제거를 위한 장애 허용 합의 방법 | |
CN118395709A (zh) | 用于将区块链连接到数字孪生的计算机实现的系统和方法 | |
KR102337760B1 (ko) | 심층강화학습 기반 적응적 샤드 블록체인 네트워크 관리 장치 및 방법 | |
US20200364212A1 (en) | System and method of supporting reflection of transactions between blockchain networks | |
CN113032489B (zh) | 一种基于区块链的异步共识方法及系统及装置及介质 | |
JP2014524204A (ja) | キーバリューストレージに対するデータの保存および読み出しを行う方法およびシステム | |
KR20210087552A (ko) | 분산 리소스 할당을 위한 시스템 및 방법 | |
Liao et al. | Achieving IoT data security based blockchain | |
CN113326332B (zh) | 一种区块链的快照同步方法及装置 | |
Putra et al. | Decentralised trustworthy collaborative intrusion detection system for IoT | |
Quamara et al. | An in-depth security and performance investigation in hyperledger fabric-configured distributed computing systems | |
Qi et al. | Blockchain-Based Light-Weighted Provable Data Possession for Low Performance Devices. | |
KR102356725B1 (ko) | 계층 블록체인을 이용한 인증 및 정책 관리 방법 | |
CN114785776B (zh) | 基于区块链的清算系统以及基于区块链的清算方法 | |
Ming et al. | Timely publication of transaction records in a private blockchain | |
Su | Cross-chain interaction model in a fully verified way | |
Jeong et al. | A General and Robust Blockchain Storage System based on External Storage Service | |
Zhang et al. | Toward Secure and Efficient Collaborative Cached Data Auditing for Distributed Fog Computing |
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 |