출처 : http://www.bloter.net/archives/230157


블록체인, 비트코인을 낳다

블록체인(blockchain)이란 블록(block)을 잇따라 연결(chain)한 모음이다. 블록에는 일정 시간 동안 확정된 거래내역이 담긴다. 블록에 담을 거래내역을 결정하는 주체는 사용자다. 모든 사용자는 블록체인 사본을 각자 갖고 있다. 과반수가 넘는 사용자가 동의한 거래내역만 진짜로 인정하고 영구적으로 보관할 블록으로 묶는다. 새로 만든 블록은 앞서 만든 블록체인 뒤에 덧붙인다. 이런 과정은 일정 간격으로 반복한다.

기술적인 이야기를 추상적으로 하니 와닿지 않을성 싶다. 좀 더 구체적인 사례를 살펴보자. 블록체인 기술이 쓰인 가장 유명한 사례는 가상화폐 비트코인(Bitcoin)이다. 비트코인에 블록체인 기술이 어떻게 활용되는지 살펴보면 앞서 이야기한 블록체인의 정의가 무슨 뜻인지 이해할 수 있을 게다.

사토시 나카모토가 2008년 발표한 비트코인 백서

사토시 나카모토가 2008년 발표한 비트코인 백서

블록체인 기술을 처음 고안한 사람은 사토시 나카모토라는 익명 개발자다. 그는 2008년 10월31일 암호화 기술 커뮤니티 메인에 ‘비트코인:P2P 전자 화폐 시스템’이라는 논문을 올렸다. 여기서 그는 비트코인을 “전적으로 거래 당사자 사이에서만 오가는 전자화폐”라고 소개하고 “P2P 네트워크를 이용해 이중지불을 막는다”라고 설명했다.

P2P 네트워크를 통해 이중지불을 막는데 쓰이는 기술이 바로 블록체인이다. 신용이 아니라 시스템에 기반한 네트워크를 구성한 덕에 제3자가 거래를 보증하지 않아도 거래 당사자끼리 가치를 교환할 수 있다는 구상이었다. 혁신적인 시스템이지만 당시에는 누구도 주목하지 않았다. 사토시 나카모토는 두 달쯤 지난 2009년 1월3일 가상화폐 비트코인을 선보임으로써 논문 속 내용을 직접 구현해 보였다.

공공 거래장부로 보안 패러다임 바꾼다

비트코인은 블록체인 안에 가상화폐 발행과 거래내역을 기록한다. 그래서 비트코인 블록체인을 다른 말로 ‘공공 거래장부(public ledger)’라고 부르기도 한다. 거래장부는 금융 거래를 성사시키는 중요한 요소다.

은행이 고객에게 예치금을 돌려주는 과정을 살펴보자. 안꼼꼼 씨가 은행에 가서 “내가 맡겨둔 돈 100만원을 돌려달라”라고 하면, 은행 직원은 거래 장부를 뒤져 안꼼꼼씨가 은행에 100만원을 맡긴 기록이 있는지 먼저 확인한다. 안씨 말처럼 은행이 100만원을 받은 기록이 있다면 은행 직원은 금고에서 100만원을 꺼내 그에게 건넬 테다. 만약 기록이 없다면 돈을 주지 않을 것이고.

돈을 주고 받은 사실을 거래 장부에 꼼꼼히 기록하고 확인하지 못하면 은행은 제 역할을 못한다. 그래서 거래장부를 기록∙관리하는 일을 금융 거래의 핵심으로 꼽는다. 나쁜 마음을 품은 사람이 은행 장부를 손에 넣으면 기록을 조작해 돈을 빼돌릴 지도 모른다.

은행을 비롯한 금융회사는 거래장부를 안전하게 보관하려고 다양한 대책을 세운다. 거래장부를 보관하는 서버는 아무나 접근할 수 없는 건물 깊숙한 곳에 두고 각종 보안 프로그램과 장비를 구비한다. 24시간 경비를 서고 서버를 관리해야 하는 건 물론이다. 금융 서비스를 제공하는데 적지 않은 비용이 드는 이유다.

사토시 나카모토는 중요한 정보를 꽁꽁 싸매고 숨겨야 한다는 보안의 상식을 뒤엎었다. 오히려 모든 사람이 정보를 공유함으로써 데이터를 조작하지 못하게 막는 방법을 고안했다. 데이터를 공유하는 사람이 많아질 수록 안정성이 더 커진다. 이게 바로 비트코인 블록체인이다.

사용자가 직접 관리하는 공공 거래장부, 블록체인

