Hyperledger Fabric, R3 Corda

이전 포스팅에서는 퍼블릭 블록체인의 한계에 대한 두 번째 글로서 사이드 체인과, 퍼블릭 블록체인 구현체의 한계에 대해 정리하였습니다.
이전 포스팅 바로 가기

이번 포스팅에서는 앞선 포스팅에서 논의했던 금융권 블록체인 요구사항에 대해서 정리하고 유명세를 얻고 있는 프라이빗 블록체인 솔루션인 Hyperledger Fabric과 R3 Corda에서는 어떤 방식을 통하여 이 러한 요구사항을 만족시키고 있는지 알아보겠습니다.

금융권 블록체인 요구사항

금융권에서는 금융서비스 특성과 관련 법률 및 규제로 인한 다양한 요구사항들이 있습니다. 이러한 요구사항을 비트코인, 이더리움이나 퍼블릭 블록체인 구현체를 기반으로 만족하기는 쉽지 않은 일입니다. 다음은 금융권 블록체인에서 요구하는 대표적인 요구사항입니다.

  • Private Channel
  • 권한이 다른 노드들
  • 빠른 속도
  • 스마트 컨트랙트
  • 커스터 마이징

Private Channel 거래 시 거래와 직접적인 관계가 있지 않은 참여자에게는 거래 내용을 공개해서는 안 된다는 조건입니다. 사실 당연한 이야기지만 전통적인 블록체인을 이용할 경우 어려울 수 있습니다. 또한, 블록체인 네트워크에 참여한 노드들이 전부 같은 권한을 가지면 안 됩니다. 금융업 특성상 거래에 대한 검증을 수행하는 기관, 향후 감사를 수행하는 감독 기관 등 다양한 권한의 노드가 블록체인 네트워크에 참여해야 할 가능성이 높습니다. 이때 감독 기관은 모든 Private Channel의 내용을 확인해야 합니다. 그러나 트랜잭션을 발생시키면 안 되겠죠.

빠른 속도는 이유를 설명할 필요 없을 정도로 당연한 요구사항입니다. 우리가 사용하는 금융서비스는 주식거래 등 촌각을 다투는 거래를 포함해서 실시간성 거래 비중이 높습니다. 서비스 속도가 느릴 경우 쾌적하지 못한 사용자 경험뿐 아니라 업무에 따라 금전적인 손해가 발생하는 등 실제 금융 사고로까지 이어질 수 있습니다.

또한, 금융서비스에서 거래 데이터에 대한 분산 저장을 통한 데이터 무결성 보장도 중요한 가치이긴 하지만 블록체인을 단순히 원장 정보를 복제하는 클러스터링 솔루션 정도로 바라보는 것은 아닙니다. 금융기관들은 블록체인을 통해 기존의 청산소(Clearing house)와 같은 중계자없이 금융거래를 수행하고자 하며 이를 위해 스마트 컨트랙트는 필수요소가 되었습니다. 스마트컨트랙트는 블록체인을 단순한 분산 원장이 아닌 분산 어플리케이션 서버로서 자리 잡게 한 요즘 블록체인에서 가장 뜨거운 기술입니다.

마지막으로 블록체인 엔진 자체를 커스터 마이징 하며 확장 가능해야 합니다. 금융권 블록체인이라고 카테고리를 지었지만, 금융권 자체에도 정말 다양한 서비스가 있습니다. 이러한 서비스마다 요구사항이 다르기 때문에 블록체인은 합의 엔진 부터 전체 스택을 커스터 마이징 할수 있어야 합니다.

Hyperledger Fabric와 R3 Corda 

Hyperledger Fabric과 R3 Corda에 대해서 간략하게 이야기해 보도록 하겠습니다. Fabric은 Linux foundation에서 주도하는 블록체인 프로젝트인 HyperLedger 소속의 프로젝트로 R3 Corda와 함께 가장 많은 관심을 받는 블록체인 프로젝트입니다. 금융권 뿐 아니라 범용 블록체인을 표방하고 있는 블록체인입니다.

스크린샷 2017-02-15 오후 5.31.32.png
HyperLedger Architecture(출처 HyperLedger)

Fabric의 가장 큰 특징은 네트워크 분리입니다. Fabric은 이해관계자와 응용프로그램의 종류에 따라 새로운 Channel(일종의 소규모 블록체인)을 구성합니다. 또한 권한 관리 모듈인 COP을 통하여 각 Channel에서 각 노드가 가지는 권한이 무엇인지 구분합니다.

