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

엔드포인트노드

위키원
이동: 둘러보기, 검색
㈜카카오(Kakao)

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

개요

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

활용

클레이튼(Klaytn)

클레이튼

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

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

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

그라운드 엑스

클레이튼 블록체인은 확장성과 투명성 모두를 확보하기 위해 컨센서스 노드(CN)와 엔드포인트노드(RN)라는 개념을 수용하는 하이브리드 접근법을 취하고 있다. 컨센서스 노드는 비잔틴 장애 허용(BFT) 컨센서스 알고리즘을 운영함으로써 거래를 배치하고 확인하기 위해 개인 블록체인을 형성하는 네트워크상에서 초대된 파트너사를 뜻하고, 대중 중에서 누구라도 네트워크에 접속할 수 있으며, 엔드포인트노드에 참여할 수 있다. 이들의 의무는 컨센서스에 의해 전파된 블록을 재차 확인하는 것이며, 그라운드엑스는 백서를 통해 엔드포인트노드는 컨센서스 노드로부터 새롭게 형성된 블록을 다운로드하고, 주기적으로 서로 간에 소통하면서 블록체인의 지역 복사본을 저장한다. 엔드포인트노드는 컨센서스 노드가 선택한 새로운 블록을 유효화시키며 주어진 블록 높이의 내용을 모호하게 설명하지는 않는지 확인하며, 엔드포인트노드의 네트워크에 참여할 수 있다. 그라운드 엑스는 하이브리드 접근법을 통해 테스트 넷 상의 블록 전파 간격이 1초 이하로 감소했으며, 1초당 1,500TPS 거래까지 제공할 수 있고, 참여를 권장하기 위해 네트워크는 1백억 클레이 토큰을 두 가지 형태의 노드 모두에 기여에 비례해서 배분할 것이다. 정확한 비율은 아직 알려진 바 없으며, 네트워크는 블록 보상으로서 추가적인 토큰을 매년 발행해야 한다.[6] 가기.png 그라운드엑스에 대해 자세히 보기

각주

참고자료

같이 보기


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