검수요청.png검수요청.png

"엔드포인트노드"의 두 판 사이의 차이

위키원
이동: 둘러보기, 검색
23번째 줄: 23번째 줄:
 
* '''블록전파'''
 
* '''블록전파'''
 
: 컨센서스가 블록을 생성하면 레인저 노드는 공개 검증을 통해 블록을 감사한다. 공개 검증 시스템의 목표는 투명성을 제고하고 어떤 누군가가 블록체인을 공격하거나 검열하는 것을 막는 것이다. 레인저 노드는 컨센서스로부터 블록을 얻고 획득한 블록의 유효성을 감사하며, 확인은 각 블록에 대해 레인저노드는 헤더에 위원회 서명 중 <math>\frac{2}{3}</math> 이상이 포함되어 있는지 확인한 다음 시스템에서 블록을 실행하여 트랜잭션을 검사하여, 이 프로세스에 협력하려면 모든 컨센서스가 공용 키 블록 서명에 사용한 후 예를들면 블록 헤더 같은 공개적으로 액세스할 수 있는 위치에 게시해야 한다. 레인저 노드가 블록 헤더에서 서명 수가 충분하지 않거나 동일한 블록 높이의 두 개 이상의 블록을 발견하면 퍼블릭 p2p 네트워크인 레인저노드 네트워크상에서 주선(gosshiping)을 통해 다른 사람들에게 알려준다. 확인된 블록은 클라이언트 요청을 처리하기 위해 RN의 로컬 스토리지에 저장되며, 모든 블록체인 읽기 요청은 레인저노드로 이동하여 요청을 레인저노드에 효율적으로 분산하고 컨센서스가 쓰기 요청을 처리하는 데 집중할 수 있도록 해야 하고, 블록체인을 적극적으로 복제하고 클라이언트 요청을 제공하는 레인저노드는 인센티브로 보상을 받게 된다.<ref name="케이">KKUG 공식 홈페이지 - http://www.kkug.org/kdocs/software-architecture.html </ref>
 
: 컨센서스가 블록을 생성하면 레인저 노드는 공개 검증을 통해 블록을 감사한다. 공개 검증 시스템의 목표는 투명성을 제고하고 어떤 누군가가 블록체인을 공격하거나 검열하는 것을 막는 것이다. 레인저 노드는 컨센서스로부터 블록을 얻고 획득한 블록의 유효성을 감사하며, 확인은 각 블록에 대해 레인저노드는 헤더에 위원회 서명 중 <math>\frac{2}{3}</math> 이상이 포함되어 있는지 확인한 다음 시스템에서 블록을 실행하여 트랜잭션을 검사하여, 이 프로세스에 협력하려면 모든 컨센서스가 공용 키 블록 서명에 사용한 후 예를들면 블록 헤더 같은 공개적으로 액세스할 수 있는 위치에 게시해야 한다. 레인저 노드가 블록 헤더에서 서명 수가 충분하지 않거나 동일한 블록 높이의 두 개 이상의 블록을 발견하면 퍼블릭 p2p 네트워크인 레인저노드 네트워크상에서 주선(gosshiping)을 통해 다른 사람들에게 알려준다. 확인된 블록은 클라이언트 요청을 처리하기 위해 RN의 로컬 스토리지에 저장되며, 모든 블록체인 읽기 요청은 레인저노드로 이동하여 요청을 레인저노드에 효율적으로 분산하고 컨센서스가 쓰기 요청을 처리하는 데 집중할 수 있도록 해야 하고, 블록체인을 적극적으로 복제하고 클라이언트 요청을 제공하는 레인저노드는 인센티브로 보상을 받게 된다.<ref name="케이">KKUG 공식 홈페이지 - http://www.kkug.org/kdocs/software-architecture.html </ref>
 +
 +
* ''' 공개검증'''(Open Validation)
 +