R3는 분산 원장 기반의 스타트업으로 골드만 삭스 등 대형 금융업체의 투자를 받았으며 세계적인 대형 은행들과 협약을 맺고 컨소시움을 이뤘습니다. 현재 세계적으로 가장 많은 블록체인 은행들이 참여하고 있는 컨소시움을 주도하고 있습니다.

screen-shot-2016-04-26-at-2-56-34-pm
R3 Corda 합의 과정(출처 : R3 Cev)

R3의 분산원장 플랫폼 Corda의 가장 큰 특징은 탈 블록 체인화 입니다. 블록체인이 아니라 굳이 분산원장이라고 한 이유는 R3는 블록체인을 버렸습니다. R3는 블록체인의 여러 가지 한계를 극복하고자 모든 네트워크 참여 원들이 같은 데이터를 공유하는 블록체인을 버리고 이해 관계자들끼리만 같은 데이터를 공유하는 방식을 선택하였습니다. 하나의 스마트 계약을 실행하면 이때 이해관계자의 역할에 따라 스마트 컨트렉트 검증, 데이터 공유 일을 수행합니다.

Fabric과 Corda는 금융권 요구사항을 어떻게 해결하였을까?

Fabric은 범용 블록체인을 표방하고 있지만, 그 이야기가 금융권을 포함하지 않는다는 이야기가 아닙니다. 여전히 블록체인은 비금융권 보다는 금융권에서 관심이 있으므로 Fabric은 금융권 요구사항을 대부분 만족하고 있습니다. Corda는 금융업을 위해서 만들어진 분산원장 플랫폼이기 때문에 당연히 이러한 부분을 만족하고 있습니다. 이들은 어떤 식으로 해결할까요?

Private Channel는 두 플랫폼이 특이한 구조를 통해 해결합니다. 이해관계가 있는 노드만 합의하는 방식이죠. Fabric 같은 경우 이해관계가 있는 노드들만 채널을 구성합니다. 다른 Channel의 노드들은 해당 내용을 볼 수 없죠. Corda의 경우 애초에 스마트 컨트랙트 하나를 실행할 때 이해관계자들끼리만 내용을 공유하여 문제를 해결합니다.

노드 별로 다른 권한을 주는 이슈는 Fabric의 경우 COP이라 불리는 권한관리 모듈을 통해 내용 보관 노드, 순서 검증 노드, 트랜잭션 생성 노드, 내용 검사 노드 등의 권한을 나누어 처리합니다. 이러한 권한은 채널마다 다르죠. Corda의 경우 각 스마트 계약에 관계된 노드들의 역할과 권한이 명시되어 있습니다. 만약 거래에 판매자 A, 구매자 B, 감독기관 C가 필요하면 Corda는 스마트 컨트랙트 실행을 통해 이 이해관계자들이 얻어 스마트 컨트랙트를 실행하는 방식입니다.

성능 이슈 관련해서는 두 솔루션 전부 아직 언급이 없습니다. 그러나 네트워크를 가볍게 하는 작업을 기본적인 요구사항을 충족할 정도가 되지 않을까 생각합니다.

커스터 마이징에 관해서는 Fabric의 경우 분산합의 알고리즘 변경, 체인코드(스마트 컨트랙트) 변경 등이 가능할 것으로 보입니다. Corda의 경우 엔진 자체를 변경하는 것은 어렵고 스마트 컨트랙트 변경과 각 스마트 컨트랙트 합의 과정(Consensus Protocol) 커스터 마이징 가능할 것으로 보입니다. 두 프로젝트 다 엔진 자체의 커스터 마이징은 어렵지만 핵심 기능인 컨트랙트와 합의 알고리즘을 커스터 마이징 할 수 있었습니다.

본 포스팅에서는 대표적인 프라이빗 블록체인 프로젝트인 Hyperledger Fabric과 R3 Corda가 어떻게 금융권의 요구사항을 만족하였는지 알아보았습니다. 두 블록체인은 기존 블록체인에 없는 개념들을 많이 추가하여 전통적인 블록체인과 다른 완전히 새로운 블록체인을 만들었습니다. R3는 이제 블록체인 개념에서 완전히 벗어났죠. 하지만 두 블록체인 모두 아직은 개발 중인 프로젝트입니다. 아직 모자란 개념이 있을 수 있고 더욱 발전하는 프로젝트이죠. Hyperledger Fabric의 경우 올해 초 1.0 버전이 나왔고 R3의 경우 작년 말에 처음으로 소스를 공개하였습니다. 두 프로젝트 모두 현재까지 지속해서 발전하고 있으며 더루프도 이러한 공개 프로젝트를 통해 국내외의 다양한 요구사항에 대한 정보를 얻을 수 있었고 loopchain을 만드는 데 많은 도움이 되었습니다.

