클레이튼(Klaytn)

Lumi·2021년 11월 14일
0

Klaytn

목록 보기
1/10
post-thumbnail

🔥 개요

카카오의 자회사인 그라운드엑스가 개발한 디앱을 위한 플랫폼이다.

독립적인 퍼블릭 블록체인 플랫폼이며 이더리움에 비해 탈중앙화를 포기하는 대신 디앱에 피룡한 실용성을 강화하였다.

  • 빠른 퍼블릭 블록체인을 목표로 하고 있다.

서비스 지향 거버넌스 모델이며 모든 참여자가 플랫폼의 이익을 위해 신속한 의사결정 프로세스를 가능하게 하는 모델이다.

완전히 분산되어 있는 상태에서는 신속한 의사결정이 불가능에 가깝기 떄문에 일부 분산 방식을 활용하였다.

  • Dapp같은 것을 말한다.

클레이튼은 신뢰할 수 있는 기업에 의해 관리가 되며 퍼블릭 플랫폼의 신뢰성과 투명성을 유지하면서 프라이빗의 성능을 유지하고 있다.

ICO에 대한 부작용을 지적하면서 ICO는 진행하지 않겠다고 밝히기도하였다.

🔥 메인넷 = 사이프러스

6월27일 클레이튼이 메인넷인 사이프러스를 퍼블릭 블록체인으로 오픈소스를 공개를 하였다.

누구나 이용이 가능하며 대중화를 목표로 한다.

특히나 블록시간과 확장 시간이 1초로 다른 블록체인에 비해 대기시간을 낮추고 확장성을 높엿다는 특징이 있다.

🔨 독자적인 네트워크 구축 가능

자신만의 네트워크 구축이 가능하다. 메인넷을 하지 않으면 다른 생태계의 댑으로써 동작밖에 하지 못하지만 자신만의 생태계를 구축하면 독자적 기능들이 가능해 진다.

🔨 기술력

메인넷을 통해 자체적인 기술력을 증명 하였다.

🔨 신뢰성

이름있는 기업들의 투자로 인해 신뢰성을 부여 하였다.

🔨 가치상승과 확장성

새로운 디앱을 개발할수 있기 때문에 추가적은 가치상승이 가능하다.

🔥 특징

내가 개인적으로 클레이튼이라는 암호화폐를 좋아하는 이유가 여기에 있다.

나는 블록체인이 대중화가 잘 이루어 지지 않는 이유는 서비스 이용 장벽이 높다는 이유와 관념이 정해져 있기 떄문이라고 생각을 한다.

대개 블록체인이라고 하면 코인을 생각할 것이고 그러면 도박, 투기 라는 인식이 매우 강하게 된다

또한 사용자들의 서비스 진입 장벽도 있다.

  • 사용자 친화적인 인터페이스가 없다.

이러한 이유로 인해서 대중화가 잘 이루어지지 않았다고 생각을 하는데 클레이튼은 이 문제를 확실하게 잡고 사용자 친화적 인터페이스를 구현 한다.

  • 이 부분을 내가 가장 좋아한다.!!

🌪 클레이튼 네트워크

클레이튼 또한 개발자들의 커뮤니티 공간이 있고 이곳을 투명하게 모두 공개를 한다.

현재는 3가지가 주로 있다.

🔨 클레이튼 월렛

생태계에서 생성된 토큰들의 보관, 전송을 지원하는 지갑이다.

🔨 블라스크

블록체인 관련 보상 기반의 지식 공유 플랫폼이다.

  • 블록체인 관련한 질문, 답변 활동시에 토큰이 주어진다.

🔨 클레이튼스코프

블록 생성, 거래정보 등 생태계에서 일어나는 모든 활동을 모니터링 가능하다.

🔥 클레이튼 스코프

앞서 말했듯이 생태계에서 일어나는 활동을 모니터링 하는 탐색기 이다.

디앱이 원활하게 운영될수 있도록 속도와 성능을 향상한 것이 가장 큰 특징이다.

합의가 필요한 작업은 합의노드에서 처리하고, 읽기 요청 등의 합의가 필요하지 않는 작업은 단순히 엔드포인트노드로 처리하여 속도를 높이는 방식을 채택했다.

🔥 구조

클레이튼은 P2P 네트워크를 기반으로 하여 세 개의 노드 계층이 서로 다른 역할을 하게 된다.