: 레인저노드는 새로 생성된 블록을 컨센서스에서 다운로드하고 블록체인의 로컬 사본을 저장하면서 서로 고십(gossip)한다. 컨센서스가 선택한 새 블록을 검증하고 컨센서스에 지정된 블록 높이의 내용에 대해 동일하지 않은 정보가 있는지 확인하여, 누구든 네트워크에 레인저 노드로 가입할 수 있다. 공개 검증(Open Validation)은 클레이튼을 퍼블릭 블록체인으로 만드는 데 필수적으로, 누구나 레인저노드가 될 수 있으며, 감사 블록을 통해 플랫폼의 무결성을 확인할 수 있어 플랫폼에 적극적으로 기여한 레인저노드는 [[클레이]](Klay)로 보상을 받고, 플랫폼은 보상을 공정하게 분배하기 위해 최선을 다한다.<ref name="케이"></ref>
 +
 +
* '''감사 프로세스 및 업무'''
 +
: 레인저노드는 하나 이상의 컨센서스에서 블록을 가져오고, 유효한 블록은 헤더에 있는 위원회 서명 중 <math>\frac{2}{3}</math> 이상이 있어야 하며, 같은 블록 높이에 하나의 블록만 존재해야 한다. 레이저노드가 이러한 조건을 위반하는 블록을 발견하면 레인저노드 네트워크를 통해 문제가 있는 블록의 정보를 전달해서 레인저노드 네트워크에 안정적으로 연결하고 지속적으로 블록을 감사할 수 있는 사람은 누구나 레인저노드가 될 수 있어, 초고속 인터넷 연결이 가능한 최신형 노트북이 이 역할에 적합하다. 레인저노드가 되는 것은 무료이지만, 공개 검증에서 보상을 받으려면 레인저노드는 블록체인 복제와 클라이언트 읽기 요청을 수행하는 두 가지 책임을 만족시켜야 한다.
 +
# '''블록체인 복제''' : 클레이튼은 레인저노드가 감사 블록을 로컬 저장소에 저장하여 블록체인을 복제하도록 요구하는데, 이 레인저노드 블록체인 복제의 목표는 개인 블록체인의 복원력 문제를 해결하기 위해 데이터 중복성을 높이는 것이다. 일반적으로 복제 팩터가 높은 블록체인은 많은 복사본이 존재하는 경우 데이터 조작이 어렵기 때문에 타협과 검열에 대한 보안성이 더 높은 것으로 간주된다. 참여하는 레인저노드의 수가 제한되지 않기 때문에, 데이터 중복성과 그에 수반되는 보안은 [[비트코인]]이나 [[이더리움]] 같은 잘 알려진 [[퍼블릭 블록체인]]의 것과 비슷하다.
 +
# '''클라이언트 읽기 요청 제공''' : 복제된 블록체인 데이터를 사용하여 후속 블록을 확인할 뿐만 아니라 클라이언트 읽기 예를들어 트랜잭션 확인, 상태 검색등 요청을 처리한다. 기존의 퍼블릭 블록체인에는 읽기 및 쓰기 예를들면, 자금 이전, 상태 수정등 요청을 모두 처리하는 전체 노드가 있지만, 클레이튼은 레인저노드가 읽기 요청을 처리하도록 위임하여 클라이언트가 레인저노드에서 블록체인 정보를 즉시 얻고 컨센서스가 쓰기 요청을 처리하는 데 집중할 수 있도록 한다. 컨센서스 노드 네트워크의 크기가 상대적으로 작다는 점을 고려하면 읽기 요청을 레인저노드에 위임하면 컨센서스 노드 리소스 제약은 예를들어, 네트워크 대역폭이 완화된다. 클레이튼은 레인저 노드 보상 예비금에 누적된 토큰을 정기적으로 배포하여 스토리지 및 네트워크 대역폭 비용을 보상하기 위해 레인저 노드를 인센티브로 제공한다. 서로 다른 레인저노드가 다른 규모의 기여를 하는 반면, 플랫폼은 레인저노드 참여 동기를 부여하기 위해서, 기여에 비례하여 공정하게 보상을 분배하기 위해 최선의 노력을 기울여야 하므로, 플랫폼에서는 레인저노드 기여금의 공정한 몫을 결정하기 위해 참여 증명(PoP)을 제출하도록 요구하게 된다.<ref name="케이"></ref>
 +
 +
  
 
{{각주}}
 