다음 포스팅에서는 드디어 loopchain의 특징과 금융권의 요구사항을 어떠한 방식으로 해결하였는지에 대해 글을 써보도록 하겠습니다.

퍼블릭 블록체인의 한계와 프라이빗 블록체인 -2

지난 포스트에는 퍼블릭 블록체인과 프라이빗 블록체인에 대한 설명과 두 블록체인이 가지고 있는 요구사항 차이점, 그리고 두 블록체인의 차이점과 비트코인, 이더리움 등 퍼블릭 블록체인의 한계에 대해서 알아봤습니다.
지난 포스트 바로가기

이번 포스트에서는 저번 포스트에 이어 퍼블릭 블록체인의 한계를 좀더 자세히 설명해보고자 합니다. 특히 비트코인의 적용 범위를 확장한 사이드 체인퍼블릭 블록체인 구현체를 기반으로 한 프라이빗 블록체인에 대해 알아보고 이들의 한계점을 다시 확인해보겠습니다.

사이드 체인

사이드 체인은 기존 비트코인 블록체인을 확장하기 위해서 나온 개념입니다. 기존 비트코인 블록체인은 비트코인만 거래할 수 있을 뿐 다른 용도로 사용하기에는 한계가 있었습니다. 사이드 체인은 블록체인에 저장되는 데이터가 조작 불가능하다는 것에 초점을 맞췄습니다. 비트코인 외의 다양한 거래를 수행하고 그 거래에 대한 증거 데이터를 블록체인에 저장하는 방식으로 거래를 수행하였습니다.

%e1%84%89%e1%85%a1%e1%84%8b%e1%85%b5%e1%84%83%e1%85%b3-%e1%84%8e%e1%85%a6%e1%84%8b%e1%85%b5%e1%86%ab
사이드체인 구조

가장 유명한 사이드체인인 Colored Coin은 트랜잭션에 구분되는 데이터를 집어넣어 다양한 자산을 거래하게 하였습니다. 나스닥에서는 주식거래를 위해 Colored Coin을 이용하려는 시도를 해봤죠. 하지만 시도는 시도로 끝나고 Colored Coin을 개발한 스타트업과 새로운 프라이빗 블록체인을 만드는 것으로 방향을 변경하였습니다. 금융권에서는 다른 사이드 체인에 대한 연구 또한 시들해지고 이제는 프라이빗 블록체인에 대한 연구 위주로 진행되고 있습니다. 이유가 무엇일까요?

비트코인은 인센티브 기반으로 운영되는 블록체인입니다. 컴퓨팅 파워를 이용해 해시 퍼즐을 푼 사람에게 인센티브를 주어지면서 해당 블록이 승인되고 복제됩니다. 현재 비트코인이 잘 운영되는 이유는 비트코인 네트워크를 독점하려면 51%이상의 컴퓨팅 파워를 가져야 하는데 51%를 점유한다고 해도 크게 경제적인 이득을 보기 어렵습니다. 특정 거래를 블록에 넣고 빼고 정도만 가능하니까요. 또한, 누군가가 51% 이상을 점유했다는 불안감에 비트코인 가격이 내려가면 해당 업체는 마이닝 수익이 줄어듭니다.

그러나 만약 주식이 비트코인 위에서 거래된다면 어떨까요? 주식은 어떤 거래가 이뤄지는지에 따라 시시각각 가격이 변동합니다. 51%이상의 컴퓨터 파워를 독점해 특정 거래를 통과시키지 않고 자신의 거래만 승인하는 방식으로 시장에 영향을 미칠 수 있습니다. 예전에 특정 마이닝 풀이 70%이상의 컴퓨팅 파워를 가졌던 적이 있던 비트코인 네트워크 위에서 다른 금융 상품을 거래한다는 것은 매우 위험할 수 있습니다.

또한 기존 비트코인 블록체인의 운영 주체가 불분명 하다는 것 또한 문제가 될 수 있습니다. 내가 보낸 트랜잭션을 블록 안에 넣는 것은 블록 생성 노드의 마음이기 때문에 내 거래가 언제 승인될지는 알 수 없죠, 실제 비트코인 블록체인에서 한 달 넘게 거래가 승인 되지 않는 경우도 있습니다. 그리고 현존 퍼블릭 블록체인 위에서 돌아갈 경우 감사기관 검증을 받기도 힘들고 시스템에 문제가 생길 경우 책임 주체가 불분명 하다는 단점이 있습니다.

