이전자료
블록 생성 사이클 (cycle)
•
클레이튼 블록 생성주기를 라운드(Round)라고 부른다.
•
각 라운드는 새로운 블록을 생성하고 끝나는 즉시 새로운 라운드가 시작이 된다.
•
블록 생성 간격은 약 1초 정도 걸린다
제안자와 위원회 선택 (Proposer and Committee Selection)
•
각 라운드에서 블록을 생성하는 제안자는 무작위(randomly)이다.
•
그렇지만 결정적(determinstically)으로 Governance Council 노드들 중 뽑는다.
•
Governance Council은 합의노드를 말한다.
•
내 생각인데 합의노드라고 하는 이유는 다른 노드들 중에서 한개로 선택 되어야 하니, 상호간의 합의가 필요하면서 선택 되었기에 합의노드라고 정의한것 같다.
•
위의 이미지에서 각각의 동그라미들이 합의노드들인데, 그중 파란색이 현 라운드에 Proposer로 선택이 되었다.
•
해당 라운드의 위원회로 다른 노드 그룹을 선택한다.
•
그러면서 핑크 색이 위원회로 뽑힌 Validator이다.
•
각각의 합의 노드는 가장 최근 블록 헤더에서 파생된 난수를 활용한다.
•
자기들이 이 라운드에서 선택되었는지 증명할 수 있는 암호화 작업을 수행한다.
블록 제안과 검증(Block Proposal and Validation)
•
합의노드가 제안자로써 선택이 되면
•
자기가 제안자로 뽑힌 증거를 다른 합의 노드들에게 알려야한다.
•
이때 어떤 증거를 대냐고 하냐면
•
제안자의 공개키를 통해 입증 가능한 암호 증명을 쓰게 된다.
•
해당 라운드에 위원회로 뽑힌 노드 그룹은 제안자에게 왜 우리가 위원회 맴버로 뽑혔는지 증거와 함께 알려줘야한다.
•
이제 서로 누가 제안자고 위원회인지 파악이 된다면,
•
제안자가 트랜잭션 풀에서 트랜잭션 들을 선택하고 정렬해서 블록을 만들고 합의를 한다.
블록 전파 (Block Propagation)
•
제한된 블록은 성공적으로 완결 되기 위해 위원회 맴버들의 2/3 이상의 서명을 받아야한다.
•
위원회가 합의에 이르게 된다면 새로운 블록에 모든 합의 노드들에게 전달이 되고 그 합의 라운드는 끝이 난다.
•
그렇게 된다면 프록시 노드들 통해 엔드 포인트 노드들에게 전달된다.