🌪 합의 노드(CN)

합의 노드는 트랜잭션을 처리하는 노드를 말한다.

비잔틴 장애 허용 알고리즘을 사용하여 블록들을 확인하는 작업을 담당하게 된다.

블록이 체인에 추가 되기 위해서 CN은 거래에 대해 스마트 컨트랙트를 실행하게 된다.

  • 네트워크의 다른 노드가 절대 참여하지 않는 브로드캐스트 프로토콜을 통해 서로 통신한다.

CN의 집합은 기존 CN같의 합의에 의해서만 변경 된다.

🔨 브로드캐스트 프로토콜

송신자가 전송한 데이터가 네트워크에 연결된 ㅗㅁ든 호스트에 전송되는 방식을 말한다.

🌪 레인저 노드 (RNs)

CN에서 생성된 블록을 다운로드 하고 사본을 저장하는 동안 정기적으로 그들끼리 통신을 하게 된다.

이 노드는 새롭게 생성된 블록의 유효성을 검증하고 CN이 주어진 블록의 내용을 다 알고 있는지 확인한다.

RNs는 누구든지 참여할 수 있다.

🌪 고객

RNs에서 정보를 조회하는 사용자들을 말한다.

합의 노드가 블록을 생성하는 역할이고 레인저 노드는 블록을 검증하는 역할로 생각을 하면 된다.

  • 이중으로 검증을 한다고 생각하면 된다.

합의 노드들은 앞서 말한 신뢰할수 있는 기업들을 말하게 된다.

이후 일반인들 즉 고객들은 누구나 자유롭게 레인저 노드가 될수가 있고 CN이 검증한 블록을 이중으로 확인하는 역할을 하게 된다.

  • 유효성을 검사하고 보상을 코인으로 받게 된다.

🔥 클레이튼의 합의 알고리즘

클레이튼의 합의 알고리즘은 굉장히 특이하게 이루어져 있다고 생각을 한다.

  • 처음보는 알고리즘 방식이라서 그런가;;

BFT의 단점은 소수의 노드들만으로 구성이 되어야 한다는 단점이 있다.

  • 민주적인 방법이지만 검증 노드들에게 연속해서 값을 전송을 해야 하기 떄문이다.

이 방법을 탈중앙화를 조금 헤치는 방향으로 해결을 하였고 신뢰할수 있는 기업으로 구성을 하였다.

기존의 BFT는 이런 알고리즘으로 끝나게 되지만 클레이튼은 이중검증을 통해 사용자 즉 레인저노드가 생성된 블록을 검증하게 작동이 된다.

🔨 CN은 쓰기를 담당하고, RNs는 읽기를 담당한다고 생각한다.

기본적으로 PBFT를 따라가는 IBFT를 사용을 하였다.

  • DPoS + IBFT로 이해를 하자
[1] 일단 노드그룹이 선택되어 유효성 검사기 풀을 구성한다.
- 제안된 블록이 체인에 추가하기에 적합한지 여부를 결정

[2] 이 검증자 노드 그룹중 하나가 제안자로 임의로 선택이 된다.

[3] 검증자 그룹에서 메시지를 받은 이 단일 제안자는 체인에 무엇을 추가할지 결정
- 다른 검증자에게 제안된 블록으로 제시가 된다.

[4] 이후 다른 검증자들에게 통신을 보내 같은 라운드에 있는지 확인을 한다.

[5] 확인이 완료가 되면 블럭을 보낸뒤에 이 값을 유효한지 유효하지 않은지를 판단한다.
- 다른 검증자 노드들이
- 이떄 노드마다 자신이 판단한 결과를 다른 노드에게도 전송한다.

[6] 유효하다 판단이 되면 블록을 추가한다.

🔥 서비스 체인

TPS를 늘리기 위한 클레이튼의 개념이다.

서로 영향을 주는 디앱만 별도로 모아두어 블록 순서를 결정할 떄 다른 서비스 체인에 잇는 요스들에 대해서는 고려하지 않는 방법을 말한다.

  • 즉 디앱을 위한 체인을 따로 구성을 한다는 말이다.

데이터가 저장되는 블록체인은 분리된 공간에서만 사용 가능하며 서비스 체인을 사용하여 데이터를 격리된 상태로 저장하게 된다.

즉 따로 관리를 하기 떄문에 관리 편의성을 높이게 된다.

