의견.png

고스트 프로토콜

위키원
wlgns12244 (토론 | 기여)님의 2019년 7월 30일 (화) 11:50 판 (특징)
이동: 둘러보기, 검색

고스트 프로토콜은(ghost protocol)은 'Greedy Heaviest Object subtree protocol'의 약자로 메인체인을 선택하는 데 있어 가장 가장 긴 체인을 채택하는 알고리즘이다.

개요

2013년 12월 요나탄 솜폴린스키(Yonatan Sompolinsky)와 아비브 조우하르(Aviv Zohar)에 의해 등장한 고스트 프로토콜은 비트코인의 성능과 보안성 향상을 위한 프로토콜이다. 블록체인블록들이 네트워크를 통해 전파되는데, 일정한 시간에 맞게 다음 블록을 생성하며 블록의 길이를 결정한다. 하지만 생성되는 블록들의 블록보다 더 긴 블록이 생성되는 경우 이중지불 문제가 발생하게 된다.

이를 보완하기 위해 등장한 고스트 프로토콜은 이러한 블록들을 트리 형태로 생성하여 해당 블록의 부모블록, 조상블록 그리고 자손블록까지 블록의 가중치 값을 계산하여 블록의 길이를 정한다. 이렇게 트리 형태의 블록체인이 형성되면 단일 형태로 생성된 악의적인 블록의 선택을 방지할 수 있고 정보의 무결성을 보장할 수 있을 뿐만 아니라 네트워크의 보안 손실을 방지할 수 있다.

특징

블록 생성 속도와 보안성, 고아블록의 생성 확률에는 연관성이 있다. 블록 생성 속도가 느린 비트코인은 고아블록의 생성확률이 낮아 보안성이 높고, 블록 생성 속도가 빠른 이더리움은 고아블록의 생성확률이 높아 보안성이 낮다. 빠른 블록 생성 속도를 가지고 있는 블록체인들은 높은 고아블록 비율로 인해 보안성 저하라는 문제를 가지고 있다. 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%를 받게 된다.

블록이 만들어지고 체인을 형성하는데 까지 필요한 3가지 요소가 있다.

  • 암호화폐를 거래하는 사용자
  • 사용자들 간의 거래의 유효성을 검증하는 노드
  • 새로운 블록을 찾아내는 채굴자

사용자 사이에서 거래가 발생하면, 거래내용들이 노드에게 전달되고 이 노드는 해당 거래의 유효성 검증 작업을 하게 된다. 유효한 지갑 주소인지, 이중 지불 문제가 발생하지 않는지 등의 검토를 한 후 유효성 검증이 완료된 거래들은 수수료가 높은 순서, 거래가 진행된 순서 등으로 나열되어 각 노드에서 관리하게 된다. 노드는 블록에 이러한 정보를 담아 채굴자에게 전달하고, 전달받은 채굴자는 블록의 새로운 주소를 찾는 작업을 시작하게 된다. 이때 많은 채굴자가 동시에 채굴을 할 경우, 여러 개의 다른 블록이 동시에 생겨서 충돌이 일어나게 된다. 이 과정에서 합의를 통해 유효한 블록을 선택하며 유효한 블록을 찾아낸 채굴자에게 보상이 주어진다. 이때, 정상적인 채굴 과정을 통해 블록을 생성했음에도 불구하고 선택받지 못한 블록을 고아블록이라고 한다. 고아블록은 체인에 연결되지 않기 때문에 채굴하는데 소비된 시간과 비용이 낭비된다. 고아블록은 블록체인에 연결되지 않기 때문에 채굴하는데 소비된 시간과 비용이 낭비되고, 이로 인해 네트워크 블록 생성 난이도가 감소되어 네트워크의 보안 수준은 낮아지게 된다. [3]

종류

이더리움 고스트 프로토콜(Ethereum GHOST Protocol)