퍼블릭 블록체인 구현체

최근에는 비트코인 혹은 이더리움(Ethereum)의 구현체를 그대로 활용하려는 시도들도 있습니다. Github에 공개 되어있는 구현체를 다운 받아 IP와 Port 변경을 통해 독자 네트워크를 구성하여 프라이빗 블록체인을 구성하는 것이죠.

이럴경우 많은 개발 비용이 들지않고 쉽게 검증된 블록체인을 생성할 수 있겠죠.그러나 이러한 퍼블릭 블록체인 구현체를 재활용 하는 것은 한계가 있습니다. 퍼블릭  블록체인은 구현체의 속도 보다는 공개된 장소에서 안정성 있는 블록체인을 만든다는 것에 초점을 두고 개발한 블록체인입니다.

스크린샷 2017-02-06 오후 5.40.14.png
Ethereum Open Source

이더리움의 모든 스마트 컨트랙트는 EVM(Ethereum Virtual Machine)위에서 동작합니다. 이더리움에서는 EVM을 통해 스마트 컨트랙트의 상태 종료 보장(튜링 완전성) 및  같은 트랜잭션에 대해 같은 결과를 내는 것을 보장 (각자의 컴퓨터 환경에 의존성 없이) 합니다. 하지만 이러한 EVM은 기본 환경에서 실행 하는 것 보다 엄청나게 느려지는 단점이 있습니다. R3 이더리움 보고서에 따르면 타원 곡선 암호 알고리즘 검증의 경우 파이썬 구현체에서 0.017초 EVM 구현체에서 0.57초 정도의 시간이 걸립니다.  5개의 키로 링 서명을 구현할 경우 경우 python 구현체가 0.119초 EVM위에서 약 3.68초가 걸립니다.

또한 대부분의 퍼블릭 블록체인은 멀티 프로세싱에 최적화 되어 있지 않습니다. 퍼블릭 블록체인은 고가용성 보다는 안정적으로 실행되는 것이 목적이고 애초에 정책적으로 7~12TPS정도 밖에 허용하지 않기 때문에 복잡하게 프로세스를 분리할 필요가 없습니다. 대다수의 퍼블릭 블록체인은 싱글 프로세스에 최적화 되어 있고 통신 모듈과 블록 처리 모듈 정도만 분리하고 있습니다. 실제 금융권 어플리케이션에서 요구하는 고 가용성을 확보하려면 구조부터 바꿔야 합니다.

앞선 포스트에서 이야기 하였듯이 퍼블릭 블록체인과 프라이빗 블록체인은 네트워크 현황 및 디지털 화폐 운용 여부 때문에 사용하는 분산합의 알고리즘이 다릅니다. 퍼블릭 블록체인 구현체를 금융권에 맞게 사용하려면 분산합의 알고리즘의 교체가 필요합니다. 대다수의 퍼블릭 블록체인은 블록 처리 모듈과 분산합의 모듈이 의존성이 강하게 구현하였기 때문에 이를 교체하는 것은 만만치 않을뿐더러 향후 업데이트에도 문제가 많습니다. 기본적으로 퍼블릭 블록체인은 한번 퍼블리싱 되면 하드포크가 아니면 소프트웨어 업데이트가 불가능 하기 때문에 flexibility를 많이 고려하지 않기 때문입니다.  Hyperledger Fabric이나 더루프의 loopchain에서 분산합의 알고리즘을  Plugin 형태로 구현하는 것과는 차이점이 있죠.

loopchain_archi.png
loopchain의 모듈 방식 구조

대다수의 퍼블릭 블록체인 구현체들은 퍼블릭 블록체인 특성상 많은 요소들을 배제하고 개발합니다. 이러한 구현체들은 flexibility 확보가 안되는 것들이 대다수죠. 블록체인 상에서 지원해야하는 새로운 기능들을 추가하기 어렵습니다. 만약 데이터 공개 이슈 때문에 Private Channel를 구성하려면 현재 블록체인 구조를 수정해야 할 것입니다.

또한 스마트 컨트랙트 DB도 level DB(key-value)에 종속된 형태가 많아 스마트 컨트랙트에서는 어쩔수 없이 level DB를 사용해야 하는 경우도 많습니다. 해당 업무에 SQL DB가 효율적이라고 할지라도요.

