블록체인, 51퍼센트 해킹은 어떻게 일어나는가?

|

image -fullwidth


블록체인은 해킹이나 데이터 위변조에 아주 강력하다고 알려져 있습니다. 하지만, 항상 따라붙는 말은 ‘완벽한 보안 솔루션은 없다, 블록체인의 경우 리소스의 과반수 이상을 독점하면 해킹이 가능하다.’ 라는 말입니다.

사실 블록체인 중에서도 비트코인에 해당하는 말이긴 하지만, 과반수, 즉 51% 이상의 리소스를 독점할 경우 어떤 식으로 해킹이 일어날 수 있을까요?


블록체인 분기

비트코인에서는 종종 다음 블록이 동시에 발견되는 경우가 발생합니다. 아무래도 전 세계에 뿌려져있는 노드들이 많다 보니 그 중에서는 다음 블록의 해시값을 동시에 찾는 노드들도 분명히 생길 수 있습니다. 물론 그 빈도가 낮은 편에 속하지만, 2015년 기준으로 1주일에 1~2번 발생할 수 있다는 글을 본 적이 있습니다. (지금은 노드 수가 훨씬 더 많아졌으니 더 자주 발생하겠죠.)

다음 블록 해시값을 찾은 노드들은 재빠르게 이웃 노드들에게 그 값을 전파시키는데, 만약 해시값을 찾은 노드들이 여러 개 있을 경우 그 사이에 있는 노드들은 양쪽에서 그 값을 전달받게 됩니다. 이 때 시간차가 발생하게 되면 각 노드들은 먼저 전달받은 노드의 정보를 우선시하고 나중에 전달받은 정보는 무시하게 됩니다.

image -fullwidth

결국 위 그림과 비슷한 형태로 2개 이상의 체인이 발생하는 현상이 발생하게 되고, 이 경우 각자 자기가 알고 있는 진짜 블록을 기반으로 그 다음 블록의 해시값을 계산하게 됩니다. 그리고 그 다음 해시값을 찾게 된 경우 계속해서 블록을 쌓게 됩니다.

그러다보면, 나누어진 체인들마다 블록의 길이가 다르게 될 것이며, 블록체인 알고리즘에서는 이 중 가장 긴 블록을 채택합니다. 즉, 가장 많은 작업 증명(PoW, Proof of Work)이 이루어진 블록을 신뢰한다는 원칙을 갖고 있습니다.


51퍼센트 공격

자, 그러면 51퍼센트 공격은 어떤 방식으로 이루어질 수 있는지 알아보겠습니다.

해시 파워의 절반 이상을 독점하는 노드가 있다면, 해킹이 가능해집니다. 블록체인 특성상 지나간 노드들을 해킹하는 건 거의 불가능에 가깝지만, 앞으로 쌓을 블록을 해킹하는 건 충분히 가능성이 높습니다.

51퍼센트 공격을 하는 구체적인 방법은 다음과 같습니다.

해시 파워의 절반 이상을 가진 노드가 마이닝을 통해 해시값을 찾더라도 이웃 노드들에게 전파를 하지 않습니다. 그리고 그 다음 블록을 계속해서 만들어갑니다. 과반수 이상의 해시 파워를 갖고 있기 때문에 다른 마이너들보다 긴 블록체인을 만들 수 있는 가능성이 높습니다.

즉, 비트코인에서 가장 긴 블록체인이 올바른 블록체인이며 짧은 블록체인을 파기하는 특성을 이용한 공격입니다.

요즘은 단독으로 마이닝을 하지 않고, 연합을 형성하여 마이닝 풀(Mining Pool)을 형성해서 작업하는 경우가 많기 때문에 51퍼센트 공격의 가능성이 과거에 비해서 많이 높아진 상태입니다. 이더리움(Ethereum)같은 경우는 이러한 문제점들을 해소하기 위해서 계산 능력에 대한 독점을 하기 쉬운 ASIC에 대한 내성이 있는 Ethash라는 프로토콜과 약소 마이너들도 불리한 상황을 극복하고 보상을 받을 수 있는 GHOST 프로토콜을 준비하기도 했습니다.

51퍼센트 공격은 비트코인이 처음 나올 때부터 나오던 약점이며, 실제로는 그런 일이 발생할 가능성은 현저하게 낮다라는게 그에 대한 반박이었습니다. 하지만, 전 세계 비트코인의 해시 파워 절반 이상을 중국이 가져가게 되고 거대 마이닝 풀들이 생겨남에 따라 살짝 걱정은 되는 수준까지는 도달한 거 같습니다. 그래도 개인적인 생각으로는 비트코인의 경우는 너무나 거대하고 많은 노드들이 있기 때문에 51퍼센트 공격은 현실적으로는 아직 불가능에 가까울 것 같긴 합니다.