brunch

You can make anything
by writing

C.S.Lewis

by Kyle Jun 22. 2021

51% Attack의 허구

그런 채굴 결코 없습니다.

마이닝(채굴)은 독점(monopoly) 시장도 완전경쟁시장도 아니다. 물론 복점(duopoly) 시장도 아니다.

마이닝은 진입장벽이 꽤 높은 과점(oligopoly) 시장이다. 그래서인지, 소수의 담합에 의한 독점적 시장지배가 가능한 구조로 쉽게 오해한다. 그리고 이러한 이유로 대다수는 51% 공격이 가능하다고 믿고 있다.


이 얘기는 과연 근거 있는 주장인지 살펴보자.


1. 51%를 초과한 단일 마이너가 존재해도, 공격은 없다.

최근 7일간 각 마이너 회사들의 채굴 현황을 아래의 원도표를 통해 확인할 수 있다.

2021-06-22 18:45 BTC 네트워크 마이닝 현황


2021-06-22 15:30 BSV 네트워크 마이닝 현황

BSV 네트워크에서 TAAL은 57%에 육박하는 해시 파워를 가지고 있다. ViaBTC의 경우, BTC 네트워크에서는 약 16%의 마이닝 파워를 가지고 있다. BTC의 총 Hash Rate는 BSV의 140배 이상인 점을 감안해 보았을 때, ViaBTC는 BSV 전체 해시 파워를 훨씬 능가하는 해시 파워를 가지고 있다. 참고로 ViaBTC는 BSV(약 1%), BCH(약 14%) 네트워크에서도 채굴을 하고 있다.


만일 51% Attack이 가능하다면, 동일한 PoW 알고리즘을 사용하는 BSV, BCH 체인은 이미 수많은 공격받을 수 있는 상황이다. 누군가의 이익이 충분히 존재할 수 있는 상황이라면, 그러한 일은 반드시 발생하기 마련이다. 더구나, BTC, BCH, 그리고 BSV 커뮤니티는 각자의 블록체인에 대한 사상과 이념에 따라 서로를 비난하는 사이기에, 공격을 감행할 다른 외적인 동기도 충분히 존재한다.


그렇지만, 지금까지 의미 있었던 공격은 없었다.


(참고) Double-Spending Attack?

https://forkmonitor.info/stale/btc/666833

처음 Double-spending이 보고되었을 당시의 캡처 화면
현재는 Conflicting Transactions로 표시되어 있다.

2021년 1월 20일 0.00062063 BTC(당시 약 $21 가치)가 이중지출(Double Spending) 되었다. 아래 그림에서 가장 아래 표시된 TX이다. BTC에만 추가된 기능인 RBF(Replace By Fee) Option을 적용하여, 기존 TX(첫 번째 TX)보다 높은 수수료를 적용하여 새로운 전송을 두 번 시도했으나, 제일 먼저 브로드캐스트 된 첫 번째 TX가 더 긴 체인에 포함되며, 세 번째 트랜잭션이 담긴 블록은 고아(Orphan)가 되었다. 두 번째 TX는 어떤 블록에도 담기지 못한 채 취소되었다. 이러한 순서로 이중지출은 최종 취소되었다.


흥미로운 점은 이러한 고아 블록의 발생은 흔치 않다는 것이다. 대부분은 Double Spending이 발생하는 것이 아니라, 서로 다른 TX를 담은 블록이 거의 동시에 생성되어 경쟁하는 경우가 대부분이다. 이 경우, 어떤 블록이 선택되고 다른 블록이 고아가 되더라도, 이중지출은 없기 때문에 별 문제는 발생하지 않는다. 눈길을 끄는 건, RBF Option을 이용한 TX의 교체는 BTC에서는 정상적인 과정임에도, 첫 번째 TX가 담긴 블록이 가장 긴 블록이 되었다는 점이다.


만일 세 번째 TX가 담긴 블록을 근거로 그리고 RBF 룰대로 세 번째 TX를 정상적인 TX로 처리하고(당연히 첫 번째, 두 번째 TX는 취소된 것으로 처리) BTC의 라이트닝 네트워크에서 받아들여졌다고 상상해보자. 이러한 일이 실제 발생된다면, 단 한 번의 사건만으로 많은 것들이 쉽게 혼란스러워질(수많은 손실이 발생될) 수 있다. 이런 이유에서 RBF는 BTC 네트워크의 안정성에 심각한 위협을 주는 옵션이라 생각한다. 어쩌면 누군가 Double Spend Attack을 시도해 본 것 아닐까도 싶다.