이러한 이슈들 때문에 현재 금융권이나 기관에서는 프라이빗 블록체인을 이용하려고 하고 있으며 특히 거래에 따라 다양한 거래 검증 및 외부 연계, 규제 준수 등을 위해 블록체인 전체 스택을 커스터마이징 할 수 있는 프라이빗 블록체인 기술이 주목받고 있습니다. 더루프도 이러한 요구사항에 맞춰 더 유연하고 더 빠르면서 더 안전한  블록체인을 개발하기 위해 고민하고 점진적으로 개선하고 있습니다.

다음 포스트에서는 요즘 제일 관심을 많이 받고있는 블록체인인 HyperLedger의 Fabric과 R3 Cev 의Corda에 대해 정리해 보도록 하겠습니다.

퍼블릭 블록체인의 한계와 프라이빗 블록체인 -1

지난 포스트에서는 금융권이 블록체인에 관심있어 하는 이유에 대해 이야기 하였습니다. 오늘은 이러한 상황에서 금융기관이 비트코인과 이더리움과 같은 오픈된 블록체인을 사용하지 않고 독자적인 블록체인을 만들어서 사용하려고 하는지에 대해 알아보겠습니다. 요즘 금융권 및 다양한 기업들은 R3 Cev와 Hyperledger 컨소시움을 필두로 비트코인과 이더리움과 같이 널리 알려진 블록체인을 활용하지 않고 독자적인 블록체인 구축하고 있습니다. 왜 이더리움과 비트코인을 활용하지 않는 것일까요?

블록체인의 종류

본론으로 들어가기 앞서 블록체인의 종류에 대해서 잠깐 언급하고 넘어가겠습니다. 블록체인은 크게 퍼블릭 블록체인, 프라이빗 블록체인, 컨소시움 블록체인 세가지로 분류할 수 있습니다.

  • 퍼블릭 블록체인(Public Blockchain): 비트코인, 이더리움과 같은 누구나 네트워크에 참여할 수 있는 블록체인
  • 프라이빗 블록체인(Private Blockchain): 하나의 기관에서 독자적으로 사용하는 블록체인
  • 컨소시움 블록체인(Consortium Blockchain): 여러 기관들이 컨소시움을 이뤄 구성하는 블록체인, 허가된 기관만 네트워크에 참여할 수 있다.

현재 거래소에서 거래되는 대다수의 블록체인은 퍼블릭 블록체인으로 누구나 블록체인 네트워크에 참여할 수 있고 모든 내역을 볼 수 있고 누구나 트랜잭션 내역 검증할 수 있습니다. 프라이빗 블록체인이나 컨소시움 블록체인은 참여자가 제한된 블록체인으로 내부 망을 구축하거나 별도의 인증 방식을 통해 참여가 제한된 블록체인을 이야기 합니다. 현재 기관들이 관심 있어하는 블록체인은 퍼블릭 블록체인이 아닌 프라이빗 혹은 컨소시움 블록체인이죠.

퍼블릭 블록체인 vs 프라이빗(컨소시움) 블록체인

%e1%84%91%e1%85%b3%e1%84%85%e1%85%a1%e1%84%8b%e1%85%b5%e1%84%87%e1%85%b5%e1%86%ba-%e1%84%87%e1%85%b3%e1%86%af%e1%84%85%e1%85%a9%e1%86%a8%e1%84%8e%e1%85%a6%e1%84%8b%e1%85%b5%e1%86%ab
퍼블릭 블록체인 vs 프라이빗 블록체인

퍼블릭 블록체인과 프라이빗 블록체인은 서비스가 다르고 운영환경이 다르기 때문에 요구사항이 다릅니다. 특히 퍼블릭 블록체인은 누구나 참여할 수 있고 모든 사람이 운영 하기 때문에 운영 주체가 불분명하고 독자적이 화폐를 통해 금융활동을 하기 떄문에 법적 구속력에 상대적으로 자유로울 수 있습니다. 그러나 프라이빗(컨소시움) 블록체인은 운영 주체가 명확하고 새로운 금융거래를 하는 것이 아닌 기존에 있던 금융 거래를 하는 것이기 때문에 모든 금융 관련 법과 규제사항을 준수해야 합니다.

