본문 바로가기
블록체인 이론/klaytn

klaytn 합의 메커니즘

by gun_poo 2022. 2. 15.

합의 메커니즘

PBFT

  • PBFT에서는 각 노드가 다른 참여 노드와 통신하여 합의에 도달하고 노드가 합의에 도달하는 즉시 블록의 완결성를 보장

노드 간의 통신은 다음과 같이 진행된다

PBFT message flow

PBFT에 참여하는 노드는 기본적으로 네트워크의 모든 노드와 여러 단계에서 통신합니다. 이 특성은 노드 수가 증가할수록 통신량이 기하급수적으로 증가하므로 노드 수를 '제한'한다.


BTC, ETH(PoW, PoS)

  • 일반적으로 이러한 알고리즘들은 블록의 유효성을 결정할 때 노드 간에 통신하지 않는다
    • 이러한 시스템에서는 포크가 발생할수 있다. 같은 높이에서 둘 이상의 서로 다른 블록이 만들어질 수 있다는 의미
    • 일반적으로 가장 긴 체인의 길이를 유효한 체인으로 인정하는 규칙이 포크 상태를 해결한다
    • 결국 하나의 체인으로 병합되긴 하지만 특정 기간 간 짧은 체인에 속한 블록은 되돌려질 '수' 있고 그렇게 때문에 블록 및 트랜잭션의 완결성을 '즉시' 보장 할 수 없다
    • 완결성은 일정시간 후에 확률적으로 달성가능하며 100% 확신 할 수 없다.
      • 완결성 부족은 포크가 해결되고 블록이 충분히 쌓여 트랜잭션을 되돌릴 수 없을 때 까지 기다려야 하기에 부정적인 영향을 끼친다.
    • 간단히 말하자면 포크가 하나의 체인으로 병합되고, 트랜잭션을 되돌릴 수 없게 몇 개의 블록이 쌓일 때까지 기다려야 한다.

Klaytn의 합의 메커니즘

  • 변형된 버전의 PBFT
    • klaytn은 최적화된 버전의 Istanbul BFT를 사용 IBFT

Node 종류

  • 컨센서스 노드(CN), 프록시 노드(PN) 및 엔드포인트 노드(EN)라는 세 가지 유형의 노드가 존재

CN : 컨센서스 노드

  • CCO(Core Cell Operators)에 의해 관리되며 블록 생성을 담당
  • 이 블록은 네트워크의 모든 노드에서 검증 

EN : 앤드포인트

  • 노드EN은 Klaytn 네트워크의 엔드포인트 역할로, RPC API 요청을 처리하고 서비스체인과 주고받는 데이터를 처리

PN : 프록시 노드

  • 트랜잭션 요청을 합의 노드로 전송하고 블록을 엔드포인트 노드로 전파

CC : 코어 셀 

  • 하나의 컨센서스 노드와 두개의 프록시 노드로 이뤄진다.
    • 합의 노드는 블록 생성 프로세서에 참여
    • 프록시노드는 네트워크에 인터페이스를 제공, 트랜잭션 요청을 합의 노드로 전송하고 블록을 엔드포인트 노드로 전파

BFT 알고리즘의 통신량 증가 문제

  • 임의로 선택된 위원회(Committee)를 활용하여 해결
  • CN은 함께 카운슬을 구성하고, 각 블록 생성시 VRF(Verifiable Random Function)을 이용하여 위원회의 멤버로 선택
  • 합의 메세지는 오직 위원회 멤버들 사이에 교환이 이루어지므로 총 CN의 숫자가 늘더라도 통신량은 제한

간략하게 요약하자면 컨센서스 노드가 Council을 구성한다.

통신량 증가 문제를 해결 하기 위해 Council 중 각 블록 생성시 VRF(Verifiable Random Function)을 이용하여 위원회의 멤버로 선택하고 합의 메세지는 오직 위원회 멤버들 사이에 교환이 이뤄진다. 그렇게 때문에 컨센서스 노드가 늘어나더라도 

선택된 멤버간 통신만 하기 때문에 통신량을 제한 할 수 있다.

 

궁금한점, 알아봐야 할 점

노드가 3 종류이다.

  • 이 노드는 어떻게 선정되는 것인가? 
    •  
  • 컨센서스 노드는 어떻게 선정되고 수는 어떻게 제한하는가
    • 거버넌스 카운슬이 되려면 클레이튼과 계약서를 쓰고 퍼미션이 있어야한다.
  • 프라이빗과 무슨 차이가 있는가

'블록체인 이론 > klaytn' 카테고리의 다른 글

Klaytn 트랜잭션 비용 위임  (0) 2022.02.15
Klaytn transactions  (0) 2022.02.15
Klaytn 계정  (0) 2022.02.15

댓글