검증인
검증인(validator)은 블록체인에서 새로 생성된 블록의 무결성을 검증하는 노드를 말한다. 영어로 밸리데이터(validator)라고 한다. 검증인은 블록체인에서 같은 랜(LAN)을 쓰는 컴퓨터와 주변 기기들을 통틀어 이르는 노드(node)와 같은 의미이다. 퍼블릭 블록체인은 누구나 검증인이 되어 네트워크 유지 및 관리에 참여할 수 있다. 블록체인에서 이뤄진 모든 거래 정보를 전부 저장하는 검증인은 풀노드라고 한다.
개요
전형적인 비잔틴 장애 허용(Byzantine Fault Tolerant ; BFT) 합의 알고리즘에서는 각 노드가 동일한 가중치를 갖는다. 텐더민트에서는 노드들이 0 이상의 투표권을 가지며, 양(+)의 투표권을 갖는 노드들을 검증인라고 부른다. 검증인들은 다음 블록에 동의하는 암호 서명, 즉 투표를 전파함으로써 합의 프로토콜에 참여한다. 검증인들의 투표권은 제네시스(genesis) 당시에 결정되거나 블록체인에 의해 결정론적으로(deterministically) 변경되기도 한다. 예를 들어, 코스모스 허브와 같은 지분증명(Proof of Stake ; PoS) 애플리케이션에서는 투표권이 담보물로서 본딩된(bonded) 스테이킹 토큰의 양에 의해 결정될 수도 있다.[1]
코스모스에서 검증인들은 풀노드를 운영하며 개인 키(private key)로 서명된 암호화 서명으로 투표를 진행하며, 이 표를 네트워크에 전파하여 합의 절차에 참여하게 된다. 검증인들은 새로운 블록을 블록체인에 기록하고, 역할에 대한 보상을 받게 된다. 또한, 검증인은 프로포저에 대한 투표를 하며, 거버넌스 절차에 참여한다. 검증인들의 순위는 위임받은 코인 수량에 따라서 정해진다.[2] 검증인들은 트랜잭션을 검증(validate), 중계(relay), 제안(propose), 확인(verify), 그리고 완결(finalize)하는 활동을 통해 코스모스 허브를 안전하게 지킨다.[3]
특징
검증인에 대한 처벌
고의든 아니든 검증인이 정해진 프로토콜을 어길 때에는 처벌이 주어져야 한다. 동일한 높이(height) 및 라운드에서의 이중 서명이나 '텐더민트 합의 프로토콜의 규칙(prevote-the-lock)'의 위반 같은 행위는 증거를 통해 즉시 인정된다. 이 경우, 검증인은 유효한 지위를 상실하게 되며, 본딩된 아톰과 '지급준비금 풀(reserve pool)' 내 토큰의 비례분 즉, 통칭하여 지분을 상당수 잃을 것이다.
때로는 지역 네트워크 단절, 전원 장애나 그 밖의 이유로 인해 검증인이 단절될 수 있을 것이다. 만일 '과거 어느 시점의 밸리데이터 타임아웃 윈도우(Validator Timeout Window) 블록'에서 검증인의 커밋 투표가 이루어지지 않은 횟수가 '밸리데이터 타임아웃 최대 결여(Validator Timeout Max Absent)' 횟수 이상인 경우, 해당 검증인은 비활성화되고 지분의 '밸리데이터 타임아웃 패널티(Validator Timeout Penalty, 디폴트 1%)'만큼 잃게 될 것이다.
어떤 악의적 행위는 블록체인에 명확한 증거를 남기지 않을 수 있다. 이런 경우, 압도적 다수의 합의가 존재한다면, 검증인들이 외부에서 합의한 뒤 악의적인 검증인을 강제로 타임아웃(timeout) 시킬 수 있다. '투표권 ⅓+'이 악의적으로 연합하여 코스모스를 중단시키거나, 이들이 악의적 행동의 증거가 블록체인으로 들어오지 않게 검열하여 삭제하는 경우, 허브는 하드포크를 통한 블록재조정 프로포저로 복구되어야 한다.[1]
검증인이 되는 방법
네트워크에 참여하는 모든 유저는 create-validator
트랜잭션을 통해 본인이 검증인이 될 의사를 표시할 수 있다. 해당 트랜잭션에는 다음과 같은 값이 포함되어야 한다.
- 검증인의 공개 키(public key) : 공개 키와 연관된 개인 키는 prevote와 precommit을 서명하는 데 사용된다. 이런 방식을 통해서 검증인은 유동적 자금이 있는 계정과 검증용 계정을 따로 관리할 수 있다.
- 검증인 주소 : 애플리케이션 단 주소이다. 이 주소는 공개적으로 검증인의 신원을 확인할 때 이용된다. 해당 주소와 연관되어있는 개인 키는 본딩, 언본딩, 보상 수령, 거버넌스 참여 등에서 이용된다.
- 검증인 이름(moniker)
- 검증인 웹사이트(선택 사항)
- 검증인 설명(선택 사항)
- 최초 커미션 : 블록 검증으로 받는 보상에서 위임인들 지불되기 전 삭감되는 수수료
- 최대 커미션 : 해당 검증인이 설정한 최대 수수료
- 최소 셀프본딩 수량 : 검증인이 최소로 본딩해야 하는 아톰의 수량이다. 만약 해당 검증인의 총 위임 수량이 이 값보다 내려가는 경우, 스테이킹 풀 전체는 언본딩 된다.
- 최초 셀프본딩 수량 : 최초로 검증인이 자체 스테이킹 하는 수량이다.
이제 검증인이 만들어지면, 위임인들은 해당 검증인에게 아톰을 위임하며 해당 스테이킹 풀의 수량을 늘려갈 수 있다. 특정 주소의 총 스테이크는 자체 스테이킹 물량과 위임받은 스테이킹 물량의 합이다.
검증인으로 참가할 의사를 밝힌 모든 검증인 중 스테이킹 수량이 가장 많은 상위 100개의 검증인은 '활성화된 검증인'으로 블록생성에 참여할 수 있게 된다. 상위 100순위 밖으로 나가게 되는 검증인은 본딩된(bonded) 검증인이 되며 검증인 권한을 알게 된다. 이때 해당 검증인의 물량은 언본딩 모드로 들어가면서 서서히 언본딩 된다.[2]
검증인 수의 제한
비트코인과 같이 작업증명 방식을 채택한 블록체인과는 달리, 텐더민트 블록체인은 검증인의 수가 많아질수록 통신의 복잡도가 증가하여 속도가 느려진다. 물론 충분한 검증인들을 통해 블록체인의 전 세계 분산, 매우 빠른 이체확인 속도를 제공할 수 있다. 또한 대역폭, 저장공간 및 병렬 컴퓨팅 용량이 증가함에 따라 장래에 더욱 많은 검증인들을 지원할 수 있을 것이다. 제네시스 시에는 최대 검증인 수가 100명으로 설정될 것이고, 이 수치는 10년 동안 13%의 비율로 증가하여 최종적으로는 총 300명의 검증인을 가지게 될 것이다.
- 0년 : 100명
- 1년 : 113명
- 2년 : 127명
- 3년 : 144명
- 4년 : 163명
- 5년 : 184명
- 6년 : 208명
- 7년 : 235명
- 8년 : 265명
- 9년 : 300명
- 10년 : 300명[4]
사례
코스모스
코스모스(Cosmos)는 독립 병렬 블록체인들의 네트워크이며, 해당 블록체인들은 각기 텐더민트와 같은 전형적인 비잔틴 장애 허용 합의 알고리즘에 기반한다. 코스모스의 최초 블록체인이 곧 코스모스 허브가 된다. 코스모스 허브는 블록체인 간 통신(IBC) 프로토콜을 통해 다른 많은 블록체인들과 연결된다. 코스모스 허브는 수많은 유형의 토큰을 추적하고, 연결된 각 존의 토큰 총 수를 기록한다. 이 아키텍처는 애플리케이션 상호운용성, 확장성 그리고 무결점 업그레이드 가능성을 포함한 블록체인이 직면한 많은 문제를 해결한다. 예를 들면, 비트코인(Bitcoind), 고-이더리움(Go-Ethereum), 크립토노트(CryptoNote), 지캐시(ZCash) 등을 포함한 임의의 블록체인 시스템으로부터 파생된 존들이 코스모스 허브에 연결될 수 있다. 이러한 존들을 통해 코스모스는 전역 이체(global transaction) 요구를 충족시킬 때까지 무한히 확장할 수 있다. 그리고 존들은 탈중앙화 거래소에도 매우 적합하며, 실제로 지원될 것이다. 코스모스는 단일 분산 원장에 불과한 것이 아니며, 코스모스 허브도 폐쇄형 플랫폼이 아니다. 오히려 코스모스는 미래 금융 시스템의 새로운 기초가 될 수 있는 개방형 분산원장 네트워크를 위한 프로토콜이며, 암호학 원리, 잘 설계된 경제, 합의 이론, 투명성, 책임 등의 원칙에 기반하고 있다.[4]
- 아톰(Atom)
- 아톰은 코스모스 허브의 고유 토큰이다. 아톰의 가장 중요한 유용성은 스테이킹을 통해 코스모스 허브를 안전하게 지키는 것이다. 즉, 아톰은 디지털화된 에이식(ASIC)과 같으며 넓은 의미에서 작업증명(Proof of Work ; PoW)의 마이닝을 담당하는 채굴기와 같다. 각 검증인이 아톰 보유자들로부터 위임(delegate)받은 토큰의 양은 각 검증인이 얼마나 자주 새로운 블록을 생성할 것인지에 영향을 주며, 블록 합의 과정에서 얼만큼의 영향력을 행사할 것인지를 결정한다. 아톰 보유자들이 그들의 아톰을 스테이킹한 경우 블록생성에 대한 보상과 트랜잭션 수수료를 아톰(Atom), 포톤(Photon) 그리고 화이트 리스트로 등록된 코인 중 하나로 받게 된다.
- 아톰의 인플레이션
- 매 블록이 만들어질 때마다 새로운 아톰이 생성되어 합의 과정에 참여한 검증인과 위임자들에게 분배된다. 이를 통해 아톰 보유자들이 그들의 아톰을 지갑에 넣어두지 않고 위험을 감수하며 네트워크의 안전성을 지키는데 적극적으로 참여할 수 있도록 하는 인센티브가 된다. 블록당 생성되는 아톰의 개수는 변동하며 이는 네트워크상에서 스테이킹되고 있는 아톰의 비율에 따라 변경된다. 네트워크를 안전하게 보호하기 위해 최소한 전체 아톰 발행량의 2/3는 스테이킹 상태로 존재하게 하는 것이 목표이다. 만약 전체 아톰의 스테이킹 참여 비율이 2/3 이하로 내려가면, 인플레이션율은 최대 20%까지 증가한다. 반대로 전체 아톰의 스테이킹 참여 비율이 2/3 이상으로 증가하면 인플레이션율은 서서히 감소해 7%까지 감소한다.
- 위임자
- 코스모스 허브의 위임자(delegator)들은 보유 아톰을 네트워크의 안전성을 지키기 위해 보유량의 일부 혹은 전부를 스테이킹한 사람들을 일컫는다. 아톰의 보유 수량과 상관없이 누구나 스테이킹에 참여할 수 있다. 위임자들은 하나 혹은 그 이상의 검증인을 선택해 자신들이 보유한 아톰을 위임한다. 그러나 검증인이 해서는 안 되는 행동을 한 경우, 예를 들어 동일한 블록 높이에서 서로 다른 두 개의 블록에 서명한 경우에 검증인이 스테이킹 하고 있는 본인 소유의 아톰과 그 검증인에게 위임된 위임자들 소유의 아톰은 슬래싱(slashing) 된다. 위임자들은 이러한 위험을 감수하고 아톰을 스테이킹한 대가로 검증인들이 벌어드린 트랜잭션 수수료와 블록 보상을 함께 나눠 갖는다.
- 트랜잭션 수수료
- 코스모스 네트워크에서 이뤄지는 트랜잭션에는 다른 블록체인과 마찬가지로 트랜잭션 수수료가 부과된다. 하지만 다른 블록체인과는 다르게 코스모스는 트랜잭션 수수료를 다양한 토큰으로 지급하는 것을 가능하게 한다. 결과적으로 트랜잭션 수수료 중 예비 풀(reserve pool)에 네트워크 세금으로 징수되는 금액을 제외한 나머지는 스테이킹한 지분에 따라 검증인과 위임자에게 나눠진다. 참고로 예비 풀에 모인 펀드는 코스모스 네트워크의 보안과 가치를 증가시키기 위해 거버넌스 과정을 거쳐 유용한 곳에 사용된다.
- 거버넌스
- 코스모스 네트워크는 온체인 거버넌스를 통해 아톰 보유자들이 시스템의 각종 매개변수, 업그레이드, 그리고 코스모스 허브의 헌법을 투표로 결정할 수 있다. 네트워크에 있는 각 존(zone)은 고유의 헌법과 거버넌스 구조로 되어 있는데, 위임자들은 자신의 아톰을 위임한 검증인을 통해 거버넌스 투표에 참여할 수 있으며 특정 안건에 대해 검증인과 생각이 다른 경우 검증인의 투표를 기각할 수 있는 권한이 부여된다.[5]
각주
- ↑ 1.0 1.1 DannyKim, 〈Dpos에서 검증자나 증인을 박탈하거나 처벌하는 규정이 있나요?〉, 《aha》, 2019-04-04
- ↑ 2.0 2.1 〈검증인 FAQ〉, 《코스모스 허브》
- ↑ CosmosKorea, 〈코스모스 검증인 경제학〉, 《블록체인허브》, 2018-06-29
- ↑ 4.0 4.1 Jae Kwon, Ethan Buchman, 〈코스모스 분산원장 네트워크〉, 《구글 문서》
- ↑ COSMOS Korea, 〈코스모스 검증인 경제학〉, 《미디움》, 2018-06-29
참고자료
- 〈검증인 FAQ〉, 《코스모스 허브》
- Blocknoe, 〈블록체인 이란?(blockchain), 51%공격〉, 《티스토리》, 2018-05-16
- CosmosKorea, 〈코스모스 검증인 경제학〉, 《블록체인허브》, 2018-06-29
- Jae Kwon, Ethan Buchman, 〈코스모스 분산원장 네트워크〉, 《구글 문서》
- COSMOS Korea, 〈코스모스 검증인 경제학〉, 《미디움》, 2018-06-29
같이 보기