현존 퍼블릭 블록체인은 읽기, 트랜잭션 생성을 누구나 할 수 있습니다. 모든 사용자들은 모든 데이터를 확인할 수 있죠. 그러나 기관 간 블록체인의 경우 어플리케이션에 따라 개인의 금융정보가 담긴 데이터가 네트워크 상으로 오고 갈 수 있기 때문에 모두에게 데이터가 공개되면 안됩니다. 또한 법적으로 책임 질수 있는 기관만 트랜잭션을 생성해야지 누구나 트랜잭션을 생성할 수 있다면 금융사고가 일어났을때 책임 주체가 불분명해 질 수 있습니다.

또한 트랜잭션 검증 요구사항에도 차이가 있습니다. 퍼블릭 블록체인의 경우 트랜잭션 내역 모두에게 공개 되며 네트워크에 참여한 모든 노드가 트랜잭션을 검증합니다. 그러나 프라이빗(컨소시움) 블록체인에서 이해관계자가 아닌 모든 노드가 트랜잭션의 검증하는 것은 문제가 있을 수 있죠. 또한 노드 별로 권한을 다르게 하는 것 또한 퍼블릭 블록체인에서는 불가능 합니다. 감독기관은 모든 데이터를 검증해야 되고 나머지 기관들은 자신에 관련된 데이터를 검증하는 등의 역할을 할 수 없습니다. 또한 퍼블릭 블록체인은 블록체인 엔진 수정이 어렵기 때문에 엔진에서 제공해야만 가능한 기능들을 추가하는게 매우 어렵습니다.

퍼블릭 블록체인의 한계

퍼블릭 블록체인은 참여가 자유롭습니다. 즉 인증 안된 참여자도 악의적인 목적을 가진 해커도 퍼블릭 블록체인에 접근할 수 있죠, 이 상황에서 악의적인 네트워크 참여자의 공격에 방어하면서 또한 세계 각지에 있는 모든 노드들이 같은 데이터를 공유해야합니다. 퍼블릭 블록체인은 이런 요구사항을 만족 시켜야 하기 때문에 성능면에서 많은 것을 포기하였습니다.

communication-1297544_1280.png

퍼블릭 블록체인은 기본적으로 누구나 블록 후보를 만들어 제출하고 분산합의를 통해 하나의 블록을 선정하여 신뢰할 수 있는 블록으로 인정받는 구조입니다. 따라서 인터넷 상에서 블록을 공유해야하는 시간이 있고 너무 많은 블록이 동시에 만들어 지면 하나의 블록을 선택하기 어렵기 때문에 블록 생성시간에 제한을 두고 있습니다. 비트코인의 경우 약 10분 마다 하나의 블록을 생성하고 이더리움의 경우 약 12초 마다 하나의 블록을 생성합니다. 네트워크에 공유되는 시간을 고려했을때 이더리움에서 내가 보낸 트랜잭션 결과를 확인하려면 약 1~2분 정도 기다려야 합니다. R3에 제출한 이더리움 보고서에 따르면 현 이더리움의 TPS(Transaction Per Second)는 약 10tps이고 비트코인의 경우 약 7tps입니다. 즉각적인 처리가 필요한 금융권 서비스에는 그대로 적용하기에는 불가능한 수준입니다.

또한 퍼블릭 블록체인에서 채택하고 있는 분산합의 알고리즘으로 작업증명(Proof of Work, PoW)이나 지분증명(Proof of Stake, PoS)을 사용하려면 내부 화폐가 필요합니다. 퍼블릭 블록체인에서의 분산합의 목표는 결국 거래 내역을 검증하여 신뢰할 수 있는 블록을 만들 수 있는 노드를 선택하는 것이고 이러한 수고를 하는 댓가가 필요하기 때문입니다. 채굴(mining)이라고 알려진 과정이 이러한 과정입니다. 또한 작업 증명의 경우는 쓸모없는 컴퓨팅 파워를 많이 사용하는 친환경이지 않은 문제도 있습니다.

14266642578_a469f21d3b_b
비트코인 채굴

퍼블릭 블록체인에서 사용하는 알고리즘 들은 나중에 블록 생성 후 블록이 확정되기 때문에 허용되는 시간 내에 네트워크 분기가 생길 수 있어 항상 확실한 데이터를 보장해야 하는 금융권에는 올바르지 않습니다. 때문에 프라이빗(컨소시움) 블록체인들은 Byzantine Fault Tolerance 계열의 분산합의 알고리즘을 사용하여 네트워크 분기를 허용하지 않습니다. 분산합의 관련된 내용은 나중에 다시 자세히 다루도록 하겠습니다.

