의견.png

고스트 프로토콜

위키원
leejia1222 (토론 | 기여)님의 2019년 6월 13일 (목) 16:19 판
이동: 둘러보기, 검색

고스트 프로토콜(ghost protocol)은 'Greedy Heaviest Object subtree protocol'의 약자로 가장 큰 무게를 가진 서브트리(subtree)를 선택하는 알고리즘이다.

개요

고스트 프로토콜은 블록체인에 분기가 일어났을 때, 가장 큰 무게를 가진 서브트리를 선택한다. 고스트 프로토콜은 비트코인의 성능과 보안성 향상을 위해 개발된 알고리즘이다. 비트코인의 경우 포크가 발생하면 가장 길이가 긴 체인을 메인 블록체인으로 하고, 고아블록은 탈락이 된다. 따라서 고스트 프로토콜은 고아블록의 처리에 대한 알고리즘이라고 볼 수 있다. 비트코인은 블록 생성 시간이 약 10분으로 매우 느리기 때문에 고아블록의 생성 확률이 낮다. 만약 분기가 발생했을 경우, 가장 큰 무게를 가진 블록을 메인 블록체인에 연결하고 나머지 블록은 버린다.

반면 이더리움의 블록 생성 시간은 약 12초로 매우 빠르다. 그러나 블록이 빠르게 생성되는 만큼 고아블록이 만들어진 확률이 높아져 안정성이 떨어진다. 이더리움은 빠른 블록 생성 속도를 확보하면서도 보안성을 높이기 위해 기존의 고스트 프로토콜을 수정한 수정 고스트 프로토콜(modified ghost protocol)을 적용하였다. 수정 고스트 프로토콜 방식에서는 비트코인처럼 무게가 아닌, 제네시스블록에서 출발하여 각 서브트리들이 얼마나 블록을 포함하고 있고, 그 블록들의 개수가 많은 체인을 메인체인의 블록으로 선택한다.

특징

블록 생성 속도와 보안성, 고아블록의 생성 확률에는 연관성이 있다. 블록 생성 속도가 느린 비트코인은 고아블록의 생성확률이 낮아 보안성이 높고, 블록 생성 속도가 빠른 이더리움은 고아블록의 생성확률이 높아 보안성이 낮다. 빠른 블록 생성 속도를 가지고 있는 블록체인들은 높은 고아블록 비율로 인해 보안성 저하라는 문제를 가지고 있다. 2013년 12월 소개된 고스트 프로토콜을 개발한 이스라엘의 요나탄 솜폴린스키(Yonatan Sompolinsky)와 아비브 조우하르(Aviv Zohar)는 이에 대해 블록들이 네트워크를 통해 전파되는데 일정한 시간이 걸리기 때문이라는 결론을 도출해냈다. 만일 채굴자 A가 하나의 블록을 채굴했는데, 이 블록이 채굴자 B에게 전파되기 전에 채굴자 B가 다른 또 하나의 블록을 채굴했다고 하면, 채굴자 B의 블록은 결국 낭비될 것이고 네트워크 보안에 기여하지 못하게 될 것이다.[1]

고아블록 발생 배율은 중앙집중화 문제와도 연관되어 있다. 만약 채굴자 A가 30%의 해시파워를, 그리고 B가 10%의 해시파워를 가지고 있다고 하자. 이때 A가 고아블록을 생산할 위험성은 70%가 된다. 다른 30%의 경우에는 A가 마지막 블록을 만들게 되었고 따라서 즉각적으로 채굴데이터를 가지게 되기 때문이다.[2] 반면 B는 매번 90%의 경우에 고아블록을 생산하게 될 위험성을 가지고 있다. 따라서 블록 생성 주기가 고아비율이 높은 것에 필요한 만큼 충분히 짧다면 A는 단순히 크기가 크다라는 사실 자체만으로 훨씬 더 높은 효율성을 가지게 된다. 이러한 두 가지 효과가 결합되어 블록 생성 주기가 짧은 블록체인에서는 높은 해시파워 점유율을 가진 단일한 풀이 채굴과정에 대한 사실상의 통제권을 가지게 될 가능성이 매우 높아지는 것이다.

고스트 프로토콜은 어느 체인이 가장 긴 것인지 계산할 때 고아블록도 포함함으로써 네트워크 보안 손실 문제를 해결한다. 다시 말해 어느 블록이 가장 큰 전체 작업증명을 가지고 있는지 계산함에 있어서, 그 블록의 모블록과 그 조상뿐만 아니라, 그 블록의 고아자손까지도 더한다는 것이다. 중앙화의 문제를 해결하기 위하여 이더리움은 고아블록들에 대해서도 블록보상을 제공한다. 고아블록도 기본 보상의 87.5%를 받게 되며, 그 고아블록을 포함하고 있는 사촌이 나머지 12.5%를 받게 된다.

고스트는 어느 체인이 가장 긴 것인지 계산할 때 고아블록도 포함으로써 위에서 제기한 첫 번째 이슈, 즉 네트워크 보안 손실이라는 문제를 해결한다. 다시 말해서 어느 블록이 가장 큰 전체 작업증명을 가지고 있는지 계산함에 있어서, 그 블록의 모블록과 그 조상뿐만 아니라, 그 블록의 고아 자손까지도 더한다는 것이다. 중앙화라는 두 번째 문제를 해결하기 위하여 이더리움은 가 설명한 프로토콜을 넘어서, 고아블록들에 대해서도 블록보상을 제공한다. 스텡리 블록도 기본 보상의 87.5를 받게 되며, 그 고아블록을 포함하고 있는 사촌이 나머지 12.5%를 받는다.

참고자료

같이 보기


  의견.png 이 고스트 프로토콜 문서는 블록체인 기술에 관한 토막글입니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 이 문서의 내용을 채워주세요.  

  1. (002) ETHEREUM WHITEPAPER (이더리움 백서)〉, 《티스토리》, 2018-11-21
  2. 람보쨩, 〈이더리움 한글 백서〉, 《네이버 블로그》, 2018-01-24