{{각주}}

2019년 9월 11일 (수) 11:09 판

클레이튼(Klaytn)

레인저노드(ranger node)는 ㈜카카오의 자회사인 그라운드엑스가 개발한 플랫폼클레이튼에 적용된 노드이다. 조정된 역할을 정확하게 기술하기 위해 후에 이름을 엔드포인트 노드(endpoint node)로 변경하였다.

개요

카카오의 자회사인 그라운드엑스가 개발한 플랫폼인 클레이튼에 적용된 노드로, 조정된 역할을 정확하게 기술하기 위해 후에 이름을 엔드포인트 노드로 변경하였다. 레인저노드들은 정기적으로 그들끼리 통신하며 합의 노드에서 새로 생성된 블록을 다운로드하고 블록체인의 사본을 저장하는 식으로 블록을 이중으로 확인한다. 조건을 위반하는 블록을 발견하면 문제가 있는 블록의 정보가 레인저노드 네크워크를 통해 전파되고, 이러한 유효성 검사에 적극 기여한 레인저노드는 클레이로 보상을 받을 수 있다. 누구나 네트워크에 연결하여 레인저노드로 참여가 가능하다.[1]

특징

활용

클레이튼

클레이튼(Klaytn)은 ㈜카카오의 자회사인 그라운드엑스가 개발한 디앱을 위한 블록체인 플랫폼이다. 이더리움에 비해 탈중앙화를 약화시키는 대신 디앱에 필요한 실용성을 강화했다. 빠른 퍼블릭 블록체인을 목표로 하고있다. 클레이튼은 신뢰할 수 있는 기업에 의한 공동 관리 프레임워크 내에서 확장 솔루션과 데이터 중심 의사 결정을 제안함으로써 퍼블릭 플랫폼의 신뢰성과 투명성을 유지하면서 프라이빗 블록체인의 성능과 신뢰성을 달성했다. 또한, 일반유저와 개발자가 편리하게 블록체인을 사용할 수 있도록 하는데 주안점을 두어 일반 사용자들에게 친숙한 UI, UX 디자인과 엔터프라이즈급 애플리케이션, 스테이블한 토큰 구조 등으로 설계되었고, 빠른 속도를 내기 위해 합의노드와 레인저노드의 하이브리드 형태의 노드로 구성 되어 있다.

레인저노드는 클레이튼에서 읽기 요청을 처리하는 역할도 한다. A에서 B로 트랜잭션을 보내는것 같은 쓰기 요청은 합의 과정이 필요하기 때문에 컨센서스 노드가 처리해야 하는 반면, 어떤 블록에 어떤 내용이 적혀 있는지 잔고가 얼마나 있는지 등을 보여 달라는 요청은 합의가 필요없으므로 레인저노드에서 다루게 됨으로써 컨센서스 노드 작업이 줄어들어 전체 네트워크 속도가 증가하게 된다. [2]

  • 합의 구조
