LOGO

돋보기

빙글빙글 세상이야기-블록체인

블록체인은 정말 안전한가?

  • (2018-06-22 09:50)


말도 많고 탈도 많았던 가상화폐 열풍은 그 근간이 되는 블록체인 기술에 사람들의 이목을 끄는데 한몫을 했다. 차세대 보안방법으로 널리 알려진 블록체인은 어느새 디지털 콘텐츠나 기록관리나 핀테크에 활용될 수 있는 기술로 자리잡기 시작했다. 그러나 난공불락이라 알려진 블록체인 보안이 정말 뚫리지 않는 것일까?
 

블록체인 보안 기본원리
나카모토 사토시(Nakamoto Satoshi)라는 가명을 쓰는 인물이 2007년 글로벌 금융위기 사태를 통해 중앙집권화된 금융시스템의 위험성을 인지하고 개인 간 거래가 가능한 블록체인(blockchain) 기술을 고안한 것이 그 시작이었다. 블록체인은 말 그대로 블록(block)들을 연쇄적으로 묶어 놓은 체인(chain)이다. 각각의 블록은 블록체인 네트워크 내에서 벌어진 일들을 기록하는 장부의 역할을 한다. 기존 중앙서버가 있어 기록을 보관하던 방식과는 달리 블록체인은 모든 사용자에게 기록을 보여주고 사로 비교하도록 해 위조를 막는다.


블록체인 기술에서 블록에는 일정 시간 동안 확정된 거래 내역이 담기며 거래 내역을 결정하는 주체는 사용자다. 이 블록은 네트워크에 있는 모든 참여자에게 전송돼 참여자들은 해당 거래의 타당성 여부를 확인한다. 승인된 블록만이 기존 블록체인에 연결되면서 송금이 이루어지게 되는 구조로, 거래장부를 공개하고 분산해 관리한다는 의미에서 ‘공공 거래장부’나 ‘분산 거래장부(Distributed Ledgers)’로도 불린다.

 

블록체인은 크게 퍼블릭 블록체인과 프라이빗 블록체인으로 나뉜다. 퍼블릭 블록체인은 모두에게 개방돼 누구나 참여할 수 있는 형태로 비트코인, 이더리움 등 가상통화가 대표적이다. 프라이빗 블록체인은 기관 또는 기업이 운영하며 사전에 허가를 받은 사람만 사용할 수 있다. 참여자 수가 제한돼 있어 상대적으로 속도가 빠르다. 


비잔틴 장군의 딜레마​

‘비잔틴 장군의 딜레마(Byzantine Generals Problem)’는 블록체인이 등장하기 전까지 컴퓨터 공학계에서 수십 년간 해결하지 못한 문제였다. 비잔틴장군의 딜레마란 비잔티움 제국에서 실제로 일어난 일은 아니며, 1982년 분산컴퓨터의 대가인 레슬리 램포트(Leslie Lamport)가 동료와 함께 발표한 연구 논문에서 사용한 표현이다.

비잔틴 장군의 딜레마에서 비잔틴 군단은 성을 함락시키기 위해 절반 이상의 아군들이 동시에 공격해야 하는 상황이다. 그런데 군을 이끄는 장군들은 서로 떨어져 있어 전령으로만 통신이 가능하며 각 장군은 가장 가까이 있는 장군에게 연락을 해야한다.

그런데 장군들 중에는 배신자가 있어 배신자는 자신이 전해들은 공격 시간이 아닌 다른 시간을 다른 장군에게 전해 공격을 실패하게끔 하려한다. 배신자에게 정보를 들은 장군은 그 시간이 맞는지 아닌지 알 수 없어 그대로 가까이에 있는 장군에게 전하게 되고 결국 성을 함락할 수 없다는 것이다.


비잔틴 장군의 딜레마를 해결하기 위한 알고리즘을 찾는 것은 오랫동안 개인 간(P2P) 분산 네트워크 분야의 미해결 난제였다. 그러다 블록체인이 등장하면서 비잔틴 난제가 해결됐다. 


비잔틴 장군의 딜레마를 예를 들어 설명하면 모든 장군이 10분정도 걸려야하는 수학문제를 풀기로 하고 이를 풀어야 공격시간을 알 수 있도록 한 것이다. 해답을 먼저 찾은 장군이 이를 풀이와 함께 공유하고, 이를 수신한 다른 장군은 정답과 풀이과정을 확인 뒤 새로운 문제의 답을 이어 붙여 전달, 다음 장군도 답과 풀이를 이어 붙여 작업을 이어가는 작업을 반복한다. 


이 과정을 통해 장군들은 과반수가 문제를 푸는 과정에 참여했고, 10분마다 문제와 답을 공유하면서 메시지가 중복되지 않고 정리됐음을 확인할 수 있어 믿을 수 있다는 것이다.


