개나소나 블록체인이래 0편: 일단 엮어보자, Hyperledger!

Jay Minjae Park
8 min readMay 4, 2018

--

안녕하멍멍음메음메.

세상은 빠르게 변한다. 왈왈 음메. (시작부터 개소리? 갑자기..?)

인공지능 바둑 프로그램 알파고가 이세돌 9단을 꺾어 세상을 놀라게 한지도 2년이 지났고, 그런 알파고가 자가학습 통해 업그레이드 된 새로운 알파고 제로가 알파고에 100전 100승했다는 소식도 지난해 전해지고 있다.

분명 필자가 어렸을때 들었던 얘기로는, 바둑의 착점은 모두 361개로 바둑의 규칙을 배제한 채 단순히 둘 수 있는 경우의 수만 따져도 10의 170제곱이라는 천문학적인 수가 나오게 되는데 당시의 슈퍼 컴퓨터가 모든 계산을 끝내기에는 수십억년이 걸리고, 여기에 바둑이 가진 몇가지 규칙이 더해진다면 프로 바둑 기사를 이길 수 있는 바둑 프로그램을 만드는것은 사실상 불가능에 가깝다는게 정설이였다.

하지만 이러한 정설은 딥 러닝 기술의 발전으로 패러다임이 뒤집어졌고, 알파고는 필자를 포함한 전세계인의 생각을 바꾼 AI계의 거대한 패러다임으로 기억된다.

최근 이와 같은 크고작은 패러다임들이 여러 산업에 걸쳐 빠르게 등장하고 있고, 너무 많고 빠르다보니 퉁쳐서 4차 산업혁명이라 불리고 있다.

사실 각 산업을 선도하는 기업들도 4차 산업혁명의 패러다임 홍수 속에서 명확한 방향을 예측하는데 어려움을 겪고 있는데, 특히나 개발자 또는 IT 엔지니어라면 보통 이런 패러다임에 가장 먼저 직면하게 된다.

이게 다 뭐람… 너무 많고 복잡하니깐 4차 산업혁명으로 퉁~!

이렇게 하루가 다르게 쏟아져 나오는 새로운 기술과 용어들 사이에 최근 가장 많이 접하게 되면서도 이해하기 어려운 주제가 바로 가상화폐(암호화폐)와 블록체인이라는 것에는 다들 공감을 할 것이며, 여러 산업 내부에 있는 IT 엔지니어 입장에서도 상당히 혼란스러울 것이라 예상한다.

그러다보니 왠지 특정 코인을 미리 사둬야 할 것 같고, 블록체인에 대해 미리 공부를 하고 싶지만 아직 학문적으로 정리가 되지 않은 분야라 학습에도 어려움이 많을것이다.

분명 거대한 패러다임을 앞둔것을 직감하지만 어떻게 준비해야하는가에 대한 의문이 있는 IT 엔지니어에게, 엔지니어로서 알아야될 가장 기본적이면서 본질적인 내용을 간단한 예와 코드를 통해 앞으로 이어질 포스팅에 공유하고자 한다.

일단 블록체인을 효과적으로 잘 이해하기 위해서는 불필요한 개념과 오해를 버리고, 가능한 본질적인 내용을 위주로 집중하는게 중요하다고 생각한다. 먼저 블록체인의 요점은 공개(분산)장부를 통해 중개자 없이 투명하고 안전하게 거래(Transaction)를 처리하는 기술이다.

일반적으로 블록체인이라 하면, 비트코인과 같은 암호화폐를 먼저 떠올리게 되는데 비트코인의 등장으로 블록체인의 개념이 처음 소개된 것은 맞지만, 최근 기업들이 관심을 갖고 있는 내용은 각 산업의 요구조건과 환경에 맞게 장부(거래 내역 및 기타 기록물 등)를 이해관계자 간에, 또는 내부적으로 관리할 수 있는 프라이빗 블록체인에 대한 내용이다.

