고스트 프로토콜
고스트 프로토콜(GHOST Protocol)은 Greedy Heaviest Object subTree protocol의 약자로 가장 큰 무게를 가진 서브트리(subtree)를 선택하는 알고리즘이다.
고스트 프로토콜은 블록체인에 분기가 일어났을 때, 가장 큰 무게를 가진 서브트리를 선택한다. 비트코인의 경우 포크가 발생하면 가장 길이가 긴 체인을 메인 블록체인으로 하고, 고아블록은 탈락이 된다. 따라서 고스트 프로토콜은 고아블록의 처리에 대한 알고리즘이라고 볼 수 있다. 고스트 프로토콜은 비트코인을 위해 생성되었는데, 비트코인은 블록 생성 시간이 약 10분으로 매우 느리기 때문에 고아블록의 생성 확률이 낮다. 만약 분기가 발생했을 경우, 가장 큰 무게를 가진 블록을 메인 블록체인에 연결하고 나머지 블록은 버린다.
반면 이더리움의 블록 생성 시간은 약 12초로 매우 빠르다. 그러나 블록이 빠르게 생성되는 만큼 고아블록이 만들어진 확률이 높아져 안정성이 떨어진다. 이더리움은 빠른 블록 생성 속도를 확보하면서도 보안성을 높이기 위해 기존의 고스트 프로토콜을 수정한 수정 고스트 프로토콜(modified ghost protocol)을 적용하였다. 수정 고스트 프로토콜 방식에서는 비트코인처럼 무게가 아닌, 제네시스블록에서 출발하여 각 서브트리들이 얼마나 블록을 포함하고 있고, 그 블록들의 개수가 많은 체인을 메인체인의 블록으로 선택한다.
참고자료
- 불곰, 〈이더리움 고스트 프로토콜(Ethereum GHOST Protocol)〉, 《티스토리》, 2019-01-23