GHOST Protocol은 Bitcoin의 성능 향상과 보안성 향상을 위해 나온 알고리즘이다. Ethereum은 이 GHOST Protocol을 약간 수정하여 적용하였다. 이를 통해 빠른 블록 생성 속도를 가지면서 보안성도 높이는 결과를 얻었다. 블록 생성 속도와 보안성, stale 블록의 생성확률에는 연관성이 있다. 블록 생성 속도가 느린 비트코인은 stale 블록의 생성확률이 낮아서 보안성이 높다. 블록 생성 속도가 빠른 이더리움은 stale 블록의 생성확률이 높아서 보안성이 낮다. 하지만 GHOST Protocol을 적용하여 stale 블록을 잘 처리하고 보안성도 높이는 결과를 가져왔다. GHOST Protocol은 stale 블록의 처리에 대한 알고리즘이다. GHOST protocol은 bitcoin을 위해 나왔다. 비트코인은 블록생성시간이 약 10분으로 느리지만 stale블럭의 생성확률이 매우 낮다. 그래서 stale 블록이 발생하면 가장 긴 블록을 메인블록체인(Canonical Blockchain)에 연결하고 나머지 stale 블록은 버린다. 하지만 이를 위해 10분을 기다리므로 비트코인은 매우 느리다. 이를 보완하기 위해 이더리움은 블록생성 시간을 약 12초 정도로 매우 빠르게 만들었다. 그러나 블록이 빠르게 생성되면 그만큼 stale 블록이 생성될 확률이 높아지므로 안정성이 떨어진다. 따라서 이를 보완하기 위해 이더리움은 수정된 GHOST protocol을 적용했다.[4] GHOST Protocol은 Greedy Heaviest Object subTree의 약자이고 말 그대로 가장 큰 무게를 가진 subtree를 선택하는 알고리즘이다. Bitcoin의 경우 fork가 발생했을 때 더 긴 블록이 연결된 블록을 메인 체인으로 하고 Uncle은 버린다. Ethereum의 경우에는 fork가 발생했을 때 더 무거운 쪽을 선택한다. 이더리움은 이런 수정된 GHOST Protocol을 사용한다. 먼저, GHOST Protocol의 기본 메커니즘을 따라간다. 다음은 GHOST Protocol algorithm이다. 이더리움의 수정된 GHOST Protocol로 수정된 GHOST Protocol의 내용은 다음과 같다.

  • 하나의 블록은 반드시 하나의 모블록을 지정해야 하며, 0 또는 그 이상의 삼촌을 지정해야 한다.
  • 블록 B에 포함된 삼촌은 다음과 같은 속성들을 가지고 있어야 한다.
  • B의 k번째 조상의 직접적인 자손이어야 한다. 여기서 2 <= k <= 7.
  • B의 조상이어서는 안된다.
  • 유효한 블록 헤더여야 하지만, 이전에 확인되었을 필요도, 또는 심지어 유효한 블록일 필요도 없다.[4]
  • 이전 블록들에 포함된 모든 삼촌들, 그리고 같은 블록에 포함된 모든 다른 삼촌들과는 달라야 한다(중복포함방지)
  • 블록 B에 있는 각 삼촌 U에 대해, B의 채굴자는 코인베이스 보상에 더해 추가로 3.125%를 더 받고, U의 채굴자는 기본 코인베이스 보상의 93.75%를 받는다.

블록 크기와 블록 생성 시간, transaction 처리 성능, fork 수, 보안성은 다음과 같은 상관관계를 가진다. 블록 사이즈와 블록생성속도가 커지면 transaction 처리율이 올라가고 fork되는 블록의 수가 늘어난다. 이것은 블록체인 네트워크의 보안성이 떨어진다는 것이다.[4] Bitcoin에 경우 블록생성속도는 매우 느리다(약 10분). 이로인해 transaction 처리 성능은 낮아지고 대신 fork되는 블록의 수는 작아진다. fork의 수가 작아지므로 stale 블록이 발생하는 빈도가 줄어서 자연스럽게 보안성이 늘어난다. 하지만 블록생성속도가 매우 느리다는 단점이 있다. Ethereum에서는 이것을 개선했다. 블록생성속도를 약 12초 정도로 매우 빠르게 유지하는 것이다. 하지만 그렇게 블록생성속도를 올리면 위와 같은 상관관계에 의해 fork의 수가 많이 늘어난다. 즉 이는 네트워크의 보안성을 많이 낮춘다. 이를 해결하기 위해 이더리움은 수정된 GHOST Protocol을 사용했다. stale 블록에 대해 보상을 주고 가장 긴 것이 아닌 가장 무거운 것을 사용했다. 그리하여 네트워크의 보안성을 올리고 transaction 처리율을 유지하면서 블록생성속도도 빠르게 할 수 있는 것이다. 블록생성속도를 올리는 것은 블록체인 네트워크 전체의 처리율과 아주 밀접한 관계를 가진다. 하지만 이는 블록체인 네트워크의 보안성을 내리지만 GHOST 프로토콜을 이용하여 이를 보완할 수 있다. 따라서 이더리움의 GHOST 프로토콜은 전체 성능과 보안에 아주 중요한 역할을 한다고 할 수 있다.[4]

하이콘 고스트 프로토콜(Hycon GHOST protocol)

