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


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

사이드 체인

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

▲  사이드 체인 구조
▲ 사이드 체인 구조

가장 유명한 사이드체인인 '컬러드코인'은 트랜잭션에 구분되는 데이터를 집어넣어 다양한 자산을 거래하게 했습니다. 나스닥에서는 주식거래를 위해 컬러드코인을 이용하려는 시도를 해봤죠. 하지만 시도로 끝나고, 컬러드코인을 개발한 스타트업과 새로운 프라이빗 블록체인을 만드는 것으로 방향을 변경했습니다. 금융권에서는 다른 사이드 체인에 대한 연구 또한 시들해지고 이제는 프라이빗 블록체인에 대한 연구 위주로 진행되고 있습니다. 이유가 무엇일까요?
비트코인은 인센티브 기반으로 운영되는 블록체인입니다. 컴퓨팅 파워를 이용해 해시 퍼즐을 푼 사람에게 인센티브가 주어지면서 해당 블록이 승인되고 복제됩니다. 현재 비트코인이 잘 운영되는 이유는 여기에 있습니다. 비트코인 네트워크를 독점하려면 51%이상의 컴퓨팅 파워를 가져야 하는데, 51%를 점유한다고 해도 크게 경제적인 이득을 보기 어렵습니다. 특정 거래를 블록에 넣고 빼는 정도만 가능하니까요. 또한 누군가가 51% 이상을 점유했다는 불안감에 비트코인 가격이 내려가면 해당 업체는 마이닝 수익이 줄어듭니다.

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

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

퍼블릭 블록체인 구현체

최근에는 비트코인 혹은 이더리움의 구현체를 그대로 활용하려는 시도들도 있습니다. 깃허브에 공개돼 있는 구현체를 내려받아 IP와 포트 변경을 통해 독자 네트워크를 구성해 프라이빗 블록체인을 구성하는 것이죠.

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

▲  이더리움 소스코드(출처 : 깃허브, CC by Ethereum)
▲ 이더리움 소스코드(출처 : 깃허브, CC by Ethereum)

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

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

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

▲  루프체인의 모듈 구조
▲ 루프체인의 모듈 구조

대다수의 퍼블릭 블록체인 구현체들은 퍼블릭 블록체인 특성상 많은 요소들을 배제하고 개발합니다. 이러한 구현체들은 유연성 확보가 안되는 것들이 대다수죠. 블록체인 상에서 지원해야 하는 새로운 기능들을 추가하기 어렵습니다. 만약 데이터 공개 이슈 때문에 프라이빗 채널을 구성하려면 현재 블록체인 구조를 수정해야 할 것입니다.
또한 스마트 컨트랙트 DB도 레벨 DB(키값)에 종속된 형태가 많아 스마트 컨트랙트에서는 어쩔수 없이 레벨 DB를 사용해야 하는 경우도 많습니다. 해당 업무에 SQL DB가 효율적이라고 할지라도요.

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

다음 글에서는 요즘 제일 관심을 많이 받고있는 블록체인인 하이퍼레저의 패브릭과 R3Cev 의 '코다'에 대해 정리해보겠습니다.

저작권자 © 블로터 무단전재 및 재배포 금지