사전에 정해진 노드들만 합의 과정에 참여할 수 있다는 점에서 퍼블릭 보다는 프라이빗에 가까운 대신 합의를 위한 컨센서스 노드는 프라이빗 구조로 가는 대신에 컨센서스 노드가 제대로 하는지를 오딧(Audit: 감사)하는 역할을 하는 레인저 노드는 퍼블릭 네트워크 방식으로 운영된다. 컨센서스와 레인저 노드 모두 활동에 따른 보상을 클레이튼에서 발행된 암호화폐인 클레이로 받게 되는데, 레인저 노드는 기존에 없던 개념으로 아무나 참여해 합의를 통해 만들어진 블록을 다운받아 감사를 할 수 있어서 클레이트에 투입되는 컨센서스 노드는 초반에는 수십개로 제한되며, 클레이튼은 비잔틴 장애 허용(BFT) 방식 기반이라 노드가 늘어나면 속도가 저하될 수 있다.[3]
빠른 속도를 내기 위해 노드는 하이브리드 형태로 구성한다. 클레이튼의 목표는 일반 사용자도 사용할 수 있는 퍼블릭 블록체인이지만 합의에 한해서는 퍼블릭의 특성을 일부 사용하여, 노드의 층위가 두 단계이다. 블록체인의 방향을 구성하는 컨센서스 노드(Consensus Node)는 카카오/그라운드 X의 신임을 받은 파트너사들로만 구성되며, 합의는 이들 내부의 블록체인 네트워크로만 돌아간다. 동시에 합의가 필요 없는 읽기 요청, 조회 수 등 사용자가 디앱을 사용하는 것에 대한 요청과 응답은 레인저 노드 단계에서 처리된다. 예를 들면, 파트너사가 스팀잇과 같은 블록체인 기반 CMS를 운영한다고 가정하면, 이때 블록체인망에 쓰기 요청을 하면 블록을 생성해야 하므로 합의가 필요없어 합의 노드에서 처리해야 한다. 송금 서비스라고 가정해도, 돈을 보내기라면 합의 노드에서 처리해야 하지만, 글을 읽기, 잔액 조회 등의 작업이 필요하다면 굳이 합의 노드에서 블록을 생성할 필요가 없으므로 레인저 노드에서 보는 걸로만 처리한다. 이러한 조치를 통해 트랜잭션 속도를 1,500TPS까지 보장 했으나 이론상 속도는 이론일 뿐, 각 블록체인마다 최대 속도를 내지 못하는 경우도 많으므로 무조건적인 신뢰를 하는 것은 좋지 않다. 컨센서스 노드의 수는 무한정 늘리지는 않을 예정이며, 카카오처럼 대형 서비스를 기획할 수 있는 파트너들만 참여할 수 있고, 최소한의 구성으로 책임감 있게 구성하는 게 목표이다. 레인저 노드의 경우 수만 개 정도로 구성한다.[4]
  • 블록전파
컨센서스가 블록을 생성하면 레인저 노드는 공개 검증을 통해 블록을 감사한다. 공개 검증 시스템의 목표는 투명성을 제고하고 어떤 누군가가 블록체인을 공격하거나 검열하는 것을 막는 것이다. 레인저 노드는 컨센서스로부터 블록을 얻고 획득한 블록의 유효성을 감사하며, 확인은 각 블록에 대해 레인저노드는 헤더에 위원회 서명 중 이상이 포함되어 있는지 확인한 다음 시스템에서 블록을 실행하여 트랜잭션을 검사하여, 이 프로세스에 협력하려면 모든 컨센서스가 공용 키 블록 서명에 사용한 후 예를들면 블록 헤더 같은 공개적으로 액세스할 수 있는 위치에 게시해야 한다. 레인저 노드가 블록 헤더에서 서명 수가 충분하지 않거나 동일한 블록 높이의 두 개 이상의 블록을 발견하면 퍼블릭 p2p 네트워크인 레인저노드 네트워크상에서 주선(gosshiping)을 통해 다른 사람들에게 알려준다. 확인된 블록은 클라이언트 요청을 처리하기 위해 RN의 로컬 스토리지에 저장되며, 모든 블록체인 읽기 요청은 레인저노드로 이동하여 요청을 레인저노드에 효율적으로 분산하고 컨센서스가 쓰기 요청을 처리하는 데 집중할 수 있도록 해야 하고, 블록체인을 적극적으로 복제하고 클라이언트 요청을 제공하는 레인저노드는 인센티브로 보상을 받게 된다.[5]
  • 공개검증(Open Validation)
