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

라운드

해시넷
wjddn843 (토론 | 기여)님의 2019년 9월 11일 (수) 09:43 판
이동: 둘러보기, 검색

라운드(round)란 블록체인이나 해시그래프탈중앙화 분산형 시스템에서 다수의 노드들이 일정한 합의 알고리즘에 따라 의사결정을 내리는 최소한의 시간 단위를 말한다.

개요

활용

위임지분증명(Delegated Proof of Stake; DPoS)은 네트워크 노드의 투표를 얻은 대표 노드가 거래를 승인하고 블록을 생성하는 합의 알고리즘이다. 자신이 투표한 노드가 대표 노드가 될 경우 투표자는 대표 노드가 얻는 보상을 함께 나눠 받게 된다. 지분증명(PoS)의 경우 일정량 이상의 지분을 소유한 모든 노드에게 블록 생성 권한이 주어지기 때문에 블록 생성에 일정 시간이 필요하다. 물론 작업증명(PoW)과 비교해서 꽤 빠른 속도지만, 그에 반해 위임지분증명의 경우 이미 투표로 선출된 소수의 대표 노드(BP)가 돌아가면서 블록을 생성하기 때문에 블록을 생성하는 속도와 비용이 확연히 감소한다. 각 대표 노드는 라운드별로 랜덤한 순서로 블록을 생성한다. 한 라운드가 종료되면 블록 생성 순서는 초기화된다. 위임지분증명은 빠른 블록 생성이라는 장점을 가지고 있지만 대표로 선출된 소수가 전체 생태계를 좌우한다는 점에서 블록체인의 탈중앙화 정신에 위배된다는 비난을 받기도 한다. 게다가 대표 노드로 선출되기 위해선 노드가 자신의 신분을 밝혀야 하기 때문에 익명성이 보장되지 않으며, 해커들의 공격에 노출될 가능성이 있다.[1]
지분증명(Proof of Stake; PoS)은 블록체인 기술에서 일반적으로 사용되는 합의 프로토콜 중 하나이다. 지분증명은 크립토커런시(Cryptocurencies)가 블록을 검증하는 데 사용하는 합의 알고리즘이다. 이 시스템은 2011년에 처음 제안되었으며, 2012년 피어코인(Peercoin)을 구현한 최초의 암호 해독 기술이다. 지분증명의 주요 장점은 에너지 효율성과 보안이다. 지분증명은 참여자의 코인 지분을 기준으로 블록을 생성한다. 즉, 참여자의 코인 지분이 많을 수록 유리해 지는 방식이다. 다음 블록의 생성자는 부분적으로 사용자가 보유하고 있는 크립토커런시의 정도 또는 어떤 경우에는 그 특성을 보유하고 있는 기간에 의해 무작위 시스템에 의해 결정된다. 지분증명에 대한 무작위 추출은 중앙 집중화를 예방한다. 그렇지 않으면 시스템의 부유한 개인이 항상 다음 블록을 만들고 지속적으로 부를 창출하며 결과적으로 시스템을 통제하기 때문이다.
지분증명은 작업증명(Proof of Work; PoW)보다 훨씬 적은 에너지를 사용하므로 더 효율적이다. 지분증명은 전기 사용량이 훨씬 적기 때문에 우수한 합의 프로토콜로 간주 될 수 있다. 또한 시스템이 훨씬 효율적이기 때문에 네트워크를 유지하기 위해 광부에게 인센티브를 부여하는 수단으로 너무 많은 새로운 코인을 발급해야 할 필요성이 적다. 이것은 특정 코인의 가격을 보다 안정하게 유지하는 데 도움이 된다. 지분증명은 비잔틴 장애 허용(Byzantine Fault Tolerance; BFT) 문제를 해결하는데 특히 적합하다. 이는 모든 유효성 검사가 네트워크에 의해 추적되고 ID의 신원을 알고 있기 때문이다. 비잔틴 장애 허용은 검증자의 2/3가 합의해야하므로 이러한 개별 신원을 추적하면 기능적 상태를 유지하는데 도움이 된다.
지분증명은 작정증명의 단점을 극복하기 위한 알고리즘 중 하나이며 해시 파워가 많이 필요하지 않아 경제적이다. 작업증명에서 51%해시파워를 가지는 비용과 지분증명 전 세계 자산의 51%에서 지분증명방식의 비용이 더 높습니다. 이는 중앙집권화가 더 어려워 분산화가 잘 된다고 볼 수 있다. 문제점은참여한 노드들이 이자를 받으려고 코인을 묶어 두려 하기 때문에 시중 코인의 유통량 감소로 이어질 수 있다는 것이다. 또한, 코인을 너무 많이 보유한 사람이 너무 강한 권력을 가지게 되며, 자산증명을 하는데 있어 한계비용(Marginal cost)이 없다는 것이다.[2]
텐더민트(Tendermint)는 프로포즈(Propose), 프리보트(Prevote), 프리커밋(Precommit) 과정을 거쳐 블록을 생성한다. 각 라운드마다 블록을 제안하며, 매 라운드에서 합의를 거쳐 블록을 생성한다. 텐더민트에서 클라이언트가 네트워크에 블록의 생성을 의뢰(Request)하는 과정이 프로포즈이다. 프로포즈 된 블록을 각 노드가 검증하고, 검증한 결과 참인지 거짓인지를 투표하는 것이 프리보트이다. 각 노드가 블록을 검증한 결과를 네트워크에 전달하는 것이므로 준비(Prepare) 과정에 비교할 수 있다. 프리보트 블록(Prevote Block)이 전체의 2/3이상일 경우 텐더민트에서는 '폴카(polka)'라고 부르는데, 이는 '준비된 증명서(prepared certificate)'에 대응된다. 프리보트 이후 프리커밋 과정을 다시 한 번 진행한다. 프리커밋에 동의한 노드가 전체의 2/3이상일 경우 블록을 커밋한다. '증명서 작성(commit certificate)'에 대응될 수 있으며, 커밋에 필요한 2/3 이상의 프리커밋을 얻지 못할 경우 블록을 생성하지 않고 다음 라운드로 진행한다. 텐더민트에서 블록의 유효성 검사기 노드는 100개이다. ()

각주

  1. Seonho Shin, 〈블록체인 합의 알고리즘 이해하기〉, 《브런치》, 2019-04-09
  2. KIM JUN YONG, 〈블록체인 합의 알고리즘 알아보기 1편(PoW, PoS, DPoS)〉, 《Medium》, 2018-11-18

참고자료

같이 보기


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