2022. 10. 15. 15:03ㆍEducational
내 아이가 볼 만한
2018-01-17 08:14:34
블록체인
분산된 공개장부, 세상을 바꾼다
상상해보자. 은행을 거치지 않아도 전세계 누구에게나 돈을 직접 전할 수 있다면 어떨까. 환전과 송금에 드는 수수료를 아낄 수 있을 것 같다. 서버가 필요 없는 클라우드 저장소가 있다면 어떨까.
해커가 공격할 거점이 없어지니 데이터를 더 안전하게 보관할 수 있다. 관리자가 필요 없는 인터넷 주소 시스템은 어떤가. 인터넷 주소를 둘러싸고 핏대 높여 싸울 필요가 없어질 게다.
사실 앞서 말한 사례 3가지는 상상이 아니다. 모두 이미 기술적으로 구현돼 있다. 이 모든 일을 가능케 한 핵심 기술이 ‘블록체인(block chain)’이다.
블록체인은 비트코인에 관해 얘기할 때 가장 많이 언급된다. 맨 처음 예로 든 ‘은행 없는 글로벌 금융 시스템’이 바로 비트코인이다.
가상화폐 비트코인은 세상에 나타난 지 5년 만에 시가총액으로 세계 100대 화폐 안에 들어갈 정도로 성장했다. 이 비트코인이 세상에 나올 수 있던 이유도 블록체인 덕분이다.
2008년 10월31일 저녁, 사토시 나카모토라는 사람이 암호화 기술 커뮤니티 메인(Gmane)에 ‘비트코인:P2P 전자 화폐 시스템’이라는 논문을 올렸다.
이 논문에서 사토시 나카모토는 비트코인을 “전적으로 거래 당사자 사이에서만 오가는 전자화폐”라고 소개하고 “P2P 네트워크를 이용해 이중 지불을 막는다”라고 설명했다. 그리곤 약 두 달 뒤인 2009년 1월3일, 사토시는 논문으로 설명했던 기술을 비트코인이라는 가상화폐로 직접 구현해 보여줬다.
사토시 나카모토가 말한 ‘P2P 네트워크를 이용해 이중지불을 막는 기술’이 바로 블록체인이다. 이중지불이란 돈을 두 번 쓴다는 말이다.
1만원짜리 지폐 한 장이 있다고 치자. 이 돈으로 1만원짜리 책을 한 권 사면 내 지갑은 텅 빈다. 내게 없는 돈을 마치 있는 것처럼 꾸며댈 도리가 없다. 그런데 그 1만원이 전자화폐라면 상황은 달라진다.
전자화폐는 지폐처럼 물리적인 실체 없이 그저 컴퓨터상에 데이터로만 존재하기 때문이다. 데이터는 쉽게 복제할 수 있다. 원본과 사본에도 차이가 없다. 컴퓨터 파일을 복사하듯 돈을 복제해낼 수도 있다는 뜻이다. 무한정 복제할 수 있는 돈은 가치가 없다. 그러니 전자화폐를 돈으로 쓰려면 데이터를 함부로 고칠 수 없도록 장치를 해둬야 한다.
블록체인 안에는 이런 장치가 심겨져 있다. 이 점이 비트코인을 혁명적인 기술로 만드는 가장 큰 특징이다.
1공공 거래장부, 블록체인
블록체인은 ‘공공 거래장부’라고도 불린다. 말 그대로 거래장부를 공개해두고 관리한다는 뜻이다.만일 홍길동이라는 사람이 은행 창구를 찾아가 “내가 맡겨둔 1만원을 돌려달라”라고 요구하면, 은행 직원은 거래장부를 뒤져 그가 돈을 맡긴 기록이 있는지 확인한다.
홍길동이 주장한 대로 1만원을 맡긴 기록이 장부에 있다면 은행 직원은 금고에서 1만원을 꺼내 홍길동에게 건넬 테다. 만약 거래내역이 없다면 은행은 홍길동의 요구를 거부할 것이다. 거래장부에서 거래 내역을 제대로 확인하지 못하면 은행은 제 역할을 하지 못한다.
거래장부는 금융 거래의 핵심이다. 돈이 오고간 내역을 장부에 기록하는 이유는 이 기록을 바탕으로 금융거래가 이뤄지기 때문이다. 그러니 거래장부를 안전하게 보관하는 일은 굉장히 중요하다.
나쁜 마음을 품은 사람이 거래장부를 손에 넣으면 데이터를 조작해 돈을 빼돌릴 수 있다.
은행이나 신용카드 회사 등 기존 금융회사는 거래장부를 안전하게 보관하기 위해 복잡한 인적·물적 보안 대책을 세운다.
함부로 은행 서버에 접근할 수 없도록 튼튼하고 건물 깊숙한 곳에 거래장부를 저장한 서버를 두고 각종 보안 장비와 프로그램을 설치하는 것은 물론이고, 경비원과 보안 담당 직원도 고용한다. ‘보안’이라고 하면 흔히 떠오르는 풍경이다.
사토시 나카모토는 이런 상식을 뒤집었다. 서버나 경비원 없이도 거래장부를 안전하게 보관하는 방법을 고안했다.
사토시 나카모토가 내놓은 해법은 비트코인을 사용하는 모든 사용자가 함께 거래장부를 관리하도록 하는 것이다.
모든 비트코인 사용자는 P2P 네트워크에 접속해 똑같은 거래장부 사본을 나눠 보관한다.
새로 생긴 거래내역을 거래장부에 써넣는 일도 사용자 몫이다. 이들은 10분에 한 번씩 모여 거래장부를 최신 상태로 갱신한다.
모든 비트코인 사용자는 가장 최근 10분 동안 돈을 주고받은 내역을 갖고 있던 거래장부 끝에 더한다. 기존 장부에 숫자가 물에 번졌거나 한두 페이지가 뜯겨 나간 장부가 있으면, 다른 사람이 가진 멀쩡한 장부를 복제해 빈 곳을 메운다.
이때 몇몇 사람이 멋대로 장부를 조작할 수 없도록 과반수가 인정한 거래내역만 장부에 기록한다.
최근 거래내역을 적어 넣었으면, 새로 만든 거래장부를 다시 모든 비트코인 사용자가 나눠 가져간다. 이런 작업을 10분에 한 번씩 반복한다. 이 때 10분에 한 번씩 만드는 거래내역 묶음을 ‘블록(block)’이라고 부른다.
블록체인은 블록이 모인 거래장부 전체를 가리킨다. 비트코인은 처음 만들어진 2009년 1월부터 지금까지 이뤄진 모든 거래내역을 블록체인 안에 쌓아두고 있다. 지금도 전세계 비트코인 사용자는 10분에 한 번씩 비트코인 네트워크에서 만나 블록체인을 연장하고 있다.
물론 이런 작업을 사용자가 직접 하는 건 아니다. 비트코인 네트워크에 연결된 컴퓨터가 알아서 처리한다. 사용자는 자기 컴퓨터를 비트코인 네트워크를 유지하는 데 품앗이하는 셈이다.
2컴퓨터 공학계 난제 ‘비잔틴 장군의 모순’을 해결해
사토시 나카모토는 전자화폐 비트코인을 작동시킬 기반으로 블록체인을 선보였지만, 이 속에는 훨씬 큰 가능성이 숨어 있었다. 그동안 아무도 풀지 못한 분산 컴퓨팅의 문제점을 블록체인이 해결했기 때문이다.
P2P란 인터넷에서 사용자끼리 직접 연결해 데이터를 주고받는 구조다. P2P 네트워크는 일대일이 아니라 수많은 사용자가 거미줄처럼 서로 물고 물린 네트워크를 일컫는다. P2P 네트워크 자체는 새로운 기술이 아니다. 90년대 음악 시장을 뒤흔든 냅스터나 소리바다도 그렇고, 지금도 널리 쓰이는 토렌트도 P2P 서비스다.
어딘가 서버 한 곳에 저장된 데이터를 내려받는 게 아니라 다른 사용자가 공유한 파일을 직접 가져온다. 여러 사용자에게서 파일을 모아 서버에 파일을 올려둔 것 같은 효과를 누리는 것이다. P2P 네트워크에서 힘을 빌려 부담을 나눈 서비스를 만들면 큰 힘을 들이지 않고도 많은 자원이 필요한 서비스를 구현할 수 있다.
한가지 중요한 문제가 있는데, P2P 네트워크로 연결된 사용자는 서로를 믿을 수 없다는 점이다. 소리바다나 토렌트를 써봤다면 한번쯤 가짜 파일을 받아본 적이 있으리라. 비트코인도 마찬가지다.
비트코인 네트워크에 접속한 모든 사람이 진짜 거래 내역을 장부에 덧붙이는 것인지 알 도리가 없다. 누군가는 나쁜 마음을 먹고 장부를 조작해서 자기 지갑을 부풀리려고 덤빌지 모른다.
이런 문제를 컴퓨터 공학계는 ‘비잔틴 장군의 딜레마’라고 부른다. 별칭이 붙을 만큼 이 바닥에서는 유명한 난제였다.
사토시 나카모토는 블록체인을 만들며 오랫동안 컴퓨터 공학자를 괴롭혀온 이 문제에 해답을 내놓았다. 비잔틴 장군의 딜레마를 에둘러 설명하긴 어려우니 직접 소개하겠다.
비잔틴 제국 장군 여럿이 한 적국 도시를 공격하기 위해 예하 병력을 이끌고 나섰다. 도시 방어선이 워낙 튼튼한 탓에 한두 부대만 나서선 도시를 함락할 도리가 없었다. 장군들은 일단 도시를 포위한 채 공격 계획을 세우기로 한다.
모든 장군이 안다. 과반수 이상 병력이 한날 한시에 공격해야 도시를 점령할 수 있다는 사실을. 문제는 공격 계획을 짜는 것이다.
모든 장군이 한자리에 모이기는 어렵다. 혹여 적이 암살자를 보내면 큰 피해를 입을 지도 모른다.
봉화나 깃발로 신호를 보냈다간 적군도 알아볼 것이다. 직접 연락병을 보내는 수밖에 없다.
그런데 중요한 문제가 남았다. 비잔틴 제국 장군은 서로를 믿지 못한다. 비잔틴 제국 영토가 워낙 넓은 탓에 황제의 힘이 구석구석 닿지 못했다. 그래서 장군들은 자기 땅에서 황제처럼 군림했다.
때로는 비잔틴 제국의 적과 협력해 자기 잇속을 챙기기도 했다. 이 때문에 누가 배신자인지 장군들은 알 길이 없다. 배신자가 가짜 공격 명령을 보내 충실한 장군의 병력을 몰살시키려 들지도 모를 일이다.
또 서로 다른 공격 일시를 정할 경우에도 문제가 생긴다. A장군에게 B장군이 새벽 2시에 공격하자고 연락병을 보냈는데, C장군이 새벽 5시에 공격하자고 하면 A장군은 판단을 내릴 수가 없다.
둘 중 한 명이 배신자일 수도 있다. 어쩌면 둘 다 배신자일지 모른다. 배신자가 아닐지라도 양쪽 모두의 요청에 응하는 건 불가능하다. 이처럼 서로 믿을 수 없는 여러 주체가 동의할 수 있는 한가지 답을 내놓기란 퍽 어려운 일이다.
블록체인은 비잔틴 장군의 딜레마에 ‘작업 증명 체계(proof-of-work scheme)’를 도입해 서로 믿을 수 없는 이들끼리 모두 신뢰할 수 있는 결과를 내놓는 방법을 제시한다.
알고리즘과 게임이론 전문가이자 클라우드 메모 서비스 ‘에버노트’ 개발에 참여하기도 한 폴 봄은 블록체인이 내놓은 해법을 아래처럼 설명한다
“모든 장군이 수학문제를 풀기 시작한다. 이 문제는 모든 장군이 머리를 맞대면 10분 정도가 걸려야 풀린다. 한 장군이 답을 찾아내면 다른 모든 장군에게 그 답을 공표한다. 그러면 모든 장군은 다음 문제로 넘어가 또 답을 찾는다. 다음 문제 역시 푸는 데 10분 정도가 걸리는 문제다. 모든 장군은 그들 중 누군가가 바로 앞에서 찾아낸 정답에 새로운 문제의 답을 이어 붙이는 식으로 작업을 계속한다. 이 과정을 거쳐 12번째로 찾아내 앞선 답에 덧붙인 해답이 나오면 모든 장군은 확신할 수 있다. 이 과정에 참여한 컴퓨터 계산능력의 절반 이하를 가진 어떤 공격자도 이와 비슷한 길이로 정답 묶음을 만들 수 없다는 사실을 말이다. 즉 블록 12개로 이뤄진 블록체인은 사용자 다수가 체인 생성 작업에 참여했다는 사실을 방증한다. 이를 작업 증명 체계라고 부른다.” - 넥스트머티 비트코인 87쪽, 김진화 지음, 부키
서로 만날 수도 없고, 믿지도 못하는 비잔틴 장군은 신뢰할 수 없는 공격 계획을 공표하는 대신 수학 문제를 풀기 시작한다.
한 문제를 푸는 데 10분씩 걸리는 문제를 2시간에 걸쳐 연달아 풀고, 여기서 나온 답 12개를 서로 검증하는 과정에서 비잔틴 장군은 두 가지 사실을 확인할 수 있다.
첫째, 전체 장군 가운데 절반 이상이 공격 계획을 세우는 데 참여했다. 둘째, 10분마다 문제와 정답을 공유하면서 주고받은 메시지가 중복 없이 정리됐고, 공격 계획을 세우는 데 참여한 장군 모두가 이를 확인했다.
이 두 가지 사실을 확인한 비잔틴 장군들은 이제 과반수가 참여하는 공격 시간을 정할 수 있다.
P2P 네트워크상에 비트코인의 공개 거래장부인 블록체인을 유지·관리하는 것도 마찬가지다.
비트코인 사용자는 비트코인이 망하길 원치 않는다. 비트코인이 가치를 잃으면 자기가 비트코인에 투입한 자원도 사라지기 때문이다.
공공의 이익이 아니라 자기 이익을 지키기 위해서라도 비트코인의 가치가 사라지지 않도록 기여할 이유가 충분하다.
하지만 몇몇 사람은 자기 주머니를 채울 생각에 비트코인 거래장부를 조작하려 덤빌 수도 있다. 이들이 비트코인 거래장부를 조작하려면 전체 비트코인 네트워크가 지닌 계산 능력의 절반이 넘는 자원을 투입해야 한다. 하지만 과반수가 비트코인의 가치를 지키는 데 계산 능력을 보태면 비트코인 거래장부는 조작할 수 없다.
비트코인 사용자가 각자 자기 이익을 지키려고 노력하는 것만으로도 비트코인 시스템의 안정성이 커진다. 2013년말, 비트코인 네트워크가 지닌 계산 능력은 이미 세계 1위에서 500위까지 수퍼컴퓨터를 모두 더한 것을 넘어섰다. 사실상 조작이 불가능하다는 말이다.
3적은 자원으로 분산서비스 구현
블록체인이 분산 컴퓨팅 시스템의 난제를 해결한 덕분에 큰 자원이 필요한 서비스를 P2P 네트워크의 힘을 빌려 손쉽게 시작할 수 있는 길이 열렸다.
비트코인은 블록체인 기술을 금융 분야에 적용한 사례다. 은행이나 신용카드 회사 같은 중앙집중적인 조직 없이 사용자끼리 가치를 주고 받을 수 있는 수단이 비트코인이다.
‘37코인스’는 은행이나 송금회사가 진출하지 않은 저개발 국가에서도 휴대폰 문자메시지(SMS)만으로 비트코인을 주고받을 수 있는 기술을 선보였다.
웨스트유니언 같은 국제 송금 서비스는 보통 송금액 가운데 10% 정도를 수수료로 가져간다. 가난하고 금융 인프라가 부족한 나라일수록 수수료가 비싸진다. 위험성이 커진다는 이유 때문이다. 다른 나라에서 아프리카 나라로 돈을 보낼 때는 12% 정도 수수료를 뗀다.
미국에서 돈 번 누나가 나이지리아에 있는 남동생에게 학비로 200달러를 보낸다고 치면 수수료로 20달러를 낸다. 수수료를 절반으로 낮추면 남동생은 10달러를 더 받을 수 있다. 적어 보이겠지만, 10달러면 나이지리아에선 4인 가족이 일곱끼를 더 먹을 수 있는 돈이다.
겨우 3명이 꾸린 스타트업 37코인스가 국제 인프라를 갖추지 않고도 더 적은 수수료를 내세우며 국제 송금 시장에 뛰어들 수 있는 건 비트코인 덕분이다.
블록체인 기술을 ‘드롭박스’ 같은 클라우드 저장소 서비스에 활용한 곳도 있다. ‘메이드세이프’다. 메이드세이프는 사용자들이 조금씩 내놓은 저장공간을 P2P 방식으로 관리한다.
메이드세이프에 올린 데이터는 사용자 컴퓨터 자원을 활용해 암호화되고, 누구도 알 수 없도록 조각내 이곳저곳에 나눠 보관한다. 오로지 데이터를 올린 본인만 암호를 해독해 데이터를 활용하거나 다른 사용자에게 공유할 수 있다.
메이드세이프는 구글 드라이브나 드롭박스와 달리 중앙서버가 없기 때문에 해커가 공격할 구심점이 없다. 분산서비스거부(DDoS) 공격을 하려 해도 딱히 노릴 곳이 없다. 더 안전하다는 말이다.
또 다른 사람이 공유한 저장공간을 활용할 수 있기 때문에 추가 비용 없이도 무한히 많은 저장공간을 쓸 수 있다. 메이드세이프 사용자가 모인 네트워크가 스스로 시스템을 관리하니 관리에 드는 비용도 거의 안든다.
블록체인 기술을 이용해 중앙 서버 없이 사용자끼리 안전하게 메시지를 주고받을 수 있는 서비스 '비트메시지(Bitmessage)’도 나왔다.
비트메시지 개발자 조나단 워렌은 NSA의 무분별한 통신 감시에 대항해 안전한 커뮤니케이션 수단을 만드는 것이 목표라고 밝혔다.
비트메시지는 비트코인과 마찬가지로 사용자가 만든 P2P 네트워크상에서 작동한다. 주고받는 메시지를 암호화하는 건 물론이고 메시지를 보내고 받는 당자사의 주소도 추적할 수 없는 형태로 만들었다. ‘nuribit@bloter.net’이라는 e메일 주소를 보면 사용자 아이디는 ‘nuribit’이고 e메일 서비스를 제공하는 도메인은 ‘bloter.net’이라는 사실을 유추할 수 있다.
이 e메일을 누가 쓰는지를 찾으려면 bloter.net에 가서 nuribit을 찾으면 된다. 비트메시지는 메시지를 주고받을 때 쓰는 주소를 ‘BM-orkCbppXWSqPpAxnz6jnfTZ2djb5pJKDb’ 같이 아무 의미가 없는 문자열로 만들어 익명성을 강화했다.
관리 주체가 없는 인터넷 주소(DNS) 시스템을 만드는데 블록체인 기술을 활용한 경우도 있다. 네임코인(NameCoin)은 인터넷 주소(도메인)를 관리하는 시스템이자, 여기서 쓰는 가상화폐다.
인터넷 웹사이트 이름을 관리하는 데 쓰여서 이름도 ‘네임’코인이다. 네임코인 시스템이 만든 인터넷 주소는 ‘.bit’로 끝난다.
모든 인터넷 주소는 단 한 곳이 관리한다. 비영리기관인 국제인터넷주소관리기구(ICANN)다. ‘.com .net .org .info .biz’로 끝나는 최상위 인터넷 주소를 만들거나 거래하려면 ICANN에 승인을 받아야 한다.
이 과정에서 ICANN은 인터넷 주소를 검열한다. ‘대마초닷컴’ 같은 인터넷주소를 못 만들게 하는 것이다.
네임코인은 지금처럼 한 곳에 집중된 인터넷 주소 관리 시스템에 반대한다. ICANN의 손아귀에서 벗어난 새 인터넷 주소를 만들고자 한다.
아이디어는 비트코인에서 빌려왔다. 비트코인이 거래장부를 네트워크에 배포해 P2P 방식으로 운영하듯, 네임코인은 인터넷 주소를 P2P 방식으로 관리한다.
네임코인 인터넷 주소를 등록하고 거래하는 일은 익명으로 이뤄진다. 2011년 6월 위키리크스는 네임코인을 공식적으로 지지했다.
대안 인터넷 주소 시스템을 유지하는 데 자기 컴퓨터를 빌려준 사람들은 보답으로 네임코인을 받는다. 네임코인은 ‘.bit’으로 끝나는 인터넷 주소를 살 때 쓴다. 네임코인 시스템에 힘을 보탠 사람이 그 안에서 이득을 볼 수 있도록 한 것이다.
네임코인을 내야 하기 때문에 무작정 인터넷 주소를 차지하기도 어려워진다. ‘.bit’ 주소를 만들려면 0.01네임코인을 내야 한다. 인터넷 주소를 만든 사람은 그 주소를 삭제하거나 다른 사람에게 넘겨줄 수 있다.
4끝 없는 블록체인의 가능성에 주목하라
블록체인이 열어젖힌 가능성은 아직 끝이 보이지 않는다. 어쩌면 모든 중앙 집중 서비스를 P2P 방식으로 흐트러뜨릴지도 모를 일이다. 이 영향은 단순히 기술적인 데 머물지 않는다. 중앙에 집중된 권력이 사용자 손으로 돌아간다는 뜻이기도 하다.
금융 시스템을 금융 사용자가 직접 꾸리고 관리하면, 금융회사가 가져갔던 이득이 사용자 손에 고스란히 떨어질 테다. 비트코인이 인터넷 이후 가장 혁명적인 기술로 불리는 이유는 바로 이 때문이다.
비트코인을 단순히 돈으로만 본다면 이는 빙산의 일각만을 보는 것이다. 비트코인은 블록체인 기술이 낳은 활용 사례 가운데 하나일 뿐이다. 세상을 바꾸는 서비스를 만들고 싶은가. 그렇다면 블록체인에 주목하자.
'Educational' 카테고리의 다른 글
944. 내가 무가치한 존재라는 믿음이 생기면 (0) | 2022.10.19 |
---|---|
910. 욕심이 과했던 김자점 (0) | 2022.10.19 |
893. "현명하면서 나태한 장교가 최고 지휘관 감이다" (0) | 2022.10.15 |
886. 바이킹이 멸망한 이유 (0) | 2022.10.15 |
880. 한국전쟁, 피할 수 없었나? (0) | 2022.10.15 |