글로스퍼의 블록체인 플랫폼 ‘하이콘(HYCON)’은 하이퍼커넥티드 코인(Hyper Connected Coin)이라는 의미를 가졌다. 하이콘은 지난 1월 제네시스 블록(Genesis Block) 생성을 시작으로 6월 1일에는 자체 메인넷을 론칭했다. 하이콘은 10월 31일 고스트프로토콜(GHOST Protocol) 업데이트를 발표했다. 이에 따르면 초당 최소 200건 이상의 트랜잭션을 구현했으며, 빠른 시일 내 스펙터(SPECTRE) 프로토콜을 적용하여 초당 3,000건 이상을 트랜잭션을 실현한다는 계획이다. 하이콘은 연내 ’스마트 컨트랙트(Smart contract)’ 기능을 출시할 예정이다. 또한 마이크로소프트 클라우드 서비스 애저(Azure)의 가상 머신(Virtual Machine)에서 하이콘을 사용할 수 있게 준비하고 있는 것으로 알려졌다. 애저에서 하이콘을 사용할 수 있게 되면 전 세계 개발자들이 접근성을 높여 블록체인 프로젝트에 큰 힘이 실릴 전망이다. 글로스퍼는 국내 최초로 블록체인을 활용한 지역화폐 ‘노원(NOWON)’ 상용화를 성공한 바 있다. 또한 영등포구 제안 평가 시스템, 해양수산부 항만관리 시스템, 한국저작권협회 음원 서비스 유통 플랫폼 등 공공기관과 국가 정부 사업을 수주하며 꾸준히 발전하는 모습을 보여왔다는 평이다. 글로스퍼는 작년 12월 KCC정보통신, 올 4월 비즈니스온(BusinessOn), 5월 코인빌(Coinvil)과의 협업을 이어갔다. 비즈니스온과는 블록체인 기반의 전자계약 서비스를, 코인빌과는 필리핀 암호화폐 거래소 구축 계약과 필리핀 중앙은행의 암호화폐 거래소 승인을 받는 성과를 이뤘다. 7월에는 신한카드와 아프로서비스그룹과 협약을 통해 블록체인 기반의 금융 서비스 사업을 진행하고 있다. 글로스퍼 김태원 대표는 “그 동안 하이콘은 완벽한 기술을 위해 기술 연구에 중점을 둬 왔다”고 밝힌 뒤 “앞으로는 기술력을 바탕으로 결과를 보여주고 있는 단계에 진입하고 있다. 앞으로 하이콘의 희망찬 행보를 기대해달라”고 말했다. [5]

