하이콘
하이콘(Hycon)은 ㈜글로스퍼(Glosfer)가 방향성 비순환 그래프(DAG) 기술인 스펙터 프로토콜을 이용하여 개발한 암호화폐이다. 하이콘(hycon)은 하이퍼커넥티드 코인(hyperconnected coin)의 약자로서, 창시자는 ㈜글로스퍼의 대표이사인 김태원이다.
개요
하이콘은 글로스퍼가 추진하는 인피니티 프로젝트 결과물이다. 하이콘은 기업 맞춤형 블록체인 솔루션을 위한 플랫폼과 탈중앙화된 암호화폐 거래소를 만드는 목적으로 만들어졌고, 스펙터 프로토콜이라는 합의 알고리즘을 사용하는 블록체인 플랫폼이다. 하이콘 개발은 두 가지 측면에서 이루어졌다. 하나는 확장성 및 처리량을 증가시키는 것이고 또 다른 하나는 모두가 쉽게 사용할 수 있는 간단하고 실용적인 유저 플랫폼을 제공하는 것이다. 하이콘은 2017년 9월25일 국내 시장만을 대상으로 한 1차 ICO를 통해 3,500BTC(한화 약148억원)를 모금했다. 이후 회사는 2018년 3월 30일 글로벌 ICO를 진행해 누적 목표액인 5000만 달러를 모았다.[1] 2019년 2월 7일 기준, 하이콘의 현재 시가총액은 약 1,554만 달러 즉, 약 174억 원으로 153위에 머무르고 있다.
주요 인물
하이콘 프로젝트의 어드바이저는 프랑크프르트 경영대학 블록체인 센터장을 맡고 있고 독일 연방재무부 산하 핀테크 위원회 회원이자 독일 블록체인 협회 및 멀티체인 자산관리 협회 (MAMA) 창립 멤버인 필립 샌더(Philipp Sander)박사와 사회 소외계층을 위한 비영리 단체 휴머나이즈드 인터넷(Humanized Internet)의 수장이자 공동 창립자인 모니카 잔 모로우(Monique jeanne Morrow)이다.
하이콘 프로젝트를 창시한 김태원은 CEO와 CTO를 담당하고 있다. 하이콘 팀의 양력은 링크드인과 같은 사이트와 연결되어 있지 않아, 자세히는 알 수 없다. 개발팀은 외국인 개발자들을 주축으로 구성되어 있다.[2]
특징
해시 알고리즘
하이콘은 ASIC 에 대한 저항력이 있는 해시 알고리즘인 크립토나이트(Cryptonight)를 사용한다. 크립토나이트는 해시 작업에서 의사난수를 사용하여 메모리 읽기/쓰기를 한다. 이 때문에 크립토나이트 는 CPU나 GPU를 불문하고 대략 비슷한 결과물을 산출하며 표준 ASIC(암호화폐 채굴에 특화된 주문형 반도체, Application-specific integrated circuit) 아키텍처와는 호환되지 않는다. 향후에는 채굴 자원의 중앙화를 막기 위해 모네로가 세운 선례와 같이 정기적으로 해시 알고리즘을 수정하여 채굴 기간 동안 ASIC 저항력을 유지할 예정이다.
합의 알고리즘 : DAG-SPECTRE 프로토콜
하이콘은 합의를 유지하기 위해 DAG(Directed Acyclic Graph)-스펙터(SPECTRE: Serialization of Proof-of-work Events: Confirming Transactions via Recursive Elections)라는 프로토콜을 사용한다. DAG은 아이오타나 해시그래프와 같이 여러 방향으로 블록 생성이 가능하여, 트랜잭션 속도를 빠르게 하는 특징이 있다.
스펙터는 블록 간의 순서를 정하기 위해 블록 사이에 투표 알고리즘을 적용함으로써 블록체인을 방향성 비순환 그래프(DAG) 구조의 형태로 일반화한다. 이를테면 블록 x 내의 트랜잭션이 블록 y 내 트랜잭션보다 먼저 블록체인에 추가되거나 반대로 블록 y 내의 트랜잭션이 블록 x 내 트랜잭션보다 먼저 추가되는 식이다.[3] 선형적인 블록체인보다 DAG구조가 유리한 이유는 블록 생성 간격을 줄여 트랜잭션 확정 속도를 높여주기 때문이다. 기존 블록체인 상 새로 채굴된 블록은 이전 블록의 해시값을 참조하여 체인 끝에 연결되는 반면, DAG에 추가될 새 블록은 DAG 의 끝 부분을 참조한다. 이에 따라 체인이 분기될 위험을 감수하지 않고도 여러 블록이 서로 다른 노드에서 동시에 생성될 수 있다.
투표 규칙
스펙터의 투표 규칙 논의를 위해 투표 과정을 시각적으로 다룰 필요가 있다. 한 가지 주목해야 하는 사실은 어떤 투표도 노드 사이에서 전달되지 않으며 각 노드가 명시적으로 투표를 행사할 필요도 없다는 점이다. 오히려 투표는 블록에서 이루어지며 투표 방식은 DAG구조를 보면 알 수 있다.
스펙터 투표 과정에 사용되는 기준은 다음과 같다. 주목해야 할 중요한 용어는 past(x)와 future(x)인데, past(x)는 x로부터 도달 가능한 블록을, future(x)는 선행 블록 x를 참조하는 블록을 가리킨다. 예를 들어, 만약 x가 past(y)에 속한다면 y는 future(y)에 속한다고 표현할 수 있다. 즉, y ∈ future(x) ⇔ x ∈ past(y)이다
또 한 가지 주목할 것은 virtual(G)로 표기되는 가상 블록의 past는 DAG 전체라는 것이다. z라는 블록이 블록 x, 블록 y에 투표할 때 아래와 같은 규칙이 적용된다.
- z가 future(x)에 속하지만 future(y)에 속하지 않는다면 z는 블록 x에 투표한다.
- z가 future(x)및 future(y)에 속한다면 z와 past가 동일한 가상 블록의 투표에 근거하여 z의 투표가 재귀적으로 결정된다.
- z가 future(x)와 future(y)에 둘 다 속하지 않는다면 z 의 투표는 future(z)에 속한 모든 블록의 다수결 투표에 의해 결정된다.
- z가 past(virtual(G))를 갖는 가상 블록이라면, 즉 past(z) = DAG 전체라면, z의 투표는 DAG 의 다수결 투표에 의해 결정된다.
- z = x 혹은 z = y인 경우, 만일 y 가 future(x)에 속하지 않거나 x가 future(y)에 속하지 않는다면 z는 스스로에게 투표한다.
DAG vs. 블록체인
하이콘의 블록 생성 속도를 1,000ms로 설정한 결과 하이콘에 DAG구조를 적용하게 되었다. 블록체인의 처리량을 높일 방법을 모색하던 중 분산 네트워크 상 시스템 지연시간으로 인해 블록체인이 의도와는 달리 포크될 수 있다는 사실이 명확해졌다. 이러한 포크를 회피하기보다는 포크와 이로 인해 생성되는 구조(제대로 인정받지 못하고 지나치게 강조되는 DAG구조)를 수용하기로 했다. 선형적인 블록체인보다 DAG구조가 유리한 이유는 볼록 생성 간격을 줄여 트랜잭션 확정 속도를 높여주기 때문이다.
기존 블록체인 상 새로 채굴된 블록은 이전 블록의 해시값을 참조하여 체인 끝에 연결되는 반면, DAG에 추가될 새 블록은 DAG의 끝 부분을 참조한다. 이에 따라 체인이 분기될 위험을 감수하지 않고도 여러 블록에 서로 다른 노드에서 동시에 생성될 수 있다. 여러 선행 블록이 존재 가능하므로 새 블록이 동시에 추가될 수 있으며 채굴자는 자신의 블록이 고아 블록이 될 걱정 없이 채굴 보상을 거두어들일 수 있다. 문제는 노드가 다른 곳에 발표된 트랜잭션을 다시 발표하여 이중지불을 유발할 때 발생한다. 그러나 스펙터를 사용하면 고아 블록이 생기지 않는 선에서 어느 트랜잭션을 거부할지에 대한 합의를 이끌어낼 수 있다.
인피니티 스펙터 구현
스펙터에서의 투표 과정에 자원이 상당히 소모되므로 구현은 신중하게 괸리될 필요가 있다. 개발의 편의를 위해 초기 프로토타입은 파이썬으로 작성되었지만 인피니티 스펙터 구현의 최종 버전은 데이터 구조 및 메모리 관리에 대한 완전한 제어가 유지되어 더 나은 성능을 제공할 수 있도록 C, C++ 또는 Rust와 같은 언어로 작성될 것이다.
블록 높이와 체인 연결
비트코인이나 이더리움 블록체인에서 블록 높이란 제네시스 블록에 체인으로 연결된 블록의 수를 의미한다. 하이콘에서 블록의 높이는 좀 더 일반적인 표현으로 제네시스 블록에서부터 현재 블록까지 생성된 DAG 층의 수를 나타낸다. 따라서 계산법도 상당히 간단하다. 새로운 블록의 높이는 그 블록의 가장 높은 부모 블록의 높이에 1 을 더한 값이다. 새롭게 생성된 블록은 아직 참조되지 않은 이전 블록 중에서 가장 높은 블록을 참조하고 블록의 높이는 이전에 참조된 블록의 높이보다 1 높은 값으로 설정된다.
네트워크 인프라
시스템 아키텍처에 이 셋업을 사용하면 Node.js의 내장 기능으로 비동기 작업을 지원할 수 있다는 장점이 있다. Node.js를 통해 크로스 플랫폼의 "논블로킹 이벤트 I/O"가 가능하고 개별 구성 요소는 정상 작동 흐름 이외의 작동 결과를 기다릴 수 있다. 네트워크로부터의 메시지 수신이나 사용자의 입력과 같은 특정한 상황이 발생할 때만 촉발 및 실행되며 대기 시간 동안 다른 코드가 실행될 수 있다. 타입스크립트(Typescript)를 사용하기로 결정한 이유는 이 프로그램이 본질적으로는 자바스크립트(Javascript)인 코드에 강력한 타입 체킹을 수행할 수 있기 때문이다. 타입 형식을 지원하는 자바스크립트를 사용하여 명시적으로 정의된 타입 덕분에 디버깅 프로세스가 더 간단해지면서도 Node.js가 제공하는 비동기성을 활용하여 플랫폼을 구축할 수 있었다. 타입스크립트 파일은 실행하기 전에 컴파일 되어야 하기 때문에 자바스크립트 응용 프로그램에서 디버깅할 때 으레 그렇듯 복잡하게 얽혀있는 콜백을 통해 추적하기보다 컴파일 단계에서 구문 오류나 타입 에러를 보다 쉽게 발견할 수 있다.
직렬화 – 프로토콜 버퍼
블록체인 시스템에는 네트워크 상에 항상 수많은 메시지가 떠돌아다니는데 노드 소프트웨어가 이러한 데이터를 일관성 있고 올바른 방법으로 복호화할 수 있어야 한다는 점이 중요하다. 구글이 개발한 프로토콜 버퍼를 사용하여 서로 다른 플랫폼 사이에서 일관성 있게 메시지를 정의할 수 있고 인피니티 블록체인을 구성하는 노드를 다양한 프로그래밍 언어로 개발할 수도 있다. 직렬화 레이어는 언어의 구속을 받지 않아 크로스 플랫폼 응용 프로그램에 매우 유용하다. 프로토콜 버퍼는 전·후방 호환성을 지원하기 때문에 업데이트를 해도 하드포크보다 소프트포크만 일어날 확률이 높아진다. 또한 프로토콜 버퍼는 서드파티 소프트웨어와의 호환성을 높여주어 다른 개발자들이 하이콘 네트워크와 상호작용 할 수 있도록 한다.
월렛과 계정
하이콘 월렛 GUI
하이콘 소프트웨어가 구동하는 풀 노드는 웹 형태의 로컬 호스트 GUI 를 사용하여 월렛 운영, 트랜잭션, 블록체인 사용을 가능하게 한다. GUI 는 가볍고 고성능인 인터페이스를 제공하기 위해 리액트(React)로 개발되었다.
하이콘 월렛
하이콘 월렛은 트랜잭션 서명을 위해 secp256k와 같은 업계 표준의 타원곡선 암호 방식을 활용하고 서드파티 월렛 제공 업체와의 통합을 수월하게 하기 위해 BIP 39 에 명시된 대로 월렛 리커버리를 위한 연상 기호를 적용한다.
하이콘 주소
하이콘 주소는 연결된 공용키를 32 바이트 Blake2b로 해시 처리한 결과에서 가져온 20 바이트로 생성한다. 가독성을 위해 주소의 첫 문자는 대문자 H로 시작하고 Base58 스트링의 결과값으로 구성한다. 스트링의 마지막 4 글자는 주소의 체크섬이다. 체크섬은 3단계로 계산된다. 먼저 주소의 32 바이트 blake2b 해시값을 계산한 후 그 결과값을 Base58스트링으로 인코딩한다. 마지막으로 스트링의 처음 4 글자를 가지고 주소를 나타내는 스트링에 덧붙인다. 이런 방식으로 체크섬을 사용하면 잘못 입력된 주소가 사용될 가능성을 최소화할 수 있다.
계정&잔고
하이콘 참여자의 지출액과 잔고를 기록하기 위해 회계 모델을 도입해야 한다. 하이콘이 채택하기로 한 모델은 이더리움 황서(yellow paper)에 기술되어 있고 이더리움이 사용하는 모델이 기반을 두고 있는 머클 패트리샤 트리(Merkle Patricia Trie) 데이터 구조이다. 일련의 트랜잭션이 발행되면 모든 트랜잭션 이력을 하나의 해시값으로 저장하고 있는 월드 스테이트가 업데이트 되고 그 값은 각 블록에 저장된다. 이 월드 스테이트 값은 모든 하이콘 계정의 계정 데이터를 나타내는 머클-패트리샤 루트의 해시값이다.
계정 데이터에는 특정 하이콘 계정의 잔고, 그 특정 계정을 참조하는 가장 최근 블록에 대한 레퍼런스, 그 특정 계정에서 시작된 트랜잭션 수를 나타내는 넌스값이 저장되어 있다. 넌스값은 리플레이 공격에서 데이터를 보호하는 데 사용된다. 이전 블록에 대한 레퍼런스는 트랜잭션 이력을 더욱 빨리 검색할 수 있게 해주고 스펙터 알고리즘에서 이중지불을 쉽게 추적할 수 있도록 해주는 최적화된 기능이다.
동기화
하이콘은 네트워크에 처음으로 동기화할 때 헤더에 먼저 접근을 사용한다. 첫 번째 동기화 시도와 후속 시도 이후에 연결된 참가자들에게 특정 블록의 높이보다 큰 블록의 높이와 헤더의 개수를 묻는 메시지가 발송된다. 그 헤더를 받은 블록은 검증을 거치고 만약 해당 블록이 로컬 데이터베이스에 없으면 연결된 피어는 블록의 전체 데이터를 요청한다. 전송된 블록은 다시 한 번 검증을 거치고 그 결과 블록이 유효하면 데이터베이스에 추가된다. 블록은 부모 블록이 검증을 받아 포함될 때만 데이터베이스에 추가되기 때문에 이 절차는 반드시 순차적이다.
채굴과 보상
현존하는 대다수의 암호화폐와 같이 블록을 하나 생성하려면 작업 증명이 필요하다. 채굴자는 DAG 끝부분의 해시, 블록에 포함될 트랜잭션의 머클 루트, 현재의 난이도를 초과하는 해시값을 계산할 때까지 변하는 넌스(nonce)값에 근거하여 다음 블록의 해시를 계산하게 된다. 스펙터 창시자들은 본 프로토콜을 사용하여 초당 10블록을 생성할 수 있다고 주장하는데 하이콘은 초기 목표를 초당 1 블록 생성으로 설정할 것이다.
현재의 프로토타입은 작업증명 기반이지만 같은 작업 증명 기반의 비트코인과 이더리움 네크워크를 유지하기 위해 막대한 양의 전기를 낭비하고 있음을 충분히 인지하고 있기에 다른 대안도 고려하고 있다. 잘 알려지지 않은 방법 중 우리가 고려하고 있는 방법은 수용능력 증명(PoC; Proof of Capacity)으로도 잘 알려진 저장공간 증명(Proof of Space)이다. 이 방법은 채굴자가 많은 양의 데이터를 미리 계산하여 저장한 후 현재의 난이도를 만족하는 해답을 파일 속에서 찾도록 한다. 매우 적은 전기에너지를 사용하고 효율적인 방법이라는 사실이 버스트코인(Burst coin)과 스페이스민트(Space mint)를 통해 증명되었다.
채굴 과정
채굴 과정의 첫 단계는 블록 헤더 내용의 암호화 및 해시 처리로, 본 단계는 채굴 과정의 결과에 따라 변하지 않는다. 그 내용에는 이전 블록에 대한 레퍼런스, 블록에 포함될 트랜잭션의 머클 루트, 블록 목표 난이도, 블록 타임스탬프, 이 블록의 트랜잭션 이후 현재 월드 스테이트를 가리킬 머클-패트리샤 트리의 루트이다.
블록 헤더 구성
- 이전 블록 : 32 Byte 해시의 배열
- 머클 루트 : 32 Byte 해시
- 난이도 : 4 Bytes
- 타임스탬프 : 8 Bytes
- 스테이트 루트 : 32 Byte 해시
본 데이터는 GPU 또는 CPU 채굴자에게 변하지 않는 이전 블록의 해시값을 제공하기 위해 Blake 2b 64 Byte 버전으로 해시 처리된다. 특히 GPU 채굴에서 이 단계가 필요한 이유는 하이콘은 다수의 부모 블록에 연결될 수 있어 각 블록 헤더의 길이가 변할 수 있기 때문이다. GPU 채굴 소프트웨어는 데이터 구조가 정해진 길이일 때 가장 잘 작동하므로 사전 해시 작업이 필요하다. 64 Byte 헤더를 사전 해시 처리한 값은 크립토나이트 해시 알고리즘을 사용하여 해시 처리를 시도할 때마다 1 씩 증가하는 8 Byte 넌스값과 결합된다. 이 결합된 값은 함께 해시 처리되어 블록을 나타내는 32 Byte 해시값을 리턴한다. 이 해시값은 블록 헤더에 명시된 난이도와 비교되고 적절한 난이도 한계치에 도달하면 리턴된 넌스값이 블록 헤더에 포함되고 발행된다.
채굴 보상
새로운 블록 생성에 대한 작업 증명을 성공적으로 완료하면 채굴자는 보상으로 하이콘을 받는다. 하이콘 채굴 과정은 50년 간 지속될 예정이다. 초기에는 채굴 보상으로 블록 당 8 하이콘을 지급할 예정이며 이 보상 금액은 6 년 2 개월 간 유지된 후 1 하이콘 줄어든 블록 당 7 하이콘으로 책정된다. 약 50 년이 지난 후 하이콘의 시가총액이 100억 하이콘이 될 때까지 이런 방식으로 보상 금액이 줄어든다. 채굴 보상이 주기적으로 반감되는 비트코인의 기하 분포 모델과 달리 하이콘의 채굴 보상 금액을 선형적으로 줄이기로 한 이유는 채굴 기간 동안 코인을 보다 균형적으로 배포하고 비트코인 반감기 모델과 같이 채굴자의 경제적 인센티브를 대폭 저하시키지 않기 위해서이다.
활용
3세대 소셜 미디어 플랫폼 구축
하이콘은 싸이월드와 2018년 9월에 전략적 업무협약(MOU)을 체결했다.[4]
싸이월드와 전략적 업무 협약을 통해 플랫폼 내에서 활동과 콘텐츠에 대한 정당한 보상을 암호화폐로 받을 수 있는 새로운 콘텐츠 생태계를 만들어 가고 있다.[5]
국내 모바일 상품권 리더 스마트콘
스마트콘과 하이콘은 2017년 9월 전략적 제휴를 체결했다. 이번 업무 제휴를 통해 양사가 보유한 코인에 대해서 각 사의 거래소에서 거래할 수 있으며, 양사의 플랫폼 및 사업에 대해 전략적으로 협력을 할 수 있다. [6] 이는 창작물 유통 플랫폼에 블록체인 기술을 접목시키는 프로젝트에 이어 현물의 가치가 있는 상품권에도 블록체인 기술을 적용하는 첫 사례이자 유가증권인 상품권의 위변조를 방지하고 보안 수준을 높여 사용자의 만족도를 향상시키고 암호화 화폐가 실제 생활에 유통하는 기회이기도 하다. [7]
현황
DAG 스펙터 합의 알고리즘을 로드맵의 2019년 상반기보다 먼저 개발하였다. DAG는 아이오타와 해시그래프의 탱글과 같은 여러 방향으로 블록 생성이 가능한 기술로 비자카드의 3,000TPS 수준의 처리 속도를 지원한다고 한다.[8] 2018년 12월 5일 현재 코인마켓캡 기준 IHYC는 27원, 시가총액 484억원으로 1,743위에 랭크되어 있다. 하이콘은 OK거래소에 상장되어 있다.[9][10]
각주
- ↑ 한종해 기자, 〈비트코인 다시 살아나나...ICO 인기 여전〉, 《파이낸셜투데이》, 2018-04-26
- ↑ 하이콘 공식 홈페이지 - https://hycon.io/home-dark-2/
- ↑ grace, 〈하이콘(HYCON), ‘DAG·스펙터 합의 알고리즘 구현 성공’ 속도 한계 넘어선다〉, 《네이버 블로그》, 2018-12-05
- ↑ 노둣돌, 〈싸이월드, 토종 암호화폐 하이콘과 제휴.. 도토리의 변신?〉, 《네이버 블로그》, 2018-09-15
- ↑ KBIPA, 〈블록체인기업 글로스퍼 암호화폐 플랫폼 ‘하이콘’, 싸이월드와 맞손(아시아타임즈)〉, 《네이버 블로그》, 2018-09-14
- ↑ 김휘권 게임담당 기자, 〈스마트콘, 암호화폐 ‘하이콘’과 전략적 제휴 체결... 블록체인 기술 저변 확대 나선다〉, 《아시아투데이》, 2017-09-29
- ↑ 김동호 기자, 〈글로스퍼, 모바일 상품권 시장의 암호화 화폐 ‘실증’ 나선다〉, 《서울경제》, 2017-10-12
- ↑ 황치규 기자, 〈글로스퍼 하이콘, DAG-스펙터 합의 알고리즘 개발〉, 《더비체인》, 2018-11-23
- ↑ "HYCON (HYC)", coinmarketcap, 2018-12-05
- ↑ "하이콘/Hycon (HYC)", 《코인게코》, 2018-12-05
참고자료
- 하이콘 공식 홈페이지 - https://hycon.io/home-dark-2/
- 〈HYCON WHITEPAPER v1.2.2 INFINITY PROJECT〉, 《하이콘 백서》, 2018-08
- "HYCON (HYC)", 코인마켓캡, 2018-12-05
- "하이콘/Hycon (HYC)", 《코인게코》, 2018-12-05
- 김재식 금융산업 전문기자, 〈하이콘, 싸이월드와 블록체인 사업 맞손〉, 《전자신문》, 2018-09-14
- 윤희은 기자, 〈갈피 못잡는 정부에 ICO 시장 혼란… 대기업도 눈치만 보다 포기〉, 《한국경제》, 2018-09-27
- 김진범 기자, 〈하이콘(Hycon), '세계 4위' 오케이이엑스(OKEX) 거래소 상장〉, 《코인리더스》, 2018-07-21
- 함지현 기자, 〈글로스퍼 '하이콘', 세계 최대 거래소 오케이이엑스 상장〉, 《전자신문》, 2018-07-22
- 황치규 기자, 〈글로스퍼 하이콘, DAG-스펙터 합의 알고리즘 개발〉, 《더비체인》, 2018-11-23
같이 보기