모든 비트코인 사용자는 인터넷을 통해 서로 연결된 P2P 네트워크를 만든다. 여기서 똑같은 거래장부를 복사해 각자 가져간다. 새로 생긴 거래내역도 사용자가 직접 장부에 적어넣는다.

모든 비트코인 사용자는 10분에 한 번씩 모여 거래장부를 검사한다. 만일 숫자가 잘못 적히거나 거래내역이 누락된 장부가 있으면, 다른 사람이 가진 멀쩡한 장부를 복제해 오류가 있는 부분을 대체한다. 멀쩡한 장부란 전체 비트코인 사용자 가운데 과반수가 갖고 있는 데이터와 일치하는 장부를 가리킨다. 전체 사용자 중 절반 이상이 인정하면 그 장부를 진짜라고 여긴다는 뜻이다. 과반수의 동의가 거래장부를 공인하는 구조다.

최근 10분 동안 거래내역을 확인했으면 이걸 한 블록으로 만든다. 새로 만든 블록은 기존 거래장부, 즉 블록체인 끝에 덧붙인다. 새로 만든 블록체인은 다시 모든 비트코인 사용자가 복제해 간다. 이런 작업을 10분마다 반복한다. 2009년 1월3일 사토시 나카모토가 첫 블록을 만든 뒤로 지금까지 모든 비트코인 거래내역은 블록체인 안에 기록돼 있다. 누구든 블록체인을 들여다보면 누가 언제 얼마를 누구에게 건넸는지 확인할 수 있다.

블록체인 생성 과정은 블록을 하나 하나 쌓아올리는 것과 비슷하다 (출처 : 심플홈디자인)

블록체인 생성 과정은 블록을 하나 하나 쌓아올리는 것과 비슷하다 (출처 : 심플홈디자인)

물론 이런 작업을 사용자가 직접하지는 않는다. 인터넷에 연결된 사용자 컴퓨터가 처리한다. 사용자는 자기 컴퓨터를 비트코인 네트워크 유지에 품앗이하는 셈이다. 자기 컴퓨터를 내준 대가로 사용자는 소정의 비트코인을 얻을 기회를 얻는다.

블록체인, P2P 네트워크의 한계 뛰어넘어

언뜻 별 것 아닌 것 같지만, P2P 네트워크상에서 블록체인을 만들어 거래장부의 무결성을 입증하는 구조는 엄청난 가능성을 열어젖혔다.

P2P(Peer to Peer)란 인터넷에서 사용자끼리 직접 연결돼 데이터를 주고받는다는 얘기다. P2P 네트워크는 일대일 또는 서버-클라이언트로 연결된 게 아니라 수많은 사용자가 거미줄처럼 서로 얽히고설킨 네트워크를 일컫는다. 토렌트나 소리바다가 P2P로 데이터를 주고받는 대표적인 서비스다.

P2P 네트워크의 근본적인 문제는 사용자가 서로를 신뢰할 수 없다는 점이다. 토렌트나 소리바다를 써 본 사람이라면 한번 쯤은 가짜 파일을 내려받은 적 있을 게다. 이런 문제를 해결하려고 사토시 나카모토는 작업증명(Proof-of-Work)이라는 방식을 도입했다.

작업증명이란 문제를 해결하는데 일정 시간이 걸리는 작업을 연속해서 수행하도록 함으로써 공동작업에 참여한 사람이 선의를 가졌다는 것을 확인하는 절차를 뜻한다. 모든 사용자가 머리를 맞대고 풀면 10분이 걸리는 수학 문제를 주고 답이 맞는지 확인한다. 정답을 찾아냈다면 이를 기록하고 새로운 문제를 나눠 준다. 또 10분 동안 문제를 푼다. 정답을 맞히면 전에 나온 정답 뒤에 새로 풀어낸 답을 이어붙이고 다음 문제를 푼다. 눈치 빠른 독자라면 알아챘을 지도 모르겠다. 10분이 걸리는 수학문제란 블록체인 생성 과정을 달리 말한 것이다.

이런 식으로 12번째 문제에 해답을 찾으면, 다시 말해 12번째 블록을 블록체인에 이어붙이면 한가지 사실을 확인할 수 있다. 모든 사용자의 절반 이상이 이와 비슷한 길이로 정답 묶음을 만들 수 없다는 점이다. 달리 말해 12개 블록을 이어붙인 블록체인을 만들었다는 것은 사용자 과반수가 그 블록체인을 만드는 작업에 참여했다는 방증이다. 이렇게 사용자 과반수가 뭉쳐야 해결할 수 있는 과제를 수행하도록 해 과반수 이상의 참여를 확인하는 방식이 작업증명 체계다.

블록체인 구조도 (출처 : 더씽 블로그)

