in steempress •  7 years ago 


신뢰사회로 이끄는 거래의 혁명

진화하는 블록체인, 강화되는 신뢰 네트워크

왜 '프라이빗 블록체인'인가

비트코인이 유일한 블록체인은 아니다. 그렇다면, 블록체인의 종류에는 어떤 것들이 있으며 어떤 방향으로 진화되어가고 있을까?

블록체인은 크게 '퍼블릭 블록체인Public Blockchain'과 '프라이빗 블록체인 Private Blockchain'으로 구분된다. 퍼블릭 블록체인은 비트코인 또는 이더리움과 같이 누구나 네크워크에 참여할 수 있는 블록체인을 의미하며, 프라이빗 블록체인은 하나의 기관에서 독자적으로 사용하는 블록체인을 의미한다.

이외에도 '컨소시엄 블록체인Consortium Blockchain'이 있는데 여러 기관들이 컨소시엄을 구성해 운영하는 블록체인, 즉 허가된 기관만 네트워크에 참여하는 블록체인이다.

블록체인은 애초에 누구나 네크워크에 참여할 수 있는 '퍼블릭 블록체인'으로 시작되었다. 현재 암호화폐 거래소에서 거래되는 상당수의 블록체인은 퍼블릭 블록체인으로서 누구나 블록체인 네크워크에 참여해 모든 내역을 볼 수 있고, 누구나 트랜잰션 내역을 검증할 수 있다. 하지만 비트코인이 증명하듯 공개형 분산원장은 여러 기술적, 실증적 문제를 안고 있다. 불특정 다수가 참여하는 네트워크를 유지 관리하는 데 많은 자원을 투입해야 하고, 이체와 관련된 내부 정보가 투명하게 공개되며, 처리 속도가 느리고, 거래자의 익명성을 보장해주어야 하는 등 여러 가지 단점이 존재한다.

이런 한계를 극복하고 인증된 참여자만을 대상으로 분산 네트워크를 구성하는 프라이빗 블록체인 기술이 부각되고 있다. 프라이빗 블록체인은 비트코인처럼 과도한 컴퓨팅 파워를 소진하며 채굴Mining 경쟁을 할 필요가 없으며 일반적으로 '비잔팀 장애 허용 Byzantine Fault Tolerance:BFT'과 같은 멤버십 기반 합의 알고리즘으로 운영된다. 허가형 분산원장이라고도 불리는 프라이빗 블록체이는 기존 퍼블릭 블록체인이 가지고 있던 한계를 극복하면서도 보안성과 안정성은 극대화한다.프라이빗 블록체인 또는 컨소시엄 블록체인은 참여가 제한된 블록체인이다.

디지털 트랜스포메이션 차원에서 기업들이 도입하는 블록체인 플랫폼 역시 퍼블릭 블록체인이 아닌 프라이빗 또는 컨소시엄 블록체인으로 설계된다.

퍼블릭 블록체인과 프라이빗 블록체인은 서비스와 운영환경이 다르기 떄문에 비즈니스 요구사항도 다르다. 퍼블릭 블록체인은 읽기, 트랜잭션 생성을 누구나 할 수 있다. 모든 사용자들이 모든 데이터를 확인할 수 있다. 그러나 기관 간 블록체인의 경우 개인의 금융 정보나 기업의 영업 비밀에 준하는 내역이 담긴 데이터도 주고 받을 수 있기 떄문에 모두에게 데이터가 공개되면 안 된다.

모든 참여자가 함께 이체 내역을 처리하고 검증하면 이체 내역의 무결성 확보에는 효과적이나, 프라이버시 측면에서는 치명적이다. 또한 법적으로 책임질 수 있는 기관만 트랜잭션을 생성해야지 누구나 트랜잭션을 생성할 수 있다면 금융사고가 일어났을 때 책임 주체가 불문명해 질 수 있다.

또한 트랜잰션 검증 요구사항에도 차이가 있다. 퍼블릭 블록체인의 경우 트랜잭션 내역이 모두에게 공개되며 네트워크에 참여한 모든 노드가 트랜잭션을 검증한다. 그러나 프라이빗 블록체인에서 이해관계자가 아닌 모든 노드가 트랜잭션을 검증하는 것은 문제가 있을 수 있다. 또한 노드별로 권한을 다르게 설정하는 것은 퍼블릭 블록체인에서는 불가능하다. 감독 기관은 모든 데이터를 검증해야 한다거나, 그 나머지 기관들은 자신과 관련된 데이터를 검증하는 등의 역할 구분이 불가능하다는 것이다.

퍼블릭 블록체인은 참여가 자유롭다는 것은, 사실상 퍼블릭 블록체인의 한계를 의미한다. 인증되지 않은 참여자나 악의적인 목적을 가진 해커도 퍼블릭 블록체인에 접근할 수 있기 떄문이다.

이 같은 상황에서 악의적인 네트워크 참여자의 공격을 방어하면서 세계 각지에 있는 모든 노드들이 같은 데이터를 공유해야 한다. 퍼블릭 블록체인은 이런 요구사항을 만족시켜야 하기 때문에 성능 면에서 많은 것을 포기할 수밖에 없었다.

퍼블릭 블록체인은 기본적으로 누구나 블록 후보를 만들어 제출하고,분산합의를 통해 하나의 블록을 선정해 신뢰할 수 있는 블록으로 인정받는 구조다. 따라서 인터넷상에서 블록을 공유해야 하는 시간이 있고, 너무 많은 블록이 동시에 만들어지면 하나의 블록을 선택하기가 어렵기 때문에 블록 생성시간에 제한을 두고 있다.

비트코인의 경우 약 10분마다 하나의 블록을 생성하게 되고, 이더리움의 경우 약 12초 마다 하나의 블록을 생성한다. 네크워크에 공유되는 시간을 고려했을 때 이더리움에서 내가 보낸 트랜잭션 결과를 확인하려면 약1~2분 기다려야 한다. 즉각적인 처리가 필요한 금융권 서비스에 그대로 적용하기에는 불가능한 수준이다.

또한 퍼블릭 블록체인에서 채택하고 있는 합의 알고리즘으로 '작업 증명proof of Work-PoW'이나 '지분 증명Proof of Shake-PoS'을 사용하려면 내부 암호화폐가 필요하다. 퍼블릭 블록체인에서는 거래내역을 검증해 신뢰할 수 있는 블록을 만들기 위한 노드 간 경쟁이 치열하게 전개되고 경쟁 인센티브로 비트코인과 같은 암호화폐가 주어진다. 채굴은 바로 이러한 과정이다.

퍼블릭 블록체인에서 사용하는 알고리즘은 나중에 블록 생성 후 블록이 확정되기 때문에 허용되는 시간 내에 네트워크 분기 Fork가 생길 수 있어 항상 확실한 데이터를 보장해야 하는 금융권에서는 사용하기가 어렵다.따라서 프라이빗 블록체인들은 '비잔팀 장애 허용 Byzantine Fault Tolerance:BFT' 계열의 분산합의 알고리즘을 사용해 네트워크 분기를 차단한다.

또한 퍼블릭 블록체인은 멀티 프로세싱에 최적화돼 있지 않다. 퍼블릭 블록체인은 고가용성보다는 안정적으로 실행되는 것이 목적이고 애초에 정책적으로 7~12 TPS(Transaction Per Second"초당 처리 건수) 정도 밖에 허용하지 않는다. 실제 금융권 애플리케이션에서 요구하는 고가용성을 확보하려면 퍼블릭 블록체인은 근본적으로 불가능한 셈이다.

따라서 금융권에서는 퍼블릭 블록체인은 고려하지 않는다. 오히려 금융 거래의 검증과 외부 시스템 연계 그리고 규제 준수 등을 위해 블록체인 기본 프레임워크를 기존 금융 프로세스에 맞게 커스터마이징할 수 있는 프라이빗 블록체인 기술을 적용하는 파일럿을 진행하고 있다.

프라이빗 블록체인은 '허가형 원장 Permissioned Ledger'으로도 불린다.읽기, 쓰기, 합의 과정에 참여할 수 있는 참여자가 미리 지정되어 있으며,필요에 따라 특정 주체가 새로 추가되거나 제거될 수 있다. 대부분의 프라이빗 블록체인은 하나가 아닌 다수의 업체가 파트너십이나 컨소시엄을 통해서 구축한다. 컨소시엄 참여사들의 상호 승인과 허락을 통해서만 블록체인 네트워크에 가입할 수 있는데, 이렇게 함으로써 퍼블릭 블록체인과 같이 불특정 다수가 사용하는 네트워크에서 발생하는 리스크를 줄일 수 있다.

또한 설계 목적에 따라 여러 가지 버전으로 프라이빗 블록체인을 구현할 수 있다. 따라서 모두가 자료를 조회할 수는 있으나 자료의 기록은 특정 주체만 가능한 경우, 또는 읽기와 쓰기 모두 특정 주체만이 가능한 경우 등 다양한 적용이 가능하다. 금융 업무의 경우, 읽기 권한은 거래 당사자(예:은행)와 거래를 감독할 의무가 있는 금융감독기구 및 중앙은행에 주어지고,쓰기 권한과 합의 알고리즘을 통한 검증 권한은 모두 거래 당자사에게 주어질 수 있다. 이처럼 프라이빗 블록체임에서는 접근 권한 설정이 맞춤형으로 설계될 수 있다.

프라이빗 블록체인은 비트코인처럼 채굴을 위해 해시 경쟁에 의존할 필요가 없다. 오히려 프로토콜을 변경하거나 업데이트하는 것이 간편하다. 컨소시엄 참여사들끼리 합의하면 되기 때문이다.

또한 프라이빗 블록체인은 중개기관을 거칠 필요 없이 서로 다른 노드가 자신의 데이터를 온전히 신뢰할 수 있게 된다면 데이터 오차 수정, 불일치 내역 조정, 커뮤니케이션을 위한 메시징 시간 절감 등 여러 가지 혁신적인 변화를 기대할 수 있다. 특히 금융기관의 경우, 이러한 데이터 처리 속도 증가는 곧 지급 및 결제 속도의 증가로 이어지며, 관련 비용은 물론 거래 상대방 리스크와 유동성 리스크를 획기적으로 줄일 수 있도록 한다.

여기서 한 가지 문제가 있다. 퍼블릭 블록체인은 전 세계 수많은 사용자들이 수천, 수만 개의 노드를 구성하며 사용하고 있는 것이기 때문에 데이터 조작이 사실상 불가능하다. 그러나 프라이빗 블록체인의 경우 해커의 공격과 같은 다양한 상황에서 그 내용이 위/변조될 수 있는 가능성도 존재한다. 수십 개의 노드로 구성된 프라이빗 블록체인의 경우 해커가 장악한 노드의 수에 따라서 블록체인의 데이터를 처음부터 다시 만들어낼 수도 있기 때문이다. 이와 같이 프라이빗 블록체인의 데이터가 변경되었을 때 탐지하기 위한 해결 방법은 무엇일까? 바로 '앵커링Anchoring'이다. 즉, 프라이빗 블록체인의 거래 데이터 또는 블록 데이터의 해시값을 주기적으로 비트코인 등 퍼블릭 블록체인의 거래 안에 포함시키는 방식이다. 프라이빗 블록체인의 거래 데이터 해시값과 퍼블릭 블록체인의 데이터 위/변조 여부를 확인할 수 있다. 나아가 프라이빗 블록체임 간 상호 앵커링을 시도할 경우 총 여섯 번(3X2)의 조합이 가능하다. 프라이빗 블록체인들의 연결은 일종의 퍼블릭 블록체인의 기능을 수행하는 것과 유사하게 된다.

현재 국내외 금융기관 및 주요 대기업에서 이미 내부적으로 블록체인 기술 검증을 진행하고 있으며, 프라이빗 블록체인 도입을 통한 가치 혁신 방안을 적극 검토하고 있다. 이와 같이 블록체인 시장은 '암호화폐 거래 중심의 퍼블릿 블록체임'과 '제도권 시스템에 활용되는 프라이빗 블록체인'이라는 두 개의 축으로 발전하고 있다.

합의 알고리즘은 블록체인 플랫폼의 경쟁력이다.

블록체인 '합의Consensus 알고리즘'이란 무엇인가? 중앙집중형 시스템에서는 하나의 중앙 데이터베이스와 관리자가 거래 입증에 관련된 모든 권한을 통제한다. 반면 블록체인 합의 알고리즘은 탈중앙형 합의 방식이다. 블록체인은 기본적으로 분산 시스템이다. 분산형 합의 방식은 분산 시스템의 신뢰도를 보장하기 위해 나온 개념이다..

블록체인은 각 노드에서 만든 블록의 정당성을 검토하고 네크워크 전체에서 공유하는 블록체인에 반영하기 위해 이 합의 알고리즘을 사용한다. 합의 알고리즘은 블록체임의 중추 기능으로서 거래를 수행하는 방법 또는 프로토콜을 말한다. 블록체인은 신뢰가 절대적으로 보장돼야 하기 때문에 합의 알고리즘은 매우 중요하다.

P2P 네트워크에서는 정보의 지연과 미도달이라는 사태를 피할 수는 없다. 따라서 데이터를 변조할 의도가 없다 해도 이중 송신에 따른 중복 처리나 잘못된 정보에 의한 오작동 등의 위험이 있기 때문에 정보에 대한 합의 메커니증은 우선적으로 해결해야 할 문제다. 즉, 분산 시스템에서의 오류와 무결성을 보장하기 위해 합의 알고리즘은 필수적이다.

이러한 분산 네크워크 문제를 해결하기 위해 먼저 '비잔틴 장군 문제Byzantine General Problem'에 대한 이해가 중요하다. 비잔틴 장군 문제는 분산 컴퓨팅의 아버지 레슬리 램포트Leslie Lamport가 논문을 통해 처음으로 악의적인 노드가 분산 시스템에 참여한 상황을 모델링한 것이다. 비잔틴 장군 문제를 해결한 시스템은 악의적인 노드가 분산 시스템에 참여한 상황에서도 전체 시스템은 신뢰도 있는 서비스를 제공할 수 있다는 것을 보장해야 한다. 비잔틴 장군 문제는 흩어져 있는 비잔틴의 장군들이 동시에 특정 성을 공격하려 할 때 내부에 첩자가 있음에도 불구하고 성공하기 위해서 어떻게 해야하는가에 대한 문제다.

비잔틴 장군 문제를 해결하기 위해서는 전쟁에서 승리를 거두기 위해 공격 작전을 거짓으로 알리는 소수의 비윤리적인 장군들의 행위를 막아야 한다.비트코인이 내놓은 해결책은 메시지를 만들기 위해 투입한 작업을 기반으로 메시지의 진위를 검증하는 프로세스를 두고, 그 메시지들의 유효성을 보장하기 위한 검증 시간에 제한을 두는 것이었다. 네크워크 안의 그 누구도 믿을 수 없고 주변의 공격의 위험이 도사리고 있음에도 불구하고 신뢰 네크워크를 통한 거래는 여전히 무사리 그리고 안전하게 성사될 수 있어야 한다.

즉, 비잔틴 장군 문제를 해결하는 분산 시스템은 특정 노드가 해킹이나 오작동이 발생해 문제가 생겨도 네트워크는 여전히 신뢰도 있는 서비스를 제공하도록 해야 한다. 블록체인의 경우 하나의 주체가 네트워크를 구성하는 것이 아니라, 사전 신뢰관계가 형성되자 않은 여러 노드들이 모여서 네트워크를 구성하는 방식이다. 각각의 노드들은 네트워크를 조작해 부당이득을 취할 수 있기 때문에 네트워크에 악의적인 노드가 존재하더라도 신뢰도 있는 시스템 제공을 보장하는 합의 알고리즘이 무엇보다도 중요하다.

'작업 증명 Proof of Work PoW'합의 알고리즘은 비트코인의 창시자인 나카모토 사토시가 작성한 <Bitcoin: A Peer-to-Peer Electronic Cash System>이라는 논문에서 최초로 제안되었는데, 2009년 비트코인 운영이 시작된 이후 여러가지 논란이 일고 있다. PoW는 불특정 다수가 참여할 수 있는 환경에서 유효한 알고리즘이다. 하지만 허가받은 참여자들이 컨소시업을 만들어 운영하는 비즈니스 케이스에서는 적합하지 않은 알고리즘이다.

PoW는 비트코인을 비롯한 주요 퍼블릭 블록체인에서 채택하고 있는 합의 알고리즘이다. 블록을 만들어 배포한 후 많은 참가자가 사용하는 것을 올바른 블록으로 정의하기 때문에 참가자의 수에 영향을 받지 않고 얼마든지 참여자를 늘릴 수 있다. 반면 네크워크 상태에 따라 일부분에 불일치가 생긴 경우 '파이널리티 Finality’ 블록체인이 분기되었을 때 최종적으로 하나의 유효한 블록체인으로 확정되는 것'가 불확실하거나 확률에 의존할 수밖에 없다는 단점이 있다. 또한 PoW 방식은 속도가 느리다는 한계점이 있고 에너지 소모 역시 심각한 문제다.

'지분 증명Prrof of Stake:Pos' 방식은 이더리움이 채택할 예정인 알고리즘이다. 화폐량을 더 많이 소유하고 있는 승인자가 우선적으로 블록을 생성할 수 있는 특징이 있다. 이것은 '대량 통화를 소유하고 있는 참가자는 그 통화 가치를 지키기 위해 시스템 신뢰성을 손상시키지 않을 것'이라는 전제를 바탕으로 한다. PoS 방식은 컴퓨팅 자원 소모가 아닌 자신이 가진 지분Stake을 통해 블록을 생성한다. 즉, 자신이 가지고 있는 지분과 지분이 생성된 날짜에 의해 결정된다. 한 번 블록 생성을 위해 사용된 지분의 날짜는 초기화 된다. 기본적인 구조는 poW와 다르지 않지만, 화폐량에 따란 해시 계산의 난도가 낮아지기 때문에 PoW와 비교해 자원 소모가 적다는 장점이 있다.

'프랙티컬 비잔틴 장애 허용 Practical Byzantine Fault Tolerance:PBFT'은 PoW와 PoS의 단점인 파이널리티 불확실성과 성능 문제를 해결하는 합의 알고리즘이다. 대표적인 프라이빗 블록체인 오픈 소스 플랫폼 중 하나인 '하이퍼레저 패브릭 Hyperledger Fabric'에서는 바로 이 PBFT 방식을 채택한다. PBFT 방식은 네트워크의 모든 참가자를 미리 알고 있어야 한다. 참자가 중 한 명이 프라이머리가 되고 자신을 포함한 모든 참가자에게 요청을 보낸다. 그 요청에 대한 결과를 집계한 뒤 다수의 값을 사용해 블록을 확정한다. PBFT 방식은 언제나 참자가 전원과 커뮤니케이션애햐 하기 떄문에 참가자가 늘어나면 통신량이 증가하고 처리량이 저하된다. PoW나 PoS는 수천, 수만 개의 노드를 만들 수 있지만PBFT는 수십 개의 노드가 한계다. 물론 상황에 맞는 최적의 합의 알고리즘을 선택하기 위해 더 많은 유스 케이스 발굴과 시범 서비스를 통한 검증이 필요하다.

탈중앙형 합의 알고리즘은 기존의 중앙집중형 합의 패러다임을 무너뜨린다. 블록체인 프로토콜을 기반으로 하는 탈중앙형 시스템은 탈중앙화된 가상 네크워크에 신뢰 및 권한을 이전시켜, 네크워크의 노드들에 발생한 거래내역을 지속적, 순차적으로 공개된 '블록'에 기록한다.이를 통해 유일무이한 '체임', 즉 블록체인이 생성된다. 연속되는 각 블록은 이전 코드의 '해시'를 담고 있어, 해시코드를 이용한 암호화를 통해 거래 출처의 진위를 가려낼 수 있다.

합의 알고리즘은 탈중앙형 아키텍처인 블록체인 플랫폼의 기초적인 토대를 이루며 블록체인 운영 시스템을 관통하는 프로토콜의 핵심이자 경쟁력이다. 블록체인 플랫폼이 진화함에 따라 합의 알고리즘 역시 지속적으로 개선되고 있다.

거래증명 소요시간, 외부 공격에 대한 방어 형태, 참가자 간의 사회/제도적 협력 장치 등 애플리케이션 성격에 부합하는 최적의 합의 방식이 요구됨에 따라 새로운 합의 알고리즘에 대한 제안과 시도는 계속될 것이다.

경험으로 미루어 볼때 프로그래밍 코드의 형태가 XML과 같은 기존 계약 형태를 유지하고 데이터의 연계는 Linked Data로 구성한다면 단순한 프로그램밍 코드에 부합하는 추가 형태로 Legacy와의 연동과 프로세스의 활용도 가능할 것으로 보이며 컨설팅 검토 중인 공공프로젝트의 블록체인 적용에서 ‘스마트 컨트랙트’기술을 검증할 예정이다.

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!