서울경제+ decenter

공유하기

닫기

[디센터 톺아보기]블록체인은 어떻게 '신뢰 네트워크'를 구축하나

  • 이일구 성신여대 교수
  • 2018-01-12 12:24:18
[디센터 톺아보기]블록체인은 어떻게 '신뢰 네트워크'를 구축하나
이일구 성신여대 융합보안공학과 교수


1990년 팀 버너스리는 ‘월드 와이드 웹’(인터넷) 첫 페이지를 만들면서 “우리가 웹에서 정보를 링크하면 사실 확인, 아이디어 창출, 상품 매매, 새로운 인간관계 맺음 등 모든 것이 아날로그 시대에는 감히 상상하지 못한 속도와 규모로 이뤄질 것”이라고 확신했다. 세상은 그의 예상대로 흘러갔다.

2008년 비트코인을 제안한 나카모토 사토시는 ‘비트코인:P2P 전자화폐 시스템’이라는 논문에서 “금융기관의 개입 없이 당사자끼리(P2P) 온라인 결제가 가능하고, 암호학적 증명으로 중앙의 신용기관을 대체할 수 있다”고 자신했다.

사토시의 말처럼 블록체인의 시작과 끝은 ‘신뢰’다. 블록체인은 ‘신뢰’에 대한 기존 관념을 부수고 새롭게 정의했다. 그는 “신뢰는 중앙기관이 아닌 개인간의 관계 속에서 기술로 뒷받침되고 인증될 수 있다”고 확신했다.

블록체인이 ‘어떻게 디지털 화폐를 중복해서 사용하지 못하게 하고’(이중지불 문제), ‘잘못된 정보를 걸러내는지’(비잔틴 장군 문제)에 대해선 지난 기고 “블록체인은 어떻게 ‘X맨’을 걸러내나”(▶바로가기)에서 설명했다. 이번에는 신뢰를 기술적으로 뒷받침하는 암호학적 증거에 대해 설명하고자 한다.

블록체인이 사용하는 ‘공개키 암호화 방식’(Public Key Infrastructure)은 오래된 암호화 기술이다. 달리 말하면 이미 여러 분야에 활용돼 충분히 검증된 셈이다. 사실 블록체인 혁신의 핵심은 기존에 널리 알려진 암호학(공개키 암호화 방식)과 게임이론(비잔틴 장군 문제), 소프트웨어 엔지니어링(분산원장)을 절묘하게 결합해 ‘신뢰 네트워크’를 구축했다는 점이다.

전문가들이 블록체인의 가장 큰 장점으로 꼽는 ‘위·변조가 불가능하다’, ‘해킹이 불가능에 가깝다’는 평가는 상당 부분 암호화 기술의 몫이다. ‘코딩을 통해 수학적으로 검증된 방법으로 신뢰성을 판별하고, 강력한 암호화를 통해 검증의 확실성을 높였다’고 말하지만, 이해하기는 까다롭다.

일단 블록체인의 ‘공개키 암호 방식’부터 이해해 보자.

광장 한가운데 금고가 놓여있다고 하자. 이 금고는 특별하게 제작됐다.

우선 ‘돈을 넣을 때 잠그는 열쇠’와 ‘돈을 꺼낼 때 여는 열쇠’가 다르다. 그리고 두 열쇠는 쌍으로 이뤄져 있어 같은 쌍으로만 작동한다. 그런데 돈을 넣을 때 여는 열쇠는 누구나 쓸 수 있도록 금고 옆에 있지만, 돈을 꺼내는 열쇠는 딱 한사람에게만 있다. 누구나 돈을 넣을 수는 있지만, 꺼낼 수 있는 것은 딱 한 사람밖에 없다.

그런데 이런 금고가 왜 필요할까? 이런 금고의 장점은 뭘까?

만약 서로 모르는, 신뢰할 수 없는 두 명이 돈을 주고 받는 상황에서 하나의 열쇠로 금고에 돈을 넣고 뺀다면 어떻게 될까? 믿고 거래하기가 쉽지 않다. 돈이 전달되지 않았을 때 또는 열쇠 복사나 도난, 분실이 발생한 경우 책임이 누구에게 있는지 정확히 말하기 어렵다.

그러나 두 개의 다른 열쇠를 쌍으로 사용한다면 모든 것이 명확해진다. 돈을 받을 사람은 금고의 위치를 알려주고 돈을 넣으라고 하면 된다. 돈이 있으면 넣은 것이고, 없으면 안 넣은 것이다. 돈을 넣는 사람이 누군지 몰라도 된다. 또 금고 안에 내용물은 넣은 사람과 꺼낸 사람만 알 수 있다. 기밀성과 익명성이 완벽하게 보장된다.

우편함으로도 설명이 가능하다. 가령 우편함의 위치를 공개해 누구나 물건을 넣을 수 있도록 하고, 우편함 열쇠는 딱 한 사람만 갖고 있는 식이다. 누구나 넣을 수 있지만 한 사람만 내용물을 볼 수 있다.

이 원리가 블록체인 기술에 적용된다.

가령 이몽룡이 성춘향에게 비밀편지를 보내고 싶다. 성춘향에게 두 개의 열쇠(공개키와 비밀키)를 준비한 후 공개키를 모두에게 공개하도록 한다. 비밀키는 성춘향 혼자만 갖고 있다. 이몽룡은 성춘향의 공개키로 편지를 암호화해 보내면 된다. 그러면 성춘향은 암호화된 편지를 비밀키로 풀어서 읽는다. 비밀키는 성춘향만 알고 있기 때문에 해커가 중간에 암호문이나 공개키를 빼내도 편지를 읽을 수 없다.