이번 포스트에서는 현존 퍼블릭 블록체인의 한계와 프라이빗(컨소시움) 블록체인이 필요한 이유에 대해 알아 보았습니다. 다음 포스트에서는 이번 포스트의 내용을 좀 더 깊이있게 들어가 퍼블릭 블록체인 구현체가 가지고 있는 이슈들에 대해 정리하고 퍼블릭 블록체인에서 다양한 업무를 할 수 있게 해주는 사이드 체인(Sidechain)이 대두 되다가 많이 가라 앉은 이유에 대해서 포스팅하겠습니다.

왜 금융권에서는 블록체인에 주목할까?

핀테크 분야 중 최근에 가장 핫한 분야 중 하나가 블록체인입니다. 증권사들은 이미 컨소시움을 이루어 블록체인을 도입하기로 하였고 금융보안원에서는 블록체인 기술을 집중 투자 육성하겠다고 밝혔습니다 . 또한 액센츄어에서는 블록체인을 이용하면 매년 120억 달러를 감소할 수 있다고 발표하였 습니다. 블록체인이 어떤 기술이길래 블록체인에 이렇게 관심이 많은걸까요?  특히 금융권에서 관심이 많은 이유는 무엇일까요?

블록체인은 사토시 나가모토(Satoshi Nakamoto)가 비트코인(Bitcoin: A Peer-to-Peer Electronic Cash System)을 통해 처음 제안한 기술로써 비트코인에서 블록체인은 거래 무결성과 거래 내역이 위변조 되지 않음을 보장합니다. 이 것은 블록체인 네트워크의 수 많은 노드들이 거래 내역을 복제하고 올바른지 검증하기 때문입니다. 비트코인 이용자는 은행에서 송금이 완료 됐다고 보장하지 않아도 안전하게 사용할 수 있습니다.

비트코인 블록체인은 정말 공개 네트워크에 최적화 되어있는 기술이기 때문에 처음 공부하면 블록체인을  비트코인 외에 용도로 사용 할 수 있을 것 인가에 대해 고민합니다. 저 또한 그랬습니다. 공개 블록체인이면 이더리움처럼 이라도 사용 할 수있을꺼 같은데 금융권에서는 독자 블록체인을 자기들만 사용한다고 합니다. 금융권에서는 왜 블록체인을 사용하려는 것일까요? 먼저 블록체인에 대해 알아봅시다.

블록체인은 누군가의 보증이 없어도 내용을 신뢰 할 수 있게 해주는 기술입니다. 비트코인은 은행의 거래 보증 없이 디지털 화폐를 송금할 수 있습니다. 수 많은 노드에 거래 내역이 복제되기 때문에 비트코인 사용자는 거래한 내용이 삭제되거나 위변조될 것을 걱정하지 않아도 됩니다. 블록체인이 개인 간 거래 신뢰를 제공하는 것입니다. 그렇다면 금융권 블록체인은 개인이 서로의 신뢰를 위해 블록체인을 이용하는 것처럼 기관 간 거래 및 정보 공유의 신뢰를 위해 블록체인을 이용합니다.

%e1%84%89%e1%85%b3%e1%84%8f%e1%85%b3%e1%84%85%e1%85%b5%e1%86%ab%e1%84%89%e1%85%a3%e1%86%ba-2017-01-26-%e1%84%8b%e1%85%a9%e1%84%8c%e1%85%a5%e1%86%ab-9-43-38
청산 기관을 이용한 거래와 블록체인을 이용한 거래(출처 : santander)

현재 기관 간 신뢰가 필요한 업무는 많은 비용과 시간이 발생합니다. 예를 들자면 금융 기관 간 거래 할때는 청산기관이나 중앙은행을 통해 거래합니다. 이 방법을 통하면 거래 보증을 위한 많은 비용이 발생하고 청산기관이 주기적으로 모아 청산하기 때문에 즉각적인 청산이 불가능합니다. 만약 기관끼리 블록체인을 구축하여 청산 시스템을 구축한다면 신뢰를 위한 수수료가 감소하고 즉각 청산 할 수 있습니다.

금융 기관 간 거래 말고 다른 업무는 어떨까요? 공인인증서의 경우다른 기관에서 발행한 공인인증서를 검증하기 위해선 CA기관을 통해 검증해야 합니다. 다른 기관의 데이터가 자주 필요한 업무면 어떨까요? DB를 서로 오픈해서 공유하기는 힘들고, 만약 데이터를 공유한다고 해도 중간에 데이터가 변조되어 사고가 발생하면 누가 책임문제도 커질 것입니다. 이런 분야에 블록체인을 이용한다면 필요한 데이터 쉽게 공유 검증이 가능합니다.

