brunch

8-1. 채굴 합의 규칙과 51% 공격(상)

채굴 시장과 블록체인 포크의 기초

시리즈 1편부터 정주행 하기 -> [쉽게 배우는 비트코인 작동원리]




장부의 주인


비트코인은 중앙의 통제를 받지 않고 함부로 조작될 수 없는 탈중앙장부다.


[6. 검증과 창조의 균형 : 비트코인 네트워크의 동력]에서 언급한 것처럼 풀 노드, 마이닝 노드, 그리고 코어 개발진들을 통해 비트코인은 권력적 평형을 유지한다.


하지만 채굴을 하는 마이닝 노드의 경우 특정 주체가 엄청난 비용을 들여 채굴 시장을 독점한다면 비트코인 장부를 조작할 수 있지 않을까?


비트코인의 보안을 담당하는 채굴의 합의 규칙과 채굴자가 네트워크 채굴 지분의 절반 이상을 장악하여 공격을 시도하는 51% 공격에 대해 알아보자.


해시레이트와 채굴 시장 구조 이해하기



해시레이트(Hash Rate)


해시레이트(Hash Rate)란 채굴자가 원하는 해시값을 찾기 위해서 초당 얼마나 많은 연산을 하는지 나타내는 지표이다.


특정 채굴자의 해시레이트가 높다는 것은 곧 그가 사용하는 장비의 양이나 질이 높다는 것을 의미한다.

hash.png image source: blockchain.com

주사위 비유로 돌아가자면 팔이 많고 성능이 좋은 로봇일수록 더 많은 주사위를 던질 수 있다는 개념과 같다.


사진에 보이는 해시레이트는 비트코인 네트워크 전체의 컴퓨팅 파워를 나타낸다.


해시레이트가 높아질수록 전체 네트워크의 계산량이 많아지고, 그만큼 공격자가 이 체인을 뒤집기 위해 필요한 자원과 비용이 커진다.


다시 말해, 네트워크에 축적된 연산력은 곧 보안력이며,


비트코인은 이를 통해 누구나 장부를 쓸 수 있게 하면서도 아무나 조작은 못 하게 설계되어 있다.



채굴풀(Mining Pool)


비트코인 네트워크의 전체적인 해시레이트가 올라가면서 개별 채굴자들이 채굴에 성공할 확률이 매우 낮아지기 시작했다.


채굴 성공은 순전히 특정 숫자를 빠르게 찍어서 맞추는 운에 달렸기 때문에 해시레이트가 작은 경우, 보상을 받는 주기가 매우 불안정할 수 있다.

cGc image source: imcd.id

이런 불확실성을 해소하기 위해 여러 채굴자들이 모여 한 팀으로 블록을 생성하고 보상을 나누는 채굴풀(Mining Pool) 개념이 생겨났다.


해당 채굴풀에 참여하는 채굴자 중 한 명이라도 채굴에 성공하면, 각자가 기여한 해시레이트만큼 비례하여 보상을 나눠가질 수 있기에 대부분의 채굴자들은 채굴풀을 이용한다.


현재 대부분의 해시레이트는 상위 3~5개의 채굴풀이 분점하고 있다.

pool.png

필자의 풀노드로 측정한 위 파이차트는 최근 1달 기준 각 채굴풀들의 점유율을 나타내는 지표이다.


미국 기업인 Foundry USA와 중국 기업인 AntPool이 거의 절반에 달하는 해시레이트를 담당하고 있으며, 다양한 기업들이 현재 직접 풀을 만들거나 참여하여 채굴 생태계를 유지하고 있다.


만약 특정 기업이나 채굴풀들이 담합하여 해시레이트를 합친다면 51% 공격이 가능한 시나리오가 펼쳐진다.


네트워크 합의 규칙



최장 체인 규칙(Longest Chain Rule)


다양한 참여자들이 블록을 생성하는 탈중앙 네트워크에서 장부의 정본(正本)을 정하는 기준을 마련하는 것은 매우 중요하다.


작업증명(PoW) 방식의 채굴을 하여 블록을 생성하는 비트코인의 경우 나카모토 합의(Nakamoto Consensus)에 따라 노드들이 가장 긴 체인을 정본으로 인식한다.


여기서 가장 긴 체인이란 가장 많은 연산 노력이 축적된 체인을 의미하며, 이 체인을 모두가 신뢰할 수 있는 이유도 바로 거기에 있다.



블록체인 포크(Blockchain Forks)


비트코인 네트워크에서 각 노드는 주변의 다른 노드들로부터 장부에 대한 정보를 수집한다. 이를 기반으로 노드는 가장 긴 체인을 정본으로 인식한다.


mbc2_1002.png image source: Mastering Bitcoin

위 사진은 노드들의 분포와 각 노드들이 인식하고 있는 장부의 정본을 시각화 한 자료이다.


모든 노드들은 별 모양의 블록이 가장 최신 장부라는 점에 합의가 완료된 상태이다.


하지만 항상 모두가 같은 장부를 공유하지는 않는다. 아래 그림을 살펴보자.

mbc2_1003.png image source: Mastering Bitcoin

종종 낮지만 희박하지는 않은 확률로 동시에 두 채굴자가 블록 생성에 성공하는 경우가 존재한다.


위 사진을 참고하자면, 동시에 하얀 삼각형과 주황색 역삼각형 블록이 채굴되었다.


이 사실은 다른 노드들에게로 전파되며 마치 땅따먹기를 하듯 각 노드가 인식하는 정본을 최신화시킨다.

mbc2_1004.png image source: Mastering Bitcoin

이제 삼각형과 역삼각형 블록이 모든 노드들에게 전파되었다.


각 노드는 만약 삼각형을 먼저 전달받았다면 삼각형을 정본으로, 역삼각형을 먼저 받았다면 역삼각형을 정본으로 인식한다.


하지만 다른 모양의 유효한 장부도 존재하기에 두 번째로 받은 블록을 폐기하지 않고 메모리에 기록해 둔다.


이렇게 같은 장부 역사를 공유하면서도 특정 분기점으로 인해 서로 다른 장부가 생겨나는 현상을 블록체인 포크(Blockchain Forks)라고 부른다.

mbc2_1005.png
mbc2_1006.png
image source: Mastering Bitcoin

위 왼쪽 그림에서는 블록체인 포크 이후 누군가 채굴에 성공한 상황이 나타났다.


이 채굴자의 경우 정본을 흰 삼각형으로 간주하고 있었기 때문에 삼각형 블록 위에 초록색 마름모 모양의 블록을 생성했다.


이제 블록체인 포크의 우위가 결정되었다.


마름모 블록이 전파되면서 모든 노드들은 가장 긴 [별 -> 흰 삼각형 -> 마름모]로 이어지는 장부를 정본으로 채택하게 되었고, 역삼각형 장부를 따르는 체인은 정본에 의해 덮어씌워졌다.




이제 우리는 새로 생겨나는 블록들의 합의 규칙과 채굴시장에 대한 이해를 마쳤다.


하지만 한 호흡에 51% 공격까지 서술하기에는 다소 무게감이 있어 글을 상, 하로 나눴다.


따라서 다음 글에서는 특정 채굴자가 해시레이트를 반독점하여 네트워크를 공격하는 51% 공격을 중점으로 알아볼 예정이다.


참고문헌


Antonopoulos, Andreas. Mastering Bitcoin, 2nd Edition. O’Reilly Media, Inc, 2017.

keyword
매거진의 이전글7-2. 무작위에서 질서로: 비트코인 채굴원리 (하)