[비트코인 골드 이중지불 공격] 51% 공격과 대응방안
[비트코인 골드 이중지불 공격] 비트코인 골드의 탄생과 ASIC의 관계
에 이어서 쓰는 글입니다.
채굴 시장에서 ASIC이 가져온 변화 그리고 비트코인 골드의 탄생 배경에 대해 살펴보았습니다. 간단히 정리해보자면, ASIC의 채굴속도가 너무 빨라서 자본력 있는 소수의 채굴풀이 비트코인의 대다수 해시파워를 가져갔습니다. 이는 탈중앙화의 성격에 반한다는 지적이 있었습니다. 그래서 Make Bitcoin Decentralized Again 이라는 모토로 비트코인 골드를 하드포크해냈습니다. 빗코골드는 SHA-256해시가 아니라 Equihash 알고리즘을 쓰기 때문에 아직까지는 ASIC으로 채굴을 할 수 없습니다.
이제부터 비트코인 골드가 왜 51% 공격을 당했는지 알아보겠습니다.
1. 51%공격과 이중지불
기본적으로 블록체인은 가장 긴 체인을 가장 신뢰성 있는 것으로 인지합니다.
모든 블록들이 'Previous Hash'로 연결되어 있고, 각 블록이 유효한 것으로 인정받았다면 가장 긴 체인이 가장 신뢰성 있다는 것입니다.
그런데 만약 특정 집단이나 개인이 다른 전체 채굴 참여자들보다 블록을 빠르게 생성할 수 있다면 어떻게 될까요?? 51%가 넘는 채굴 파워를 갖는 다는 뜻입니다. 다시 말해 혼자의 힘으로 긴 체인을 만들 수 있다는 뜻이고, 이중지불 공격이 가능해진다는 것입니다.
이중 공격의 원리는 다음 링크에 자세히 설명되어 있는데, 제가 그림으로 풀어서 설명드립니다. :)
Anatomy of a Double-Spend / 51% attack
1-1) 이중지불 공격 원리
이중지불 공격에서 피해를 입는 쪽은 , '처음 거래를 유효한 거래라 인식하고 받아들인 쪽'입니다. 여기서는 거래소가 되겠네요. 이번 비트코인 골드 해킹에서는 약 200억 원어치의 피해가 있었다고 합니다.
2. 51% 공격 당한 근본적인 이유
첫 번째로 마이닝 참여자의 크기가 작기 때문입니다. 돈 조금만 쏟아부으면 쉽게 51%의 해시파워를 얻을 수 있는 거죠. 예를 들어 1000억 원 규모의 채굴파워를 가진 코인과 10억 원의 전체 채굴파워를 가진 코인 중 어느 곳에서 51%를 획득하기 쉬울까요? 당연히 후자 입니다. 510억을 쓰는 것과 5억 1000을 쓰는 것에는 현저한 차이가 있죠. 그래서 채굴 참여자의 규모가 적은 알트코인 같은 경우는 언제든지 51% 공격이 성공할 가능성이 있습니다.
둘째로 같은 해시 알고리즘을 사용하는 코인들이 많아서 입니다. 51%의 공격으로 해당 코인의 가치가 하락하더라도 다른 코인을 채굴해버리면 그만입니다. 비트코인 골드가 사용하는 해시알고리즘인 Equihash는 다른 코인들도 많이 사용합니다. 예를 들어 Zcash, Zencash, Komodo 등이 있습니다. 이는 "채굴자는 본인이 투자 하여 채굴장비를 마련한다. 따라서 본인의 공격으로 본인이 채굴하는 코인의 가치를 떨어트릴 경제적 유인이 없다"
라는 명제를 부수는 것이죠. 빗코 골드로 한 탕 장난쳐도 그 다음에는 Zcash 채굴하면서 원래대로 수익을 올릴 수 있는 것입니다.
3. 대응 방안
가장 좋은 방법은 채굴 참여자의 수와 규모를 늘리는 것이겠죠. 그러나 그것이 쉬운 일도 아니고, PoW방식은 항상 과도한 전기 사용으로 인한 환경파괴의 우려도 있습니다.
빗코 골드 측이 내놓은 대응 방안은 다음과 같습니다.
- 거래소들은 본인들의 긴급 커뮤니케이션 채널에 들어와라.
본인들이 상황을 계속 모니터링 할 것이며, 이중지불 공격에 대한 조짐이 보이면 즉시 거래소들에게 경고를 하겠다는 것입니다. 거래소들은 입금 정지, Confirm 수 늘리기 등의 대응을 할 수 있게 되고 공격자들은 그만큼의 위험을 감수해야 합니다. (개인적으로...그렇게 획기적인 방법이라고는 생각하지 않습니다. 소 잃고 외양간 고치는 느낌;)
- 새로운 PoW알고리즘 개발
현재 전체 Equihash 채굴 풀은 빗코 골드 단일 네트워크의 해시파워보다 큽니다. 위에서 언급했듯이 여러 코인들이 같은 알고리즘을 쓰기 때문인데요. 빗코 골드 측은 아예 새로운 알고리즘을 개발해서 독단적으로 사용하고자 합니다. 이렇게 되면 빗코 골드를 채굴자들은 51% 공격을 할 엄두가 안 날 것입니다. 혹시라도 시도해서 빗코 골드 가격이 떡락한다면, 본인들 채굴 장비는 고철덩어리가 되기 때문입니다. 그 한 탕이 성공한다는 보장도 없구요.
더불이 이를 통해 ASIC 채굴기로부터 한 번 더 도망칠 수 있겠다는 기대도 하네요. 얼마 전에 이더리움 채굴용 ASIC이 나왔습니다. 이것 때문에 한 때 시끌했었는데요, Equihash 용 ASIC도 나오지 말란 법이 없습니다. Equihash 대신 본인들 알고리즘을 쓰면 ASIC의 그늘에서도 멀어지겠습니다. 진짜 ASIC을 소스라칠 정도로 싫어하는 게 보이네요 ㅋㅋ
.
.
.
여기까지 비트코인 골드 해킹 사건의 전말이었습니다.
비트코인 골드 측의 글을 참고하여 썼습니다.
https://bitcoingold.org/responding-to-attacks/
좋은정보 감사합니다 잠시 피해야 겠군요
제가 올린 것이 좀 뒷북이긴 합니다.
5월 19일에 일어난 것이거든요...
지금은 좀 일단락 된 것으로 보입니다.
전혀 관심이 없었는데 이런 일이 있었군요. 블록체인의 길이만 파악할 것이 아니라 이미 사용된 체인이 있는지 확인을 한다면 좋을텐데, 너무 많아서 불가능한 것일까요? 아니면 거래소 사이에 정보 공유가 활발하지 않은 것일까요?
BTG가 전용 해시를 만든다면 기존에 검증된 해시만큼 안정성 확보가 되는 것일지도 궁금하네요.
https://bitcoingold.org/equihash-btg/
BTG가 전용 해시를 만든다고 해서 의아하긴 했는데, 살펴보니 Equihash에서 파라미터를 조금 조정한 것으로 보이네요.
기존에 쓰던 파라미터가 <200,9>였다면 , 앞으로 <144, 5> 파라미터를 쓴다고 합니다.
미니멈 700MB 메모리, 효율적으로는 2.5GB 메모리가 필요한 파라미터라고 합니다.
오 답변 감사합니다!!
짱짱맨 호출에 출동했습니다!!