CoinoneCore에 대한 짧은 단상

1.
국내에서 영업하고 있는 암호통화거래소가 60여개라고 합니다. 거래소마다 나름의 기술구조를 구축하고 서비스를 제공중입니다. 어떤 회사는 Java를 사용해서 구현했고 어떤 회사는 PHP를 사용하였고 어떤 회사는 Javascript를 사용했고 어떤 회사는 C/C++ 를 사용했다고 해서 기술구조의 우월을 논할 수 없습니다. 서비스의 품질은 규정하는 것은 언어나 기술이 아니라고 생각하기때문입니다. 금융규제밖의 서비스이지만 넒은 의미로 금융서비스이기때문에 금융서비스가 가져야 하는 핵심적인 특징이 지니는지가 관건입니다. 서비스의 안정성이 우선이라고 생각합니다만 일반적인 금융서비스보다는 인터넷서비스의 성격도 지니기때문에 확장성 또한 중요한 가치로 생각합니다.

어제 코인원에 관한 기사를 읽었습니다.

암호화폐 거래소 코인원(대표 차명훈)이 대규모 투자를 통해 서버 엔진 전문기업 아이펀팩토리(대표 문대경) 경영권을 인수하고, 양사가 공동 개발한 ‘코인원 코어(Coinone Core, https://coinonecore.com)’를 통해 거래 엔진 솔루션 사업에 진출한다고 3일 밝혔다.
코인원은 이번 아이펀팩토리에 대한 투자를 통해 안정적인 서버 기술력을 확보, 새로운 사업영역으로의 확장을 모색할 수 있게 됐다고 설명했다. 아이펀팩토리가 진행하고 있는 게임 엔진 서버 사업은 신규 사업과 무관하게 계속 진행할 예정이다. 코인원 역시 ‘코인원 코어’와 별개로 아이펀팩토리가 기존에 진행하고 있는 게임 사업이 성장할 수 있도록 협조할 예정이다.

코인원에 따르면 ‘코인원 코어’는 코인원의 거래소 구축 및 운영 경험과 아이펀팩토리의 대규모 분산 처리 기술 역량이 융합된 엔진 솔루션이다. ‘코인원 코어’는 수백 대의 서버로 수평 확장이 가능한 분산 시스템을 갖췄으며, 서비스 중단 없이 거래 엔진 확장 및 신규 코인 상장 서비스도 지원한다.거래 서버의 경우 단시간에 수많은 요청을 처리해야 하는데, ‘코인원 코어’는 초당 300만 건 이상 체결 처리가 가능하다. 대시보드 기능을 제공해 거래 서버의 상태를 한눈에 파악할 수 있다. 암호화폐 거래소 운영에 있어 안정적인 서버 운영은 가장 중요한 요소 중 하나로, 코인원은 ‘코인원 코어’를 통해 증권사 수준 이상의 체결 엔진을 확보하게 됐다고 설명했다.

코인원 차명훈 대표는 “코인원은 아이펀팩토리와의 공동 프로젝트 진행을 통해 장기적인 사업적 협력의 가능성을 확인했다”며, “양사의 협업으로 구현한 ‘코인원 코어’는 향후 코인원과 아이펀팩토리가 한 단계 더 성장할 수 있는 의미 있는 밑바탕이 될 것이다”고 전했다. 아이펀팩토리 문대경 대표는 “수년간 축적된 자사의 노하우와 기술력은 거래 엔진 영역에서도 진가를 발휘할 것이다”며, “양사가 쌓아온 전문성이 만나 폭발적인 시너지가 만들어지길 기대한다”고 전했다
코인원, 암호화폐 거래 엔진 솔루션 사업 진출중에서

데일리금융그룹이 만든 코인원, ‘코인원 코어’ 엔진 솔루션 사업 진출라는 보도자료로 쓴 기사입니다만 무엇을 설명하는지 애매합니다. 암호통화거래소에 반드시 필요한 매매체결엔진을 솔류션으로 판매한다는 것인지, 아니면 암호통화거래소 전체를 솔류션으로 판매한다는 것인지 애매합니다.

2.
혹시나 해서 검색을 하니까 코인코어 홈페이지에 솔류션 설명자료가 있더군요. 홈페이지 초기화면에 걸린 광고문구입니다.

State-of-the-art Trading Engine
Matching engine is the core to run successful crypto exchanges.

Download (PDF, 748KB)

자료를 보니까 Order Type이나 Monitoring, API와 같이 운영경험이 녹아든 기능이 보입니다. 다만 주문/체결과 시세를 어떻게 다루는지는 명확하지 않네요. 자료를 읽으면서 가장 궁금한 점은 데이타와 관련한 부분이었습니다. 흔히들 거래소업무중 매칭업무를 무척 중요하다고 생각하고 핵심기술로 이야기하지만 조금 살펴보면 무척 많은 참고자료들이 있습니다. 대표적인 것이 Objectcomputing/Liquibook:Modern C++ order matching engine입니다. 초당 이백에서 이백오십만건을 처리한다고 합니다.

Liquibook is written in C++ using modern, high-performance techniques. This repository includes the source of a test program that can be used to measure Liquibook performance.
Benchmark testing with this program shows sustained rates of 2.0 million to 2.5 million inserts per second.

LiquidBook는 Memory로 Limit Orderbook을 관리하는데 CoinoneCore는 이에 대한 언급이 명확하지 않네요. 두가지 그림이 가능합니다.

첫째는 Limit Orderbook와 청산결제처리와 같은 후선업무용 데이타를 분리관리하는 방법입니다. 금융시장의 거래소와 달리 암호통화거래소는 체결 즉시 청산결제처리를 하여야 합니다. T+1과 같은 규칙을 적용할 수 없고 무조건 실시간이어야 합니다. 매칭처리를 한 결과를 메시징과 같은 방식으로 백오피스시스템이 처리하도록 인터페이스를 설계할 수 있습니다.

둘재는 Limit Orderbook과 후섭업무용 데이타를 통합구축하는 방법입니다. 데이타의 안전성때문에 Shared Memory 보다는 In Memory DBMS를 선택할 여지가 높습니다.

자료만 놓고 보면 첫째의 모양을 선택한 듯 합니다. 물론 추측입니다.

어떤 그림을 택하더라도 솔류션 소개서가 사용하는 개념인 Scaling Out, Fail-Safe가 달리 해석하여야 합니다. 실시간청산결제를 하여야 하는 암호통화거래소에서 Scaling Out과 Fail Safe를 언급할 때 매칭과 청산결제업무를 분리할 수 없습니다. 확장성과 안정성은 매칭이 아니라 시스템 전체에 적용하여야 신뢰할 수 있는 시스템이기때문입니다. 펌핑과 같은 시장조작이 자주 발생하는 암호통화시장에서 매칭만 스케일아웃하였다고 시스템의 안정성이 높아지지않습니다. 전체는 부분이 모여서 이루어지지만 부분의 산술적인 합이 전체가 아닙니다.

주변을 보니까 암호통화거래소를 수출하는 회사들이 많더군요. 솔류션으로 하는 곳도 있고 SI로 하는 곳도 있습니다. 어느 경우이든 확장성과 신뢰성을 제공하는 기술적 구조이길 바랍니다.

Leave a Comment

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

이 사이트는 스팸을 줄이는 아키스밋을 사용합니다. 댓글이 어떻게 처리되는지 알아보십시오.