한호현 경희대학교 컴퓨터공학과 교수

▲ 한호현 경희대학교 컴퓨터공학과 교수

[컴퓨터월드] 최근 잇달아 2건의 국내 가상화폐거래소 해킹 사건이 있었다. 거래소의 거래가 기준으로 모두 800억 원에 가까운 가치의 가상화폐가 범죄자의 손에 넘어갔다. 국내 사건으로는 현재까지 가장 큰 규모이다. 해외에서 발생한 해킹사건과 비교해도 결코 작은 규모는 아니다.

이를 두고 또 다시 여러 말이 회자된다. 블록체인이 해킹 당한 것이 아니라 거래소가 해킹을 당했다는 주장이다. 거래소에 정보보호관리체계(ISMS, Information Security Management System) 인증을 의무화해야 한다는 주장도 있다. 무엇보다도 규제를 통한 정부의 개입이 필요하다는 의견이 많다. 결국은 거래소의 보안체계를 강화해야 한다는 것이다. 이를 통해 투자자를 보호해야 한다는 명분이다. 이런 주장에 의견을 달리할 명분이 없어 보인다. 그러나 그 과정을 들여다보면 이러한 주장들에는 문제가 있다. 그 문제점이 무엇인지 구체적으로 살펴보고, 가상화폐거래소에 대한 보안 대책이 있다면 무엇인지 살펴보기로 한다.

다음과 같은 상황을 살펴보자. 10년 뒤인 2028년의 가상 상황이다. 집행관이 집을 비워달라고 찾아왔다.

집행관 : 집을 내일까지 비워주셔야겠습니다.
집주인 : 아니, 아직 집이 팔리지 않았는데. 왜 집을 비워야 하나요?
집행관 : 블록체인 등기부를 보세요. 주인이 홍길동이잖아요. 살고 계신 분은 홍길동 씨 아니시죠?
집주인 : 얼마 전에 블록체인부동산거래소가 해킹을 당해서 그런 것이잖아요.
집행관 : 네, 그렇게 주장하시는 분들이 많아요. 그러나 블록체인은 해킹도 안 되고 위·변조도 되지 않잖아요. 부동산 팔고 해킹 당했다고 주장하시는 분들이 어디 한둘인가요. 집을 비워주셔야겠습니다.
집주인 : 블록체인부동산거래소가 해킹을 당했잖아요. 블록체인 신문에도 기사가 났어요.
집행관 : 그렇죠. 그것은 거래소가 해킹을 당한 거잖아요. 블록체인은 해킹도 안 되고 위·변조도 안 되고요. 블록체인부동산 등기부에 보시면 주인이 홍길동 씨잖아요.
집주인 : 아니 해킹을 당해서 그렇잖아요, 이거 어디다가 얘기해야 하나요?
집행관 : 블록체인은 해킹을 할 수 없습니다. 그리고 P2P시스템 모르세요? 분산자율시스템은요? 누구도 통제하지 않잖아요. 우리도 스마트컨트랙에 따라 집행하러 나왔어요. 스마트컨트랙을 맺었잖아요.
집주인 : 이 시스템 누가 만든 건가요?
집행관 : 여기 기록되어 있네요. 블록체인행정시스템인데요. 2018년 과학기술정보통신부 ‘블록체인 기술 발전전략’이 그 시작인데요. 찾아보세요. 온두라스 사례도 언급되어 있네요. 우리가 처음은 아니래요.


가상화폐는 블록체인에 담겨져 있다. 블록체인은 해킹이 불가능하다고 한다. 그런데 가상화폐거래소가 해킹을 당했는데 왜 블록체인에 기록되어 있는 가상화폐가 사라지는 것일까? 위의 사례와는 어떻게 다른가. 위의 사례는 가상화폐를 부동산으로 대체하여 살펴봄으로써 보다 명확하게 사건의 현상과 그 해법을 이해하고자 함이다.

한 번쯤은 이런 생각을 해볼 필요가 있다. 블록체인은 해킹이 불가능한데 왜 가상화폐거래소 해킹으로 블록체인에 있는 가상화폐가 남의 것이 되는가? 부동산 거래를 블록체인으로 한다고 하는데 블록체인부동산거래소가 해킹을 당하면 어떠한 일이 발생하는가?


블록체인도 해킹 가능

한마디로 블록체인도 해킹이 가능하다. 가상화폐를 해커가 노리는 이유이고, 거래소 해킹이 블록체인 해킹으로 이어지는 이유이다. 블록체인은 기본적으로 P2P(Peer to Peer) 네트워크 기반이다. 각 Peer는 대개의 경우 PC와 같은 컴퓨터 시스템이 노드를 이룬다. 때로는 여러 컴퓨터가 개념적으로 하나의 노드로서 작동하기도 한다.