*이중지출(Double Spending): 하나의 UTXO를 서로 다른 TX의 Input으로 사용하는 것

*RBF(Replace By Fee)는 사토시가 잠적한 이후, BTC Core 개발자들에 의해 추가된 기능이다.

2021년 1월 20일 약$21의 BTC 이중지출 발생과정


2. 마이닝은 Multi-leader, Multi-follower 슈타켈버그 게임(Stackelberg  Game)이다.

비트코인의 Proof of Work(작업증명)은 마이너가 익명으로 슈타켈버그 게임의 "리더"가 될 수 없도록 설계되어 있다. 마이너는 비공개로 마이닝을 할 수 있어도, 슈타켈버그 게임에서는 절대 리더가 될 수 없다. 그리고 리더가 되기 위해서는 익명일 수도 없다. 자신의 해시 파워를 실제 투입하고 작업량을 드러내야, 리더가 될 수 있기 때문이다.


이를 이해하기 위해서는 다음의 상황을 우선 인지해야 한다. 각 마이너는 자신의 해시 파워 100%를 마이닝에 투입하지 않는다. 난이도와 보상에 따라 채굴기계를 켜거나 끄고, 혹은 다른 마이너에게 대여를 해주기도 한다. 이것은 모두 각자의 보상(인센티브)과 수익성에 따라 행해진다. 이는 자연스럽게 관찰되는 행동이다. 예를 들어, 마이닝 기계를 투입할수록 추가되는 전력비용은 더 비싸지며 수익성에 영향을 끼치기 때문이다.

압도적 해시 레이트를 가진 마이너(혹은 마이너 그룹)는 슈타켈버그 게임의 리더로서 수익성을 따라 마이닝을 할 것인지, 이기적 마이닝(selfish mining)을 할지 선택할 수 있다. 이에 따라 추종자 마이너들은 자신의 행동을 정한다. 만일 리더가 특정 목적을 이유로 이기적 마이닝을 선택하는 경우, 추종자들은 굉장히 수익성이 좋은 상황을 맞이하게 된다. 다른 목적의 채굴을 시도하는 만큼 전체 해시 레이트가 줄었든 상황이기 때문이다. 이 경우, 추종자 마이너들의 수익성이 높아지기 때문에, 추종자 마이너들은 꺼두었던 채굴기를 켜거나 다른 곳에서 해시 파워를 빌려와 더 큰 수익을 쫓을 것이다. 전체적인 해시 레이트를 다시 증가시키는 이러한 추종자들의 반응은, 추종자들에게 더 많은 수익을 제공하고, 동시에 이기적 마이닝을 시도하는 리더의 수익성을 더욱 감소시킨다. 즉, 원하는 목적을 달성하고자 했던 비용은 점점 더 증가될 뿐이다. 이기적 마이닝을 위해 빠져나간 자리를 새로운 리더와 추종자가 나타나 자연스레 균형이 맞춰질 때까지, 이 과정은 지속될 것이다.


현재 비트코인 네트워크는 충분히 성숙되어, 초창기 개인이 노트북으로 채굴을 하던 시기와는 완전히 다른 상황이다. 사토시의 예측대로 대규모 서버 팜(server farm)들이 많은 자본을 투입해, 수익을 쫓는 시장이 되었다. 이기적 마이닝을 했을 때, 얻을 수 있는 수익은 불확실하고, 비용은 예상보다 훨씬 늘어날 것이다. 리더로서 압도적인 해시 파워를 가진 경우, 자신의 이익을 극대화할 방법을 찾아 채굴을 하는 것이 가장 안전하고 수익성 높은 확실한 선택지일 뿐이다.


* 이기적 마이닝(selfish mining): Cornell 연구원 Emin Gün Sirer와 Ittay Eyal의 논문에서 처음 주장되었다. 논문제목은 "Majority is not Enough: Bitcoin Mining is Vulnerable"이다. 이로 인해 51% Attack은 당연하게 받아들여졌다. 하지만 이는 마이닝을 "static game"으로 잘못 모델링했기 때문에 내린 현실에 맞지 않는 주장이라 생각한다.


* 슈타켈버그 게임(Stackelberg  Game):


3. 51% Attack을 통해 얻을 수 있는 범죄수익은 사실상 존재하지 않는다.

