///
Search

06.블록 생성 및 전파

이전자료

블록 생성 사이클 (cycle)

클레이튼 블록 생성주기를 라운드(Round)라고 부른다.
각 라운드는 새로운 블록을 생성하고 끝나는 즉시 새로운 라운드가 시작이 된다.
블록 생성 간격은 약 1초 정도 걸린다

제안자와 위원회 선택 (Proposer and Committee Selection)

각 라운드에서 블록을 생성하는 제안자는 무작위(randomly)이다.
그렇지만 결정적(determinstically)으로 Governance Council 노드들 중 뽑는다.
Governance Council은 합의노드를 말한다.
내 생각인데 합의노드라고 하는 이유는 다른 노드들 중에서 한개로 선택 되어야 하니, 상호간의 합의가 필요하면서 선택 되었기에 합의노드라고 정의한것 같다.
위의 이미지에서 각각의 동그라미들이 합의노드들인데, 그중 파란색이 현 라운드에 Proposer로 선택이 되었다.
해당 라운드의 위원회로 다른 노드 그룹을 선택한다.
그러면서 핑크 색이 위원회로 뽑힌 Validator이다.
각각의 합의 노드는 가장 최근 블록 헤더에서 파생된 난수를 활용한다.
자기들이 이 라운드에서 선택되었는지 증명할 수 있는 암호화 작업을 수행한다.

블록 제안과 검증(Block Proposal and Validation)

합의노드가 제안자로써 선택이 되면
자기가 제안자로 뽑힌 증거를 다른 합의 노드들에게 알려야한다.
이때 어떤 증거를 대냐고 하냐면
제안자의 공개키를 통해 입증 가능한 암호 증명을 쓰게 된다.
해당 라운드에 위원회로 뽑힌 노드 그룹은 제안자에게 왜 우리가 위원회 맴버로 뽑혔는지 증거와 함께 알려줘야한다.
이제 서로 누가 제안자고 위원회인지 파악이 된다면,
제안자가 트랜잭션 풀에서 트랜잭션 들을 선택하고 정렬해서 블록을 만들고 합의를 한다.

블록 전파 (Block Propagation)

제한된 블록은 성공적으로 완결 되기 위해 위원회 맴버들의 2/3 이상의 서명을 받아야한다.
위원회가 합의에 이르게 된다면 새로운 블록에 모든 합의 노드들에게 전달이 되고 그 합의 라운드는 끝이 난다.
그렇게 된다면 프록시 노드들 통해 엔드 포인트 노드들에게 전달된다.