///
Search
🧸

05.Consensus(합의)

이전자료

이전 까지는 기존 블록체인의 문제점을 파악을 하였다.
여기서부터 클레이튼을 이해하는 내용을 기술한다.
합의에 도달하는 종류는 여러가지가 있다.
보통 Public 블록체인에서 많이 사용하는 PoW, PoS 등등
Private 블록체인에서 많이 사용하는 pBFT, Raft 등등
보통 효율성 Private >> Public
Private 기반의 BFT (비잔티움 결함 허용)
참여 노드 수 제한 / 성능 높임
합의 노드 수를 제한하여 분산화를 약화, 투명성이 저하되는 단점이 있다.
클레이튼은 BFT의 이점을 잘 살려서 Public 블록체인과 잘 결합할 수 있다는 개념으로 IBFT를 합의 알고리즘으로 선택한다.
IBFT = 이스탄불 비잔티움 결함 허용
투명성을 유지하면서 Public 블록체인을 구축하고자 하였다.
이를 위해 다음과 같은 신뢰 모델을 선택하였다.
공개를 통한 개인적인 합의 신뢰 모델
Private Consensus with Public Disclosure
즉 합의를 달성하기 위한 소수의 Private 노드들과
+
블록 생성 결과 접근 및 검증 노드들로 구성되어있다.

IBFT

대표도

IBFT의 단계는 Propose, Pre-prepare, Prepare, Commit, Reply가 있다.
(Propose 단계)라운드 로빈방식을 선택해서 매 라운드 마다 합의 노드들 중에 Proposer를 뽑는다.
나머지 노드들중에 Proposer로 뽑히지 않은 노드들은 Validator라고 한다.
(악의적, 네트워크 단절, 고장 등)그림에서 Validator3의 역할은 검증자로서 똑바로 일을 못하는 상태이다.
(Pre-prepare 단계)Proposer이 다른 노드들에게 제안을 하게 되는 단계이다.
(Prepare 단계)Proposer에게 제안을 받은 노드들은 자신을 제외한 다른 노드들에게 잘 받았다고 연락을 하게 된다.
(Commit 단계)서로 요청 받은 내용에 대해 수락할 것인지, 즉 다른 노드들과 이야기해서 판단한 각자의 응답을 보낸다. 여기서 대다수가 승인하면 OK
Commit 단계에서 확실하게 결정이 된다. (합의 노드들끼리 통신을 이끌어내어 확신을 가진다.)
노드가 많아질수록 오래걸릴수도 있기 때문에 몇개의 노드만 선점한다.
Validator가 엄청 많아지면 너무 오래 걸림, 정확도는 올라가지만 현실과 이상치에 절충하는 방법