블록체인을 통해 시스템을 구축한다면 필요한 내용이 기관들 사이에 공유 되고 이해관계에 있는 기관들이 해당 내용을 검증할 것입니다. 그리고 검증 내용이 즉각적으로 공유 됩니다. 이러한 과정을 통해 신뢰보증을 위해 발생하는 많은 비용을 해결할 수 있고 즉각적으로 처리할 수 있습니다. 또한 중앙 공격에 강하고 거래 내역 위변조를 즉각적으로 발견하고 모든 기록이 남아 책임 주체를 확인가능합니다. 필요한 데이터를 복잡한 프로세스 없이 공유할 수 있다는 것도 매력적인 요소입니다.

다음 포스팅에서는 금융권에서 사용하는 프라이빗 블록체인과 비트코인과 같은 퍼블릭 블록체인의 차이점에 대해서 기술할 것입니다. 왜 금융권은 비트코인이나 이더리움을 활용하지 않고 독자적인 블록체인을 구축하는지 이해에 도움되는 글을 작성 하겠습니다.

theloop 블로그를 시작하며

블록체인이 무엇이고 무엇을 할 수 있는지에 대해 많은 곳에서 보거나 들으셨으리라 생각합니다. 하지만 특정 IT기술로 무엇을 어떻게 할 수 있느냐보다 중요한 것은 해당 기술로 인해 생겨나는 가치라고 생각합니다.

더루프(theloop)가 생각하는 블록체인의 가치는 공유와 신뢰입니다.

이는 금융서비스에서 주춧돌과 같은 기본 요소일 뿐만 아니라 호모사피엔스가 지구에 출현한 후 무수한 도전과 경쟁을 이겨내며 지금의 번영을 만들어낸 근본 원인이기도 합니다.

십여 년 전 웹 2.0을 통해 공유의 가치가 제고되었다면 블록체인은 공유를 바탕으로 한 신뢰의 가치를 널리 퍼트리게 될 것입니다. 특히 블록체인은 요즘 같은 불신의 시대를 혁신할 수 있는 중요한 요소로 빠르게 자리 잡고 있습니다.

‘비트코인’을 통해 블록체인이 분산 원장으로서의 신뢰성을 인정받고, ‘이더리움’을 통해 블록체인의 개념이 단순한 원장이 아닌 스마트 컨트랙트를 이용한 어플리케이션 실행 환경으로 확장되었습니다. 이후 Hyperledger, R3 등 다양한 오픈 프로젝트와 기업들이 블록체인을 신뢰할 수 있는 분산 실행 환경으로서 실제 서비스에 적용하려고 노력하고 있습니다.

theloop_ci_rgb

더루프는 이들처럼 블록체인 기술의 심장인 블록체인 엔진 및 관련 솔루션을 만들고 있는 한국에서는 찾기 어려운 테크니컬 스타트업입니다.

bab47639cdc44d388c66c3fbb915fb64

핀테크를 통해 금융 혁신을 주도하고 있는 데일리금융그룹은 설립 초기부터 블록체인에 대한 연구 개발을 진행한 결과 금융기관을 위한 다양한 커스터마이징과 스케일업이 가능한 금융서비스에 최적화된 블록체인 엔진이 필요하다는 결론을 내리게 되었습니다. 이후 블록체인 개발 전문 회사인 더루프를 설립하여 금융서비스에 즉시 적용 가능한 고성능의 private blockchain 솔루션인 loopchain을 개발하였고 지속적으로 고도화하고 있습니다.

근래 블록체인 기술이 주목받으면서 곳곳에서 관련 회사와 금융/공공기관이 블록체인을 단순한 홍보수단으로 이용하는 것 같습니다. 하지만 많은 경우 블록체인의 활용은 수사에만 그치고 있으며 실제 기술적인 핵심 부분까지 접근하는 곳은 거의 없는 실정입니다. 이는 블록체인을 통해 얻을 수 있는 공유와 신뢰라는 가치의 구현을 어렵게 하고 있습니다.

더루프는 블로그를 통해 앞으로 블록체인에 대한 뉴스, 트렌드 등 일반적인 내용부터 섬세하고 난이도가 있는 기술적인 부분까지 가능한 알기 쉽게 알려 블록체인의 올바른 활성화를 위해 노력하고자 합니다.
앞으로 더루프의 행보에 많은 응원과 관심 부탁드립니다.