하이콘(HYCON)이 세계 최초로 DAG∙스펙터 합의 알고리즘 개발에 성공했다고 밝혔다. 이 기술이 적용되면 하이콘 블록체인 네트워크는 각 노드들이 분산 처리되며 스펙터를 발동시키게 됨으로써, 최소 3,000 TPS에서 비자카드를 운용하는 비자넷의 버금가는 처리 속도를 구현하게 될 전망이다. 하이콘은 지난 6월 자체 메인넷 가동 이후 고스트프로토콜 업데이트를 통한 초당 처리속도 2배 증가에 성공하고, 다음달 7일 채굴량 90% 감소 하드포크 계획, 11월 중 바이백 완료 등 기존 블록체인 업계에서 상상할 수 없는 혁신을 보여주고 있다.스펙터 합의 알고리즘 개발도 기존 로드맵상 2019년 상반기 완료가 계획이었다. 최소 1년 이상 기술 개발이 걸릴 것으로 예상했지만, 고스트프로토콜 업데이트가 이루어지고 1개월도 안된 시점에서 DAG∙스펙터 개발 성공 소식을 전한 것이다. 하이콘 보유자들은 기술력과 신뢰라는 두 가지 믿음을 갖게 됐다. 스펙터(SPECTRE)는 Serialization of Proof-of-work Events: Confirming Transactions via Recursive Elections의 약자이다. 비트코인이 블록체인 컨센서스 유지할 때 나카모토 프로토콜이 사용되는 반면, 하이콘 컨센서스 유지에는 스펙터라는 프로토콜이 적용되는 것이다. 스펙터는 블록 간의 순서를 정하기 위해 블록 사이에 투표 알고리즘을 적용함으로써 블록체인을 방향성 비순환 그래프(directed acyclic graph; DAG)의 형태로 일반화한다. 스펙터를 통한 거래는 몇 초 이내로 완료될 수 있으며 최대 처리량이 구현될 수 있는 것이다. 따라서 이 프로토콜은 나카모토 컨센서스를 적용할 때 발생하는 안정성과 확장성 사이의 상충효과를 완화시킬 수 있다. 블록체인 네트워크 속도 한계를 개선 하기 위해 하이콘이 DAG와 함께 강조하는 키워드는 스펙터 합의 알고리즘이다. 스펙터는 DAG의 특성에 맞춰 트랜잭션 처리량과 전송 속도를 끌어올리는데 초점이 맞춰져 있다. 하이콘 블록체인에 DAG∙스펙터가 적용되면, 지난 10월 31일 고스트 프로토콜 업데이트를 성공한 하이콘 블록체인의 다음 컨센서스 프로토콜이 스펙터가 되는 것이다. 쉽게 설명하면, 포도송이처럼 블록들이 지그재그로 자리잡게 되는데, 이것을 DAG(Directed Acyclic Graph)구조라고 한다. DAG는 수학적인 topology 구조로 한 방향으로 노드가 연결된 트리구조를 말한다. 블록 x 내의 트랜잭션이 블록 y 내 트랜잭션보다 먼저 블록체인에 추가되거나 반대로 블록 y 내의 트랜잭션이 블록 x 내 트랜잭션보다 먼저 추가되는 형태이다. 글로스퍼∙하이콘 김태원 대표는 “12월 중 블록체인 기술을 객관적으로 이해하고 연구 및 평가할 수 있는 글로벌 블록체인 관련 업체, 개발자, 연구소 참여자분들을 대상으로 밋업을 개최할 계획”이라며 “이 밋업에서 하이콘 블록체인의 DAG∙스펙터 합의 알고리즘 개발 소개와 기술 시연을 발표할 예정이다”고 세계 최초로 구현에 성공한 하이콘 블록체인 네트워크의 적용될 DAG∙스펙터 기술력을 자신했다. 지금까지 스펙터는 이스라엘 연구팀(요나탄 솜폴린스키, 아비브 조하르)이 설계한 논문으로만 존재했었지만, 하이콘 팀이 구현에 성공하며 전 세계 최초로 세상에 그 모습을 드러나게 되었다. 동시에 대한민국 암호화폐 하이콘이 글로벌 블록체인 기술을 선행한 최초의 사례로 기록될 전망이다. [6]

GHOST protocol 업데이트는 고아 블록들 중 일부를 Uncle블록*으로 받아들여 네트워크의 Hash를 안정적으로 가져간다.그리고 Hycon(하이콘)의 블록 생성시간을 15초로 단축하여 많은 트랜잭션을 처리할 수 있게 되며 블록의 생성부터 합의까지의 과정이 빨라 짐에 따라서 트랜젝션의 처리 속도가 단축된다.Hycon(하이콘)에 기여하는 채굴자들은 Uncle블록에 대한 보상을 받을 수 있다. Hycon은 채굴자들의 Hash파워를 효율적으로 사용할 수 있으므로보다 안정적인 네트워크와 빠른 처리속도를 유지할 수 있다. Uncle블록의 유효성은 통과되었지만최종 블록으로 인정받지 못하여 고아 블록으로 이루어진 체인의 첫 번째 블록입니다. Uncle블록은 보상을 받을 수 있고, 이에 대한 Hash도 네트워크에 포함되기 때문에안정적인 네트워크를 유지할 수 있게 된다.

- Hycon(하이콘)의 블록 생성 주기를 현 30초에서 최대 15초로 단축
- 각 거래소에 적용되어 있는 확인(Confirmation)시간 단축
- Uncle 블록 채굴자도 일부 보상 획득

[3]

활용

엉클블록

블록 생성에 성공하고 검증에 문제가 없어 이더리움 네트워크를 통해 다른 노드들에게 브로드캐스팅은 되었으나 다른 채굴자가 생성한 다른 블록에 비해 난이도가 낮아 블록체인에 등록되지 못한 블록을 엉클 블록(Uncle Block)이라고 합니다. 비트코인은 고아 블록이라고도 말한다. 이러한 엉클 블록이 많아질 경우 여러가지 문제가 발생하게 되는데,

  • 첫번째, 트랜잭션을 지연시킨다.[7]

가령, 두 명의 채굴자가 거의 동시에 블록을 채굴 할 때 생성된 블록에는 서로 다른 트랜잭션들이 포함되게 된다. 따라서 정상 블록에 포함된 트랜잭션은 처리가 되지만 엉클 블록 내에 트랜잭션들은 즉시 처리되지 않는다.

  • 두번째, 컴퓨팅의 파워 낭비

