기존 블록체인 플랫폼의 약점
scability, finality, fork
1. scability
TPS + Block Interval
Transaction Per Second: 초당 몇개의 거래 처리
Block Interval: 블록 생성 간격
TPS
1. Visa: TPS1700
2. 비트코인: TPS 7
3. 이더리움: TPS 15~20
Block Interval
1. 비트코인: 10분
2. 이더리움: 15~20초
3. ETH: 20tps+ 15초 block interval
20*15=300 transactions
기존의 블록체인은 왜 느린가?
노드가 많다고 해도 속도가 올라가지 않는다( 분산처리x)
속도 하향평준화
비트코인&이더리움
1. 많은 양의 트랜잭션 처리하기 부족
2. 네트워크 자체 속도 느림
2. Finality
TX가 변경 불가라는 합리적인 보장받기까지 기다려야되는 시간
블록이 Final 하다는 건?
블록에 담긴 TX(거래)가 바뀔 수 없다는 걸 보증
비트코인&이더리움
최종성 부족
확률론적 최종성만 제공
(ex. 결제는 했지만 최종 결제x)
빨리 처리된 Finality는 중요한 business 자산
3. Fork
블록딀의 연결들이 2개 이상 갈라지는 분기
발생이유: 채굴자들이 독립적으로 채굴 가능하기 때문
비트코인&이더리움 작업증명(PoW) 방식
블록체인에 블록 추가하기 위해 문제를 품 (Hash 값 찾기)
--> 분기 발생
ex) A가 B에게 송금
1. TX 발생
2. TX POOL로 들어감
3. TX POOL에 있는 TX를 블록에 담음
4. A와 B가 해시 문제를 품
5. 값을 찾으면 주변 노드에게 전달
Longest Chain Rule
Bitcoin Network 전체가 Fork가 발생했을 때,
하나의 블록체인만을 유지하기 위한 방법
가장 긴 체인이 된다는 의미보단 BlockChain Fork 중
BlockChain 생성에 가장 많은 Computing Power가
사용된 Chain이 Main Chain이 되는 개념
클레이튼 블록체인
1. consensus
Public 블록체인: PoW, PoS 등등
Pricate 블록체인: pBFT, Raft 등등
BFT (비잔티움 결함 허용)
참여 노드 수 제한, 성능 높임
분산화 약화, 투명성 저하
클레이튼 합의 알고리즘 IBFT
(이스탄불 비잔티움 결함 허용)
공개를 통한 개인적인 합의 신뢰 모델
(private consensus with public disclosure)
합의 달성 소수 pricate 노드
블록 생성 결과 접근 및 검증 노드
proposer- 제안자
validator- 검증
validator3- x로 표시되어 false상태, 검증자로서 작동 x
(인터넷 끊어짐, 악의적 행동)
propose- 노드들 중 한 노드가 proposer로 선택됨
pre prepare- proposer노드가 블록을 만들어서 다른 노드들에게 제안을 하게 됨
prepare- 자신을 제외한 노드들에게 메시지를 잘 받았다는 연락을 보냄
commit- propose에게 받은걸 수락할 건지 소통하며 결정
(2/3이상 승인 시 다음 단계로 넘어감)
--> 합의 노드들끼리 소통을 이루고 결정 그 즉시 완결성을 이룸
합의 노드 수 증가=통신량 수 증가
합의 노드만 뽑아서 BFT를 일정하게 유지하도록 설정
2. 블록 생성 및 전파
블록 생성 사이클(cycle)
블록 생성 주기=라운드
블록 생성 간격= 약 1초
제안자와 위원회 선택
Governance Council: 합의노드들
제안자를 무작위& 결정적으로 Governance Council 노드들 중 뽑음
각각의 합의 노드가 가장 최근의 블록 헤더에서
파생 된 난수 사용 자기가 라운드에 선택됐는지 증명
블록 제안과 검증
제안자의 공개키 통해 입증 가능한 암호증명 씀
누가 제안자고 누가 위원회인지 파악이 되면 제안자가 블록 만들고 합의
블록전파
합의 시 블록 전파
프록시 노드 통해 엔드포인트 노드들에게 전달
3. 네트워크 구조
CNN: Consensus Node Network
PNN: Proxy Node Network
ENN: Endpoint Node Network
4. 코어 셀 (Core cell)
사용자가 많아져서 확장이 필요할 때
일반적: 서버 늘리고 Request 분할 처리
클레이튼: 노드 자체의 성능을 늘림
CN(합의 노드) 참여 조건
Physical core가 40개 이상
256 GB RAM
1년치의 데이터 약 14TB 저장
10G 네트워크
5. 서비스 체인
언제 쓰이냐?
특별한 노드환경에서 설정
보안 수준 맞춤형으로 설정
많은 처리량 요구, 메인넷 배포시 경제성 낮음
독립된 서비스 공간을 구축해서 필요할 때 메인넷에 신뢰를 고정
Gas 비용 안받게 설정 가능
6. 이더리움과 클레이튼의 차이
이더리움
단일 네트워크
가장 먼저 블록을 만들고 많이 전파해야 함
Proof-of-Work (작업증명)
마이닝 노드: 블록을 쓰고 네트워크에 전파한 노드
이더리움은 담당을 하는 노드들이 항상 바뀌기 때문에
노드들끼리 붙어서 전파를 받아야
--> 확률적으로 최신 정보를 가져올 수 있음
클레이튼
Two Layer Architecture Trust Model
매 라운드마다 합의노드들 중 하나가 뽑혀서 블록을