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

검증인

위키원
wjddn843 (토론 | 기여)님의 2019년 10월 17일 (목) 09:31 판
이동: 둘러보기, 검색

검증인(validator)은 블록체인에서 같은 LAN을 쓰는 컴퓨터와 주변 기기들을 통틀어 이르는 노드(node)와 같은 의미이다. 퍼블릭 블록체인은 누구나 검증인이 되어 네트워크 유지 및 관리에 참여할 수 있다. 블록체인에서 이뤄진 모든 거래 정보를 전부 저장하는 검증인은 풀노드라고 한다.

개요

전형적인 비잔틴 장애 허용 알고리즘들(BFT: Byzantine fault-tolerant algorithms)에서는 각 노드가 동일한 가중치를 갖는다. 텐더민트에서는 노드들이 '0이상'의 투표권(voting power)을 가지며, 양(+)의 투표권을 갖는 노드들을 검증인(validators)라고 부른다. 검증인들은 다음 블록에 동의하는 암호서명(cryptographic signature), 즉 투표(vote)를 전파(broadcast)함으로써 합의 프로토콜에 참여한다. 검증인(validator)들의 투표권은 제네시스(genesis) 당시에 결정되거나 블록체인에 의해 결정론적으로(deterministically) 변경되기도 한다. 예를 들어, 코스모스 허브와 같은 지분증명 애플리케이션에서는 투표권이 담보물로서 본딩된(bonded) 지분 토큰(staking token)의 양에 의해 결정될 수도 있다.[1]

코스모스에서 검증인들은 풀노드를 운영하며 개인 키(private key)로 서명된 암호화 서명으로 투표를 진행하며, 이 표를 네트워크에 전파하여 합의 절차에 참여하게 된다. 검증인들은 새로운 블록을 블록체인에 기록하고, 역할에 대한 보상을 받게된다. 또한, 검증인은 프로포저에 대한 투표를 하며, 거버넌스 절차에 참여한다. 검증인들의 순위는 위임 받은 코인 수량에 따라서 정해진다.[2] 검증인들은 트랜잭션을 검증(validate), 중계(relay), 제안(propose), 확인(verify), 그리고 완결(finalize)하는 활동을 통해 코스모스 허브를 안전하게 지킨다.[3]

검증인에 대한 처벌

고의든 아니든 검증인이 정해진 프로토콜을 어길 때에는, 처벌이 주어져야 한다. 동일한 높이(height) 및 라운드에서의 이중 서명이나 '텐더민트 합의 프로토콜의 규칙(prevote-the-lock)'의 위반 같은 행위는 증거를 통해 즉시 인정된다. 이 경우, 검증인은 유효한 지위(good standing)를 상실하게 되며, 본딩된 아톰과 '지급준비금 풀(reserve pool)'내 토큰의 비례분 즉, 통칭하여 '지분(stake)'을 상당수 잃을 것이다.

때로는 지역 네트워크 단절, 전원 장애나 그 밖의 이유들로 인해 검증인이 단절될 수 있을 것이다. 만일 '과거 어느 시점의 밸리데이터 타임아웃 윈도우(Validator Timeout Window) 블록'에서 검증인의 커밋 투표가 이루어지지 않은 횟수가 '밸리데이터 타임아웃 최대 결여(Validator Timeout Max Absent)' 횟수 이상인 경우, 해당 검증인은 비활성화 되고 지분의 '밸리데이터 타임아웃 패널티(Validator Timeout Penalty, 디폴트 1%)'만큼 잃게 될 것이다.

어떤 악의적 행위는 블록체인에 명확한 증거를 남기지 않을 수 있다. 이런 경우, 압도적 다수의 합의가 존재한다면, 검증인들이 외부에서 합의한 뒤 악의적인 검증인을 강제로 타임아웃(timeout) 시킬 수 있다. '투표권 ⅓+'이 악의적으로 연합하여 코스모스를 중단시키거나, 이들이 악의적 행동의 증거가 블록체인으로 들어오지 않게 검열하여 삭제하는 경우, 허브는 하드포크를 통한 블록재조정(reorg) 프로포저로 복구(recover)되어야 한다.[1]

검증인이 되는 방법

트워크에 참여하는 모든 유저는 create-validator 트랜잭션을 통해 본인이 검증인이 될 의사를 표시할 수 있다. 해당 트랜잭션에는 다음과 같은 값이 포함되어야 한다.

  • 검증인의 공개 키(public key) : 공개 키와 연관된 개인 키는 prevote와 precommit을 서명하는데 사용된다. 이런 방식을 통해서 검증인은 유동적 자금이 있는 계정과 검증용 계정을 따로 관리할 수 있다.
  • 검증인 주소 : 애플리케이션 단 주소이다. 이 주소는 공개적으로 검증인의 신원을 확인할때 이용된다. 해당 주소와 연관되어있는 개인 키는 본딩, 언본딩, 보상 수령, 거버넌스 참여 등에서 이용된다.
  • 검증인 이름(moniker)
  • 검증인 웹사이트(선택 사항)
  • 검증인 설명(선택 사항)
  • 최초 커미션 : 블록 검증으로 받는 보상에서 위임인들 지불되기 전 삭감되는 수수료
  • 최대 커미션 : 해당 검증인이 설정한 최대 수수료
  • 최소 셀프본딩 수량 : 검증인이 최소로 본딩해야 하는 아톰의 수량이다. 만약 해당 검증인의 총 위임 수량이 이 값보다 떨어지는 경우, 스테이킹 풀 전체는 언본딩 된다.
  • 최초 셀프본딩 수량 : 최초로 검증인이 자체 스테이킹 하는 수량이다.

이제 검증인이 만들어지면, 위임인들은 해당 검증인에게 아톰을 위임하며 해당 스테이킹 풀의 수량을 늘려갈 수 있다. 특정 주소의 총 스테이크는 자체 스테이킹 물량과 위임 받은 스테이킹 물량의 합이다.

검증인으로 참가할 의사를 밝힌 모든 검증인 중 스테이킹 수량이 가장 많은 상위 100개의 검증인은 '활성화된 검증인'으로 블록생성에 참여할 수 있게 된다. 상위 100 순위 밖으로 나가게 되는 검증인은 본드(bonded) 검증인이 되며 검증인 권한을 알게된다. 이때 해당 검증인의 물량은 언본딩 모드로 들어가면서 서서히 언본딩 된다.[2]

각주

  1. 1.0 1.1 DannyKim, 〈Dpos에서 검증자나 증인을 박탈하거나 처벌하는 규정이 있나요?〉, 《aha》, 2019-04-04
  2. 2.0 2.1 검증인 FAQ〉, 《코스모스 허브》
  3. CosmosKorea, 〈코스모스 검증인 경제학〉, 《블록체인허브》, 2018-06-29

참고자료

같이 보기


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