KR102652737B1 - 블록체인 네트워크를 위한 효율적인 듀얼모드 합의 프로토콜 - Google Patents

블록체인 네트워크를 위한 효율적인 듀얼모드 합의 프로토콜 Download PDF

Info

Publication number
KR102652737B1
KR102652737B1 KR1020210129124A KR20210129124A KR102652737B1 KR 102652737 B1 KR102652737 B1 KR 102652737B1 KR 1020210129124 A KR1020210129124 A KR 1020210129124A KR 20210129124 A KR20210129124 A KR 20210129124A KR 102652737 B1 KR102652737 B1 KR 102652737B1
Authority
KR
South Korea
Prior art keywords
consensus
protocol
blockchain
mode
nodes
Prior art date
Application number
KR1020210129124A
Other languages
English (en)
Other versions
KR20230046085A (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 KR1020210129124A priority Critical patent/KR102652737B1/ko
Priority to PCT/KR2022/011836 priority patent/WO2023054888A1/ko
Publication of KR20230046085A publication Critical patent/KR20230046085A/ko
Application granted granted Critical
Publication of KR102652737B1 publication Critical patent/KR102652737B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • H04L9/3255Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures using group based signatures, e.g. ring or threshold signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/18Multiprotocol handlers, e.g. single devices capable of handling multiple protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/24Negotiation of communication capabilities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/40Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass for recovering from a failure of a protocol instance or entity, e.g. service redundancy protocols, protocol state redundancy or protocol service redirection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Hardware Redundancy (AREA)

Abstract

블록체인 네트워크를 위한 효율적인 듀얼모드 합의 프로토콜 기술이 개시된다. 일 실시예에 따른 블록체인 합의 시스템에 의해 수행되는 듀얼모드 블록체인 합의 방법은, 블록체인 네트워크의 네트워크 상태 정보에 따라 정상 동작과 백업 동작을 수행하기 위한 프로토콜 모드를 전환하는 단계; 및 상기 전환된 프로토콜 모드에 기초하여 구성된 블록체인 네트워크의 노드들을 이용하여 프로토콜 합의를 진행하는 단계를 포함할 수 있다.

Description

블록체인 네트워크를 위한 효율적인 듀얼모드 합의 프로토콜{AN EFFICIENT DUAL-MODE CONSENSUS PROTOCOL FOR BLOCKCHAIN NETWORKS}
아래의 설명은 블록체인 합의 기술에 관한 것이다.
BLS threshold 기법의 사용하여 효율적인 블록 합의에 도달하도록 하는 프로토콜은 합의 프로토콜을 기반으로 한다. 상기 프로토콜은 성능 향상에도 불구하고 동기적 액티브 노드의 수가 f+1 미만인 경우 더 이상 진행할 수 없기 때문에 네트워크 상태에 민감하다. 따라서 동기식 네트워크와 부분 동기식 네트워크 모두에서 실행할 수 있는 이중 모드 프로토콜이 제안될 필요가 있다.
이전에 제안된 몇 가지 이중 모드 프로토콜이 존재한다. 그러나 SBFT 및 CheapBFT와 같은 종래의 프로토콜에서는 모든 참가자가 정확하고 동기적이어야 한다. 시스템에 단일 오류 노드가 있는 경우에도 작업은 백업 프로토콜로 되돌아간다. 또한, 종래의 프로토콜에서는 기본 프로토콜에서 수집된 메시지가 프로토콜 전환 시 삭제되고 백업 프로토콜을 실행하려면 시스템을 재부팅해야 한다.
블록체인 네트워크가 동기적 상황(synchronous)에 있을 때와 부분 동기적 상황(partially synchronous)에 있을 때를 구분하여 정상 동작과 백업 동작에 특화된 합의 프로토콜을 통해 생성 블록에 대한 합의 성능을 개선하는 방법 및 시스템을 제공할 수 있다.
블록체인 합의 시스템에 의해 수행되는 듀얼모드 블록체인 합의 방법은, 블록체인 네트워크의 네트워크 상태 정보에 따라 정상 동작과 백업 동작을 수행하기 위한 프로토콜 모드를 전환하는 단계; 및 상기 전환된 프로토콜 모드에 기초하여 구성된 블록체인 네트워크의 노드들을 이용하여 프로토콜 합의를 진행하는 단계를 포함할 수 있다.
상기 전환하는 단계는, 블록체인 네트워크의 동기적 상황(synchronous) 또는 부분 동기적 상황(partially synchronous)을 포함하는 네트워크 상태 정보를 판단하는 단계를 포함할 수 있다.
상기 전환하는 단계는, 상기 판단된 네트워크 상태 정보가 동기적 상황일 경우, 정상 동작을 수행하기 위한 디폴트 프로토콜 모드를 실행하고, 상기 판단된 네트워크 상태 정보가 부분 동기적 상황일 경우, 실행 중인 디폴트 프로토콜 모드를 백업 프로토콜 모드로 전환하는 단계를 포함할 수 있다.
상기 전환하는 단계는, 상기 전환된 백업 프로토콜 모드에서, 액티브 노드 및 패시브 노드를 포함하는 블록체인 네트워크의 합의위원회를 구성하는 단계를 포함할 수 있다.
상기 프로토콜 합의를 진행하는 단계는, 상기 전환된 프르토콜 모드가 백업 프로토콜 모드일 경우, 블록체인 네트워크의 합의위원회로 구성된 액티브 노드 및 패시브 노드를 이용하여 합의를 진행하는 단계를 포함할 수 있다.
상기 동기적 상황은, 정상 동작을 수행하기 위한 디폴트 프로토콜 모드에서 블록체인 네트워크의 합의위원회로 구성된 액티브 노드를 이용하여 합의 과정이 진행되는 것일 수 있다.
상기 부분 동기적 상황은, 상기 동기적 상황에서 블록체인 네트워크의 합의위원회로 구성된 액티브 노드의 합의 과정이 중단된 경우, 패시브 노드를 합의위원회에 충원하여 중단된 합의 과정을 재개할 수 있게 한다.
상기 듀얼모드 블록체인 합의 방법은, 상기 백업 프로토콜 모드에서 합의가 진행된 후, 디폴트 프로토콜 모드로 회귀하여 후속 블록에 대한 합의를 시도한다.
듀얼모드 블록체인 합의 방법을 상기 블록체인 합의 시스템에 실행시키기 위해 비-일시적인 컴퓨터 판독가능한 기록 매체에 저장되는 컴퓨터 프로그램을 포함할 수 있다.
블록체인 합의 시스템은, 메모리에 포함된 컴퓨터 판독가능한 명령들을 실행하도록 구성된 적어도 하나의 프로세서를 포함하고, 상기 적어도 하나의 프로세서는, 블록체인 네트워크의 네트워크 상태 정보에 따라 정상 동작과 백업 동작을 수행하기 위한 프로토콜 모드를 전환하고, 상기 전환된 프로토콜 모드에 기초하여 구성된 블록체인 네트워크의 노드들을 이용하여 프로토콜 합의를 진행할 수 있다.
상기 적어도 하나의 프로세서는, 블록체인 네트워크의 동기적 상황(synchronous) 또는 부분 동기적 상황(partially synchronous)을 포함하는 네트워크 상태 정보를 판단할 수 있다.
상기 적어도 하나의 프로세서는, 상기 판단된 네트워크 상태 정보가 동기적 상황일 경우, 정상 동작을 수행하기 위한 디폴트 프로토콜 모드를 실행하고, 상기 판단된 네트워크 상태 정보가 부분 동기적 상황일 경우, 실행 중인 디폴트 프로토콜 모드를 백업 프로토콜 모드로 전환할 수 있다.
상기 적어도 하나의 프로세서는, 상기 전환된 백업 프로토콜 모드에서, 액티브 노드 및 패시브 노드를 포함하는 블록체인 네트워크의 합의위원회를 구성할 수 있다.
상기 적어도 하나의 프로세서는, 상기 전환된 프르토콜 모드가 백업 프로토콜 모드일 경우, 블록체인 네트워크의 합의위원회로 구성된 액티브 노드 및 패시브 노드를 이용하여 합의를 진행할 수 있다.
상기 동기적 상황은, 정상 동작을 수행하기 위한 디폴트 프로토콜 모드에서 블록체인 네트워크의 합의위원회로 구성된 액티브 노드를 이용하여 합의 과정이 진행되는 것이고, 상기 부분 동기적 상황은, 상기 동기적 상황에서 블록체인 네트워크의 합의위원회로 구성된 액티브 노드의 합의 과정이 중단된 경우, 패시브 노드를 합의위원회에 충원하여 중단된 합의 과정을 재개할 수 있도록 한다.
패시브 노드를 시스템에 수용하여 하이브리드 동기적 모델에서 서로 다른 합의 위원회를 구성함에 따라 동기적 네트워크 조건과 부분 동기적 네트워크 조건 모두에서 합의 처리 실행을 허용하여 합의 프로토콜 중단을 방지할 수 있다.
다른 이중 모드 프로토콜과 달리 비잔틴 내결함성이 백업 프로토콜에 의존하지 않는다. 보다 구체적으로, 디폴트 프로토콜은 비잔틴 오류를 허용할 수 있으며, 또한, 디폴트 프로토콜 작업에서 수집된 서명 목록은 합의를 통해 시작을 완료하는 대신 백업 프로토콜로 전환한 후 재사용할 수 있다.
도 1은 일 실시예에 따른 블록체인 합의 시스템의 듀얼 프로토콜 동작을 설명하기 위한 도면이다.
도 2는 일 실시예에 있어서, 프로토콜 동작을 설명하기 위한 도면이다.
도 3은 일 실시예에 있어서, 디폴트 프로토콜 동작을 설명하기 위한 도면이다.
도 4는 일 실시예에 있어서, 프로토콜 스위칭 처리 동작을 설명하기 위한 도면이다.
도 5는 일 실시예에 있어서, 프로토콜 스위칭 알고리즘을 나타낸 도면이다.
도 6은 일 실시예에 있어서, 백업 프로토콜 동작을 설명하기 위한 도면이다.
도 7은 일 실시예에 있어서, 백업 프로토콜 알고리즘을 나타낸 도면이다.
도 8은 일 실시예에 따른 블록체인 합의 시스템의 구성을 설명하기 위한 블록도이다.
도 9는 일 실시예에 따른 블록체인 합의 시스템에서 듀얼모드 블록체인 합의 방법을 설명하기 위한 흐름도이다.
이하, 실시예를 첨부한 도면을 참조하여 상세히 설명한다.
블록체인 네트워크가 동기적 상황(synchronous)에 있을 때와 부분 동기적 상황(partially synchronous)에 있을 때를 구분하여 정상 동작과 백업 동작에 특화된 합의 프로토콜을 별도로 두어 생성 블록에 대한 합의 성능을 개선하는 프로토콜 동작에 대하여 설명하기로 한다.
도 1은 일 실시예에 따른 블록체인 합의 시스템의 듀얼 프로토콜 동작을 설명하기 위한 도면이다.
블록체인에 추가된 블록에 대한 합의를 도출하기 위해 액티브 노드(active node)와 패시브 노드(passive node)가 포함된 듀얼모드 프로토콜이 설계될 수 있다.
도 1을 참고하면, 블록체인 합의 시스템(100)은 액티브 노드 및 패시브 노드를 포함하는 두 종류의 노드는 디폴트(default) 프로토콜과 백업(backup) 프로토콜에 따라 서로 다른 합의위원회(합의체)를 구성할 수 있다.
디폴트 프로토콜은 대부분의 액티브 노드가 올바르고 정상적인 동기적 상황인 경우에 사용되는 반면, 백업 프로토콜은 전체 시스템이 부분 동기적 상황인 경우에 사용된다. 네트워크 시간은 에포크(epoch)로 나뉘며 각 에포크에는 고정된 라운드 수가 포함된다. 매 라운드마다 액티브 노드 중 블록 제안자를 선정하고 제안자가 블록 검증 및 완료(finalization) 과정을 거치는 블록을 게시하도록 한다. 임계값 BLS 서명 방식을 기반으로 한 투표 방식 덕분에 블록 검증 및 완료 프로세스를 효율적으로 수행할 수 있다. BLS 서명 방식에 대하여 비특허문헌 1(Boldyreva, Alexandra. "Threshold signatures, multisignatures and blind signatures based on the gap-Diffie-Hellman-group signature scheme." International Workshop on Public Key Cryptography. Springer, Berlin, Heidelberg, 2003.)을 참고하기로 한다. O(logN) 통신 복잡성 내에서 한 번의 상호 작용으로 처리가 완료될 수 있다.
듀얼모드 프로토콜은 패시브 노드를 시스템으로 유도하여 하이브리드 동기적 모델에서 서로 다른 합의위원회를 구성하여 시스템의 가용성을 높일 수 있다. 비잔틴 결함 노드(byzantine faulty node) f를 허용하려면 시스템에서 최소 3f+1개의 노드가 필요하다. 노드 중 2f+1개는 액티브 노드이고 나머지 f개는 패시브 노드이다. 정상적인 경우 액티브 노드는 합의 처리를 유지하는 반면, 패시브 노드는 액티브 노드에서 생성된 커밋(commitment)에 따라 상태를 계속 업데이트한다. 비동기적 네트워크로 인해 디폴트 프로토콜이 결과를 내지 못하면 패시브 노드가 합의에 참여하여 합의 과정에서 합의가 중단되는 것을 방지한다.
도 2는 일 실시예에 있어서, 프로토콜 동작을 설명하기 위한 도면이다.
시스템의 안전성(safety)과 생기성(liveness)을 유지하기 위해 2f+1개의 액티브 노드와 f개의 패시브 노드가 포함될 수 있다. 실시예에서 제안되는 프로토콜은 동기적 상황에서 정상 동작을 수행하는 디폴트 프로토콜과 부분 동기적 네트워킹 환경의 백업 프로토콜을 포함한 두 가지 하위 프로토콜로 구성된 하이브리드 동기적 환경을 목표로 한다.
프로토콜 합의 시스템은 모든 에포크가 끝날 때마다 체크포인트 프로토콜을 설정하여 액티브 노드 또는 패시브 노드를 포함하는 모든 노드의 상태를 동기화할 수 있다. 우선적으로, 체크포인트 프로토콜에 대하여 설명하기로 한다. 안전을 유지하려면 각 에포크 시작 시 노드 유형 전환 전에 모든 참가자의 상태가 일치해야 한다. 이에, 체크포인트 프로토콜을 사용하여 각 에포크 끝의 노드 상태를 동기화할 수 있다. 예를 들면, 1024번째 블록(epoch의 마지막 블록)마다 체크포인트로 사용할 수 있다. 체크포인트 검증은 백업 프로토콜을 통해 수행되어야 하며, 임계값 서명을 복구하려면 2f+1 서명 공유가 필요하다. 일반 블록과 달리 체크포인트 블록은 패시브 노드에서 서명 공유를 획득하기 위해 유효한 웨이크-업 메시지에 의존하지 않는다. 대신, 체크포인트 블록의 라운드 번호는 사전 알려진 번호(예: 1024)로 구분되므로, 체크포인트는 설계에 따라 전체 네트워크를 통해 가십을 통해 전파된다.
체크포인트 블록 완료는 다음과 같이 진행될 수 있다. 체크포인트 블록은 일반 블록과 동일한 방식으로 제안된다. 블록 제안자는 튜플로 표현되는 일반 블록과 동일한 방식으로 체크포인트 블록을 생성한다. 여기서 n은 블록의 시퀀스 번호, r은 라운드 번호, p는 이전 블록에 대한 해시 포인터, 는 블록 제안자의 서명, d는 상태의 다이제스트이다. 노드가 블록 제안을 수신하면 블록의 유효성을 확인한다. 모든 정보가 유효하면, 노드는 이전에 수집된 서명과 해당 서명을 사용하여 수신된 블록을 가십(gossip)한다. 체크포인트가 2f+1 서명을 수집하면 임계값 서명 복구가 진행될 수 있다. 임계값 서명은 체크포인트의 완료를 증명한다. 또한 복구된 서명은 후속 에포크에 참여하는 노드 ID의 순열을 계산하는 입력으로 사용되는 에포크 임의성이다.
네트워크의 시간은 일련의 에포크로 나뉘며 각 에포크는 라운드로 설명되는 간격 스트림으로 구성될 수 있다. 블록 투표 메커니즘은 각 정직한 노드가 O(logN) 내에서 임계값 서명을 복구할 수 있는 가십 프로토콜과 결합된 임계값 BLS 서명을 기반으로 한다. 또한 각 하위 프로토콜에는 한 라운드(round)의 메시지 교환만 필요하므로 통신 비용을 최소화할 수 있다.
상세하게는, 프로토콜 합의 시스템은 디폴트 라운드 루프(Default Round Loop)(201)에서, 현재 라운드에 대한 랜덤값(210)을 생성하고, 생성된 랜덤값을 이용하여 블록 제안자 선택(220)에 의한 블록 제안 노드를 선택하고, 블록 제안 노드로부터 생성된 블록을 수신하고, 수신된 블록에 대한 검증(230)을 통해 검증이 유효한 경우(합의 정족수가 수집될 경우), 서명을 복구(240)할 수 있다. 정상 동작에서는 합의체(합의위원회)가 2f+1개의 액티브 노드로만 구성된다. 이때, 합의 정족수(최소 결정 정족수, 합의 의사 정족수)란, 블록체인 네트워크를 포함한 분산시스템에서 어떤 사안에 대한 투표가 이루어질 때 전체 시스템 상태의 일관성을 보장하는 최소 투표(vote)의 수를 의미한다. 통상 네트워크 수를 n라고 하고, 비잔틴 결함 노드의 수를 f라고 하면 동기적 상황에서는 n >= 2f+1이어야 하고 이중 f+1개의 노드가 블록 합의에 찬성해야 한다. 부분 동기적 상황에서는 n >= 3f+1이어야 하고 그중 2f+1 이상이 생성할 블록에 합의해야 한다.
이때, 합의 정족수가 수집되지 않을 경우, 패시브 노드를 포함하여 합의 정족수를 수집하기 위한 백업 라운드 루프(Backup Round Loop)(202) 동작이 수행될 수 있다. 프로토콜 합의 시스템은 백업 라운드 루프(Backup Round Loop)(202)에서, 패시브 노드를 웨이크-업(250)하고, 웨이크-업된 패시브 노드로부터 생성된 블록을 수신하고, 수신된 블록에 대한 검증(260)을 통해 검증이 유효한 경우(합의 정족수가 수집될 경우), 서명을 복구(240)할 수 있다. 백업 동작에서는 f개의 패시브 노드도 합의위원회에 참여하도록 허용하여 합의체(합의위원회)의 크기는 3f+1이 되고, 합의 정족수는 2f+1이 된다.
도 3은 일 실시예에 있어서, 디폴트 프로토콜 동작을 설명하기 위한 도면이다.
실시예에서 제안하는 듀얼모드 프로토콜은 비잔틴 내결함성이 백업 프로토콜에 의존하지 않는 듀얼모드 프로토콜이다. 특히, 디폴트 프로토콜은 자체적으로 비잔틴 오류를 허용할 수 있다. 디폴트 프로토콜을 실행해야 하는 조건은 액티브 노드의 절반 이상이 정확하고 동기적이어야 한다. 백업 프로토콜은 합의에 찬성한 동기식 액티브 노드가 f+1보다 작아 디폴트 프토토콜에 의한 합의가 중단되는 상황에서 수행된다.
대조적으로, SBFT 및 CheapBFT와 같은 종래의 프로토콜은 모든 참가자가 정확하고 동기적이어야 한다. 시스템에 오류 노드가 하나라도 있는 경우 동작이 백업 프로토콜로 대체될 수 있다. 또한, 디폴트 프로토콜 동작에서 수집된 서명 목록은 시스템을 재부팅하는 대신 백업 프로토콜로 전환한 후 재사용할 수 있다.
프로토콜 합의 시스템은 t-of-n 임계값 BLS 서명 방식 덕분에, t 이상의 모든 하위 집합은 고유한 공개 키로 확인할 수 있는 집계 서명을 계산할 수 있다. 따라서 백업 프로토콜 동작에서 디폴트 프로토콜 중에 수집된 서명 목록에 따라 서명 공유 컬렉션을 다시 시작할 수 있다. 서명 공유 수(최소 결정 정족수)가 2f+1이 될 때까지 집계 서명 복구를 실행할 수 있다. 통신비용 절감을 위해, 합의 달성을 위한 메시지 교환 라운드를 O(logN) 통신 복잡성과의 한 라운드로 줄인다. 이와 대조적으로, SBFT 프로토콜의 빠른 합의 경로와 느린 경로 모두 선형 통신 복잡성으로 3상 메시지 교환으로 구성되며, CheapTiny와 MinBFT는 전체 통신에 의존하는 2상 프로토콜이다.
SBFT 프로토콜은 메시지 수집, 임계값 서명 복구 및 증명 배포를 담당하는 메시지 콜렉터에 의존한다. 마찬가지로, CheapBFT는 특히 프로토콜 스위칭 실행 중에 프로토콜 처리를 추진하는 리더에 의존한다. 이에 반해, 실시예에서 제안된 프로토콜은 메시지 수집 및 임계값 서명 복구는 모든 참가자가 수행할 수 있다. 또한, 실시예에서 제안된 프로토콜에서는 어떤 노드도 안전하게 프로토콜 스위치를 트리거할 수 있다.
합의위원회 구성을 합의 처리 범위를 벗어나는 작업으로 간주될 수 있다. 노드가 서로 네트워크 연결을 가질 수 있는 피어 탐색 알고리즘을 사용하여 ID를 할당할 수 있다. 일단 ID가 성공적으로 설정되면, 각 에포크에서 생성된 랜덤값 rnde을 사용하여 ID에 대한 1,...,n의 순열 를 계산한다. 순열은 액티브 노드 그룹과 패시브 노드 그룹을 결정하기 위하여 2/3 노드와 1/3 노드의 두 부분으로 세분화될 수 있다. 실시예에서는 DKG 프로토콜을 사용하여 노드가 메시지에 서명하고 블록 완료를 나타내는 임계값 서명을 확인하기 위한 키 쌍이 생성될 수 있다.
프로토콜 합의 시스템은 2f+1개의 액티브 노드와 f 개의 패시브 노드로 구성된 n = 3f+1 개의 노드 사이에서 최대 f개의 비잔틴 결함을 허용할 수 있는 하이브리드 동기화 모델에 따라 f 개의 비잔틴 결함이 두 유형의 노드에서 발생할 수 있다. 디폴트 프로토콜에서 액티브 노드는 f+1개 이상의 액티브 노드가 결함이 없고 동기적이라는 조건에서 합의가 진행될 수 있다. 반면, 패시브 노드는 액티브 노드들이 디폴트 프로토콜에 의한 합의에 도달하지 못하는 경우가 아니면 합의 프로세스에 참여하지 않는다. 패시브 노드에는 동기화 제한이 없으므로 속도가 느릴 수 있다. 그러나 패시브 노드는 커밋 메시지(commit message)를 받으면 액티브 노드의 출력에 따라 상태를 동기화한다. 이러한 설정을 사용하면 비동기적 환경에서 안전성이 보장되는 부분 동기식 BFT 프로토콜이 완성될 수 있다. 사용 가능 여부는 네트워크 동기화에 따라 달라진다. 즉, 둘 다 획득할 수 없는 경우에는 사용 가능 여부보다 안전 속성이 선호될 수 있다.
디폴트 프로토콜은 동기적 상황에서 실행되는 합의 프로토콜이다. 도 3에서 볼 수 있듯이, 디폴트 프로토콜은 다음을 포함한 네 가지 주요 구성요소로 구성될 수 있다.
분산된 랜덤값 생성(210) 방식은 참가자들이 시스템 전체에 걸쳐 검증이 가능하고 예측할 수 없는 출력을 공동으로 생성할 수 있다. 이러한 요구 사항을 충족하기 위해, 직전 라운드에서 생성된 임계값 BLS 서명에 기초하며, 로 계산하는 방식이 사용될 수 있다. 여기서 는 다음 라운드에 대한 랜덤값이고, H는 해시 함수이며, 는 현재 라운드에 대한 랜덤값이고, 은 현재 라운드에서 생성된 임계값 서명이다. 분산된 랜덤값 생성은 비대화형 방식으로 수행될 수 있다.
생성된 랜덤값 시드에 기반한 블록 제안자 선택(220) 방식에 대하여 설명하기로 한다. 액티브 노드 목록에서 합법 블록 제안자를 선택한다. 블록 제안자 위치 Bpp는 로 계산되며, 는 액티브 노드의 수이다. 선정 결과는 네트워크를 통해 일관되며 블록 제안자의 서명을 사용하여 쉽게 검증할 수 있다.
블록 검증(230) 프로세스는 제안된 블록에 대한 서명 공유를 수집하여 서명 복구 임계값을 충족한다. 임계값 서명 체계를 사용하면 프로토콜 참가자가 신뢰할 수 있는 딜러 또는 모든 당사자 간에 실행되는 대화형 DKG(분산 키 생성) 프로토콜에 의해 비밀 키를 공유할 수 있다. DKG(분산 키 생성) 프로토콜에 대하여 비특허문헌 2(Gennaro, Rosario, et al. "Secure distributed key generation for discrete-log based cryptosystems." International Conference on the Theory and Applications of Cryptographic Techniques. Springer, Berlin, Heidelberg, 1999.)를 참고하기로 한다.
실시예에서는 통신 복잡성을 줄이기 위해 가십 프로토콜을 사용하여 네트워크 전체에 블록과 서명을 전파한다. 노드가 제안된 블록을 수신하면 유효성을 확인하고 이전에 수집된 모든 서명을 노드의 서명과 함께 수신된 블록을 내보낸다. 서명 수집에는 효율적인 단방향 통신이 한 번 필요하다. 확인된 블록은 f+1 서명을 누적하므로 임계값 서명 복구 처리가 가능하다.
효율적인 그룹 서명 복구(240) 방식에 대하여 설명하기로 한다. 그룹 서명 복구는 모든 노드에서 수행할 수 있다. 성공적으로 복구된 그룹 서명은 제안된 블록에 대한 합의를 입증하는 데 효율적이며, 해당 그룹 공개 키를 사용하여 효율적으로 확인할 수 있다.
도 4는 일 실시예에 있어서, 프로토콜 스위칭 처리 동작을 설명하기 위한 도면이다.
디폴트 프로토콜을 사용하면 효율적인 합의 처리를 할 수 있다. 그러나 동기적 상황에서 합의한 액티브 노드 수가 f+1보다 적을 경우 디폴트 프로토콜은 더 이상 진행할 수 없기 때문에 네트워크 상태에 민감하다. 이 경우, 가용성을 유지하기 위해 백업 프로토콜로 되돌아가서 부분 동기적 상황 하에서 프로토콜이 합의에 따라 진행할 수 있다. 백업 프로토콜을 안전하게 트리거하기 위해 블록 완료 경로 전환을 위한 간단한 프로토콜 전환 방식이 사용될 수 있다.
모든 노드가 웨이크-업(wakeup) 메시지 브로드캐스트를 시작하여 작동 경로 전환을 트리거하도록 허용한다. 웨이크-업 메시지는 형식은 이며, 여기서 는 마지막 라운드에서 마무리된 블록이고, 은 블록의 복구된 그룹 서명이며, i는 보낸 사람의 ID이고, 는 메시지 전송한 노드의 서명이다. 노드는 이전 라운드의 제안된 블록에 대한 그룹 서명을 받은 후 다음 라운드의 라운드 랜덤값을 계산하고 동시에 타이머를 설정한다. 타임아웃이 발생한 후에 노드가 현재 라운드에서 제안된 블록에 대한 그룹 서명을 수신하지 않으면 노드는 웨이크-업 메시지를 시스템 전체에 브로드캐스트한다.
도 4를 참고하면, 프로토콜 스위칭 동작을 나타낸 것으로, 웨이크-업 메시지를 수신한 노드가 이미 유효한 와 함께 을 수신한 경우, 노드는 현재 라운드의 최종 블록을 시작 노드로 다시 전송할 수 있다. 노드가 블록도 수신하지 않으면, 노드는 서명이 추가된 웨이크업 메시지를 가십할 것이다. 블록 완료와 유사하게 웨이크-업 메시지를 2f+1 서명 공유를 수집할 때 검증된 것으로 간주하며, 이는 2f+1개의 노드가 백업 프로토콜에 참여할 준비가 되었음을 나타낸다. 그런 다음, 서명 공유는 웨이크-업 메시지의 검증값인 임계값 서명 으로 복구될 수 있다. 도 5를 참고하면, 프로토콜 스위칭 동작의 처리 절차는 알고리즘 1에도 설명되어 있다.
검증된 웨이크-업 메시지는 백업 프로토콜을 트리거하는 데 사용된다. 웨이크-업 메시지와 유효한 를 수신하면 패시브 노드는 제안된 라운드 r 블록에 대한 합의 프로토콜에 참여한다. 이에, 백업 부분 동기적 프로토콜(백업 프로토콜)로 전환된다.
도 6은 일 실시예에 있어서, 백업 프로토콜 동작을 설명하기 위한 도면이다.
백업 프로토콜을 사용하면 디폴트 프로토콜을 진행할 수 없는 경우에도 블록을 확인할 수 있다. 프로토콜 전환 후 패시브 노드는 임계값 서명 복구를 위해 서명 공유를 연결하여 합의 프로토콜에 참여한다.
웨이크-업 메시지의 검증을 복구한 노드는 수집된 모든 서명과 검증을 포함한 유효한 웨이크-업 메시지와 함께 현재 라운드에서 제안된 블록을 가십할 수 있다. 웨이크-업 메시지에 대한 임계값을 복구한 노드가 제안된 블록을 수신하지 않은 경우 노드가 제안된 블록의 확산을 시작할 때까지 웨이크-업 메시지만 가십한다. 블록 검증 처리는 제안된 블록 및 서명 공유가 가십 프로토콜에 의해 확산되는 정상 동작과 유사하다.
도 6과 같이, 블록이 유효한 승인을 충분히 수집할 때까지 검증 과정이 반복될 수 있다. 정상 동작과 달리, 임계값 서명을 복구하는 데 필요한 서명 수는 2f+1이다. 집계 서명은 다음 라운드의 블록 제안자의 랜덤 시드뿐만 아니라 블록 완료의 증거로 간주될 수 있다. 임계값 서명을 수신한 후 패시브 노드는 상태를 업데이트하고 타이머를 재설정할 수 있다. 즉, 다음 번에 유효한 웨이크-업 메시지가 수신될 때까지 다음 라운드의 합의 처리에 참여하지 않음을 의미한다. 보다 구체적으로 설명하자면, 백업 프로토콜은 현재 라운드에 대해서만 실행되며 다음 라운드에서 합의 프로토콜이 자동으로 디폴트 프로토콜로 되돌아간다. 도 7을 참고하면, 백업 프로토콜에 대한 알고리즘 2가 설명되어 있다.
실시예에서 제안된 듀얼모드 프로토콜은 네트워크 크기가 n=401 노드인 이전 작업(비특허문헌 3: Santiago, Carlos, et al. "Concordia: A Streamlined Consensus Protocol for Blockchain Networks." IEEE Access 9 (2021): 13173-13185.)을 기반으로 하고 있으며, 이는 2f+1 액티브 노드로 실행되는 정상 동작으로도 사용된다. 따라서 프로토콜이 3f+1 노드의 네트워크를 유지하므로 네트워크 크기를 n=601 노드로 설정한다. 노드 중 401개는 액티브 노드이고 나머지 노드는 패시브 노드이다. 각 호스트 간의 링크가 35Mbps 대역폭으로 100ms의 전파 지연을 일으킨다고 가정하여 정상 작동의 성능을 이전 작업과 동일하게 한다. 처리량과 지연 시간은 블록 크기와 관련이 있다. 평균적으로 정상 작동은 약 10초의 확인 지연 시간으로 2000 TPS를 처리할 수 있다. 백업 프로토콜을 안전하게 트리거하기 위해 시간 초과 기간을 20초로 설정한다. 시간 초과 기간 동안 액티브 노드가 합의를 계속 처리하므로 성능에 영향을 미치지 않는다. 시간 초과 전에 정상 작동이 합의에 도달할 수 없는 경우 정상 작동의 지연 시간이 무한대로 증가하며 합의 프로세스는 스위치 프로토콜을 통해 백업 작동에 의존한다. 스위치 프로토콜 실행에는 블록 전파 없이 서명 전파 및 복구만 필요하다. 즉, 메시지 크기가 일반 작업보다 훨씬 작고 지연 시간이 5초 미만이 된다. 백업 동작으로 전환한 후 실행은 10초의 지연 시간이 필요한 일반 동작과 비슷하다. 따라서 백업 동작의 총 지연 시간은 ∞와 비교하여 허용되는 약 15초이다.
도 8은 일 실시예에 따른 블록체인 합의 시스템의 구성을 설명하기 위한 블록도이다.
블록체인 합의 시스템(100)은 블록체인 네트워크의 네트워크 상태 정보에 따라 정상 동작과 백업 동작을 수행하기 위한 프로토콜 모드를 전환하고, 전환된 프로토콜 모드에 기초하여 구성된 블록체인 네트워크의 노드들을 이용하여 프로토콜 합의를 진행하는 동작을 수행할 수 있다. 블록체인 합의 시스템은 메모리(810) 및 프로세서(820)를 포함할 수 있다.
메모리(810)는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 모두 포함하여 구성될 수 있으며, 모델 변환 시스템(100)의 적어도 하나의 다른 구성요소에 관계된 명령어 또는 데이터를 저장한다.
프로세서(820)는 중앙처리장치, 애플리케이션 프로세서, 또는 커뮤니케이션 프로세서 중 하나 또는 그 이상을 포함할 수 있다. 예를 들면, 프로세서(820)는 블록체인 합의 시스템(100)의 적어도 하나의 다른 구성요소들의 제어 및/또는 통신에 관한 연산이나 데이터 처리를 실행할 수 있다.
도 9는 일 실시예에 따른 블록체인 합의 시스템에서 듀얼모드 블록체인 합의 방법을 설명하기 위한 흐름도이다.
단계(910)에서 프로세서는 블록체인 네트워크의 네트워크 상태 정보에 따라 정상 동작과 백업 동작을 수행하기 위한 프로토콜 모드를 전환할 수 있다. 프로세서는 블록체인 네트워크의 동기적 상황(synchronous) 또는 부분 동기적 상황(partially synchronous)을 포함하는 네트워크 상태 정보를 판단할 수 있다. 프로세서는 판단된 네트워크 상태 정보가 동기적 상황일 경우, 정상 동작을 수행하기 위한 디폴트 프로토콜 모드를 실행하고, 네트워크 상태가 부분 동기적 상황일 경우, 실행 중인 디폴트 프로토콜이 백업 프로토콜 모드로 전환되어 수행된다. 프로세서는 전환된 백업 프로토콜 모드에서, 액티브 노드 및 패시브 노드를 포함하는 블록체인 네트워크의 합의위원회를 구성할 수 있다. 이때, 동기적 상황은, 정상 동작을 수행하기 위한 디폴트 프로토콜 모드에서 블록체인 네트워크의 합의위원회로 구성된 액티브 노드를 이용하여 합의 과정이 진행되는 것일 수 있다. 부분 동기적 상황은, 동기적 상황에서 블록체인 네트워크의 합의위원회로 구성된 액티브 노드의 합의 과정이 중단된 경우, 패시브 노드를 합의 위원회에 충원하여 중단된 합의 과정을 재개할 수 있게 하는 것일 수 있다.
단계(920)에서 프로세서는 전환된 프로토콜 모드에 기초하여 구성된 블록체인 네트워크의 노드들을 이용하여 프로토콜 합의를 진행할 수 있다. 프로세서는 전환된 프르토콜 모드가 백업 프로토콜 모드일 경우, 블록체인 네트워크의 합의위원회로 구성된 액티브 노드 및 패시브 노드를 이용하여 합의를 진행할 수 있다. 이때, 백업 프로토콜 모드에서 합의가 진행된 후, 디폴트 프로토콜 모드로 회귀하여 후속 블록에 대한 합의를 시도할 수 있다.
이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치에 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.

Claims (10)

  1. 블록체인 합의 시스템에 의해 수행되는 듀얼모드 블록체인 합의 방법에 있어서,
    블록체인 네트워크의 네트워크 상태 정보에 따라 정상 동작과 백업 동작을 수행하기 위한 프로토콜 모드를 전환하는 단계; 및
    상기 전환된 프로토콜 모드에 기초하여 구성된 블록체인 네트워크의 노드들을 이용하여 프로토콜 합의를 진행하는 단계
    를 포함하고,
    상기 전환하는 단계는,
    에포크가 끝날 때마다 체크포인트 프로토콜을 통해 각 에포크 끝의 액티브 노드 또는 패시브 노드를 포함하는 모든 노드의 상태를 동기화하고, 블록체인 네트워크의 동기적 상황(synchronous) 또는 부분 동기적 상황(partially synchronous)을 포함하는 네트워크 상태 정보를 판단하고, 상기 판단된 네트워크 상태 정보가 동기적 상황일 경우, 정상 동작을 수행하기 위한 디폴트 프로토콜 모드를 실행하고, 상기 판단된 네트워크 상태 정보가 부분 동기적 상황일 경우, 실행 중인 디폴트 프로토콜 모드를 백업 프로토콜 모드로 전환하는 단계
    를 포함하고,
    상기 동기적 상황은, 정상 동작을 수행하기 위한 디폴트 프로토콜 모드에서 블록체인 네트워크의 합의위원회로 구성된 액티브 노드를 이용하여 합의 과정이 진행되는 것이고,
    상기 부분 동기적 상황은, 상기 동기적 상황에서 블록체인 네트워크의 합의위원회로 구성된 액티브 노드를 이용하여 합의 과정이 중단된 경우, 패시브 노드를 합의위원회의에 충원하여 중단된 합의 과정이 재개될 수 있도록 하는 것
    을 포함하는 듀얼모드 블록체인 합의 방법.
  2. 삭제
  3. 삭제
  4. 제1항에 있어서,
    상기 전환하는 단계는,
    상기 전환된 백업 프로토콜 모드에서, 액티브 노드 및 패시브 노드를 포함하는 블록체인 네트워크의 합의위원회를 구성하는 단계
    를 포함하는 듀얼모드 블록체인 합의 방법.
  5. 제1항에 있어서,
    상기 프로토콜 합의를 진행하는 단계는,
    상기 전환된 프르토콜 모드가 백업 프로토콜 모드일 경우, 블록체인 네트워크의 합의위원회로 구성된 액티브 노드 및 패시브 노드를 이용하여 합의를 진행하는 단계
    를 포함하는 듀얼모드 블록체인 합의 방법.
  6. 삭제
  7. 삭제
  8. 제5항에 있어서,
    상기 백업 프로토콜 모드에서 합의가 진행된 후, 디폴트 프로토콜 모드로 회귀하여 후속 블록에 대한 합의를 시도하는 것을 특징으로 하는 듀얼모드 블록체인 합의 방법.
  9. 제1항, 제4항 내지 제5항, 제8항 중 어느 한 항의 듀얼모드 블록체인 합의 방법을 상기 블록체인 합의 시스템에서 실행시키기 위해 비-일시적인 컴퓨터 판독가능한 기록 매체에 저장된 컴퓨터 프로그램.
  10. 블록체인 합의 시스템에 있어서,
    메모리에 포함된 컴퓨터 판독가능한 명령들을 실행하도록 구성된 적어도 하나의 프로세서
    를 포함하고,
    상기 적어도 하나의 프로세서는,
    블록체인 네트워크의 네트워크 상태 정보에 따라 정상 동작과 백업 동작을 수행하기 위한 프로토콜 모드를 전환하고,
    상기 전환된 프로토콜 모드에 기초하여 구성된 블록체인 네트워크의 노드들을 이용하여 프로토콜 합의를 진행하는 것을 포함하고,
    상기 적어도 하나의 프로세서에서,
    에포크가 끝날 때마다 체크포인트 프로토콜을 통해 각 에포크 끝의 액티브 노드 또는 패시브 노드를 포함하는 모든 노드의 상태를 동기화하고, 블록체인 네트워크의 동기적 상황(synchronous) 또는 부분 동기적 상황(partially synchronous)을 포함하는 네트워크 상태 정보를 판단하고, 상기 판단된 네트워크 상태 정보가 동기적 상황일 경우, 정상 동작을 수행하기 위한 디폴트 프로토콜 모드를 실행하고, 상기 판단된 네트워크 상태 정보가 부분 동기적 상황일 경우, 실행 중인 디폴트 프로토콜 모드를 백업 프로토콜 모드로 전환하는 것을 포함하고,
    상기 동기적 상황은, 정상 동작을 수행하기 위한 디폴트 프로토콜 모드에서 블록체인 네트워크의 합의위원회로 구성된 액티브 노드를 이용하여 합의 과정이 진행되는 것이고,
    상기 부분 동기적 상황은, 상기 동기적 상황에서 블록체인 네트워크의 합의위원회로 구성된 액티브 노드를 이용하여 합의 과정이 중단된 경우, 패시브 노드를 합의위원회의에 충원하여 중단된 합의 과정이 재개될 수 있도록 하는 것을 특징으로 하는 블록체인 합의 시스템.
KR1020210129124A 2021-09-29 2021-09-29 블록체인 네트워크를 위한 효율적인 듀얼모드 합의 프로토콜 KR102652737B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020210129124A KR102652737B1 (ko) 2021-09-29 2021-09-29 블록체인 네트워크를 위한 효율적인 듀얼모드 합의 프로토콜
PCT/KR2022/011836 WO2023054888A1 (ko) 2021-09-29 2022-08-09 블록체인 네트워크를 위한 효율적인 듀얼모드 합의 프로토콜

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210129124A KR102652737B1 (ko) 2021-09-29 2021-09-29 블록체인 네트워크를 위한 효율적인 듀얼모드 합의 프로토콜

Publications (2)

Publication Number Publication Date
KR20230046085A KR20230046085A (ko) 2023-04-05
KR102652737B1 true KR102652737B1 (ko) 2024-04-01

Family

ID=85780836

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210129124A KR102652737B1 (ko) 2021-09-29 2021-09-29 블록체인 네트워크를 위한 효율적인 듀얼모드 합의 프로토콜

Country Status (2)

Country Link
KR (1) KR102652737B1 (ko)
WO (1) WO2023054888A1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117478301B (zh) * 2023-12-27 2024-04-09 湖南天河国云科技有限公司 基于有向无环图的区块链共识达成方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190354518A1 (en) * 2018-05-01 2019-11-21 Michael Zochowski Chain mesh network for decentralized transaction systems
US20200110648A1 (en) * 2019-03-18 2020-04-09 Alibaba Group Holding Limited System and method for ending view change protocol
US20210075598A1 (en) * 2017-09-22 2021-03-11 NEC Laboratories Europe GmbH Scalable byzantine fault-tolerant protocol with partial tee support
WO2021073777A1 (en) * 2019-10-14 2021-04-22 NEC Laboratories Europe GmbH Topology-driven byzantine fault-tolerant consensus protocol with vote aggregation

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112804349B (zh) * 2017-07-14 2023-07-04 创新先进技术有限公司 区块链共识网络中处理共识请求的方法、装置和电子设备

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210075598A1 (en) * 2017-09-22 2021-03-11 NEC Laboratories Europe GmbH Scalable byzantine fault-tolerant protocol with partial tee support
US20190354518A1 (en) * 2018-05-01 2019-11-21 Michael Zochowski Chain mesh network for decentralized transaction systems
US20200110648A1 (en) * 2019-03-18 2020-04-09 Alibaba Group Holding Limited System and method for ending view change protocol
WO2021073777A1 (en) * 2019-10-14 2021-04-22 NEC Laboratories Europe GmbH Topology-driven byzantine fault-tolerant consensus protocol with vote aggregation

Also Published As

Publication number Publication date
WO2023054888A1 (ko) 2023-04-06
KR20230046085A (ko) 2023-04-05

Similar Documents

Publication Publication Date Title
KR102170345B1 (ko) 뷰 변경 프로토콜을 종료하기 위한 시스템 및 방법
EP3596888B1 (en) System and method for ending view change protocol
Amir et al. Scaling byzantine fault-tolerant replication towide area networks
WO2023056974A1 (zh) 共识方法、区块链系统和共识节点
WO2023056964A1 (zh) 共识方法、区块链系统和共识节点
CN113609515B (zh) 一种共识方法、区块链系统
WO2023056976A1 (zh) 共识方法、区块链系统和共识节点
WO2023056967A1 (zh) 共识方法、区块链系统和共识节点
WO2023056966A1 (zh) 共识方法、区块链系统和共识节点
JP2022523217A (ja) 投票集計を伴うトポロジードリブンビザンチンフォールトトレラント合意プロトコル
KR102652737B1 (ko) 블록체인 네트워크를 위한 효율적인 듀얼모드 합의 프로토콜
Abraham et al. Optimal good-case latency for rotating leader synchronous bft
US11341004B2 (en) Flexible byzantine fault tolerance
CN114785799B (zh) 区块链共识方法、区块链副本装置、计算机设备及存储介质
Kuo et al. Fair Byzantine agreements for blockchains
Gomez-Calzado et al. An evaluation of efficient leader election algorithms for crash-recovery systems
An et al. Research on Byzantine Fault Tolerant algorithm based on Node Weights
Jalalzai et al. Fast B4B: Fast BFT for Blockchains
CN115941680A (zh) 基于跨分片拜占庭容错算法的灵活分片区块链方法及装置
KR20210151001A (ko) 분산 소프트웨어 정의 네트워크에서 비잔틴 장애 극복 방법
CN116846906A (zh) 一种共识方法、区块链节点
Chiang et al. Hybrid consensus agreement on CDS-based mobile ad-hoc network
JP2005011365A (ja) 分散システムおよび同システムの時刻管理方法
Peisert BChain: Byzantine Replication with High Throughput and Embedded Reconfiguration

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