블록체인은 데이터를 여러 컴퓨터가 동일하게 보관하는 방식을 취한다. 동일하게 보관되어 있는지를 보증하기 위해 암호학적인 방법을 사용한다. 즉 해시 값을 이용한다. 데이터를 일정 크기로 만드는데 이를 블록이라고 한다. 각 블록에서 해시 값을 추출하고 이 값을 다른 블록의 데이터에 포함시킨다. 이 같은 과정을 반복적으로 하여 만들어 낸 구조가 블록체인이다.

비트코인의 경우 이러한 해시 값을 만드는 데만 평균 10분이 소요된다. 이를 통해 전체적인 데이터의 안전성을 확보한다. 아래 <그림 1>에서처럼 각각의 노드는 다른 노드의 데이터를 동일하게 갖고 있다.

▲ 블록체인 데이터 저장 개념도

그런데 여기에는 큰 약점이 존재한다. 외형적으로는 블록체인의 데이터를 누구도 손쉽게 변경할 수 없는 것처럼 보인다. 통합적인 관점에서 보면 맞다. 그러나 개별적인 데이터에 대해서는 상황이 다르다. 각각의 데이터는 그 데이터를 처리할 수 있는 권한이 각각의 노드에 있다. 이 권한을 이용해 데이터를 바꿀 수 있다. 그 권한을 누군가가 훔쳐서 데이터를 바꾸는 행위가 해킹이고 이를 통해 데이터 위조가 된다.

가상화폐를 훔쳐가고, 부동산의 주인을 바꾸는 행위가 여기에 해당된다. 즉 컴퓨터 A(뒤의 글에서 편의상 노드 A로도 표현하기도 함)의 입장에서만 본다면 위의 <그림 1>은 아래의 <그림 2>와 같은 상황이 된다. 즉 컴퓨터 A의 입장에서만 본다면 컴퓨터 A는 다른 노드의 데이터를 언제든지 자유롭게 변경시킬 수 있는 권한을 갖고 있다. 결국 블록체인 네트워크의 모든 노드에 있는 자기 권한의 데이터를 변경시킬 수 있는 것이다. 해커는 이를 노린다. 컴퓨터 A가 갖고 있는 권한을 탈취하고자 한다. 그 행위가 해킹이다. 이러한 해킹으로 권한을 탈취하는데 그 결과로 데이터가 바뀌는 것이다.

▲ 컴퓨터 A의 입장에서 본 블록체인 데이터 구조

결국 블록체인에 저장된 데이터만을 놓고 본다면 단일 노드가 있는 경우와 같다. 즉 아무리 많은 다른 네트워크 컴퓨터에 데이터가 저장되어 있더라도 하나의 컴퓨터에 저장되어 있는 것과 같다는 이야기이다. 그리고 블록체인에서 이를 관리하는 권한을 나타내는 것이 개인키(Private Key)이다.

▲ 컴퓨터 A의 입장에서 본 블록체인 데이터 처리 권한


개인키의 불법적 탈취로 해킹

다시 정리하면 블록체인에 데이터를 저장하고 있는 개별 노드의 입장에서 블록체인 보안을 바라본다면 단일 컴퓨터에 데이터를 저장하고 있는 보안 수준과 같다는 점이다. 즉 각각의 노드의 보안 수준이 자기 데이터의 보안 수준을 결정하는 것이다. 블록체인 전체가 가져다주는 이점은 내 데이터가 망실되었을 때를 대비한 안전한 백업의 역할을 해 주는 기능이다.

이제 가상화폐거래소 이야기로 돌아가 보자. 가상화폐거래소는 가상화폐 블록체인 입장에서 본다면 <그림 4>처럼 하나의 노드에 불과하다.

▲ 블록체인에 연결된 가상화폐거래소 시스템

가상화폐 거래소 시스템을 구성하는 컴퓨터가 아무리 많더라도 가상화폐 블록체인 입장에서는 P2P 네트워크에 연결된 컴퓨터 하나만이 그 대상이다. 해커는 블록체인 네트워크에서 개별 컴퓨터의 취약점을 노린다. 개별 컴퓨터의 보안 수준이 블록체인에 올려 있는 데이터의 보안 수준이다. 가상화폐의 해킹은 이 부분을 겨냥해서 이뤄진다.

대부분 해킹을 방지하기 위해 개인키를 블록체인에 연결된 컴퓨터에 보관하지 않도록 권고한다. 그러나 가상화폐거래소 입장에서 본다면 지속적인 데이터, 즉 가상화폐의 거래를 위해 네트워크에 연결해 둔 컴퓨터에 개인키를 둘 수밖에 없는 상황이 된다. 그리고 가상화폐거래소 블록체인 시스템에 있는 개인키로 많은 양의 가상화폐를 통제할 수 있다. 때문에 해커는 가상화폐거래소 시스템을 해킹하게 된다. 가상화폐거래소의 컴퓨터 중에서 블록체인 네트워크에 연결된 컴퓨터에서 개인키를 가져가는 일이 해커의 목표이다. 이런 사항이 블록체인 해킹의 핵심 내용이다.

