GameXCoin, 오직 게임만을 위한 블록체인

Jeeyong Um
GameXCoin
Published in
8 min readDec 31, 2018

안녕하세요. GameXCoin의 Conrad 입니다.

그간 GameXCoin 메인넷의 기본 코드를 구성하고 있는 EOS 관련 강좌를 쓰면서 종종 찾아뵙곤 했는데, 최근에는 연내 메인넷 출시란 목표를 위해 모든 팀원이 전력질주 하다보니 소식을 자주 전하지 못했습니다.

올 한 해가 얼마 남지 않은 이 시점에 GameXCoin의 메인넷 출시를 발표할 수 있게 되어 기쁘게 생각합니다. 이번 글을 통해 오래 기다려주신 GameXCoin의 메인넷 관련 소식과 앞으로의 계획에 대해 전해드리려 합니다.

GameXCoin 메인넷

잘 알려진 바와 같이 GameXCoin(이하 GXC)은 EOS 블록체인의 소스 코드를 기반으로 작성되었습니다. 다만 게임 성능 최적화를 위해 운영은 EOS 메인넷과는 다른 방식으로 이루어지게 됩니다. 범용 목적 블록체인(General purpose blockchain)을 지향하는 EOS는 처음부터 다양한 종류의 탈중앙화 애플리케이션(DApp; Decentralized Application)에 대응하기 위해 많은 제약 사항을 안고 있지만, GXC는 뚜렷한 목적하에 운영되므로 필수적인 기능에 좀 더 많은 자원을 배분할 수 있습니다.

최초의 GXC 메인넷은 다음과 같은 특징을 갖게 됩니다.

  • 인증된 4개 블록 생성자(BP; Block Producer)로 이루어진 컨소시엄 블록체인
  • 인증된 게임사들은 게임 운영에 관한 비용 소모 없음 (토큰 발행을 위한 에스크로 예치 제외)
  • 사용자들은 게임 플레이 관련 비용 소모 없음 (경제적 목적의 토큰 거래 제외)

컨소시엄 단계에서는 제휴사들로 이루어진 BP들이 블록체인 운영에 관한 자원을 제공하며 블록 생성에 따른 보상은 따로 제공하지 않습니다. 이는 발행량이 계속 증가하여 인플레이션에 따른 토큰 가격 하락이 예고되어 있는 다른 블록체인과 차이를 보이는 부분입니다. 다만 이후 거버넌스 변경, 퍼블릭 전환 등에 따라 세부 내용이 달라질 수 있습니다.

기존 블록체인은 누구나 스마트 컨트랙트를 배포할 수 있고 블록체인을 악의적인 방식으로 공격할 수 있으므로, 비용을 부과하는 방식으로 이를 제한하고 있습니다. EOS의 CPU/NET/RAM, 이더리움의 Gas 등이 이러한 예인데, 블록체인에 대한 공격을 막는 것에는 성공하였는지 모르나 애플리케이션 개발사들에게는 서비스 런칭 단계부터 지나친 비용 부담을 지워 오히려 쓸만한 DApp 개발의 등장을 저해하는 요소가 되었습니다.

상호 교환성(inter-exchangeability) 증가로 GXC와 각 게임 토큰 가치의 동시 상승을 기대할 수 있는 GXC 메인넷은 Metcalfe의 법칙이 설명하는 것과 같이 네트워크 확장 자체가 네트워크 가치 상승에 기여하는 것으로 볼 수 있으므로 이를 저해하기 보다 최대한 촉진하는 방식으로 운영됩니다. 대신 비용 감소에 따른 악의적인 행동(abusing)을 막기 위해 초기에는 인증된 게임사에 한해 자원 사용에 대한 비용을 받지 않으며, 네트워크 혼잡이 발생하는 경우 게임 성능을 최대한 보장하는 방식으로 트랜잭션 처리의 우선순위가 정해질 예정입니다.[1]

GameXCoin 메인넷 특징

아래에서는 GXC 메인넷이 갖는 특징적인 차이점에 대해 설명하겠습니다.

무료 계정 생성

블록체인 게임이 아니더라도 우리는 게임 플레이를 위해 계정을 생성할 때 따로 돈을 내지 않습니다. 유료 패키지 게임도 아닌데 플레이 하기도 전에 비용부터 지불해야 한다면 이는 일차적인 진입장벽이 됩니다. 따라서 GXC에서는 게임 플레이를 위한 기본적인 계정 생성에 비용을 지불하지 않습니다. 대신 자원 고갈 공격(resource exhaustion attack)을 방지하기 위해 이메일 인증 등 무분별한 계정 생성을 막기 위한 최소한의 절차를 거치게 됩니다.

간편한 토큰 사용

DApp 사용에 있어 두 번째 장벽은 트랜잭션 발생시마다 이루어지는 사용자 인증 과정입니다. 실제 경제적 가치를 가진 토큰 전송에 인증을 거치지 않는 것도 위험하지만 매 번 인증을 필요로 하는 것은 사용자 경험을 심각하게 해칩니다. 특히 인증 소프트웨어들이 기존 다른 애플리케이션에서의 사용자 인터페이스와 다르거나 기능적으로 부족한 경우가 많아 사용자의 불편함은 더욱 커집니다.

GXC는 토큰 잔고(balance)를 이중화하였습니다. 기존의 게임 내 화폐가 게임사의 권한 아래 발행, 전송, 동결 되는 것과 마찬가지로 일상적 사용을 위한 잔고는 deposit 에 두어 게임 내 아이템 구입 등에 사용시 게임사가 자신의 권한으로 이를 인출할 수 있습니다. 따라서 불편한 사용자 인증 과정은 생략됩니다. 대신 일반 잔고인 balance로 토큰을 이전함으로써 온전히 사용자 소유로 전환되며, 이는 게임사가 임의로 통제할 수 없는 영역에 구분되어 저장됩니다.

