합의 메커니즘
PBFT
- PBFT에서는 각 노드가 다른 참여 노드와 통신하여 합의에 도달하고 노드가 합의에 도달하는 즉시 블록의 완결성를 보장
노드 간의 통신은 다음과 같이 진행된다
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 |
댓글