이처럼 중앙 관리자가 없는 블록체인이 데이터를 안전하게 전달하고, 거래 당사자를 인증하는데 ‘공개키 암호화 방식’을 사용한다. 그래서 블록체인 기반의 가상화폐를 암호화폐(Crypto Currency)라고 부르고, 이 기술은 웹 보안 프로토콜과 공인인증서에서도 많이 사용된다.

공개키와 비밀키를 풀기 위해선 슈퍼 컴퓨터로 수십 년 이상 작업해야 한다고 한다. 왜 그럴까?

암호화에는 수학적 원리, 그중에서도 소수(1과 그 수 자신 이외의 자연수로 똑 떨어지게 나눌 수 없는 자연수)가 주로 활용된다. 컴퓨터가 있다면 두 개의 소수를 곱한 결과가 쉽게 나온다. 그러나 두 소수를 곱한 결과 값을 주고 두 소수를 찾아내라고 하면 찾기가 어렵다.

가령 두 소수 11,927과 20,903이 있다. 둘을 곱하면 249,310,081이 바로 나온다. 그런데 249,310,081을 주고 두 소수를 찾으라고 하면 엄청난 시간이 걸린다. ‘공개키 암호화 방식’은 249,310,081을 공개키로 준다. 그러면 이 숫자를 이용해 데이터를 암호화한다. 이를 풀기 위해선 11,927과 20,903을 알아야 한다. 만약 공개키를 9자리가 아닌 20자리, 30자리 등 큰 숫자로 만들면 슈퍼 컴퓨터 몇십 대를 동원해도 수십 년이 걸린다.

이 원리를 블록체인 기반의 암호화폐에 적용해 보자.

성춘향은 미국에 있는 이몽룡에게 1 비트코인을 전달하려고 한다. 성춘향은 이몽룡의 공개키(전자지갑)로 암호화된 1 비트코인 지불내역 암호문을 블록체인 네트워크에 공개한다. 이몽룡은 개인키로 자신이 암호문에 포함된 1비트코인의 주인임을 증명하고 코인을 가져간다. 공개키로 거래 대상을 지정하고, 개인키로 소유권을 증명하는 방식이다.

이처럼 블록체인은 공개키를 이용해 만든 주소로 금전 또는 데이터를 보내고, 비밀키로 디지털 서명을 한 후 소유권 이전을 블록체인 네트워크 참여자 모두에게 알린다. 이 과정에서 공개키와 비밀키를 이용한 개인 식별이 불가능하다. 특정할 수 없는 누군가가 다른 누군가에게 얼마를 보냈다는 사실은 투명하게 공개되지만, 거래 당사자의 개인정보는 노출되지 않는다.

또 계좌 주소 역할을 하는 공개키와 소유권을 증명하는 개인키만 있으면 언제 어디에서나 거래가 가능하다. 매번 거래할 때마다 새로운 공개키와 비밀키 쌍을 생성해서 거래하면 각 거래의 연관성을 찾기도 어렵다. 그래서 랜섬웨어에 대한 몸값 또는 마약, 불법무기 매매 등 블랙마켓의 지불 수단으로 악용되기도 한다.

그렇다고 블록체인을 활용한 가상화폐 거래가 완전한 익명성 뒤에 숨을 수 있는 것은 아니다.

거래 과정에서 기록되는 IP 주소를 이용하면 추적할 수 있다. 물론 여러 개의 IP 주소를 이용하거나 IP 주소를 숨겨서 거래하면 추적이 어렵다. 그러나 불가능하지는 않다.

또 블록체인 그 자체는 완전한 익명성을 보장하지만, 환전 계좌는 실명이기 때문에 완전한 익명성이 불가능하다. 범죄 용의자가 사용한 환전 계좌와 연동된 블록체인 거래 주소와 거래소 내부의 거래 정보를 추적하면 블록체인에 기록된 거래액을 모두 밝혀낼 수 있다. 거래소가 해킹되면 블록체인의 익명성도 무력화되고 투명성에 의해 모든 거래 내역이 해커에게 넘어갈 수 있다는 의미이기도 하다.

많은 과학자들은 블록체인이 우리의 삶과 모든 산업 분야에 미친 인터넷의 잠재력과 파급력을 뛰어 넘는 파괴적 혁신 기술이라고 예견한다. 인터넷 혁명을 통해 데이터 독점의 문제를 해결했다면, 블록체인 혁명을 통해 모든 데이터를 투명하게 해서 신뢰 문제를 해결하고 익명성을 향상시켜 불필요한 개인정보의 노출을 최소화할 것이다.

그러나 블록체인의 투명성과 익명성을 범죄에 악용하거나 권력 기관이 남용한다면 선의의 피해자가 발생할 것이 자명하다. 블록체인이 더 편리하고 안전한 인터넷 세상을 위한 기술로 활용되려면 날로 진화하는 범죄자들의 활동을 빠르고 정확하게 추적하는 기술 개발과 함께 개인정보 사용 및 추적 이력을 개인이 확인하고 관리할 수 있는 기술 또한 중요하다.


<저작권자 ⓒ 서울경제, 무단 전재 및 재배포 금지> XC
이 기사를 공유하세요.

이메일 보내기

보내는 사람

수신 메일 주소

※ 여러명에게 보낼 경우 ‘,’로 구분하세요

메일 제목

전송 취소

메일이 정상적으로 발송되었습니다
이용해 주셔서 감사합니다.

닫기