저비용 자원 할당

GXC에서 사용하는 자원은 EOS와 같이 RAM과 CPU/NET 대역폭(bandwidth)입니다. 차이점이 있다면 사용자의 토큰 잔고가 사용자의 RAM이 아닌 시스템의 RAM을 사용하게 되어 개별 사용자의 RAM 요구량이 크게 감소한다는 점입니다. CPU/NET 또한 게임 내 일반적인 토큰 사용시에는 게임사 권한으로 트랜잭션을 발생시키므로 게임사의 자원을 사용하게 됩니다. (게임사는 특별한 자원 관리 정책을 적용받으므로 EOS 메인넷보다는 크게 저비용으로 운영됩니다)

컨트랙트 배포

현 단계에서는 개인 사용자의 스마트 컨트랙트 배포가 제한됩니다. 저비용의 폭넓은 자원 사용을 허용하는 대신 자원 사용의 용도를 제한하기 때문입니다. 이후 거버넌스 결정에 따라 변경될 수 있습니다.

GameXCoin 메인넷 개발 과정

GXC에 대한 설명을 하기 앞서 EOS 생태계에 대해 간략히 설명하겠습니다.

EOS 블록체인 소프트웨어와 EOS 메인넷 모두에 대해 EOS란 명칭을 혼용하여 사용하는 경우가 많은데 정확히 말하면 둘은 구분되어야 합니다. Block.one이라는 회사는 오픈 소스 프로젝트로서 EOSIO란 이름의 블록체인 소프트웨어를 개발하고 있고, 제 3자인 BP들이 모여 EOSIO 소프트웨어를 활용한 EOS 메인넷이란 이름의 네트워크를 운영하고 있는 것입니다. 물론 EOS 메인넷에 Block.one에게 할당된 EOS 토큰이 있고, 사실상의 레퍼런스 네트워크로서 가장 빠르게 EOSIO 변경 사항이 적용되고 있는 것은 맞습니다.

이러한 운영 방식은 AOSP(Android Open Source Project)란 이름의 오픈 소스 소프트웨어를 가져다 Google이 안드로이드란 이름의 운영체제를 만드는 것과 비슷합니다. 개발은 독립적인 오픈 소스 프로젝트에서, 실제 제품은 제조사에서 자신만의 최적화를 적용하여 만들어집니다.

GXC 또한 EOSIO 기반의 블록체인이며, 동일 코드 기반의 여타 블록체인과 다른 점이 있다면 직접 EOSIO 개발에 참여하고 있다는 점입니다. 블록체인 OS[2]를 표방하는 EOS 답게 코어 엔진은 최소한의 기능만 갖고, 스마트 컨트랙트를 통해 많은 기능을 구현하고 있기 때문에 스마트 컨트랙트를 수정하는 것만으로 독자적인 메인넷을 구성할 수 있습니다. 따라서 EOSIO 내부 엔진에 대한 깊은 이해 없이도 EOS와 다른 메인넷을 만드는 것은 충분히 가능한 일입니다.

GXC는 EOSIO에 대한 이해도에 있어 국내 최정상급의 개발팀을 갖고 있으므로 일부러 코어 엔진을 더 많이 수정하는 방식으로 개발을 진행한 적이 있었습니다. 그러나 코어 단에서의 수정 사항이 많아질수록 EOSIO 오픈 소스 프로젝트와 코드에 차이가 발생하므로 EOSIO에 적용된 선행 기술의 채용이 어려워집니다. 현재 단계에서는 완전히 분리된 프로젝트로 가는 것보다 EOSIO를 최대한 활용하는 것이 더 현실적이라고 보고, 오히려 GXC에 적용한 기술 중 EOS나 다른 메인넷에서도 활용 가능한 부분은 EOSIO에 직접 기여하는 방식으로 개발을 진행하게 되었습니다.

따라서 GXC 메인넷에서의 독특한 운영 방식의 차이는 코어 엔진보다는 스마트 컨트랙트 레벨에서 구현된 경우가 많고 이는 EOS 메인넷보다 더 많은 플랫폼 컨트랙트(시스템 컨트랙트를 포함한 기본 컨트랙트)를 제공하는 방식으로 이루어집니다. 또한 컨트랙트 변경점에 대응하기 위해 노드와 클라이언트 소프트웨어는 기존 EOS와 다르게 제공합니다.[3]

앞으로도 범용적인 기능은 EOSIO에, GXC만 적용 가능한 특별한 정책이나 소프트웨어적인 수정 사항은 GXC에 반영할 예정이며 이는 공개된 깃헙 저장소를 통해 확인하실 수 있습니다. 또한 오픈 소스로 개발하므로 GXC에 대한 버그 수정이나 새로운 기능은 부담 없이 제안해주시기 바랍니다.

Github Repository @ https://github.com/Game-X-Coin

[1] EOS의 최대 TPS는 4,000건으로 알려져 있으나 네트워크 혼잡으로 개별 사용자의 CPU 사용량이 극히 제한되는 시간대에도 처리되는 TPS는 이에 크게 미치지 못합니다. 이는 성능상의 이슈가 아닌 비용상의 제약으로 인해 개별 사용자의 자원 사용을 제한하였기 때문입니다.

[2] OS는 운영체제(Operating System)의 준말로 많이 알고 있는 윈도우, 리눅스, 안드로이드처럼 다른 애플리케이션을 동작시킬 수 있는 플랫폼 소프트웨어를 의미합니다.

[3] gxnode (nodeos 대응), gxcli (cleos 대응), gxkeyd (keosd 대응)

--

--