[INBEX(인벡스) BLOCKBUSTERS][중앙대 C-Link : 박민서] 51% 공격이 갖는 의미

in #kr7 years ago

블록체인의 특성 중 가장 많이 언급되는 것 중 하나는 정보의 변경 불가능성이다. 변경 불가능성에 대한 설명과 근거는 지난주에 설명했다. 그런데, 정말 어떤 상황에서도 정보가 변경 불가능할까?

아니다. 블록체인의 정보도 특정 상황에서는 새롭게 쓰일 수 있다. 그 상황에 대해 알아보기 전에 먼저, 유효한 체인이 선택되는 과정에 대해 알아보자.


변경 불가능성과 유효한 체인

블록체인은 블록이 체인 형태로 이어져서 형성된다. 블록이 생성되면 체인 뒤에 붙어 체인을 이어 나간다. 이렇게 이어져 나가다가 어느 순간 2명이 동시에 서로 다른 블록을 만들어 이어 붙이는 경우가 생긴다. 이를 ‘분기'라고 한다. 이 상황에서는 체인이 2개가 된다. 하지만, 유효하다고 인정받는 체인은 오직 한 가지이다. 유효하다고 인정받는 체인은 무엇일까?

Longest Chain이라는 단어를 들어봤을 것이다. 그렇다. 가장 긴 체인 1개만 유효한 체인으로 인정받는다. 그림1 (b)에서는 밑의 체인이 더 길기 때문에 그것이 유효한 것으로 인정된다. 블록을 만들기 위해서는 POW 합의 알고리즘에 따라, 흔히들 말하는 ‘문제’를 풀어야 한다. (합의 알고리즘에 대한 자세한 이야기는 다음 편에 할 것이다) 그리고 그 문제를 풀려면 해시 파워가 필요하다.

그림1. (a) : 정상적인 체인 (b) : 분기가 일어난 상황

출처 : 중앙대학교 블록체인 학회


해시 파워

내가 전체의 3%의 해시 파워를 가지고 있다는 것은 내가 블록을 채굴할 확률이 3% 된다는 것이다. 그러면 만약 내가 절반 이상의 해싱 파워를 가지고 있다면? 50% 이상의 확률로 내가 블록을 채굴한다는 것이다. 과반수의 확률로 블록을 채굴할 수 있기 때문에 현재 유효한 블록체인보다 짧은 체인을 내가 가지고 있어도, 결국 더 길어지게 된다.

그림2. 실제 비트코인 hashrate distribution

출처 : https://www.blockchain.com/en/pools

그림3. 실제 이더리움 hashrate distribution

출처 : https://etherscan.io/stat/miner?range=7&blocktype=blocks


51% 공격

51% 공격은 이름에서 볼 수 있듯이 네트워크 내 모든 노드의 절반 이상이 (실제로는 50 초과 즉, 과반이다. 51은 50을 넘은 상징적인 숫자일 뿐) 집단으로 행동했을 때 나타나게 된다. 자세히 얘기하면 네트워크 절반 이상의 해시 파워를 가지고 있는 집단이 행동하면 51% 공격이 성사된다.

51% 공격이 성공했을 때, 결과는 데이터 변화로 나타난다. 데이터 변경 불가능성은 블록체인의 기본 특징 중 하나인데, 어떻게 변화가 일어나게 되는 것일까?


리오그(reorg)

블록이 이전과 다르게 재생성되는 것을 리오그(reorg)라고 한다. 상대적으로 깊이가 얕은 상태에서는 reorg가 쉽게 일어난다. 그만큼, 따라잡아야 하는 블록의 개수가 적기 때문이다. 깊으면 블록의 reorg가 일어나는 것은 쉽지 않다. 그림3의 (a-1), (b-1)은 각각의 상황에서 분기한 직후의 상황이다. (a-1)은 깊이가 얕고 (b-1)은 깊이가 깊은 상황이다. 분기한 다음에 깊이가 얕은 (a-1)은 1개만 따라잡으면 되지만, (b-1)은 3개를 따라잡아야 한다. 즉, 깊이가 깊은 (b-1)이 더 따라잡기 힘든 것이다. (a-2)와 (b-2)는 각각 1개와 3개를 따라잡고 추가로 1개의 블록을 더 채굴하고 longest chain 이 된 상태이다.

이처럼, 깊더라도 과반의 해시 파워를 차지하여 공격한다면 reorg가 일어날 수 있게 된다. 과반의 해싱 파워를 차지한 집단이 기존의 가장 긴 체인보다 더 긴 체인을 형성하면 규칙에 따라 특정 집단의 더 긴 체인이 유효하게 된다. 특정 집단이 체인을 형성하는 과정에서 전과 다른 정보를 넣었다면, 이전 정보는 유효하지 않게 된다. 이것이 이중 지불과 같은 맥락이다.

