비트코인 열풍이 한바탕 휩쓸고 지나간 현재, 결국은 터지고 만 암호화폐의 거품이 남긴 오명과 상처는 그 모태인 블록체인이 오롯이 뒤집어쓴 형국이다. 사람의 명예를 회복하려는 일은 여러 인물들이 진즉에 해온 터라 필자는 기술의 명예회복을 위한 색다른 도전적 인터뷰에 나섰다. 도전장은 내가 던졌지만 링에 오를 도전자 역할은 권수호 한국 블록체인산업진흥협회(KBIPA) 교육센터장이 기꺼이 맡아주었다.
세칭 뱅뱅사거리에 위치한 KBIPA 사무실에서 진행된 권수호 센터장과의 「원 포인트 인터뷰」를 계기로 필자는 그동안 자신의 목소리를 거의 내오지 않아온 과학기술인들과의 대담을 기회가 있을 때마다 추진할 계획이다. 미래는 문과생의 혀끝이 아닌 이과생의 손끝에서 늘 탄생하기 때문이다.
공희준 : 블록체인 기술이 사람들 입에 오르내린 지가 꽤 되었습니다. 그런데 블록체인 기술의 정확한 개념과 구체적 역할에 대해서 일부 전문가들을 제외한 대부분의 평범한 국민들은 거의 모르는 상태입니다. 블록체인이 도대체 어디에 쓰는 물건인가요? 그리고 비트코인 등의 암호화폐는 블록체인과 어떤 관계에 있나요? 암호화폐는 블록체인의 발전을 추동하고 있나요, 아니면 저해하고 있나요?
블록체인 앞에서 조작이란 없다
권수호 : 블록체인은 데이터의 임의적인 변경을 방지하는 기술로 정의될 수가 있습니다. 데이터의 자의적 변경을 막는 일이 왜 필요하냐? 사람들은 서로 믿지 못하는 상태에서 거래를 해야만 하는 경우에 자주 직면하기 때문입니다. 그런 상태에서 거래를 하려면 누구도 거래에 관련된 데이터들을 조작하지 못한다는 점이 전제되어야 합니다. 블록체인은 이러한 점을 보장하는 까닭에 ‘신뢰의 도구’라고 불리기도 합니다. 한쪽 거래 상대방의 데이터 조작은 다른 거래 상대방에게 반드시 피해를 끼치기 마련입니다. 따라서 조작을 막아줄 블록체인 같은 신뢰의 도구가 절대적으로 필요합니다.
우리는 블록체인을 조작이 원천적으로 불가능한 데이터라고 부르고 있습니다. 그런데 원천적으로 조작이 불가능한 데이터들이 상호 연결된 구조를 가지고 있기 때문에 이것이 사슬이라는 의미를 지닌 체인(Chain)이 되는 것입니다. 블록은 좀 더 이해하기가 쉽습니다. 데이터의 덩어리(Bloc)라고 생각하시면 됩니다. 데이터의 덩어리들이 사슬로 연결된 게 블록체인인 것이죠.
블록체인의 핵심적 본질은 조작 불가능한 데이터라는 데 있습니다. 조작이 불가능한 데이터란 어떤 뜻일까요? 누군가 데이터를 조작했을 때 그 사실을 모두가 쉽고 빨리 알아챌 수 있다는 의미입니다. 여기서 체인의 역할이 중요합니다. 블록과 블록을 이어주는 체인이 조작을 불가능하게 만들어주는 결정적 요소로 구실하기 때문입니다.
블록체인에서의 체인은 예를 들면 덧셈 연산에서의 나머지 값을 가리킵니다. 특정한 숫자 두 개를 더해 하나의 숫자를 만든다고 가정해보겠습니다. 이렇게 만들어진 숫자를 10으로 나누든, 100으로 나누든 결국에는 특정한 값이 남게 됩니다. 그 나머지 값을 가지고 조작 여부를 판단하는 것입니다. 어디가 조작됐는지 구체적으로 확인해보려면 내부를 들여다봐야겠지만, 중요한 맥락은 그 나머지 값만 살펴보면 조작 여부를 간단하기 판별할 수가 있다는 것입니다.
블록체인 기술은 이와 같은 개념에 기반해서 개발되었습니다. 블록체인에서 제가 방금 전에 말씀드린 나눗셈 기법을 사용하는 것을 바로 ‘해시(Hash)’라고 합니다. 블록체인의 데이터를 조작하려면 한 곳의 블록만 조작해서는 안 됩니다. 동일한 데이터가 분산저장된 나머지 모든 블록들도 조작해야 합니다. 그러므로 설령 한 군데 블록의 데이터를 변경해도, 아직 데이터가 변경되지 않은 블록의 관리자들이 변경된 블록과 자기가 가진 블록을 비교하면 데이터가 조작됐다는 사실을 이내 인지할 수가 있습니다.
분산저장 방식과 데이터 조작 여부를 판별하는 기법을 묶어서 ‘탈중앙화(Decentralization)라고 일컫고 있습니다. 탈중앙화되고 조작 불가능한 데이터베이스를 생성시켜주는 기술, 이게 블록체인 기술의 정확한 개념정의라고 일컬을 수가 있습니다.
조작이 불가능한 데이터를 활용하면 이를테면 서로 완전히 믿을 수가 없는 두 사람 사이의 거래를 위한 기본적 요건들을 충족시켜줍니다. 내 계정에 100만 원이 있고, 다른 사람 계정에 70만 원이 있다고 가정해보겠습니다. 이 데이터를 블록에 저장해놓은 다음, 나중에 서로 금전을 거래하게 될 때 거래 쌍방 전부의 데이터가 사실에 부합하는지를 검증합니다. 검증해본 결과 데이터가 진실하다고 생각할 때 비로소 거래를 진행하게 됩니다. 이렇게 금전을 교환하거나 지불한 결과는 블록에 업데이트가 됩니다. 이 업데이트된 데이터가 이번에는 다른 여러 블록들에 분산되어 저장됩니다. 이러한 과정을 거쳐서 어느 일반적 테이터가 조작 불가능한 데이터로 확고하게 정착되는 것입니다. 이게 블록체인 기술의 기본 원리입니다.
블록체인은 선수, 코인은 치어리더
코인은 왜 필요하냐? 블록체인 기술은 다다익선의 기술입니다. 참여자의 숫자가 많아질수록 가치와 효능감이 높아지는 기술입니다. 이를 네트워크 효과라고 합니다. 한 명만 데이터를 갖고 있다면 조작하기가 그리 어렵지 않습니다. 동일한 데이터가 더 많은 곳들에 저장되는 것과 정비례해 조작의 어려움 또한 커지는 법입니다.
문제는 데이터를 저장할 경우 당연히 자신이 가진 저장 공간을 내어줘야만 한다는 사실입니다. 이럴 때는 뭔가 낭비되는 느낌을 받을 수도 있습니다. 자기가 비용을 들이고 있음에도 불구하고 보상받을 길이 보이지 않을 테니까요. 그럴 때 보상의 형태로 주어지는 것이 코인(Coin)입니다. 코인을 지급하면 보상받는 사람들이 늘어납니다. 보상에 참여하는 사람들 역시 늘어나고요. 여기에서 보이듯이 네트워크를 활성화하는 방안으로 사용되는 것이 코인입니다.
최근에는 코인이 또 다른 용도로도 널리 활용되고 있습니다. 사전에 투자를 유치할 목적으로 코인을 발행하는 경우입니다. 사실, 블록체인 기술에 바탕한 네트워크는 아직까지는 완벽하게 구축되지 않았습니다. 그렇지만 효과적인 블록체인 생태계를 조성하겠다면서 미리 선투자를 받기 위해 코인을 활용하는 사례는 매우 흔합니다. 코인이 일종의 크라우드 펀딩(Crowd Funding) 용도로 쓰이는 겁니다.
종전에는 기업공개(IPO) 등을 통해 주식을 발행하는 것이 보편적 투자 유치 방식으로 알려져 왔습니다. 블록체인 업계에서는 기술 개발의 목적 아래 선투자 형식으로 투자자들로부터 미리 투자를 받고 있습니다. 하지만 여기에서 문제가 빈발해왔습니다. 막상 투자를 받아놓고서 기술 개발을 소홀히 하거나, 혹은 못하는 사태가 발생할 가능성을 배제할 수 없는 이유에서입니다.
대다수 투자자들의 입장은 어떨까요? 자신들이 투자한 기술의 개발 과정이 정상적이고 성공적으로 완료된 덕분에 보유한 코인이 시장에서 활발하게 유통되면서 그 가치가 높아지기를 간절히 바라기 마련입니다. 허나 만약에 개발이 미흡했거나 불성실했다고 생각해보세요. 그런 코인은 사실상 쓸모가 없습니다. 시장에서 유통되지도 않습니다. 시장에서 거래되지 않는 코인을 누가 가격을 지불하고 사가려고 들겠습니까? 그런 탓으로 몇몇 코인들이 스캠(Scam), 곧 사기라는 소리를 듣곤 합니다. 가치를 지니지도, 창출하지도 못하는 코인은 실제로는 아무런 쓸모가 없습니다.
블록체인과 암호화폐는 뗄 수도 있는 관계
어떤 분들은 블록체인 기술과 암호화폐가 떼려야 뗄 수 없는 밀접한 관계에 놓여있다는 말씀을 하고 계십니다. 그러나 실제 블록체인 기술을 자세히 관찰해보면 블록체인이 다방면으로 응용될 수 있는 기술임을 단번에 파악할 수 있습니다. 조작 불가능한 데이터를 만들고, 다루고, 갈무리하는 기술이니까요. 더구나 여러 군데에 분산되어 저장되는 까닭에 기술의 신뢰성과 안정성이 더욱더 제고됩니다.
코인 발행의 목적은 크게 세 가지 정도로 정리될 수가 있습니다. 첫째는 투자를 받기 위한 목적입니다. 둘째는 가치와 결합하기 위한 목적입니다. 셋째는 네트워크를 활성화하기 위한 목적입니다. 이런 견지에서 바라본자면 암호화폐와 블록체인은 엄연히 층위가 다른 기술입니다. 블록체인은 구현을 위한 기술이고, 암호화폐는 블록체인이 구현해놓은 결과물들을 활성화하기 위한 방법인 것입니다.
그럼에도 블록체인 기술에는 해결해야만 난제들이 여전히 몇 가지 있습니다.
첫 번째 문제는 동일한 블록이 전체 참여자들에게 전부 쌓여 있다는 점입니다. 이는 굉장한 자원 낭비입니다. 비트코인의 경우에는 기존에 생성된 블록들을 하나의 노드에 저장하려면 무려 150 기가 바이트의 저장 공간을 필요로 합니니다. 이는 바꿔 말하면 한 개인이 비트코인 생태계에 참여하려면 본인이 소유한 컴퓨터에 150 기가 바이트 정도의 저장 공간을 비트코인 채굴 용도로만 할당해둬야 한다는 뜻입니다.
그러면 어떻게 되겠습니까? 참여자가 증가할수록 똑같은 데이터의 양도 증가합니다. 이 과정에서 데이터의 중복성이 과도하게 강화되고 맙니다. 가령 100만 명의 사용자(User)가 있다는 건 100만 개의 복사본이 곳곳에 존재한다는 의미입니다. 자원의 낭비일 수밖에 없는 연유입니다.
두 번째 문제는 스마트 계약(Smart Contract)과 관련된 부분입니다. 스마트 계약은 특정한 사건이 발생했을 때 거래가 자동으로 진행되도록 해주는 일을 가리킵니다. 스마트 계약은 두 명의 거래 당사자 사이에 실행되기도 하지만. 이와 동시에 디지털 원장(Ledger)에, 즉 블록체인에 저장됩니다.
그러려면 이를 검증하기 위해 전체 노드에서 이 스마트 계약을 동시에 실행시켜야만 합니다. 이게 무슨 의미냐면 블록체인 네트워크에 참여한 1백만 대의 컴퓨터가 똑같은 일을 각자 한 번씩 수행한다는 얘기입니다. 특정한 스마트 계약이 1백만 번 실행되는 셈이죠. 이건 저장 공간의 낭비이기도 하거니와 막대한 전기 에너지의 낭비이기도 합니다. 무의미한 시간낭비이기도 하고요.
이런 종래의 두드러진 한계들의 극복이 명확하게 선행되어야 블록체인의 활성화가 촉진되고 대중화가 진전될 수 있습니다.
블록체인 개발자, 적어도 너무 적다
기술적 문제들만이 현재의 블록체인 기술에 내재된 맹점의 전부는 아닙니다. 그와 더불어 인적인 문제, 곧 사람의 문제도 엄존합니다. 단적으로 지금 우리나라에 블록체인 개발자들의 숫자가 절대적으로 부족한 것이 현실입니다. 현재 우리나라에서 순수한 블록체인 개발자로 분류될 수 있는 사람들의 숫자는 600명 정도에 지나지 않습니다. 간접적으로 관련된 분야에 종사하는 개발자들까지를 범위에 포함시키면 그보다는 조금 더 많을 수도 있겠지요.
지금은 블록체인 기술 개발자가 다른 소프트웨어 분야야 비교해 몹시 적은 상황입니다. 그래서 제가 교육센터장으로 일하고 있는 한국블록체인산업진흥협회(KBIPA) 같은 기관들에서는 절대적으로 부족한 블록체인 기술 개발자들을 육성하기 위한 교육 활동을 적극적으로 펼쳐오고 있습니다.
블록체인 산업의 현실적 어려움과 풍부한 잠재력을 정부는 물론이고 국민들께서도 아직은 잘 모르고 계십니다.
블록체인 개발자가 기존의 개발자들과 특별히 다른 부분은 없습니다. 블록체인은 등장한 지가 짧다고는 말하기 어려운 기술입니다. 그리고 블록체인의 근본을 이루는 해시(Hash) 값을 만들어내는 기술은 상당히 오랜 전에 출현한 기법입니다. 데이터베이스 관계 기술들은 이제는 전통적 기술로 생각될 수도 있고요.
블록체인 서비스를 제공하는 건 기존의 다양한 기술을 결합시켜서 새로운 시스템을 구축해내는 일입니다. 그러자면 통상적으로 사용자 환경(User Interface)으로 알려진 앞단(Front-END)에 관련된 작업도 처리할 수도 있어야 하고, 흔히 서버 계통으로 불리는 뒷단(Back-End)에 관계된 업무들도 처리할 줄을 알아야만 합니다.
기존 소프트웨어 개발자들이 블록체인 서비스 제공에 요구되는 업무들을 아직까지는 총체적이고 종합적으로 아우르지를 못하고 있습니다. 이와 같은 배경으로 말미암아 블록체인을 능숙하게 다룰 줄 아는 개발자들의 몸값이 과도하게 폭등하는 현상이 빚어졌습니다. 인력에 대한 시장에서의 수요는 넘쳐나는데, 쓸 만한 인재는 턱없이 모자라기 때문입니다. 저는 이러한 불일치(Mismatch) 현상을 조기에 해소할 수만 있다면 블록체인이 우리 실생활에 부쩍 가깝게 다가설 것이라고 확신합니다.
공희준 : 어렵지만, 크게 도움 되는 말씀 들려주셔서 고맙습니다.
권수호 : 복잡한 얘기 진지하게 들어주셔서 감사합니다.