블록체인, 그것을 디벼주마! (1) 블록체인이 도대체 뭔데?
서론
90년대 말 인터넷 세상이 도래했다. 네트워크를 통해 정보가 어디로든 이동할 수 있는 세상. 그 깊숙하고 어두운 곳에서 이러한 세상에 대한 걱정을 하는 무리들이 있었으니, 바로 사이퍼펑크(CypherFunk)다. “이제 내 정보를 누구나 마음대로 볼 수 있게 될거야... 우리는 더욱 더 노출 당하겠지? 안되겠어! 내 정보를 보호할 방법을 찾아야해!” 사이퍼펑크들은 그 해답을 암호(Cypher)에서 찾기로 했다. “내 정보를 나만 아는 암호로 쓰면 누가 가져가든 알아보겠어? 필요한 사람한테는 어떻게 보는지 알려주면 돼!”
조금은 풀어서 표현해보았지만, 우리가 이야기하는 암호화폐, 그 사상의 기원은 사이퍼펑크 운동에 있다. 사이퍼펑크는 인터넷 세상이 도래하면서, 내가 사용한 화폐의 흔적들이 너무나 많은 곳에 남게 된다고 생각을 하였다.
“김형사님, 용의자가 집에 없는데요.”
“당장 휴대폰 위치추적하고 통화기록 그리고 카드, 계좌내역 확인해!”
우리가 영화나 드라마에서 한번쯤은 들어봤을 법한 대사다. 카드와 계좌내역... 마음만 먹으면(물론 개인이 할 수는 없겠지만) 내가 돈을 어디 쓰는지 탈탈 털릴 수 있게 된다. 사이퍼펑크는 이러한 네트워크 상에 정보가 노출되는 화폐거래의 취약점도 걱정했다. 그래서 힘을 쏟은 분야가 가상화폐 혹은 전자화폐 분야이다.
그로부터 세월이 흘러 2009년 1월 비트코인의 첫 블록이 만들어졌다. 그리고 블록체인이라는 역사가 시작되었다.
나는 이 글을 통해서 블록체인이라는 것이 도대체 무엇인가를 파헤쳐 보려고 한다. 그러면서 블록체인의 과거와 현재를 보게 될 것이고, 미래의 방향성을 내 마음대로 제시해보려고 한다. 그리고 많은 사람들의 의견을 듣고 싶다.
1. 블록체인이 도대체 뭔데?
누가 블록체인이 무엇이냐고 묻는다면, 그 답을 정확하게 이야기 할 수 있는가? 내가 정답을 알려주겠다.
“The Blockcahin is a Chain of Blocks.”
뭐 블록이 어쩌고, 헤더가 어쩌고, 머클트리는 뭐고... 이런 말들 백번해봐야 그냥 어렵다. 사실 개발할거 아니면, 알 필요도 없다. 블록체인은 말 그대로 블록들을 연결한 체인이다.
이 글을 읽으면서, “이게 뭐야?” 할 수 있다. 하지만 어쩔 수 없다. 저것이 정답이기에....
그럼 남들처럼 좀 더 유식해보이기 위해 약간은 기술적으로 접근해보겠다. 블록체인은 왜 생겨난 것일까?
김과장은 내일 임원회의의 보고자료를 만드는 중이다. 숫자 하나하나 틀리면 안되는 중요한 자료이다. 자료를 완성하고, 사내 시스템에 보고자료를 업로드 했다. 김과장과 라이벌인 최과장은 이번 임원회의에 김과장이 성공적으로 보고를 하게 되면, 다음 인사에서 김과장이 먼저 차장이 될 거 같았다. 최과장은 전산실에 찾아간다.
“어이, 홍대리 내가 부탁이 하나 있는데....”
최과장은 홍대리를 매수해서 김과장이 올린 보고자료의 숫자들을 수정하고, 수정된 날짜와 수정자를 삭제했다.
다음날 김과장은 임원회의 프리젠테이션 중 임원들에게 크게 혼이 났다.
“이봐, 김과장! 과장이 되도록 이런 숫자 하나 못맞추나? 다음에 다시 준비해서 보고하게!”
김과장은 억울했지만, 시스템에는 본인이 퇴근 후 수정된 사항이 나타나지 않았기에 증명을 할 수가 없었다.
간단한 스토리를 하나 소개해봤다. 이 스토리에서 사내 시스템은 중앙에서 통제되는 문서관리 시스템 정도로 이해하면 되겠다. 작성시간과 작성자, 수정시간과 수정자가 기록되는 그런 시스템 말이다. 하지만, 중앙에서 통제가 되기에 문서의 조작이 충분히 가능하다는 것을 보여준다.
컴퓨터가 발달하고, 네트워크로 시스템이 연결되는 지금의 문서, 이미지, 오디오, 비디오 등은 모두 디지털화 되어 있다. 그런 만큼 능력자들은 이를 충분히 수정할 수 있게 되었다. 이것은 원작자의 프라이버시를 침해할 수 있는 중요한 문제점이 아닐 수 없다. 그래서 하나의 제안을 해본다.
문서(모든 디지털화 된 컨텐츠)가 저장이 될 때, 날짜와 시간을 기록한다.
그와 동시에 이 문서의 사본을 만들고 이를 별도의 보관소에 저장한다.
원본 문서에 문제가 생겼을 경우 사본과 대조해보고, 원본 및 사본의 날짜와 시간이 일치하면 조작되지 않았다고 본다.
여기에도 문제가 있다.
문서가 저장될 때, 스누핑(Snooping)을 통해 문서를 가로채거나, 왜곡시킬 수 있다.
별도의 보관소에 문서가 꽉차게 되거나, 고장이 나버리면 시스템이 멈춰버리게 된다.
네트워크가 갑자기 지연되는 등의 문제가 생기면, 원본과 사본의 날짜와 시간이 달라질 수도 있다.
이걸 해결하려면, 어떻게 해야할까?
먼저 문서가 저장될때 암호화를 한다. 그리고 디지털 서명을 하여, 그 서명된 사람만 그 문서를 확인할 수 있도록 한다.
보관소를 여러대의 컴퓨터에 나누어 네트워크로 연결한다. 하나의 컴퓨터가 고장이 나도 다른 컴퓨터는 동작을 할 수 있도록 한다.
저장되는 원본과 사본은 시간의 순서대로 문서를 연결한다. 이렇게 되면, 시간과 날짜는 물론 저장 순서까지 대조할 수 있다.
어떤가? 뭔가 블록체인스럽지 않나?
블록이 생성될때 해시를 통해 암호화를 하고, 이걸 분산된 여러 노드에 저장하고 이 블록들을 발생 시간에 따라 순서대로 연결하는 블록체인 말이다.
이 내용은 1991년 Stuart Haber와 W. Scott이 발표한 ‘How to time-stamp a digital document’라는 논문의 내용을 간략히 정리한 것이다. 그렇다. 이미 1991년 블록체인이라는 이름은 아니였지만, 유사한 방식으로 네트워크 보안에 대한 신뢰를 가지려는 기술은 제안된 바 있다. 하지만, 이 기술의 목적은 디지털로 작성된 다양한 매체의 지적 재산권에 대한 문제를 해결하기 위함이였다.
어떤 이들은 비트코인 기술을 블록체인 기술이라고 하고, 블록체인은 곧 암호화폐라고도 한다.
근데, 아니, 누가, 왜 블록체인을 암호화폐와 동일하게 보는건가?
다음 글에서는 이런 왜곡이 생겨나게 된 이유가 무엇인지에 대해서 한번 디벼보겠다.