그림4. 깊이가 얕은 (a-1), 깊이가 긴 (b-1)의 분기 직후 상황 /

(a-2), (b-2) 분기된 블록이 longest chain으로 유효 체인 인정

출처 : 중앙대학교 블록체인 학회


이중 지불 문제

51% 공격이 이루어질 때 ‘이중 지불 문제'가 대두된다. 그 과정을 살펴보자.

1_1. 내 계좌에 100만 원이 있다.

1_2. 나는 A의 물건을 구매했고 대가로 100만 원을 지불하기로 하였다.

1_3. A에게 100만 원을 보내는 거래를 발생시킨다. (Tx1)

1_4. A에게 100만 원을 보낸 시점에 또 B에게 100만 원을 보내는 거래를(Tx2) 발생시킨다.(여기서 B는 나의 또 다른 계좌라고 생각하면 되고 main chain이 아닌 local에 있다)

1_5. A와의 거래를 무효화해야 하므로 블록 A에서 분기를 만들어 놓는다.

1_6. 분기한 나의 블록 A에 Tx1 거래를 빼고 대신에 Tx2 거래를 넣은 후에 블록을 만들고 체인을 더 길게 만들어서 전파하면, 결국 Longest Chain이 유효한 것으로 인정받아 Tx1 거래는 무효화 된다.

1_7. A에게 물건은 받았지만 돈을 보낸 거래는 결국 무효가 된다. 공격 성공이다.

기존의 main chain에서 Tx1 거래가 채굴되었지만, 만약 51% 이상의 힘을 가지고 있다면, 더 빠르게 블록을 만들어 갈 수 있다. 블록 A에서 분기를 내고 51% 파워로 더 빠르게 채굴을 하여 나의 체인이 longest chain으로 된다면 Tx2만 유효하고 Tx1은 유효하지 않게 된다.

그림4. Tx1과 Tx2가 각각의 체인에 담기게 되고

결국 longest chain에 속해있는 Tx2만 유효하게 된다.

출처 : 중앙대학교 블록체인 학회


결론

가벼운 알트코인 프로젝트에서는 51% 공격이 상대적으로 쉽게 일어난다. 특정 집단이 의도적으로 과반의 해시 파워를 차지하여 일을 벌인 것이다. 하지만, 대형 프로젝트에서는 쉽게 일어나지 못한다. 비용이 너무 크기 때문이다. 그럼에도 불구하고, 비트코인의 경우 2014년에 Gash.io는 50%를 넘는 해시 파워를 가지고 있었다. 다행히 이중지불 문제는 일어나지 않았고, 자발적으로 파워를 분산시켜 생태계를 건강하게 지켜냈다.

누군가가 대놓고 생태계를 파괴하겠다는 마음을 갖지 않는 이상 쉽게 51% 공격을 감행할 수는 없다. 공격하는 데 들어가는 비용이 얻을 수 있는 이득보다 크기 때문이다. 51% 공격 때 드는 비용을 줄인다고 하더라도 합리적인 선택은 되지 못한다. 결국 공격자가 공격을 통해 얻어낸 것은 그 생태계에서 통용되는 화폐인데 그 생태계가 공격받았다고 알려지면 그 화폐의 가치는 급락할 것이기 때문이다. 이것이 바로 많은 사람이 51% 공격이 힘들 것이라고 말하는 이유이다.

기존 시스템에서도 ‘나’의 의사를 표현할 방법은 여러 가지가 있었다. 하지만 의견이 실제로 반영되는 경우는 많다고 할 수 없다. 이전 시스템들과는 달리 블록체인에서는 나의 의사가 더 잘 표현되고 반영될 수 있다. 하지만, 겉에 보이는 암호화폐의 가격만 보고 판단한다면 그 시스템이 가지고 있는 본질과 기능을 충분히 이용하지 못할 것이다. 생태계는 결국 구성원들이 만들어가는 것이다.

하지만, 시스템이 어떻게 돌아가는지, 내가 하는 행동이, 지금 일어나는 일이 어떤 의미가 있는지 대해서 정확하게 알지 못한다면 탈중앙화를 추구하는 생태계에서 상대적으로 중앙화되어 있는 주체를 잘 견제할 수 있을까, 과연 그 생태계를 바람직하게 가꾸어 나갈 수 있을까, 기여할 수 있는 시스템에서 정말 내가 원하는 만큼 기여할 수 있는가에 대한 의문이 든다.



  INBEX 바로가기

Sort:  

Coin Marketplace

STEEM 0.04
TRX 0.32
JST 0.083
BTC 60866.94
ETH 1568.75
USDT 1.00
SBD 0.50