기존 블록체인 약점
- Scalability(확장성)
- TPS + Block interval
- 거래 처리량 작고 네트워크 느림
- Finality(검증)
- TX변경 불가 보증을 위해 기다리는 시간
- 비트코인 6 block, 이더리움 25 block -> 너무 오래 걸림
- Fork(분기)
- PoW -> 먼저 온 블록을 받아들이므로 포크 발생
합의
- public 블록체인 -> PoW, PoS
- private 블록체인 -> pBFT, Raft
- BFT(비잔티움 결함 허용)
-> 참여 노드 수 제한/ 성능 높임
-> 분산화 약화/ 투명성 저하
- 클레이튼-> IBFT(이스탄불 비잔티움 결함 허용)
-> private consensus with pubic disclosure
-> 합의 달성 소수 private nodes/ 블록 생성 결과 접근 및 검증 노드

proposer: 블록 제안자
prepare: 살아있는 노드 확인
commit: finality 형성(바로 투표)
-> 바로 finality를 형성해서 좋다. 그러나 노드의 수가 늘어나면 통신량도 기하급수적으로 는다.
블록 생성 및 전파
- round: 블록 생성 주기
-> 블록 생성 간격 1초
- 제안자(proposer)와 위원회(committee)를 Governance Council 노드들(합의 노드들) 중 선택한다.
-> randomly & deterministically 헤더 난수로 증명, broadcast
- 블록 전파(block propagation)
-> 2/3 동의 후 블록 추가
-> 프록시 노드를 통해 엔드포인트 노드들에게 전달
네트워크 구조

- core: CNN+PNN
-> 빠른 합의를 위해 CNN은 닫혀 있음. 엔드 노드를 위한 정보는 따라서 각 CNN 노드에 연결된 프록시 노드가 전달.
-> 엔드포인트는 참여 제한 없음
- bootnode: 새로운 노드들이 네트워크에 등록하고 다른 노드에 연결할 수 있도록 정보 전달
-> CN(공개 안됨), PN(허용된 프록시만 등록하고 엔드와 연결되도록), EN(프록시와 엔드와 연결 도움)
코어 셀
-
확장이 필요할 때
-> 클레이튼은 노드/서버가 늘어난다고 해서 성능이 좋아지지 않음.
-> 대신에 노드 자체의 성능을 좋게 함(RAM/CPU).
-> 합의 노드 하나 하나 비슷하게 성능이 좋아져야 효과가 있음(하나만 특출나봤자 쓸모x)
-
합의노드(CN) 참여 조건
-> physical core 40+
-> 256GB RAM
-> 14TB per year
-> 10G network
-
한 CN 당 여러 PN -> PN은 한꺼번에 엄청난 다수의 엔드 포인트와 연결하고, CN은 방해받지 않기 위해
서비스 체인
- 메인 넷과 연결된 독립적으로 운영되는 체인
-> 특별한 노드 환경 필요 ex. 가스비 0
-> 맞춤 보안 필요(private blockchain)
-> 많은 처리량, 메인넷 배포시 경제성 낮음