클레이튼이란?
: 카카오의 자회사인 그라운드엑스에서 개발한 블록체인 플랫폼이다.
- 퍼블릭 블록체인이고 이더리움에 비해 탈중앙화를 약화시키는 대신 디앱에 필요한 실용성을 강화
- Scalability(확장성) : 얼마나 많은 일을 처리할 수 있는지
TPS + Block Interval
TPS(Transaction Per Second) : 초당 몇개의 거래 처리
Visa - 1700
비트코인 - 7
이더리움 15~20
Block Interval : 블록 생성 간격
비트코인 - 10분
이더리움 - 15~20초
ETH : 20tps + 15초 block Interval / 둘이 곱 = 300 transactions 발생
- 기존의 블록체인이 왜 느린가?
노드가 많다고 빨라지진 않는다. 분산처리
노드는 분산처리를 하지 않기 때문에(제일 느린 노드에 맞춰서 진행되서 하향평준화가 된다.)
- Finality : 변경 불가능한 최종적인 상태
= TX가 변경 불가라는 합리적인 보장을 받기까지 기다려야되는 시간
블록이 final 하다 = 블록에 담긴 TX(거래)가 바뀔 수 없다는 걸 말한다.
- Fork : 블록의 연결이 2개의 분기로 나눠지는 것
작업증명PoW) 방식 : 블록체인에 블록 추가하기 위해 문제를 푼다(hash 값 찾기)
검정은 검정, 퍼플은 퍼플만(롱거스트 체인 룰)
- 합의
- public 블록체인 : PoW, PoS 등등
- private 블록체인 : pBFT, Raft 등등 [더 효율적]
BFT(비잔티움 결함 허용)
: 참여 노드수 제한해서 성능을 높이지만 분산화 약화, 투명성 저하 문제가 있음
반면에 클레이튼은 합의 알고리즘 IBFT(이스탄불 비잔티움 결함 허용)을 사용하여 퍼블릭 블록체인을 지향
- 공개를 통한 개인적인 합의 신뢰 모델(private consensus with public disclosure)
합의 달성 소수 private 노드
블록 생성 결과 접근 및 검증 노드
- 알고리즘
1단계[propose] 라운드 로빈 방식으로 매 라운드마다 proposer(제한자)를 뽑는다.
그리고 나머지 합의 노드들은 validator로 검증을 하게 된다.
x표시된 3은 제대로 작동이 되지 않는 것
2단계 pre-prepare에서 proposer 노드가 블록을 만들어 다른 노드들을 제어한다.
3단계 prepare에서 proposer에서 받은 메세지로 자신을 제외한 모든 노드에 잘 받았다고 메세지를 보낸다.
시스템에서 몇 개의 노드가 살아있는지 확인할 수 있다.
4단계 commit단계에서 proposer에 받은 노드를 받을 건지 결정
- 블록 생성 및 전파
라운드 : 블록 생성 주기
블록 생성 간격 = 1초
- 제안자와 위원회 선택(Proposer and Committee Selection)
Governance Council : 합의 노드들
제안자를 무작위 & 결정적으로 Governance Council 노드들 중 뽑는다.
-> 각 라운드에서 Klaytn은 생성할 블록의 제안자로 CN(Consensus Node)을 무작위로 결정론적으로 선택한 다음 CN 그룹을 해당 라운드의 위원회로 선택한다. Klaytn은 제안자나 위원회 선택에 직접 관여하지 않고 CN은 가장 최근의 블록 헤더에서 파생된 난수를 사용하여 이 라운등에서 CN이 선택되었는지 증거를 생성하는 암호화 작업을 실행한다.
- 합의 노드가 제한자(proposer)로 선정이 되면 선정된 증거를 다른 노드들에게 알리게 되는데 이때 공개키를 통해 입증가능한 암호 증명을 사용한다.
- 클레이튼 구조
핵심 셀 네트워크(CNN)
- 엔트포인트 노드(EN)를 통해 제출된 트랜잭션을 확인하고 실행하는 코어 셀(CC)로 구성된다.
CCN은 네트워크 전체에 블록을 생성하고 전파하는 역할을 한다.
엔드포인트 노드 네트워크(ENN)
- ENN은 주로 트랜잭션을 생성하고 RPC API 요청을 처리하고, 서비스 체인의 데이터 요청을 처리하는 엔드포인트 노드(EN)로 구성된다.
서비스 체인 네트워크(SCN)
- dApp(Decentralized Applications)에 의해 독립적으로 운영되는 보조 블록체인으로 구성된 Klaytn 서브네트워크다.
서비스 체인은 EN을 통해 메인 체인에 연결된다.
프록시 노드 네트워크(PNN)
PNN으로 구성되고 PN은 인접 코어 셀의 PN과 하나의 연결만 유지한다.
코어셀 네트워크(CCN)와 엔드포인트 노드 네트워크(ENN)는 Klaytn 메인 체인 또는 메인넷을 구성한다. 블록체인 애플리케이션은 Klaytn 메인 체인인 Cypress에서 실행되거나 Service Chains라는 자체 블록체인에서 작동할 수 있다.
- 역할기반 노드 유형
코어셀(CC) : 합의 노드(CN) + 프록시 노드(PN) 2개
코어 셀(CC)은 단일 합의 노드와 두 개의 프록시 노드로 구성된다.
합의 노드(CN)는 블록 생성 프로세스에 참여하고 프록시 노드는 네트워크에 대한 인터페이스를 제공한다.
프록시 노드(PN)는 합의 노드로 트랜잭션 요청을 전송하고 블록을 엔드포인트 노드로 전파한다.
부트노드(bootnode)는 새로 가입한 노드가 네트워크에 등록하고 연결할 다른 노드를 검색할 수 있도록 Klaytn에서 운영하는 특수한 유형의 노드이다.
CN부트 노드(CN bootnode)는 CNN 내에 있으며 대중에게 공개되지 않는 반면 PN 및 EN 부트 노드는 공개적으로 볼 수 있다.
PN부트 노드는 허용된 PN만 등록하고 적격한 PN이 EN과 연결되도록 합니다. EN 부트 노드는 연결할 PN에 대한 정보를 EN에 제공한다.
- 이더리움과 클레이튼의 차이
이더리움
단일 네트워크이며 가장 먼저 블록을 만들고 많이 전파해야된다.
PoW(작업 증명) 사용
마이닝 노드가 누가 될지 모름 : 블록을 쓰고 네트워크에 전파하는 노드
클레이튼
두개의 레이어를 가진 네트워크로 매 라운드마다 합의 노드들 중 하나를 선정해서 블록을 사용(신뢰)
참조
https://www.inflearn.com/course/%ED%81%B4%EB%A0%88%EC%9D%B4%ED%8A%BC/dashboard
https://docs.klaytn.com/klaytn2