서비스 체인은 하나의 디앱 또는 관련 디앱으로 구성이 되며 디앱 개발자는 기존의 서비스 체인에 배포할지 아니면 새 서비스 체인을 생성할 것이지 결정하게 된다.

🔥 클레이튼의 스마트 계약

클레이튼은 스마트 계약 실행과 외부 메모리 조작을 구분하는 가상 머신인 KLVM을 제안한다.

  • 이더리움의 EVM이라고 생각을 하면 된다.

🔥 추가 정리

후에 클레이튼을 통한 개발 실습을 개인적으로 진행을 하게 되면서 알게된 사실을 적어 보고자 한다.

🌪 블록생성 주기

블록생성 주기는 라운드 라고도 한다.

  • 블록을 생성하는 주기

클레이튼의 경우 약 1초를 유지한다.

🌪 제안자와 검증 노드들 선택

라운드마다 합의노드들 중에서 제안자와 검증노드들을 선택한다.

  • 각각의 합의노드들이 가장 최근에 블록헤더에서 파생된 난수를 사용해서 블록생성에 참여를 했는지를 증명한다.

제안자가 채택이 되면 증거를 다른 검증노드들에게 자신이 제안자라는 것을 증명을 해야한다.

  • 제안자의 공개키를 통해 증명

따른 검증노드들또한 자신을 증명한다.

  • 이렇게 되면 제안자가 누구인지, 검증자가 누구인지를 알수 있게 된다.

🌪 블록 전파

블록이 합의가 되어서 만들어 지면 블록이 이제 합의 노드들에게 전달이 되고 상황에 따라서 CN을 통해서 앤드포인트 노드들에게까지 전달이 된다.

🌪 네트워크 정리

CN은 검증에 참여하는 노드들을 말한다.

까다로운 조건을 통과해야만 검증에 참여하는 CN이 될 수가 있고

모든 CN은 합의과정을 거쳐야 하기 떄문에 서로 연결되어 있다.

또한 Core Cell은 하나의 사용자가 운영을 하게 된다.

  • 즉 까다로운 조건을 통과한 사용자들 끼리는 모두 연결되어 있다.
  • 살짝 vip룸같은 느낌..??

또한 CN은 외부와 직접 소통을 할 수가 없으며 PN을 통해서만 소통을 하게 된다.

  • 앤드포인트 노드들이 PN과 통신을 한다.

앤드포인트 노드등른 누구나 될 수가 있다.

Bootnode는 새로들어온 노드, 사용자들에게 도움을 줄수 있는 특수한 노드이다.

🌪 코어 셀

일반적으로 사용자가 많아지면 서버의 수를 늘림으로써 처리를 한다.

하지만 블록체인은 서버가 곧 노드이기 떄문에 노드가 늘어나면 속도가 느려지게 된다.

그러기 떄문에 클레이튼에서는 노드의 수를 늘리기 보다는 노드 자체의 성능을 늘렸다.

  • RAM, CPU 등등

합의 노드가 될수 있는 조건은 단순히 컴퓨터 성능을 말한다.

특수한 합의노드가 성능이 매우 뛰어나다고 생태계의 속도는 빨라지지 않는다.

  • 가장 느린 합의노드의 성능에 맞춰서 작동을 하게 된다.

그러한 이유는 IBFT특성상 모든 노드가 참여를 해야 하고 모든 노드의 참여 결과를 기다려야 하기 떄문이다

PN이 존재하는 이유는 간단하다.

CN은 오로지 합의를 위해 존재하는 노드이기 떄문에 다른 노드와 다수의 통신을 하게 되면 합의 속도에 영향을 받을수 있다.

  • 그러기 때문에 CN이 EN들과 소통을 하는 것이다.

🌪 서비스 체인

클레이튼의 서비스 체인은 메인넷과 연결되 독립된 체인이다.

특별한 노드환경에서 설정, 보안수준을 맞출떄, 많은 처리량이 요구되서 메인넷 배포시 경제성이 낮을떄

대표적으로 이렇게 3가지 상황에서 사용이 된다.

🌪 토큰

클레이튼의 경우에는 ERC-20토큰은 KIP-7토큰

ERC-721토큰은 KIL-17토큰으로 이루어 진다.

profile
[기술 블로그가 아닌 하루하루 기록용 블로그]

0개의 댓글