언뜻 보면 블록체인의 모든 사용자가 장부를 대조하므로 해킹을 통한 공격이 통하지 않는 것처럼 보인다. 그러나 반대로 말하자면 모든 장부를 대조하는데 과반수인 51%가 조작된 장부를 가지고 있다면 이론적으로 막을 방법이 전혀 없다는 것이다. 조작된 기록이 옳은 것으로 인정된다는 것. 이를 두고 51% 공격(51% attack)이라고 하며, 어느 정도 성숙한 블록체인에서는 불가능에 가깝다고 하지만 가능한 일이다.


실례로 2014년 GHash.io(지해쉬)가 일시적으로 비트코인 해싱 파워 51%를 초과하는 일이 발생하여 가격이 폭락한 적이 있었다. 지해쉬 측에서는 의도적으로 넘긴 것이 아니라고 했지만 마음만 먹으면 조작이 가능했던 아찔한 사고였다. 지해쉬는 마이닝풀에 참여하고 있던 개인들을 떼어내 문제 자체는 해결됐지만 그 위험성에 대한 경각심을 품기에는 충분한 사례가 됐다.


계산 속도의 차이를 이용한 공격

최근에는 모나코인(monacoin)이 탈취된 바 있어 실제로 기록조작이 행해질 수 있다는 것으로 드러났다. 올해 5월 14일부터 15일 사이에 일어난 이번 사건은 ‘블록보류공격(Block Withholding Attack, 이하 BWA)’를 당한 것으로 거래소에 약 1억 원 정도의 금전적인 피해를 입혔다.

BWA는 데이터의 집합인 블록의 연결 길이가 긴 쪽이 정당한 값으로 여기는 것을 여기는 규칙을 악용한 것이다. 블록은 계산값을 찾아내는 채굴에 의해 형성되는데 보통 채굴자들은 블록을 찾으면 바로 네트워크에 선언한다. 가장 먼저 찾아낸 사람에게 보수로 가상화폐가 주어지기 때문이다. 그러나 연산속도가 높은 유리한 조건에 있다면 블록을 선언하지 않고 몰래 계속 다음블록을 채굴해나가는 것이 가능하다. 공격하는 사람은 뒤에서 선언으로 드러난 블록체인보다 더 길게 자신만의 블록체인을 만든다. 그리고 타깃으로 한 거래소에 그 가상화폐를 입금하고 다른 가상화폐로 교환한 뒤 재빨리 인출한다. 그 뒤 몰래 채굴해오던 블록들을 한 번에 선언하게 되면 더 길게 이어진 블록이 정당성이 있다고 보는 특징으로 인해 본래 블록체인의 거래내역이 사라지게 된다.


모나코인 사건의 경우 라이브코인에 모나코인을 입금하고 거래소 라이브코인(Livecoin)을 통해 매각해 다른 코인으로 출금한 뒤, 블록체인에 BWA를 감행해 라이브코인으로 입금되지 않도록 하고 돌아온 모나코인을 개인 지갑에 넣는 방식으로 공격이 진행됐다.

이 사건의 전말은 5월 15일 가상화폐 거래소 라이브코인이 가상화폐 포럼 ‘Bitcointalk’에 글을 남기면서 알려졌다. 라이브코인에서 이중지불 사건이 일어나면서 모나코인에 문제가 발생했다는 것을 발견하고 모나코인 개발자의 연락처를 찾고 있다는 글이었다. 같은 날, ‘a1binos’라는 유저가 모나코인 블록체인에 상식적으로 생각하기 힘든 5블록 길이의 고립블록(Orphan Block)이 여러 차례 생성됐고, BWA를 당한 것이라 보고되면서 그 원인이 밝혀졌다.


연산속도 차에 의한 공격은 지금까지 이론상으로만 존재했으며 실제로 일어난 적은 없었다. 모나코인 BWA 사건은 처음으로 블록체인이 대다수의 합의 없이 다시 쓰여진 사례다.


당장에는 각 거래소가 모나코인의 입금을 정지시키고 입금시 승인 수를 늘리면서 사건이 마무리가 되긴 했다. 그러나 여태까지 공격을 당해 피해를 입은 것은 거래소였으나 이번 사건은 블록체인 자체에 피해를 입힐 수 있다는 것을 증명하면서 금전적 피해 이상의 후폭풍을 몰고 올 수 있다.
 

※ 저작권자 ⓒ 한국마케팅신문. 무단 전재-재배포 금지

목록으로

포토뉴스 더보기

해외뉴스 더보기

식약신문

사설/칼럼 더보기

다이렉트셀링

만평 더보기

업계동정 더보기

세모다 스튜디오

세모다 스튜디오 이곳을 클릭하면 더 많은 영상을 감상하실 수 있습니다.

오늘의 날씨

booked.net
+27
°
C
+27°
+22°
서울특별시
목요일, 10
7일 예보 보기