이에 반해 뚜렷한 이해관계 없이 대중에게 열려있는 퍼블릭 블록체인의 대표적인 예인 비트코인은 우리가 중점적으로 다룰 블록체인 내용과 다소 거리가 있으며 실제 비트코인을 기업 내부적으로 사용하기에는 복합적인 한계가 있다. (기술 / 경제 / 법률 등)

특수한 경우가 아닌, 프라이빗 블록체인에는 채굴(PoW, Mining) 및 채굴에 대한 보상의 개념이 없다.

이러한 이유로 엔지니어라면 복잡한 코인 이코노미 세계에서 벗어나 각 산업에서 실질적으로 사용할 프라이빗 블록체인 기술을 중점적으로 살펴보는것이 좋은데, 현재 Linux Foundation에서 운영중인 Hyperledger 프로젝트는 실제 산업에 적용될 블록체인 기술의 표준이 될 만한 구성 요소들을 여러 세부 오픈소스 프로젝트를 통해 프레임워크화 하는 프로젝트로, 우리는 Hyperledger 관한 내용들을 앞으로의 포스팅에서 중점적으로 다뤄보고자 한다.

www.hyperledger.org

가장 먼저 소개할 Hyperledger의 세부 프로젝트는 Hyperledger Fabric으로 분산장부기술(DLT, Distributed Ledger Technology) 구현에 핵심이 되는 스마트컨트랙트(chaincode) 엔진을 다루는 프로젝트이다.

Hyperledger에서는 스마트컨트랙트“Chaincode” 라 부르며, chaincode는 특정 상황 및 요청이 들어오면 트랜잭션을 발생시키고 유효한 내용을 공유원장에 기록하는 역할을 하는 코드를 말하는데, 이름 뜻에서 유추할 수 있듯이 코드가 독립적으로 실행 되지는 않는다.

Distributed Ledger와 chaincode와의 관계를 조금 쉽게 풀어서 설명하자면, 분산장부 시스템은 여러 이해관계 그룹간에 공용으로 사용하는 일종의 데이터베이스인데, 데이터베이스의 관리를 특정 그룹이 주체가 되어 하는 것이 아니라 이해관계자 간에 미리 협의된 약속과 대화를 통해 데이터베이스에 정보를 기록하고 관리한다.

이때 약속과 대화의 개념을 Fabric을 기반으로 chaincode가 담고 있는데, 일반적으로 chaincode는 블록체인 네트워크에 미리 배포되어 특정 조건(규칙)에서 트랜잭션을 발생시키고, 블록 관리에 필요한 상태(state) 정보에 대한 로직을 처리한다.

최근 아마존 AWS에서 Hyperledger Fabric 프레임워크를 배포할 수 있는 Blockchain Template을 공개하였다. https://aws.amazon.com/ko/about-aws/whats-new/2018/04/introducing-aws-blockchain-templates/

위에 소개한 내용대로 Hyperledger 분산장부 네트워크는 현재 Hyperledger Fabric이란 엔진을 기반으로 chaincode를 통해 구현하고 있다.

Fabric의 보다 자세한 내용은 다음 포스팅에서 블록체인 네트워크를 시각화한 Marbles 예제를 통해 chaincode의 기본 내용과 Fabric 네트워크의 개념을 알아보도록 하겠다.

여기까지 간단하게 Hyperledger 프로젝트에 대한 소개와, 블록체인에 관심이 있는 IT 엔지니어라면 Hyperledger를 기반으로 프라이빗 블록체인 세계에 입문할 것에 대한 의견을 밝혔다.

추가적으로 다음 포스팅 이전에 원하는 내용을 충족하지 못한 독자들에게는 Hyperledger의 또 다른 프로젝트인 Hyperledger Composer와 Composer playground의 내용에 대해서도 살펴볼 것을 권한다.

이제부터 한단계씩 Hyperledger를 이용한 블록체인을 한번 엮어보즈아~

[Salesboost — jay] 개나소나 블록체인이래 0편: 일단 엮어보자, Hyperledger!

[Blockchain Boost]

개나소나 블록체인이래 1편: 직접 엮어보자, Marbles!

개나소나 블록체인이래 0편: 일단 엮어보자, Hyperledger!

--

--