[디센터 톺아보기]블록체인은 어떻게 ‘X맨’을 걸러내나

이일구 성신여대 융합보안공학과 교수


“디지털 세상에서 뭔가 복제할 수 없는 것을 만들어낸다는 것은 큰 가치를 지닌다.” 에릭 슈미트 알파벳 회장은 지난 2014년 블록체인 기반의 비트코인에 대해 이같이 평가했다. 그의 말처럼 블록체인은 ‘제3의 공인기관 없이 당사자들이 믿고 거래 할 수 있는 신뢰의 합의 알고리즘을 구축’했고, 이는 혁명과도 같은 큰 변화의 단초를 제공했다.

우리는 정보의 홍수 시대에 살면서 범람하는 거짓 정보에 종종 진실을 놓치곤 한다. 미국은 2016년 대통령 선거를 치르면서 ‘가짜뉴스’에 곤혹을 치렀다. 대선 기간 동안 “프란치스코 교황, 트럼프를 지지하며 전 세계를 놀라게 하다” 등 가짜뉴스가 870만 건 공유되면서 주요 언론사 뉴스의 공유 수 730만 건을 앞질렀다. 옥스포드사전도 2016년 세계의 단어로 ‘탈진실(post-truth)’을 꼽았을 정도다.

컴퓨터 등 기계도 마찬가지다. 특정 부품에서 발생한 에러로 인해 잘못된 정보가 전달되면 시스템 전체가 오작동을 일으킬 수 있기 때문에 가짜 정보를 골라내는 것은 무척이나 중요하다.

세계 각국은 잘못된 정보를 걸러내고 사회 시스템을 안정적으로 운영하기 위해 정부나 중앙은행 등 신뢰할 수 있는 제3의 기관을 통해 정보를 인증하고, 거래를 보증한다. 그러나 이용자들은 상당한 비용을 부담해야 하고, 외부기관의 잘못된 정책이나 판단으로 발생한 피해도 고스란히 떠안아야 한다. 만약 제3의 기관 없이 참여자들이 자발적으로 믿고 거래할 수 있다면, 일명 분산 컴퓨팅을 할 수 있다면 비용도 줄이고 외부기관이 만든 위험으로부터 자유로울 수 있다.

그러나 당자자끼리 믿고 거래하기 위해선 넘어야 할 아주 높은 산이 존재한다. 바로 곳곳에 숨어서 가짜정보를 만들어내는 ‘X맨’을 걸러내는 것이다. 특히 돈을 두 번 쓰는 것과 같은 ‘중복사용’을 방지하는 기술은 분산 컴퓨팅 분야의 대표적 난제로 꼽힌다.

마이크로소프트도 중앙통제 시스템이 없는 상황에서 네트워크 참여자들끼리 어떻게 합의해서 통일된 의사결정을 할 수 있을지를 놓고 고민했다. 이에 대한 해결책으로 찾아낸 것이 ‘비잔틴 장군 문제’다.

상황은 이렇다. 장군 5명이 비잔틴 성을 공격하기 위해 성 외곽에 진을 쳤다. 성을 함락하려면 적어도 3명의 장군이 동시에 공격을 해야 한다. 그런데 5명의 진영은 멀리 떨어져 있어 전령을 통해서만 의사소통이 가능하다. 또 5명의 장군 중 배신자가 있어 서로를 믿을 수 없다. 이런 상황에서 최소 3명의 장군이 동시에 공격해 성을 함락하려면 어떻게 해야 할까?

이 문제는 ‘왕’과 같은 중앙기관이 있다면 쉽게 해결된다. 왕이 5명의 장군에게 공격명령을 내리면 장군은 왕만 믿고 공격하면 된다. 그러나 앞서 언급했듯 중앙기관은 부작용도 크다. 왕이 전쟁마다 나서면 비용도 많이 들고, 위험하고, 비효율적인 것과 같다.


‘왕’이라는 중앙기관 없이 장군들, 네트워크 참여자들끼리 분산 통제하는 상황에서는 항상 이런 문제에 직면한다. 어떤 참여자도 전체에 대한 통제력을 갖지 못하고 참여자들끼리 합의를 통해 의사 결정을 해야 하는 상황에서 배신자, 가짜정보를 걸러내는 일은 쉽지 않다. 서로 신뢰할 수 없는 참여자들끼리 어떻게 합의를 이끌어낼 수 있을지에 대한 근본적인 문제를 풀어야 한다.

블록체인은 신뢰할 수 없는 분산 네트워크의 딜레마, ‘X맨’을 찾아내는 일명 ‘비잔틴 장군 문제’를 ‘해시와 ‘작업 증명(proof-of-work)’을 활용해 해결했다