두 개의 블록이 거의 같은 시간에 생성 될 경우 블록체인은 두 개의 체인으로 분리되고 이 중에서 길이가 더 긴 체인을 정상으로 등록하게 된다. (비트코인의 분기와 같음) 길이가 짧은 다른 체인은 엉클 블록을 포함한 체인이 되고, 이후 엉클 블록체인 뒤에 연결된 블록들은 모두 엉클 블록이 된다. 결국, 엉클 블록의 짧은 체인의 생성 과정은 불필요한 해시 계산을 위한 컴퓨팅 파워를 쓴 셈이 되는 것이다.

  • 세번째, 보안

엉클 블록 생성 후 다음 블록을 생성하면 평균 블록 생성 시간이 더 길어지기 때문에 블록 생성 후 난이도가 줄어들게 된다. 난이도가 줄면 블록 타임이 줄어들고 컴퓨팅 파워가 큰 채굴자의 영향력이 커지는 문제가 밸생한다. 또한, 엉클 블록 비율이 너무 높을 경우 블록체인의 폭이 넓어지고, 자칫 컴퓨팅 파워가 강한 채굴자에 의해 블록체인이 악의적으로 변경되는 등의 문제가 발생 할 수 있다.[7]

위에 엉클 블록에 의해 발생되는 문제점들을 이야기 해보았는데 그렇다면 이러한 엉클 블록에 대해서 어떻게 해결할 수 있을까? 이더리움은 엉클 블록의 문제를 고스트(Ghost, Greedy Heaviest Observed Subtree) 알고리즘을 사용하여 해결하였다. 고스트 알고리즘은 블록 생성 시 정상 블록에 최대 2개의 엉클 블록까지 추가하고 보상하여 엉클 블록의 문제점을 해결하게 된다. 다음은 이더리움에서 사용하는 고스트 알고리즘에 대한 설명입니다.[7]

  • 하나의 블록은 반드시 하나의 부모 블록을 지정하며, 0 또는 그 이상의 엉클 블록을 지정한다. 현재는 최대 엉클 블록은 2개까지 지원한다.
  • 블록 A에 포함된 엉클 블록은 다음과 같은 속성을 갖는다.
  • 블록 A의 k번째 조상의 직접적인 자손이어야 한다. 여기서 2 <= k <= 7, 실제 한 블록이 생성 된 후 블록체인에 등록되고 최종적으로 반영된 사실이 확인될 때까지 최대 생성 시점 이후 6개의 블록이 블록체인에 연결 될 때까지 기다린다. 이를 '6번 확인'이라고 한다. 엉클 블록 역시 6개의 블록 중 하나에 포함되어야 한다.
  • 블록 A의 조상이어서는 안된다.[7]
  • 엉클 블록은 반드시 유효한 블록헤더를 가지고 있어야하지만 미리 검증되거나 유효한 블록일 필요는 없다.
  • 엉클 블록의 채굴자는 일반 블록 생성 시에 받는 보상의 93.75%를 보상으로 받고, 엉클 블록이 포함된 정상 블록의 채굴자에게는 3.125%의 추가 보상을 지급한다. 참고로, 엉클 블록 내에 포함된 트랜잭션은 처리되지 않기 때문에 수수료 는 엉클 블록 채굴자에게 지급되지 않으나, 비잔티움 버전의 경우 엉클 블록의 채굴자는 해당 엉클 블록을 포함한 정상 블록과 블록 번호 차이에 따른 상대적인 엉클 블록 보상을 받게 된다.

[7]




각주

  1. (002) ETHEREUM WHITEPAPER (이더리움 백서)〉, 《티스토리》, 2018-11-21
  2. 람보쨩, 〈이더리움 한글 백서〉, 《네이버 블로그》, 2018-01-24
  3. 3.0 3.1 하이콘팀, 〈고스트프로토콜(GHOST Protocol)은 무엇인가?〉, 《하이콘 공식홈페이지》, 2018-10-25
  4. 4.0 4.1 4.2 4.3 이홍석, 〈Ethereum GHOST Protocol에 대한 이해〉, 《미디엄 기업》, 2018-07-26
  5. 이준수 기자,〈하이콘 ‘고스트프로토콜’ 업데이트 완료, “이제는 결과 보여줄 것”〉, 《경향게임스》, 2018-11-05
  6. 김지윤 기자,〈하이콘,'DAG,스펙터 합의 알고리즘 구현 성공' 속도 한게 넘어선다〉, 《CCTV뉴스》, 2018-11-26
  7. 7.0 7.1 7.2 7.3 7.4 손정빈 , 〈[Ethereum 엉클블록과 고스트 프로토콜]〉, 《티스토리》, 2019-04-25

참고자료

같이 보기


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