PoDC(Proof of Double Committee) 합의 알고리즘

ReapChain(REAP)
ReapChain Official
Published in
8 min readJul 30, 2020

본질적으로 블록체인 분산원장의 핵심 문제는 블록 생성자가 무작위로 선택하는 것입니다.

이 무작위성은 전체 네트워크에서 확인할 수 있으며 조작하거나 예측이 불가능해야 합니다.

그렇지 않으면 악의적인 행동을 하는 노드가 난수를 조작하여 오랫동안 메인 체인을 제어할 수 있습니다. 따라서 이중 지불 공격도 달성할 수 있습니다.

ReapChain의 알고리즘은 이러한 합의에 대한 문제를 개성하기위한 방법으로 이중위원회와 퀀텀난수를 통한 랜덤방식을 통해 블록생성을 합의하게 됩니다.

1. PoDC 합의 알고리즘과 이중위원회

1) PoDC 양원제 합의 알고리즘

ReapChain은 기존 DPoS 방식과 PDFT 방식을 개선한 신규 합의 알고리즘인 PoDC 양원제 합의알고리즘을 구현하였습니다.

ReapChain에서는 내부와 외부의 균형을 위하여 상임위 노드와 운영위 노드를 운영하고, 이런 노드들로 이중 위원회(double committee)를 구성하여 합의과정을 진행합니다.

네트워크에 참여하는 노드의 수가 늘어나더라도 합의 과정에는 29개(상임위: 14개, 운영위 15개)의 노드만 참여하기 때문에 데이터 처리속도를 유지할 수 있고, 합의에 참여하는 노드 중에서 운영위 노드의 비율이 항상 51% 이상을 유지함으로서, 상시 운영되는 상임위 노드의 공정성을 확보하여 탈중앙화를 구현합니다.

2) 이중 위원회(double committee)

PoDC는 상임위와 운영위의 이중 구성으로 탈중앙화를 지향합니다.

상임위 노드는 초기에는 거버넌스에 의해 커뮤니티에서 주도하여 운영되지만, 기존 상임위 노드 중 중지되거나 조건이 맞지 않는 경우, 운영위 노드 중 상임위 노드의 조건을 갖춘 후보군에서 추가로 선정될 수 있습니다.

이 때 거버넌스의 별도 투표 절차를 거쳐야 운영위 노드에서 상임위 노드로 승격이 될 수 있습니다.

① 상임위노드 : ReapChain 블록체인 네트워크를 상시 운영되도록 하기 위해 별도로 구축된 내부 그룹으로, REAP의 총 발행량의 2%( 98,000,000 REAP)를 보유해야합니다.

② 운영위노드 : 일반 노드 중에서 100,000 REAP 보유 조건이 맞으면서 거버넌스에 등록과정을 거쳐서 허가된 외부 그룹으로 운영위후보군으로 불립니다.
이런 운영위후보 그룹에서 퀀텀난수를 이용한 랜덤 선출 방식으로 선택된 15개의 운영이 노드만이 합의에 참여할 수 있습니다.

ReapChain은 상시 운영되는 14개의 상임위 노드와 일반 노드 중에서 보안에 강한 퀀텀난수를 활용한 방식으로 예측 불가능한 무작위 추출로 선택된 15개의 운영위 노드로 구성되며, 이러한 29개의 노드가 블록 생성을 위한 합의 과정에 참여합니다. 합의에 참여하는 노드 중에서 운영위 노드가 참여하는 비율은52% 이상 유지하여야 상시 운영되는 상임위 노드가 공정하게 운용되고 있는 지 감시할 수 있습니다.

2. PoDC 합의 알고리즘 구조 Consensus Model

ReapChain의 합의알고리즘은 퀀텀난수(QRN; Quantum Random Number)를 활용하여 구성된 상임위 및 운영위에서 투표를 진행하여 빠르게 합의할 수 있습니다.

1) ReapChain은 상시 운영되는 상임위 노드들 중 48%와 일반 노드들 중 52%가 선택되고, 각 노드들은 합의 과정에 참여하는 블록 생성의 주체와 검증자의 역할을 합니다.

2) 합의에 참여하는 노드 중에서 운영위 노드의 참여하는 비율은 52% 이상 유지하여 상시 운영되는 상임위 노드가 공정하게 운용되고 있는지 감시합니다.

3) 합의 참여자 선정은 퀀텀난수를 이용하여 검증자 노드들을 공정하게 선택 배분하고 다시 퀀텀난수와 공개키를 이용하여 암호화 기능이 내재된 난수 티켓 부여 방식을 이용합니다. 해킹이 불가능한 메시지 전달 방식과 고속 인증과 합의가 구현된 하드웨어 의존적 호출함수들의 모임을 퀀텀난수 매니징 서버(Qmanager)라 명명합니다.