레인저노드는 새로 생성된 블록을 컨센서스에서 다운로드하고 블록체인의 로컬 사본을 저장하면서 서로 고십(gossip)한다. 컨센서스가 선택한 새 블록을 검증하고 컨센서스에 지정된 블록 높이의 내용에 대해 동일하지 않은 정보가 있는지 확인하여, 누구든 네트워크에 레인저 노드로 가입할 수 있다. 공개 검증(Open Validation)은 클레이튼을 퍼블릭 블록체인으로 만드는 데 필수적으로, 누구나 레인저노드가 될 수 있으며, 감사 블록을 통해 플랫폼의 무결성을 확인할 수 있어 플랫폼에 적극적으로 기여한 레인저노드는 클레이(Klay)로 보상을 받고, 플랫폼은 보상을 공정하게 분배하기 위해 최선을 다한다.[5]
  • 감사 프로세스 및 업무
레인저노드는 하나 이상의 컨센서스에서 블록을 가져오고, 유효한 블록은 헤더에 있는 위원회 서명 중 이상이 있어야 하며, 같은 블록 높이에 하나의 블록만 존재해야 한다. 레이저노드가 이러한 조건을 위반하는 블록을 발견하면 레인저노드 네트워크를 통해 문제가 있는 블록의 정보를 전달해서 레인저노드 네트워크에 안정적으로 연결하고 지속적으로 블록을 감사할 수 있는 사람은 누구나 레인저노드가 될 수 있어, 초고속 인터넷 연결이 가능한 최신형 노트북이 이 역할에 적합하다. 레인저노드가 되는 것은 무료이지만, 공개 검증에서 보상을 받으려면 레인저노드는 블록체인 복제와 클라이언트 읽기 요청을 수행하는 두 가지 책임을 만족시켜야 한다.
  1. 블록체인 복제 : 클레이튼은 레인저노드가 감사 블록을 로컬 저장소에 저장하여 블록체인을 복제하도록 요구하는데, 이 레인저노드 블록체인 복제의 목표는 개인 블록체인의 복원력 문제를 해결하기 위해 데이터 중복성을 높이는 것이다. 일반적으로 복제 팩터가 높은 블록체인은 많은 복사본이 존재하는 경우 데이터 조작이 어렵기 때문에 타협과 검열에 대한 보안성이 더 높은 것으로 간주된다. 참여하는 레인저노드의 수가 제한되지 않기 때문에, 데이터 중복성과 그에 수반되는 보안은 비트코인이나 이더리움 같은 잘 알려진 퍼블릭 블록체인의 것과 비슷하다.
  2. 클라이언트 읽기 요청 제공 : 복제된 블록체인 데이터를 사용하여 후속 블록을 확인할 뿐만 아니라 클라이언트 읽기 예를들어 트랜잭션 확인, 상태 검색등 요청을 처리한다. 기존의 퍼블릭 블록체인에는 읽기 및 쓰기 예를들면, 자금 이전, 상태 수정등 요청을 모두 처리하는 전체 노드가 있지만, 클레이튼은 레인저노드가 읽기 요청을 처리하도록 위임하여 클라이언트가 레인저노드에서 블록체인 정보를 즉시 얻고 컨센서스가 쓰기 요청을 처리하는 데 집중할 수 있도록 한다. 컨센서스 노드 네트워크의 크기가 상대적으로 작다는 점을 고려하면 읽기 요청을 레인저노드에 위임하면 컨센서스 노드 리소스 제약은 예를들어, 네트워크 대역폭이 완화된다. 클레이튼은 레인저 노드 보상 예비금에 누적된 토큰을 정기적으로 배포하여 스토리지 및 네트워크 대역폭 비용을 보상하기 위해 레인저 노드를 인센티브로 제공한다. 서로 다른 레인저노드가 다른 규모의 기여를 하는 반면, 플랫폼은 레인저노드 참여 동기를 부여하기 위해서, 기여에 비례하여 공정하게 보상을 분배하기 위해 최선의 노력을 기울여야 하므로, 플랫폼에서는 레인저노드 기여금의 공정한 몫을 결정하기 위해 참여 증명(PoP)을 제출하도록 요구하게 된다.[5]


각주

참고자료

같이 보기


  검수요청.png검수요청.png 이 엔드포인트노드 문서는 블록체인 기술에 관한 글로서 검토가 필요합니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 문서 내용을 검토·수정해 주세요.