압도적인 해시 파워를 가지고 있다고 한들, 타인의 비트코인을 마음대로 이동시킬 수 있는 방법은 없다. 단지, 해시 비율만큼의 확률로 특정 트랜잭션이 블록에 포함되는 것을 지연시킬 수 있을 뿐이다. 예를 들어, A가 B에게 1 Bitcoin을 옮기려는 Transaction을 만들어 브로드캐스트 하였을 때, 51%의 해시파워를 가진 마이너는 해당 TX를 자신이 생성하려는 블록에 포함시키지 않을 수 있다. 그렇지만 49%의 확률로 다른 마이너가 채굴하는 블록에 포함될 것이다. 결국 이러한 방해로는 아무런 이익을 얻지 못한다.


조금 더 적극적인 악용사례는 자신이 보유한 비트코인을 이중지출하여 범죄 수익을 만들어 내는 것이다. 우선, 자신이 보유한 10 Bitcoin을 A에게 보내는 첫 번째 Transaction을 브로드캐스트 한다. 그리고 동시에 같은 UTXO를 사용한 두 번째 Transaction을 만들어서 자신의 지갑으로 보낸다. 즉, 이중지출을 시도한 것이다.


적지 않은 금액이기 때문에, A는 자신이 받은 첫 번째 TX가 블록에 포함되기를 기다릴 것이다. 이때 이중지출을 시도한 마이너는 두 번째 TX가 포함된 블록을 채굴한다. 그리고, 자신의 해시 파워를 최대한 활용하여, 두 번째 TX가 포함된 블록에 다음 블록을 계속 채굴하여 이어 나간다. 마이너는 첫 번째 TX가 포함된 블록이 포함된 체인보다 더 긴 체인을 만들어 내야만 한다. 더 긴 체인을 만들어 내지 못하면, 이중지출 시도가 실패하는 것이다.


A는 자신이 받은 첫 번째 TX가 블록에 포함된 것을 확인하고, 해당 마이너에게 서비스나 재화 등을 제공할 수 있다. 마이너는 원하는 것을 얻은 후, 두 번째 TX가 포함된 블록 및 이후의 블록들을 다른 채굴자들에게 전파한다. 이것이 더 긴 체인인 경우에만, A가 받은 첫 번째 TX는 사라지며, A는 아무것도 받지 못한 상태가 돼버린다.

사실 이와 동일한 범죄가 거래소를 대상으로 ETC(이더리움 클래식) 네트워크에서 수차례 발생했었다. 이는 아마도 ETC의 해시 파워가 매우 낮았고, 범죄자가 더 긴 체인을 위해 투입한 비용보다, 자신이 보유한 ETC의 금전가치가 훨씬 더 컸을 것이다. 그리고 거래소의 안일한 대처도 한몫했을 것 같다. 큰 수량의 ETC를 받았음에도 충분한 컨펌 없이 범죄자의 잔고를 올려주었을 테니, 범죄자는 해당 ETC를 팔고 즉각 출금을 시도했을 것이며, 출금 시도에 대한 검토 역시 거래소에서 충분히 이뤄지지 않았던 것으로 보인다.


이와 같은 실사례에도 불구하고, 범죄 수익이 존재하기 어려운 이유는 다음과 같다. 첫째, ETC의 경우, 워낙 전체 해시 파워가 극단적으로 낮았기 때문에 가능한 시도였다. 그러나 비트코인의 경우, 기대 범죄이익 대비 비용의 수지타산이 전혀 맞지 않는다. 둘째, 대부분의 나라에서 서비스업자는, 일정 금액 이상을 지급받은 경우 반드시 거래상대방을 확인해야 하는 의무가 존재한다. 그리고 지급받은 금액이 크면 클수록, 업자는 더욱 신경 써 거래상대방의 신원 등을 더 면밀히 알아내고 응대할 것이다. 셋째, 무엇보다 첫 번째 TX 자체가 범죄 행위에 대한 돌이킬 수 없는 증거로 작동한다. 범죄 행위는 가급적 증거를 남겨두지 말아야 하는데, 이러한 범죄는 명확한 증거 없이는 시도조차 할 수 없는 범죄란 점이 아이러니하다.


51% Attack이라는 거대하고 오래된 허구에 대해 전반적인 내용들을 살펴보았다. 비트코인에 대한 수많은 사실들이 잘못 알려져 있거나, 거짓으로 뒤덮여 있는 상황이다. 조금이나마 진실이 무엇인지에 대한 도움이 되었으면 하는 바람이다.

작가의 이전글 비트코인의 확장성(Scalability)

작품 선택

키워드 선택 0 / 3 0

댓글여부

afliean
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari