메뉴 바로가기 검색 및 카테고리 바로가기 본문 바로가기

한빛출판네트워크

데브그라운드 2021 : 개발자, 나의 성장을 도왔던 것들(1월 27일~29일 / 온라인)

IT/모바일

비즈니스 블록체인 #2, 블록체인이란 무엇인가? (2/2)

한빛미디어

|

2017-05-15

|

by 윌리엄 무가야

16,753

블록체인을 파헤치다

 

블록체인을 좀 더 깊숙이 들여다보자. 앞에서도 강조했지만 블록체인은 하나의 제품, 트렌드, 또는 기능으로서 정의하기 어렵다. 여러 가지 퍼즐 조각으로 이루어져 그중 일부는 함께, 나머지는 독립적으로 구동한다.

1995년 상업화되기 시작한 인터넷을 두고 사람들은 다양한 목적을 가진 현상이라고 묘사했다. 나는 1997년 쓴 『디지털 시장을 열다』를 통해 인터넷이 가진 ‘다섯 가지 속성’을 소개하며 ‘속성별로 차별화된 전략을 고안하여 성과를 달성해야 한다’고 덧붙였다. 웹은 네트워크이자 개발 플랫폼, 거래 플랫폼, 매체 그리고 시장이었다(커뮤니티나 소셜 네트워크는 그 당시에는 없었고 차후에 수면 위로 떠올랐다).

블록체인은 이보다 훨씬 넓은 범위의 다양한 기능을 지닌다. 아래는 블록체인에서 동시에 드러나는 열 가지 속성이다.

  1. 암호화폐
  2. 컴퓨팅 인프라
  3. 거래 플랫폼
  4. 탈중앙형 데이터베이스
  5. 분산 회계 원장
  6. 개발 플랫폼
  7. 오픈 소스 소프트웨어
  8. 금융 서비스 시장
  9. P2P 네트워크
  10. 신뢰 서비스 계층

 

블록체인의 근본을 이해하기 위해 각 속성에 대해 하나씩 알아보자.

 

 

(1) 디지털 암호화폐

디지털 화폐 기능은 가장 잘 드러나는 블록체인의 요소일 것이다. 특히 비트코인(BTC)이나 이더리움(ETH) 같은 공개 블록체인일 경우가 그렇다. 암호화폐는 블록체인의 운용과 보안을 책임져줄 경제적 대용물이다. 암호화폐의 근본 개념을 표현하는 토큰token으로 형상화되기도 한다.

암호화폐가 보완해야 할 문제 중 하나는 높은 가격 변동성이다. 이문제로 많은 소비자들이 암호화폐를 꺼리기도 한다. 2014년 로버트 샘스Robert Sams는 암호화폐의 가격을 안정시키는 방법을 논한 논문에서 닉 서보Nick Szabo의 말을 인용했다.

 

비트코인의 가격 변동성은 그것의 미래가 불확실하기 때문이다. 보다 효율적인 유동성을 제공해도 불확실성을 낮추는 데에는 도움이 되지 않는다.

 

암호화폐가 사회에서 더 잘 받아들여지고 이해될수록 불확실성이 낮아지면서 안정되고 점진적인 수용 증가 곡선을 보일 것이다.

암호화폐는 거래 검증에 성공한 채굴자(채굴자는 자신의 컴퓨팅 파워를 이용하여 블록체인(대표적으로 비트코인)을 생성하고 유지하며 거래 데이터의 무결성을 인증한다. 그 대가로 암호화폐가 주어진다.)에게 보상을 수여하는 ‘생산’ 역할을 하는 동시에, 스마트 계약을 구동하는 대가로 일정 수수료를 이더리움의 ETH 또는 그에 상응하는 리플Ripple의 XRP나 비트코인의 BTC로 지불하는 ‘소비’ 역할도 한다. 이러한 경제적 인센티브와 비용의 개념은 블록체인의 오용을 방지하기 위해 등장했다. 한 걸음 더 나아간 운용 사례를 들자면 분산된 자율 조직(DAO)처럼 이 토큰이 내부에서 통용되는 가치internal value의 단위로 사용되는 경우다. 이에 관해서는 5장과 7장에서 더욱 자세히 다룰 것이다.

암호화폐는 블록체인에서 구동될 뿐 여느 화폐와 다를 바 없다. 교환소에서 거래되고 재화와 서비스를 구입하는 데 사용된다. 다만 현재의 암호화폐는 블록체인 네트워크에서는 매우 유용한 반면 우리가 기존에 사용하는 화폐, 즉 법정 통화fiat currency의 경계 안으로 들어오기만 하면 마찰이 빚어진다.

 

(2) 탈중앙형 컴퓨팅 인프라

소프트웨어 디자인의 측면에서 볼 때 블록체인은 저장된 정보를 배포하고 기록하는 데 동일한 ‘합의’ 처리 과정을 따르는 다수의 컴퓨터가 한데 묶여 그 안에서 벌어지는 모든 상호작용이 암호에 의해 검증되는 구조다.

블록체인의 진정한 물리적 동력은 네트워크로 연결된 컴퓨터 서버들이다. 하지만 신기하게도 블록체인 개발자들은 이 서버들을 셋업할 필요가 없다. HTTP(하이퍼텍스트 전송 프로토콜) 요청이 서버로 전송되는 웹과는 달리 블록체인 애플리케이션에서는 네트워크가 블록체인에 요청을 하기 때문이다.

 

(3) 거래 플랫폼

블록체인 네트워크는 디지털화한 돈 혹은 자산과 연관된 다양한 형태의 가치 거래value-related transaction를 검증한다. 합의가 이뤄질 때마다 거래는 일종의 저장 공간인 ‘블록’에 기록된다. 블록체인은 거래를 지속적으로 기록하며 이는 암호학에 의해 향후 거래 사실의 증거가 된다. 따라서 블록체인은 액수에 구애 없이 모든 거래를 처리할 수 있는 거대한 거래 처리 플랫폼이다.

그렇다면 블록체인은 다른 거래 처리 네트워크와 비교해서 얼마큼의 처리 능력을 가지고 있을까? 초당 처리 거래량(TPS)으로 비교해보자. 비자넷VisaNet은 2015년 기준 평균 2,000 TPS, 최고 4,000 TPS를 처리했으며 처리 역량은 56,000 TPS에 달했다. 페이팔의 경우 2015년 동안 총 49억 건의 지불 거래를 처리했는데,(https://www.paypal.com/webapps/mpp/about _원주) 이는 155 TPS와 동일한 수치이다. 2016년 현재 비트코인 블록체인은 5~7 TPS에 머무르고 있다. 하지만 사이드체인(각기 다른 블록체인에 존재하는 자산 간의 상호 거래를 가능케 하는 기술. 이를 통해 이더리움 블록체인 위에서도 비트코인 거래가 가능하다.) 기술이 발전하고 비트코인 블록 규모가 증가되면 앞으로 큰 폭의 향상이 예견된다. 어떤 블록체인은 비트코인보다 거래 처리 속도가 빠르다. 이더리움은 2015년에 10 TPS로 시작했지만 2017년에는 50~100 TPS까지, 2019년까지는 50,000~100,000 TPS에 이르는 것을 목표로 하고 있다.(비탈리크 부테린과 개인적으로 나눈 대화가 출처다. _원주) 비공개 블록체인은 보안 관련 요구 조건이 덜 까다롭기 때문에 더 빠르며 2016년에 이미 1,000~10,000 TPS에 도달했다. 2017년에는 2,000~15,000 TPS, 2019년 이후에는 처리 역량에 제한이 없는 무제한 TPS가 가능할 것이라 점쳐진다. 블록체인을 데이터베이스 클러스터 기술(하나의 데이터베이스를 여러 개의 서버가 나눠서 처리함으로써 안정성과 처리 속도를 높이는 기술)과 연동할 경우 이런 거래 처리량의 허용치는 더욱 커져 긍정적인 개발의 결과로 이어질 것이다.

 

(4) 탈중앙형 데이터베이스

블록체인은 데이터베이스 및 거래 프로세스의 패러다임을 뒤흔들었다.

2014년 나는 개발자들을 향해 다음과 같이 경고했다. 블록체인이라는 새로운 데이터베이스가 등장했으니 이제 모든 응용프로그램을 새로 작성할 채비를 하라고 말이다.

블록체인은 당신이 어떤 데이터이든 반공개적으로 블록에 저장하는 곳이라고 볼 수 있다. 다른 사람들은 블록에 새겨진 당신의 서명을 통해 정보를 저장한 자가 당신이라는 것을 검증할 수 있다. 그러나 데이터에 대한 개인 키를 갖고 있는 오직 당신(또는 연동된 프로그램)만이 블록 안의 정보를 들여다볼 수 있다.

저장된 정보의 일부분인 ‘헤더’(일종의 요약본)가 공개된다는 점만 제외하면 블록체인은 흡사 데이터베이스와 같은 역할을 한다. 사실 블록체인이 엄청나게 효율적인 데이터베이스는 아니지만 이는 문제가 되지 않는다. 블록체인의 애초 목표가 대량의 데이터베이스를 대체하는 것이 아니기 때문이다. 그보다 소프트웨어 개발자들은 어떻게 하면 블록체인의 상태 전이 능력state transitions capability을 최대한 활용할 수 있을지 고민하며 응용프로그램을 재작성해야 할 필요가 있다.

 

(5) 공유된 분산 회계 원장

블록체인은 분산되어 있고 공개되어 있으며 타임스탬핑이 지속적으로 이루어지는 자산 원장으로서 네트워크에서 처리되는 모든 거래의 흔적을 기록한다. 이 분산 원장을 통해 사용자의 컴퓨터가 모든 거래의 유효성을 검증할 수 있기 때문에 이중 계산의 우려가 없다. 분산 원장은 다수의 당사자들과 공유 가능하며 공개, 반공개, 비공개 설정이 모두 가능하다.

많은 사람이 블록체인을 ‘거래들의 분산 원장’으로 설명하고, 어떤 이들은 이것을 두고 킬러앱(어떤 플랫폼에서 해당 기술의 핵심 가치를 증명할 수 있을 만큼 뛰어나고 필요성이 검증된 컴퓨터 프로그램을 가리킨다. 예를 들어 초창기 컴퓨터의 킬러앱은 스프레드시트였다.)의 특성을 가졌다고 해석한다. 그러나 분산 원장은 블록체인이 지닌 특성의 하나일 뿐이다.

 

(6) 소프트웨어 개발 플랫폼

개발자에게 블록체인은 단연 소프트웨어 기술들의 집합체이다. 물론 이런 기술들에는 ‘중앙 권력으로부터의 탈피(탈중앙화)’라는 정치사회적인 변화가 깔려 있지만, 그와 함께 새로운 기술도 함께 몰고 온 것이 사실이다. 소프트웨어 엔지니어에게 이러한 새로운 개발 도구들은 환영의 대상이다. 블록체인에는 암호학적으로 안전한 새로운 탈중앙형 애플리케이션을 작성할 수 있는 기술이 내재되어 있다. 따라서 블록체인은 애플리케이션을 작성하는 새로운 방법이라고도 할 수 있다.

또한, 블록체인은 다양한 API를 제공한다. 거래 스크립트 언어, P2P노드 간 커뮤니케이션 API, 네트워크상에서 거래를 점검할 수 있는 클라이언트 API가 대표적인 예다. 소프트웨어 개발 측면은 6장에서 자세히 다룬다.

 

(7) 오픈 소스 소프트웨어

가장 견고한 블록체인은 오픈 소스 기반이다. 이는 소프트웨어의 소스 코드가 공개되어 있어 핵심 소프트웨어 위에서 공동 작업을 통한 혁신이 일어날 수 있다는 의미다.

비트코인의 핵심 프로토콜도 오픈 소스이다. 비트코인은 나카모토 사토시가 처음 개발한 이후 ‘핵심 개발자 그룹’에 의해 현재까지도 보완 및 지속 개발되고 있다. 더불어 무수한 독립 개발자들이 비트코인 프로토콜의 견고성을 취한 보완 상품, 서비스, 애플리케이션을 만들어 혁신을 선도하고 있다.

오픈 소스 소프트웨어는 블록체인의 강력한 장점이다. 블록체인의 핵심이 대중에게 공개될수록 그것을 둘러싼 생태계 역시 더욱 강화될 것이다.

 

(8) 금융 서비스 시장

돈은 암호화폐 기반 블록체인의 심장부이다. 암호화폐가 일반 화폐와 똑같이 취급되게 되면 다채로운 금융상품의 신규 개발이 이뤄질 것이다.

블록체인은 차세대 금융 서비스에 혁신적인 환경을 제공한다. 암호 화폐의 가격 변동성이 잦아들면 곧 대중화될 것이다. 파생, 옵션, 스왑, 합성 상품, 투자, 대출 등 기존 상품들의 암호화폐 버전이 출시될 것이고, 새로운 금융 서비스 거래 시장이 형성될 것이다.

 

(9) P2P 네트워크

블록체인에서 ‘중앙에 집중된 권력’은 존재하지 않는다. 아키텍처 측면에서 블록체인의 밑바탕은 P2P 네트워크다. 블록체인은 동등 계층에 위치한 노드 간의 처리를 통한 탈중앙화를 구현한다. 여기서 네트워크는 실제 컴퓨터를 말한다. 당신은 P2P 수준에서 각기 다른 거래들을 검증한다. 따라서 블록체인을 완전한 탈중앙형의 경량thin 컴퓨팅 클라우드로 볼 수도 있다.

어느 사용자든지 시공간의 제약 없이 즉시 거래가 가능하다. 두 명 이상의 사용자 혹은 노드 간의 거래를 걸러내고, 차단하고, 일을 지연시키는 중개자는 필요 없다. 모든 네트워크 사용자(노드)는 네트워크 안에서 존재하는 거래에 관한 지식을 기반으로 서비스를 제공할 수 있다.

블록체인은 P2P 네트워크뿐만 아니라 사용자를 위한 마켓플레이스도 형성한다. 블록체인상에서 구동하는 네트워크와 애플리케이션은 자체적으로 크고 작은 (분산된) 경제를 만든다. 이로서 블록체인은 하나의 경제 모델을 제시한다. 이 부분이 책 후반부에서 다룰 핵심 내용이다.

 

(10) 신뢰 서비스 층

모든 블록체인은 신뢰를 서비스의 기본 단위로 삼는다. 신뢰는 거래뿐만 아니라 데이터, 서비스, 프로세스, 신원 조회, 비즈니스 로직, 계약 사항, 실체를 가진 대상에도 적용된다. 내재 가치나 연관 가치가 있는 디지털화 가능한 어떠한 (스마트) 자산에도 적용된다.

 

이상 언급한 열 가지 강력한 기능과 특징을 기반으로 탄생할 혁신적인 매시업(하나 이상의 소스에서 얻은 콘텐츠를 활용하여 새로운 서비스를 개발하는 것. 사진과 그 사진을찍은 장소 정보를 구글 지도와 조합하여 ‘지도 매시업’을 개발하는 것을 예로 들 수 있다.)을 상상해보자. 이 특징들을 조합해보면 블록체인의 영향력을 가늠해볼 수 있다.

 

 

상태 전이와 상태 기계는 무엇인가?

블록체인의 패러다임을 이 세상 모든 것에 적용하기는 어렵다. 블록체인은 ‘상태 기계state machine’라고 할 수 있는데, 이 개념이 무엇인지 알아보자.

기술 용어로 상태state란 특정 시점에 ‘저장된 정보’를 말한다. 따라서 ‘상태 기계’는 주어진 시간 동안 특정 대상의 상태를 기억하는 컴퓨터 혹은 기기를 일컫는다. 입력된 값에 따라 상태가 변하므로 그 변화가 반영된 결과 값이 출력된다. 블록체인은 이러한 상태 전이 과정을 가감 없이 불변적으로 기록 및 유지한다. 이에 반해 데이터베이스의 기록은 언제든 수정 가능하다. 모든 데이터베이스가 감사 추적 이력을 가지고 있지는 않으며 설사 이력이 있다 하더라도 조작이 매우 쉬워 언제든 소실될 수 있다. 블록체인의 전이 이력은 영구적으로 보존되는 ‘상태’에 관한 정보이다. 이더리움 블록체인에는 각 주소의 현재 잔고를 표출하는 고유한 ‘상태 트리’가 저장되어 있고, 각 블록에는 이전 블록과 현재 블록 사이에서 발생한 거래 내역을 표현하는 ‘거래 목록’이 내장되어 있다.

상태 기계는 장애 허용 기능이 필수적인 분산형 시스템을 구현하는데 적합하다.

 

 

합의 알고리즘

블록체인 패러다임으로의 대전환이 불러일으킬 영향력을 잘 이해하기 위해서는 무엇보다 암호학을 기반으로 한 컴퓨팅 혁명의 심장부인 ‘탈중앙형 합의’가 의미하는 바를 우선적으로 이해해야 한다.

탈중앙형 합의는 기존의 중앙집중형 합의 패러다임을 무너뜨린다. 중앙집중형 합의 패러다임에서는 하나의 중앙 데이터베이스가 거래 입증에 관련된 모든 권한을 통제한다. 이에 반해 (블록체인 프로토콜을 기반으로 하는) 탈중앙형 체제는 탈중앙화된 가상 네트워크에 신뢰 및 권한을 이전시켜, 네트워크의 노드들이 발생한 거래 내역을 지속적으로 그리고 순차적으로 공개된 ‘블록’에 기록하고, 이로써 유일무이한 ‘체인’, 즉 블록체인이 생성된다. 연속되는 각 블록은 이전 코드의 ‘해시’(유일무이한 지문)를 담고 있어, 해시 코드를 이용한 암호학을 통해 중앙의 중개가 없이도 거래 출처의 진위 여부를 가려낼 수 있다. 암호학과 블록체인 기술의 조합은 하나의 거래에 대한 중복 기록 가능성을 완전히 배제한다. 이때 합의 로직이 애플리케이션 자체와는 분리되어 있다는 점이 중요하다. 이것은 유기적으로 탈중앙화된 애플리케이션의 제작이 가능하다는 뜻이며, 동시에 애플리케이션 소프트웨어 아키텍처 분야에 혁신을 몰고 올 여러 가지 시스템 체제의 변화를 예고한다. 여기서 애플리케이션의 목적 및 기능이 돈과 관련되어 있는지 여부는 상관없다.

합의는 탈중앙형 아키텍처 위에 놓인 첫 번째 층으로 볼 수 있으며, 블록체인 운영체제를 관장하는 프로토콜의 토대가 된다.

합의 알고리즘은 블록체인의 중추 기능으로서 거래를 수행하는 방법 혹은 프로토콜을 말한다. 블록체인은 신뢰가 절대적으로 보장되어야 하기 때문에 합의 알고리즘은 매우 중요하다. 비즈니스 목적으로 블록체인을 이용하는 경우, 그것의 보안을 신뢰하는 한 이런 알고리즘이 정확히 어떻게 작동하는지까지 이해할 필요는 없다.

비트코인은 작업 증명Proof-of-Work(POW) 합의법을 주도했다. 이는 합의 알고리즘의 조상 격이다. 작업 증명은 거래들이 주어진 상태에 따라 안전하게 이루어지도록 만드는 프랙티컬 비잔틴 장애 허용(PBFT) 알고리즘을 기반으로 한다. 작업 증명을 대체하는 또 다른 합의 기법으로는 지분 증명Proof-of-Stake(POS)이 있다. 그 밖에도 위임된 지분 증명Delegated POS, RAFT, Paxos 등의 합의 프로토콜이 있지만 굳이 여기에서 이들을 비교까지 하지는 않겠다. 우리는 이 알고리즘에서 탄생한 툴과 미들웨어 기술이 지닌 견고성, 그리고 이를 둘러싸고 부가가치를 창출하는 참여자들이 구성하는 생태계를 주시해야 한다.

작업 증명 알고리즘에는 친환경적이지 않다는 단점이 있다. 특화된 기기가 엄청난 처리 능력을 내기 위해서는 큰 에너지 소비가 뒤따르기 때문이다. 가상 채굴virtual mining과 토큰 투표token-based voting의 개념에 의존하는 지분 증명 알고리즘은 작업 증명의 강력한 경쟁자이며, 작업 증명만큼 컴퓨터 처리 능력이 요구되지 않기 때문에 좀 더 저렴한 비용으로 보안을 확보할 수 있다.

끝으로 합의 알고리즘을 논의할 때에는 합의 과정의 참여자와 제어권 소유자를 결정하는 ‘허가 부여permissioning’ 방식에 대해 고려해야 한다. 가장 널리 쓰이는 허가 부여 방식으로 다음의 세 가지가 있다.

  1. 공개 (예: 작업 증명, 지분 증명, 위임된 지분 증명)
  2. 비공개 (제한된 블록체인 내에서 권한 설정을 위해 개인 키를 사용)
  3. 반공개 (예: 컨소시엄 기반의 연합 방식으로 기존의 비잔틴 장애 허용 기법을 사용)

 

 

1장의 핵심 아이디어

 

  1. 웹과 블록체인 모두 인터넷 기반 기술이다.
  2. 블록체인은 기술적, 비즈니스적, 법적으로 정의할 수 있다.
  3. 블록체인은 암호학적 증명을 이용하여 당사자 간에 발생하는 거래의 진위 여부와 완수 상태를 결정짓는다.
  4. 블록체인은 새로운 중개자를 창조하는 동시에 기존 중개자의 역할을 재정의한다. 이로써 전통적 가치의 경계를 붕괴시킬 것이다.
  5. 블록체인은 열 가지 속성을 가지며 우리는 그 모두를 총체적으로 이해해야 한다.

 

댓글 입력
자료실