그런데 블록체인은 해킹이 불가능하다는 주장을 편다. 이러한 주장은 블록체인 전체 데이터를 동시에 해킹하는 것이 불가능하다는 점을 오인한데서 비롯된다. 그러나 개별적인 데이터를 해킹하는 것은 가능한 일이다.

▲ 개별적인 데이터를 해킹하는 개념도

<그림 5>에서와 같이 각각의 개별 데이터를 해킹하는 방식으로 블록체인 데이터를 위조한다. 예를 들어 <그림 5>에서 데이터 A1을 통제할 수 있는 A1의 개인키를 해킹해 가상화폐를 다른 사용자에게 보낼 수 있다. 그 개인키가 가상화폐거래소인 경우에 많은 전문가들이 가상화폐거래소가 해킹을 당한 것이지 블록체인이 해킹을 당한 것이 아니라고 주장한다.

이 같은 주장을 그대로 받아들인다면 세상에는 해킹당하는 데이터는 존재하지 않게 된다. 은행 시스템에서도 마찬가지이다. 은행 시스템이 해킹을 당하는 것이 아니라 개인 PC가 해킹을 당한 것이라고 주장해야 한다.

결론적으로 블록체인은 개인키의 불법적인 탈취로 해킹이 이뤄진다. 여기에서 대비책을 찾아야 한다. 가상화폐 해킹을 두고 ISMS를 의무화해야 한다는 주장을 한다. 이는 블록체인 해킹이 어떻게 이뤄지고 있는지를 모르는 상태에서 나오는 잘못된 대책이라 할 수 있다. 개인키를 어떻게 안전하게 보관할 수 있는지만 논의를 하면 된다.

왜 ISMS의무화가 필요한가. 가상화폐 거래소가 해킹을 당하더라도 가상화폐를 보호하기 위해서는 블록체인의 데이터를 처리할 수 있는 개인키만 안전하게 지키면 된다. 나머지는 가상화폐 보호와는 무관하다. 그런데도 ISMS 도입을 의무화해야 한다고 한다. 블록체인 시스템은 더 나아가 P2P 체계의 시스템이다. 모두가 각자의 컴퓨터를 관리해야 한다. 그런데 대규모 시스템의 보안 관리에 적합한 ISMS를 적용해야 한다는 주장은 타당하지 않다.


개인키 관리 강화가 대안

가상화폐의 해킹을 방지하기 위해서는 실제로 다른 차원의 접근이 필요하다. 한마디로 개인키에 대한 관리를 강화하는 방안을 마련해야 한다. 몇 가지 대안을 제시한다면 다음과 같다.

첫째, 현재의 중앙집중식 가상화폐거래소 시스템을 P2P 기반으로 바꾸어야 한다. 대규모 가상화폐 해킹을 방지할 수 있고 해킹의 책임 소재도 분명해지는 장점이 있다.

둘째, 개인키에 대한 관리 및 통제에 대한 가이드라인과 관련 기술의 개발이 필요하다. 개인키가 블록체인 네트워크에 연결되는 일을 최소화하도록 해야 한다. 해킹의 가능성을 줄이는 일이다. 불가피하게 지금의 중앙집중식 가상화폐거래소를 운영해야 한다면 개인키 관리 방식을 개선해야 한다. 개인키를 운영하기 위하여 다수의 관리자가 권리를 행사할 수 있도록 하는 가장 저수준의 대안에서 시작할 필요가 있다. 또한 개인키가 저장된 컴퓨터가 연결된 상태에 있어서도 해킹이 용이하지 않도록 보안영역에 저장하는 방식도 고려해야 한다.

셋째, 가상화폐 거래시스템과 블록체인 시스템과 물리적인 분리가 필요하다.

최소한 위의 3가지 대안이 필요하다. ISMS의무화나 피해보상 법제화 등은 가상화폐의 해킹이라는 본질에서 벗어나 있다. 블록체인의 해킹이 어떻게 이뤄지고 있는지를 제대로 파악하지 못한 상태에서의 주장이다. 최근의 가상화폐 해킹 사건은 블록체인의 해킹이 구체적으로 어떻게 발생하는지를 다시 살펴 볼 수 있는 계기가 되어야 한다. 막연하게 블록체인은 해킹이 불가능하고, 위·변조가 불가능하다는 주장으로는 잇따라 발생하는 가상화폐 해킹 피해를 막을 수 없다.

이제라도 블록체인에 대한 본질을 명확하게 이해하고 대비책을 제대로 마련해야 한다.

저작권자 © 아이티데일리 무단전재 및 재배포 금지