클레이튼 네트워크 구조

황희윤·2022년 2월 15일
0

네트워크 구조

  • 클레이튼은 기본적으로 이더리움을 기반으로 만들어진 네트워크지만 형태가 다르다.

  • 기존 public 블록체인 네트워크인 이더리움과 비트코인이 단일 네트워크인 반면 클레이튼은 3중 네트워크로 이뤄진다.

1. CNN ( Consensus Node Network ) - 합의 담당

  • CNN은 Cell들이 모여있는 네트워크

    • Consensus Node 1개와 Proxy Node 2개, 총 3개의 노드가 하나의 Core Cell을 이루고 있다.
  • 다른 노드와 달리 오직 Core Node만 합의 프로토콜을 통해 블록을 생성하는 노드들이다.

  • 결국 특정 노드들만 블록 생성 권한을 얻고 합의하기에 이더리움이나 비트코인보다 빠른 TPS를 낼 수 있다.

2. PNN ( Proxy Node Network ) - 통로 역할

  • PNN은 Proxy Node들로 구성되어 있다.

  • 서로 다른 Proxy Node 두 개가 한 쌍을 이뤄 하나의 Core Node와 CNN을 이룬다.

  • 이때 쌍을 이룬 두 개의 PN은 서로 연결하지 않고 각각 다른 CNN의 PN과 연결한다.

  • PN은 endpoint와 연결하고 트랜잭션을 CN에 넘겨주는데 (통로역할), 이는 CN에게 일을 몰아 CN을 힘들게 하지 않기 위함이다.

  • CN 혼자 하는 것 보다 PN에게 연결 역할을 주어서 하는 것이 확장성을 높인다.

3. ENN ( Endpoint Node Network ) - 외부, 클라이언트쪽 연결

  • ENN은 Endpoint Node들로 구성돼 있어 실제로 트랜잭션을 생성하고, JSON-RPC API 핸들링, Service Chain으로 부터 오는 데이터를 처리하여 BApp(Blockchain App) 사용에 직접적인 역할을 한다.

  • BApp을 사용하기 위해서는 사용자가 EN을 띄워야 네트워크에 배포된 컨트랙트를 사용할 수 있는데, *KAS(Klayton API Service)를 이용하면 컨트랙트 호출 말고도 다양한 서비스를 EN을 직접 띄우지 않고도 사용할 수 있다.

KAS

  • 기존 클레이튼
    • 트랜잭션을 보내려면 비싼 비용을 지불하고 고성능의 노드를 준비해 운영해야 한다.
    • 여러 계정(Account)을 만들고 이들의 개인키-공개키 쌍을 일일이 관리해야 한다.
  • KAS
    • 노드를 설치, 운영하거나 계정 키를 관리할 필요가 없이 트랜잭션 전송과 관련된 모든 작업을 REST API 혹은 SDK로 실행 가능하다.
    • 블록체인 계정을 그룹화하여 관리할 수 있다.
    • 메인 체인에 데이터를 앵커링하는 작업을 API로 간단히 수행 가능

SCN ( Service Chain Network )

  • Service Chain Network : 메인 네트워크(CNN, PNN, ENN)과는 독립적인 하위 네트워크

  • 서비스 체인은 ENN을 통해 메인 네트워크에 데이터를 처리한다.

  • 서비스 체인이 사용될 때

    • BApp이 특별한 노드환경에서 설정될 때
    • 보안 수준을 맞춤형으로 설정해서 운영하고 싶을 때(private 블록체인을 운영하고 싶을 때)
    • 너무나도 많은 데이터를 처리해야 하지만 메인 네드워크 배포 시 경제성 낮을 때

  • 위의 이미지에서 가운데 큰 동그라미가 메인 네트워크고 양쪽으로 체인처럼 연결 되어 있는게 서비스 체인이다.

  • 이더리움도 체인을 만들었지만, 실용성이 떨어진다.

사용자가 많아져서 확장이 필요할 때

  • 일반적인 서버 대응 : 서버 늘리고 Request 분할 처리

  • 일반 블록체인(비트코인 & 이더리움) : 노드의 양을 늘려봤자 늘린만큼 정보를 각 노드들에게 더 전달해야 되기 때문에 처리속도가 더 늘어날 수 있다.

  • 클레이튼 : 노드 자체의 성능을 늘림

  • CN(Consensus Node)의 자격 : 데이터를 많이 담을 수 있고 성능이 매우 좋아야 함.

profile
HeeYun's programming study

0개의 댓글