일단 ‘해시(Hash)’는 한 방향 계산은 쉬운데 역방향 계산은 매우 어려운 특징을 갖는 함수다. 가령 ‘10+990’라는 문제는 1,000이라는 답이 쉽게 구해진다. 하지만 ‘1,000을 만드는 자연수의 합’은 너무 많아서 찾기 어렵다. 이처럼 출력 값만 주고, 해시 특징을 갖는 복잡한 수식의 입력 값을 구하라고 하면 문제를 푸는데 상당한 시간이 걸린다. 어려운 문제는 최고 성능 컴퓨터로도 몇십 년이 걸린다.

‘작업 증명’은 ‘해시’ 값을 찾는 채굴을 통해 새로운 블록을 만들어 블록끼리 연결하는 것을 말한다. 흔히 말하는 가상화폐 ‘채굴’은 일정 시간 동안 발생한 거래 내역인 출력 값에 대해 해시 조건을 만족하는 입력 값을 찾는 과정이다. 또 해시 조건을 만족하는 값을 가장 빨리 찾는 자에게는 보상금이 주어진다. 그래서 여러 명이 협력해 범위를 나눠서 채굴을 하고 경쟁에 승리할 경우 보상금을 나눈다. 이렇게 해시 값을 구해서 채굴 작업 증명에 성공한 경우 그동안의 거래 내역 데이터는 기존의 블록들과 연결된다.

물론 해시와 작업 증명 방법이 블록체인 기술에서 처음 도입된 것은 아니다. 이 방법은 이메일을 보내기 위해 해시 연산을 했다는 증거를 이메일과 함께 보내는 해시캐시(Hashcash) 기술과 매우 유사하다. 해시캐시 기술은 스팸 필터링과 서비스 거부 공격을 방어하는 기술로 오래전부터 사용했다. 그러나 많은 전문가들은 블록체인 기술이 인터넷 기술을 능가하는 세상을 바꿀 모멘텀이라고 확신한다. 왜 일까?

블록체인은 해시캐시 기술을 활용해 작업 증명을 할 뿐만 아니라, 블록과 블록을 해쉬로 연결하고 블록체인의 신뢰가 강화되도록 네트워크 참여자의 경쟁적 검증을 유도할 수 있어서 데이터를 안전하게 거래하는 플랫폼이기 때문이다.

최근에 생성된 블록의 해시 값이 다음에 생성될 블록의 데이터 일부와 함께 해시 값을 만드는 조건이 되도록 함으로써 이전 블록과 다음 블록은 해시 값이라는 연결고리로 연결돼 블록체인을 만든다. 해시 값을 구하는 것은 어렵지만 일단 해시 값이 구해지면 맞는 답인지 쉽게 확인이 가능하다. 그래서 블록체인 네트워크 참여자는 각자 쉽고 빠르게 최신 블록체인이 정당한지 확인할 수 있고 검증이 완료된 블록체인은 순식간에 전체 네트워크로 퍼진다.

블록체인 네트워크에 연결된 참여자가 데이터를 블록에 담아 다른 구성원에게 전달한다. 그러면 이 데이터는 블록체인에 기록되고, 구성원들은 이 기록을 모아 두었다가 새로운 블록에 기록해 기존의 블록체인에 연결하는 작업을 이어간다.

결국 더 많은 블록이 쌓인 블록체인은 네트워크에 분산된 더 많은 참여자가 검증했고, 그래서 더 높은 신뢰도를 갖는다는 것을 의미한다. 그러므로 각 참여자는 더 긴 블록체인을 채택하고 짧은 블록체인은 버리는 일을 반복한다. 결국 마지막까지 살아남은 블록체인이 최종 승자가 되고 하나의 블록체인만 유효하게 되면서 중복거래에 대한 우려가 사라진다. 그리고 더 긴 블록체인을 빨리 수용하고 그 위에 블록을 쌓아야 보상을 받을 확률이 높기 때문에 네트워크 참여자들은 네트워크의 신뢰가 강화되는 방향으로 동작한다.

이처럼 블록체인은 분산 컴퓨팅 분야에서 난제로 여겨져 오던 ‘비잔틴 장군 문제’의 해결책으로 제시된 혁신적 아이디어를 활용해 제3의 공인기관 없이 당사자간 믿고 거래할 수 있는 신뢰를 구축했다.

기존의 중앙 집중형 금융 시스템은 신뢰할 수 있는 제3자 기관을 통해 모든 거래가 성립되기 때문에 비효율적이고, 비용이 많이 들고, 사기와 오용의 대상이 된다. 이에 반해 블록체인 기반의 금융 시스템은 중앙 집중화된 신뢰 기관 없이 네트워크에 분산된 거래자 간에 거래를 성사시킬 수 있어서 더 싸고 효율적이고 안전한 거래가 가능하다. 블록체인을 ‘세상을 바꿀 기술’로 꼽는 이유다.


<저작권자 ⓒ 서울경제, 무단 전재 및 재배포 금지>