Article at a Glance블록체인 기술에 관심이 높아지면서 블록체인 기술에 대한 기대 심리가 지나치게 커지고 있다. 블록체인 기술이 거래 중개자(intermediary)의 필요성을 없앰으로써 거래의 효율성과 투명성을 높이는 것은 사실이지만 속도나 비용면에서 항상 긍정적인 측면만 있는 것은 아니다. 오히려 이용자 수가 커질수록 비용이 늘어나고 속도는 떨어진다. 그 때문에 비즈니스의 확장성, 신뢰성, 절차에 대한 관리 등 여러 기준을 고려해 블록체인 도입 여부를 결정해야 한다. 특히 무조건적인 도입보다는 블록체인 기술의 장점과 기존 체계의 장점이 결합돼 관리나 비용을 줄일 수 있는 영역에 우선 도입해야 한다.
블록체인 기술에 대한 관심이 날이 갈수록 높아지고 있다. 세상에 미치는 파급력 또한 매우 크다. 불과 3년 전만 해도 블록체인이라는 용어를 아는 사람도 드물었다. 하지만 최근에는 너도나도 블록체인을 말하고 있다. 블록체인이 가져올 변화에 대한 예측도 하루가 다르게 변하고 있다. 기업들은 너무 빠르게 확산되는 블록체인 기술의 속도에 놀라 자칫 그 물결을 타지 못할 경우 뒤처질지도 모른다고 우려하고 있다. 한편에서는 걱정도 많다. 과열 양상을 보인다는 지적도 나오고 있다. 블록체인에 대한 올바른 이해부터 블록체인 기술의 활용 현황과 미래에 대해 살펴본다.
블록체인 기술이란한마디로 정의하기는 어렵다. 다양한 시각이 존재하기 때문이다. 기술적 정의도 상황에 따라 다르다. 설명하는 방식도 다양하다. 가장 큰 이유는 그 개념이 명확하게 정리되지 않은 탓이다. 더 나아가 기술 발전이 현재진행형이라는 점도 블록체인에 대한 정의를 어렵게 한다. 일단, 블록체인 기술을 이해하기 위해서는 먼저 비트코인에 대해 살펴봐야 한다.
2009년 비트코인이라는 전자화폐시스템이 등장했다. 그리고 그 기반 기술인 블록체인이 세상의 이목을 끌기 시작했다. 블록체인 기술은 분산장부 기술로 불리기도 한다. 데이터를 여러 컴퓨터에 나눠 보관하는 특성 때문이다. 블록체인 기술에 대한 이해를 돕기 위해 다음과 같은 상황을 살펴보자.
고객이 주문한 물건을 포장하고 배달하는 일에 참여하는 정도에 따라 수익을 나눈다고 하자. 이 일을 처리하기 위해서는 누가, 언제, 얼마나 일에 기여했는지를 기록하고 관리하는 작업이 필요하다. 가장 익숙한 방법은 관리자 1명을 두고 관리 업무를 맡기는 방식이다. 관리자는 참여자들이 일에 기여한 시간을 기록하고 그 장부를 잘 관리해야 한다. 관리자가 장부를 펼쳐 놓으면 거기에 각자가 시간을 기록하고 서명을 하면 된다. 물론 관리자도 그 시간이 정확하게 기록됐는지를 확인하고 서명을 한다. 나중에 이 장부는 정확하고 투명한 분배를 위한 기초 자료가 된다. 그런데 이 장부는 기록하는 과정에서나 혹은 기록한 이후에도 실제와 다르게 바뀔 수 있다. 관리자가 특정 참여자와 기록을 허위로 작성하거나 기록된 내용을 변조할 수 있는 가능성이 있기 때문. 또 기록한 장부가 훼손되거나 없어질 수도 있다. 그리고 관리자에게 수익의 일정 부분을 나눠 줘야 하는 문제가 생겨난다. 장부의 위조나 변조, 분실을 막기 위해 장부를 기록할 때 참여자들이 선정한 제3의 사람을 입회시키고 장부를 복사해 별도의 곳에 보관할 수도 있다. 이 같은 형식이 일반적인 일 처리 방식이다. 또한 이를 컴퓨터로 구현한 것이 지금의 일 관리 시스템이다. 그래도 관리자를 믿지 못하는 상황이 계속될 수 있다. 컴퓨터 기록도 믿기 어렵다는 주장이 나올 수도 있다. 실제로 이러한 사례는 종종 발생한다.
다른 방식을 생각해보자. 모든 사람이 함께 모여 장부를 기록하는 방법이 있다. A, B, C, D, E 5명이 있다고 가정해 보자. 그리고 5명은 각자가 자기 장부를 하나씩 갖고 있다고 가정하자. 먼저 각자가 한 일을 본인 장부에 먼저 기록하고 서명한다. 그리고 장부를 다른 참여자에게 순차적으로 전달한다. A는 B에게 전달하고 B는 C에게, C는 D에게, D는 E에게, E는 A에게 전달한다. 참여자 각자는 다른 사람으로부터 전달받은 장부를 확인하고 다시 자기가 한 일을 전달받은 장부에 적고 서명한다. 모든 사람이 이와 같은 일을 반복해서 하면 원래 본인이 갖고 있던 장부가 자기에게 돌아온다. 이 장부에는 5명이 기록하고 서명한 내용을 담고 있다. 결국에는 5명 모두가 기록하고 서명한 장부 5개가 만들어진다. 장부의 내용은 5개가 모두 동일한 내용을 담고 있다. 이 장부를 각자가 보관한다. 이로 인해 장부나 내용의 변조가 거의 불가능하다. 그러나 이 같은 일 처리는 상당한 어려움이 있다. 참여자가 많아지면 장부를 기록하는 과정에 너무 많은 시간이 소요되기 때문이다. 또 잘못 기록한 내용을 수정하기도 어렵다. 소수가 모인 경우에는 가능하나 복잡한 사회에서는 현실적으로 불가능한 방식이다. 이런 방식에도 문제가 있다. 중간에 누군가가 사실과 다르게 기록하는 일이 가능하기 때문이다.
여기서 기록의 방식을 조금 바꿔보기로 한다. 각자가 한 일을 쪽지에 적어 나머지 사람에게 전달한다. 그러면 A, B, C, D, E 5명이 자기 기록을 포함해 각각이 일한 내용을 기록한 5개의 쪽지를 갖게 된다. 이 내용을 근거로 1장의 장부를 각각 만든다. 그리고 5명이 한 일에 대한 합계를 각각 산출한다. 이 과정에서 가장 먼저 합계를 산출한 사람이 손을 들고 5장의 사본을 만들어 나머지 사람들에게 배포한다. 이를 받은 사람들은 그 합계가 맞는지, 각각의 기록과 빠짐없이 일치하는지를 점검한다. 이상이 없다면 그 기록을 장부 철에 넣어 보관한다. 만약에 내용이 일치하지 않으면 그 기록이 잘못됐음을 알리고 누구든지 정확한 자료를 만들 때까지 기록 정리 작업을 반복한다. 이런 방식으로 매일 장부를 만들면 그 일에 참가한 5명은 모두 동일한 내용의 장부를 각각 보유하게 된다. 이로 인한 장점은 많다. 각자가 한 일에 대해 모두가 투명하게 알 수 있다. 특정한 사람이 일의 결과를 바꾸고자 한다면 모두의 장부를 바꾸기 전에는 불가능하다. 그런데 이 방식 또한 참여자가 많아지면 장부 1개를 만드는 데 소요되는 시간이 길어진다. 실제로 구현하기 어려운 방식이다. 그런데 컴퓨터를 활용해 이러한 방식을 구현할 수 있다. 이러한 일 처리 방식을 컴퓨터를 이용해 가능하게 해준 게 바로 ‘블록체인’이다. 블록체인 방식은 모두가 참여하고, 모두가 그 참여 기록을 갖는 체계다. 여기에는 관리자도, 감독자도 따로 없다. 모두가 참여자이자 관리자이고 감독자가 된다. 앞에서 말한 1개의 장부가 블록체인에서는 하나의 블록이 된다. 이렇게 만들어진 블록을 서로 연결해주는 부분이 체인인데 보통의 경우는 ‘해시값’을 활용한다. 이를 간략하게 설명하면 다음과 같다. (그림 1)
특정 블록으로부터 해시값을 계산한다. 해시값은 해시 함수를 이용해 만들어 낸다. 이렇게 만들어진 해시값을 다음 블록에 별도의 데이터로 기록하고 새로운 블록을 만든다. 해시는 특정 데이터에서 일정한 계산 방식을 이용해 상대적으로 작은 값을 만들어 내는 작업이다. 앞에서 언급한 예에서 합계를 계산하는 일도 여기에 해당된다. 해싱은 특정 데이터로부터 해시 함수를 이용해 해시값을 만들어 내는 작업을 말한다. 해시값은 동일한 데이터를 해싱할 경우 항상 같은 값이 나오게 된다. 또한 데이터를 바꾸게 되면 다른 값이 나오는 구조다. 물론 해싱 대상이 되는 데이터에 비해 작은 값으로 만들어지기 때문에 확률적으로는 같은 해시값이 나올 수도 있다. 블록체인은 이러한 과정을 거쳐 다음 블록이 앞의 블록으로부터 연결되는 형태로 만든 구조다. [그림 1]에서와 같이 앞의 블록에서 만들어진 해시값을 계속해 다음 블록에 기록한다. 이러한 형태로 만든 구조가 블록체인이다.블록체인 기술적 특성앞에서 설명한 내용을 기초로 블록체인에 대한 기술적 특성을 살펴볼 필요가 있다. 블록체인에 기록된 데이터를 누군가가 바꾸는 경우다. [그림 1]에서 누군가 블록 1에 기록된 데이터를 바꾸었다고 가정하자. 그러면 이를 쉽게 알 수는 없다. 그런데 블록체인에 있는 데이터를 사용하고자 할 때 해당 블록을 다시 해싱해 본다. 그러면 데이터의 변경으로 인해 그 블록 다음에 기록된 해시값과는 다른 해시값이 나오게 된다. 이를 통해 특정 블록의 데이터가 바뀌었음을 알 수 있다. 이 경우 원래 데이터로 복구해야 할 필요가 있다. 더 나아가 누군가 데이터를 바꾸고 나서 해시값을 새로 계산하고, 또다시 다음 블록에 저장된 해시값을 계속 바꾸어 놓으면 데이터가 바뀌었는지를 확인하기 어렵다. 그동안의 시스템에서는 이 같은 데이터 변조 등에 대처하기 위해 별도로 데이터를 이중, 삼중 복사해 보관한다. 이러한 문제점을 해결한 결과물이 비트코인이다.