4) 퀀텀난수 생성의 하드웨어 의존적인 특징 때문에 Qmanager는 노드와 별도로 존재합니다.

5) Qmanager의 역할에 대해, 퀀텀난수를 접목한 양자확률함수기법(Quantum Random Function Mechanism)을 도입합니다. ReapChain의 차별적인 특징은 QRF Mechanism에 담겨있습니다.

3. 합의를 위한 QRF Mechanism

QRF Mechanism: ReapChain에서 합의가 이루어지는 절차는 퀀텀난수와 공개키 암호 그리고 빠른 인식기능을 위한 공개키 해시를 활용하여 이루어집니다. 일련의 인증 및 정보전달 체계를 양자확률함수 기법(Quantum Random Function Mechanism)이라 명명합니다. QRF는 퀀텀난수 서버인 Qmanager를 이용하여 기능적인 요소를 제공합니다.

Qmanager는 블록체인망에 참여한 모든 노드들의 네트워크 정보, 공개 키를 갖고 있습니다. Qmanager 의 네트워크 주소는 모든 노드들에게 공개되어 있으며 체인에 참여하는 노드는 ReapChain에서 지정 하는 공개키 암호화를 이용하여 해당 노드의 공개키와 개인키를 생성한 후 개인키는 각 노드가 안전하게 보관하고 공개키를 Qmanager에 등록합니다. Qmanager는 암호화된 노드 마스타 테이블을 인메모리 DB형태로 갖고 노드 아이디, 노드 네트워크정 보, 공개키, 할당퀀텀난수값을 저장하고 있습니다.

4. PoDC 합의 과정과 블록 생성

1) 블록 생성

ReapChain은 기본적인 블록 생성 주기는 2초이지만 가원장에 해당하는 이중체인 미들웨어에서는1초 미만으로 가 승인 통보를 해줌으로써, 소비자가 카드 결제 승인 같이 느낄 수 있도록 효과를 낼 수 있습니다. 실제 ReapChain에서 블록이 2초 이내로 생성되므로 소비자는 결제 승인 지연을 거의 느끼지 못합니다. 이를 통해서 ReapChain은 상용화 거래에 적합합니다.

ReapChain은 2초 이내에 상시 운영되는 상임위 중에서 코디네이터를 선정하여 빠르게 합의에 이를 수 있는데, 이는 선정된 코디네이터를 중심으로 나머지 28개의 노드들은 합의과정 중에 노드 간의 직접 통신 상태로 최소의 네트워크 트래픽으로 합의에 도달하기 때문입니다. 구체적으로는, P2P네트워크에서는 broadcast되는 확인메시지를 모으는 과정에서 시간 지연과 네트워크 부하가 발생하지만, 내부 네트워크(내부 조직)에서는 코디네이터와 메시지가 한번만 발생합니다. 이러한 코디네이터는 결국 오직 한 개의 블록 생성자 (BlockProducer)가 되어 블록을 생성할 수 있습니다. 2초 이내에 블록이 생성되지 못한 경우에는 해당 주기의 블록 생성은 건너뛰게 됩니다.

ReapChain에서는 2초 이내로 짧은 시간에 블록이 생성되면서 매 블록마다 확정(Finality)을 하게 되면 시간이 좀 더 걸릴 여지가 있으므로, 이더리움 캐스퍼 방식처럼 매 20번째 블록에서 Checkpoint를두어서 일정 수의 블록을 모아서 거래를 확정하는 부분을 향후 개선할 예정입니다.

2) PoDC 합의 과정

ReapChain은 블록 생성을 위해 하나의 라운드 테이블을 생성합니다.

하나의 라운드에서는 일반 노드 중에서 보안이 강화된 랜덤 선정방식으로 선택된 15개의 운영위 노드와 14개 상임위 노드는 함께 트랜잭션의 유효성 검사에 참여합니다.

이때는 ReapChain의 QSN (Quantum Safety Net) 네트워크 내에서 이루어지는 합의의 신뢰를 보장합니다.

상시 운영 노드가 전체 합의 노드 중에서 48%를 차지하고 있고, 사용자는 노드는 예측할 수 없도록 퀀텀난수를 이용한 랜덤으로 선발되기 때문에 악의적인 사용자 노드의 비율이 52% 를 지속적으로 점유하는 경우는 통계적으로 지극히 낮다고 할 수 있습니다.

[합의과정 프로세스]

[합의알고리즘 순서도]

★ 립체인 ReapChain 공식 커뮤니티

​홈페이지 : https://reapchain.com/
텔레그램 : https://t.me/joinchat/MbaQ7RaZchMzjAam9yMS0Q
미디엄 : https://medium.com/reapchain
페이스북 : https://www.facebook.com/ReapChain/
트위터 : https://twitter.com/ReapChain

파트너쉽 및 제휴 문의 : reapchain@reapchain.com
투자 및 세일 문의 : sale@reapchain.com

--

--