블록체인 구조도 (출처 : 더씽 블로그)

비트코인 블록체인은 과반수의 ‘선의’에 기대 작동한다. 여기서 선의란 남을 돕는 착한 마음이 아니다. 비트코인 네트워크를 유지하는데 동의한다는 뜻이다. 만일 비트코인 사용자 절반 이상이 똑같은 방식으로 네트워크를 조작한다면, 블록체인은 이를 선의로 받아들이고 조작된 거래장부를 진짜로 인정한다. 하지만 이미 세계 100대 화폐 안에 들어간 비트코인 네트워크를 멋대로 조작하려는 이는 그렇게 많지 않을 테다. 혹여 비트코인 네트워크의 신뢰성에 흠짐이 생기면 그동안 자기가 블록체인을 이어붙이는데 기여하고 대가로 받은 비트코인의 가치도 사라지기 때문이다.

이를 다르게 해석하면 비트코인 사용자의 과반수보다 많은 컴퓨터 계산 능력을 동원하면 비트코인 네트워크를 붕괴시킬 수도 있다는 뜻이다. 그러나 이런 일도 실현될 가능성이 거의 없다. 2013년말 비트코인 네트워크에 사용자가 기여한 계산 능력은 이미 세계 1위에서 500위까지 수퍼컴퓨터를 모두 더한 것을 넘어섰다. 사실상 조작이 불가능하다는 얘기다.

P2P 난제 해결하자 무궁무진한 가능성이 열려

사토시 나카모토가 비트코인을 만들어 블록체인 기술이 작동함을 증명하자 개발자들이 먼저 환호했다. 블록체인의 가능성을 알아봤기 때문이다. 블록체인은 중앙집중적인 신용 관리 시스템 없이도 신용이 필요한 서비스를 구상할 길을 열었다.

bitcoin_circuit_red

비트코인은 블록체인을 이용한 첫 번째 응용 사례면서 블록체인을 활용해 금융회사처럼 가치를 전달할 수 있음을 보여준 예시이기도 하다. 웨스트유니언 같은 국제 송금 서비스를 쓰면 해외로 돈을 보낼 때 수수료로 송금액의 10% 정도를 가져가지만, 비트코인은 전세계 어디에 돈을 보내도 수십 원 정도만 내면 된다. 또 실시간에 가깝게 해외 송금을 할 수 있다.

메이드세이프라는 스타트업은 블록체인으로 데이터를 검증할 수 있다는 점에 착안해 분산된 클라우드 저장소 서비스를 만들었다. 사용자가 조금씩 내놓은 저장공간을 P2P 저장소로 쓴다. 여기 올린 데이터는 사용자 컴퓨터 자원을 활용해 암호화하고, 조각내 여러 곳에 흩어 보관한다. 오로지 데이터를 올린 본인만 암호를 해독해 데이터를 읽거나 다른 사용자에게 공유할 수 있다. 구글 드라이브나 드롭박스와 달리 중앙서버가 아예 존재하지 않기 때문에 해커가 공격할 구심점이 없다. 구조적으로 더 안전하다는 뜻이다.

<iframe width="500" height="281" src="https://www.youtube.com/embed/RdGH40oUVDY?feature=oembed" frameborder="0" allowfullscreen="" style="box-sizing: border-box; vertical-align: middle; top: 0px; left: 0px; right: 0px; bottom: 0px; width: 690px; margin: 0px auto; position: absolute !important; height: 388.125px;"></iframe>

네임코인은 중앙집중적인 현행 인터넷 주소(도메인) 관리 체계에 반해서 관리 주체가 없는  도메인 시스템(DNS)를 만들었다. 네임코인 사용자는 자기 컴퓨터를 네임코인 DNS를 관리하는데 품앗이하고 네임코인이라는 가상화폐를 받는다. 네임코인은 ‘.bit’으로 끝나는 도메인을 등록할 때 쓴다. 인터넷 주소를 등록해 사용하는 사람이 직접 인터넷 주소를 관리하는 구조를 만든 것이다. 위키리크스가 2011년 6월 네임코인을 공식적으로 지지하기도 했다.

이 밖에도 수많은 응용 사례가 있다. 블록체인 응용 사례는 이 정도만 소개하자. 이 정도면 블록체인이 무엇인지, 어떤 의미를 갖는지 감을 잡기에는 충분하리라.

다음 기사에서는 좀 더 핀테크에 가까운 이야기를 해보려 한다. 블록체인 기술을 금융 서비스에 접목하거나 활용하려고 연구한 사례를 소개하겠다. 이를 통해 블록체인이 핀테크 혁명에서 차지하는 비중이 결코 작지 않음을 알 수 있길 바란다.