코드체인 도구 지원

새로운 블록체인을 만들겠다는 팀이 무척 많다. 이더리움 기반 ERC-20 토큰으로 ICO를 한 팀들도 상당수는 이더리움을 쓰지 않고 자체 체인을 만들어 쓰겠다고 계획을 가지고 있다. 확장성(scalability)를 개선하기 위한 노력에도 불구하고 아직 이더리움의 성능이 충분히 나오지 않고 DApp에 특성에 따라 기존 블록체인 플랫폼이 제공하지 않는 추가 기능이 필요할 수 있기 때문에 새로운 블록체인을 만드는 시도는 앞으로도 계속 이어질 것으로 예상한다.

그런데 블록체인을 만든다는 건 무슨 의미일까? TPS (Transaction Per Second)를 높여주는 획기적인 합의 알고리즘 아이디어만 하나 있으면 뚝딱 하고 블록체인이 나올까? ICO가 붐이던 작년 말 올해 초에는 이런 식의 접근 법으로도 몇 백억의 자금을 쉽게 모았던 게 사실이지만, 아쉽게도 블록체인은 그렇게 쉽게 만들어지지 않는다.

블록체인을 만들려면 먼저 블록체인 엔진을 만들어야 한다. 합의 알고리즘도 블록체인 엔진의 중요한 요소지만, 그 외에도 스마트 컨트랙 실행을 위한 가상 머신, P2P 통신을 위한 네트워크 스택, 블록 및 상태(state) 데이터를 저장하기 위한 데이터 구조 및 스토리지, 블록과 트랜잭션의 유효성을 확인하는 검증기 등 다양한 요소들이 유기적으로 연결되어야만 한다. 성능과 확장성을 고민하는 블록체인 기술이라면 샤딩(sharding)이나 인터체인 등도 고려해야 한다. 블록체인 엔진을 처음부터 다 만들기는 어렵기 때문에 대부분 기존 프로젝트를 포크해서 1-2개의 요소만 수정해서 사용하고 있다.

블록체인 엔진만 있다고 개발이 끝난 게 아니다. 사람들이 쉽게 블록체인을 사용할 수 있게 하려면 각종 도구 지원도 필수다. 우선, 생성된 블록 및 트랜잭션의 내용을 확인할 수 있는 블록 익스플로러가 필요하다. 블록체인 상에 발행된 디지털 자산 등을 주고 받을 수 있는 지갑도 만들어야 한다. 테스트넷을 운영한다면 테스트용 코인을 지급하는 포싯(Faucet) 사이트도 필요하다. 개발자들이 블록체인 노드를 쉽게 사용할 수 있도록 SDK도 제공해야 한다. 스마트 컨트랙을 지원하는 블록체인이면 스마트 컨트랙 언어에 대한 툴링도 필요하다.

블록체인 네트워크에 노드로 참여하는 블록 생성자를 위한 툴링도 필요하다. 작업 증명(PoW) 방식을 사용하는 블록체인 엔진의 경우, 채굴에 사용할 채굴 소프트웨어를 제공해야 한다. 또한, 하나의 블록 생성자가 여러 대의 노드를 운영할 수 있으므로 여러 노드에 대한 모니터링 및 관리 기능을 제공하는 소프트웨어도 필요하다. 이 외에도 블록체인 사용자에게 편의를 제공할 수 있는 툴링은 더 있을 수 있다. 일례로, 키를 생성하고 관리할 수 있는 코맨드라인 도구나, 블록체인 상에서 발행된 디지털 에셋을 조회하고 관리할 수 있는 소프트웨어 등도 있으면 편리하다.

코드체인은 코드체인을 쉽고 편하게 사용할 수 있도록 돕는 다양한 툴링을 제공한다.

어떤 소프트웨어든 많은 사람들이 쉽게 사용하기 위해서는 도구 지원이 필수이다. 코드체인은 블록체인 엔진 개발뿐만 아니라 엔진을 쉽게 사용할 수 있는 툴링에도 많은 시간과 노력을 투자하고 있다. 관련하여 현재는 코드체인 상에서 발행된 디지털 에셋을 쉽게 조회하고 관리할 수 있는 CodeChain Gateway 프로젝트를 준비하고 있다. 관련 내용은 다음 글에서 다시 자세히 다루도록 하겠다.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s