퍼블릭 블록체인의 한계와 프라이빗 블록체인 -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)이 대두 되다가 많이 가라 앉은 이유에 대해서 포스팅하겠습니다.

4 thoughts on “퍼블릭 블록체인의 한계와 프라이빗 블록체인 -1”

  1. 깔끔한 정리네요… 의견을 드리면 “프라이빗(컨소시움) 블록체인은 운영 주체가 명확하고 새로운 금융거래를 하는 것이 아닌 기존에 있던 금융 거래를 하는 것이기 때문에 모든 금융 관련 법과 규제사항을 준수해야 합니다”와 같다면 현재 우리나라의 금융 관련 제도상에서는 검림돌이 많습니다. 중앙집중화 시스템을 기본으로 하는 금융 관련 법 및 규제는 블록체인이라는 분산 환경에 대한 고려가 되어 있지 않습니다.
    위에서 말씀하신 부분은 준수라기보다는 관련 법과 규제사항이 블록체인의 분산신뢰환경에서도 충분히 가능하고 그보다 더 효율적이다는 것으로 증명하는 노력이 필요해 보입니다. 이러한 노력을 통해 규제기관의 블록체인에 대한 합의를 도출하고 제도를 개선할 수 있도록 유도하도록 하는게 방법이겠죠.

    사견이었습니다. 감사합니다.

    Liked by 1명

    1. 좋은 의견 감사합니다. 행정적이나 법적인 부분도 시대에 맞춰서 개선될 수 있으면 더욱 좋을 것 같네요. 저희도 분산신뢰환경이 왜 필요한지 전파하는 노력을 해야될 것 같습니다.

      좋아요

답글 남기기

아래 항목을 채우거나 오른쪽 아이콘 중 하나를 클릭하여 로그 인 하세요:

WordPress.com 로고

WordPress.com의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Twitter 사진

Twitter의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Facebook 사진

Facebook의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Google+ photo

Google+의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

%s에 연결하는 중