비트코인 ‘이중지불’은 발생하지 않았다
비트코인 이해 부족한 오보 잇따라
이 기사를 공유합니다
Colin Harper
Colin Harper 2021년 1월27일 14:19
비트코인 블록체인에 추가로 더 기록된 비트코인은 없다. 이중지불은 일어나지 않았다. 출처=언스플래시
비트코인 블록체인에 추가로 더 기록된 비트코인은 없다. 이중지불은 일어나지 않았다. 출처=언스플래시

최근 비트코인 네트워크에서 동일한 비트코인에 대해 두 건의 거래가 이중으로 처리된 것으로 알려지면서 비트코인 ‘이중지불’(Double Spending)에 대한 관심이 높아졌다. 비트코인의 설계 특성상, 이런 이중지불은 일어나서는 안 된다.

그러나 실제로 우리가 흔히 생각하는 개념의 이중지불은 발생하지 않았다.

오케이코인(OkCoin)의 최고운영책임자(COO) 제이슨 라우는 “비트코인 ‘이중지불’에 대한 기사가 언론에 퍼지면서 투자자들의 근심이 커지기도 했지만, 모두 비트코인 네트워크의 작동 방식에 대한 이해가 부족해서 벌어진 일”이라고 말했다. 그는 이번 일이 비트코인 블록체인에서 하나의 블록이 재편성(reorganization)되는 과정에서 벌어졌는데, 이는 꽤 흔한 현상이라고 설명했다.

전체 비트코인 공급량에는 변화가 없었다. 때문에 비트코인이 이중으로 지불된 일도 없다. 비트코인 블록체인이 둘로 갈라지는 일상적인 현상이 발생했는데, 이 과정에서 하나의 지갑에 있던 특정 비트코인이 두 개의 블록에 동시에 반영되면서 오해가 생긴 것으로 보인다.

이것을 이중지불로 볼 수 없는 이유는 두 개의 블록 중 (가장 긴 역사를 가진 비트코인 블록체인에 있는) 한 개의 블록에 기록된 거래만 유효한 것으로 인정받기 때문이다. 나머지 블록에 기록된 비트코인은 유효하지 않기 때문에 (그 비트코인으로는) 지불이 불가능하다.

루카스 누찌 트위터: 어제 비트코인과 관련해 벌어진 일과 ‘이중지불’에 대한 허위 정보가 (언론에 의해) 너무 많이 떠돌고 있다. 올바른 내용은 다음과 같다.
루카스 누찌 트윗: 어제 비트코인과 관련해 벌어진 일과 ‘이중지불’에 대한 허위 정보가 (언론에 의해) 너무 많이 떠돌고 있다. 올바른 내용은 다음과 같다.

 

비트코인 블록의 재편성 과정

비트코인 채굴은 산발적으로 이뤄지고 경쟁도 심하다. 그래서 여러 채굴풀이 동시에 같은 블록을 채굴하는 경우가 발생하기도 하는데, 이때 블록체인이 두 갈래로 나뉘기도 한다. 이후 각 갈래에 채굴자들이 참여해 거래를 검증하는데, 이 과정에서 결국은 두 체인 중 하나만 살아남는다.

예를 들어 채굴풀 A와 채굴풀 B가 하나의 블록을 동시에 채굴해 A와 B라는 두 개의 갈래가 생성됐다고 치자. 이후 채굴자들은 두 갈래 중 하나를 선택해 블록을 쌓는다. A 갈래를 선택한 채굴자의 수보다 B 갈래를 선택한 채굴자의 수가 많다면, 결과적으로는 더 많은 채굴자의 선택을 받은 B 갈래가 살아남는다. 나머지 갈래는 네트워크와의 연결이 끊겨 도태되고, 채굴 이후 쌓인 블록은 모두 무효가 된다.

정확히 이런 일이 66만6833번째 블록에서 벌어졌다. 두 채굴풀이 동시에 거래를 검증해 두 갈래 블록이 생성됐고, 라우가 설명한 것처럼 하나의 블록만 살아남는 블록 재편성이 이뤄졌다. 사토시 나카모토가 비트코인 백서를 작성할 때 하나의 거래가 최종적으로 검증되기 위해서는 6번의 검증이 이뤄져야 한다고 말한 이유가 여기에 있다. 즉, 블록체인에 기록된 거래가 최종적으로 검증되려면 채굴 이후 6개의 새 블록이 생성돼야 한다는 것이다.

 

이중지불은 없었다

비트코인 이중지불에 대한 내용은 21일 비트멕스 리서치(BitMex Research)가 트위터를 통해 66만6833번째 블록에서 이상 정황이 발견됐다고 밝히면서 언론이 보도하기 시작했다. 실제로는 비트코인 블록체인에서 앞서 설명한 블록 재편성이 발생했고, 살아남은 체인, 즉 유효한 거래로 인정받은 체인에서 지불된 비트코인이 또 다른 ‘죽은 (또는 버려진) 블록’에서도 발견된 것이다. 즉, 동일한 비트코인에 대한 거래가 하나는 유효하고, 하나는 유효하지 않은 두 체인에 동시에 기록됐다.

비트멕스는 이를 ‘이중지불과 같은 상황’이라고 주장했지만, 들여다보면 블록 재편성과 수수료 기반 대체거래(RBF, replace-by-fee)가 동시에 이뤄지면서 모든 경우의 수가 맞물린 경우로 보인다. RBF 거래는 수수료를 높여 지갑에 있는 비트코인을 다시 전송하는 것으로, 수수료가 낮게 책정된 거래보다 먼저 검증받는 거래를 의미한다.

 

정확히 무슨 일이 일어났나

당시의 상황을 자세히 살펴보자. 누군가가 1D6aebVY5DbS1v7rNTnX2xeYcfWM3os1va라는 주소에 0.00062063BTC를 전송했다. 수수료는 1바이트 당 1사토시로, 가장 낮은 수준으로 책정됐다.

수수료가 매우 낮았기 때문에 검증이 이뤄지기까지 오랜 시간이 걸리자 전송자는 RBF 거래를 통해 검증 속도를 높이고자 했다.

그런데 그 순간 기존에 전송됐던, 더 낮은 수수료가 책정된 거래가 검증됐고, 가장 긴 블록체인에 생성된 블록에 남게 됐다. 더 높은 수수료가 책정된 거래가 기록된 블록은 죽은 블록이 됐다.

결과적으로는 유효하지 않은 체인에 존재하는 주소 1D6aebVY5DbS1v7rNTnX2xeYcfWM3os1va에 0.00062063BTC가 담긴 것으로 기록됐고, 유효한 체인에도 존재하는 동일 주소에는 0.00014499BTC가 담겼다.

블록 재편성 과정. 0xB10C 최초 작성, 비트멕스 리서치 보완
블록 재편성 과정. 0xB10C 최초 작성, 비트멕스 리서치 보완

 

6차례 검증의 중요성

엄밀히 말하자면, 동일한 비트코인이 두번 지불된 것은 맞다. 하지만 그중 한번의 거래는 비트코인 네트워크가 유효하다고 보지 않는 체인에 존재하는 주소에 기록됐다. 실제로 블록스트림 블록 익스플로러에서 ‘죽은(losing)’ 거래의 ID를 입력하면 아무것도 나오지 않는다.

비트코인 코어(Bitcoin Core)의 개발자이기도 한 슈어드비츠(Suredbits)의 벤 카르만은 “어떻게 보면 이중지불이지만 엄밀히 말하면 그렇지 않다”고 말한다.

“이중지불이 되려면 다른 사람에게 돈을 보내는 거래를 자신에게 보내는 거래로 대체하려는 의도가 나타나야 한다.”

코인 메트릭스(Coin Metrics)에서 비트코인 네트워크 데이터 분석을 맡고 있는 루카스 누찌는 트위터에서 “하나의 거래가 여러 버전으로 존재할 수 있는 것은 사실이지만, 결국 단 하나의 버전만 비트코인 네트워크의 노드와 이용자들의 인정을 받을 것”이라고 강조했다.

고의성이 있는 이중지불이 되려면 비트코인을 전송하는 사람이 다른 사람에게 비트코인을 보낼 테니 거래를 수락하라고 요구하면서 실제로는 자기 자신에게 비트코인을 보내는 속임수를 써야 한다. 이런 일을 방지하기 위해 특정 거래에 대해 6차례 검증이 이뤄질 때까지 기다리는 것이 관행으로 여겨진다. 그러나 이번 경우에는 처음부터 전송자와 수취자가 동일 주체일 가능성이 높은 만큼, 별다른 불법 행위에 대한 보고는 없었다.

코인 메트릭스의 공동창립자이자 코인데스크 칼럼니스트인 닉 카터는 트위터에서 이번 사건에 대해 언급하며 고의적인 이중지불 등 불법행위의 증거가 없기 때문에 사건을 종결하는 것이 맞다고 주장했다. 그는 이번에 벌어진 일이 사토시 나카모토가 백서에서도 언급했던 상황인 만큼, 비트코인 네트워크에서 얼마든지 벌어질 수 있는, 지극히 정상적인 일이라고 강조했다.

닉 카터 트윗: 진짜 이중지불이 되기 위해서는 특정 조건이 충족돼야 한다. 우선 이용자의 예치 한도에 이르는 충분한 규모의 블록 재편성이 일어나야 한다. 블록 한 개가 재편성되는 건 이 기준을 충족하지 않는다. 아울러 실제 이용자가 “사기를 당했다”고 주장해야 한다.이번 사태에서는 두 가지 조건 모두 충족되지 않았다. 다만 굉장히 일어나기 힘든, 이례적인 상황이 연출된 것으로 보인다.이런 이중지불은 과거에도 발생했을 가능성이 크다. 그렇다고 해서 비트코인이 제대로 작동하지 않는다는 뜻은 아니다. 각각 다른 환경에서 벌어진 일이고, 결국엔 블록체인의 거래에 아무런 영향도 주지 않았다. 이 점이 중요하다.
닉 카터 트윗: 진짜 이중지불이 되기 위해서는 특정 조건이 충족돼야 한다. 우선 이용자의 예치 한도에 이르는 충분한 규모의 블록 재편성이 일어나야 한다. 블록 한 개가 재편성되는 건 이 기준을 충족하지 않는다. 아울러 실제 이용자가 “사기를 당했다”고 주장해야 한다.이번 사태에서는 두 가지 조건 모두 충족되지 않았다. 다만 굉장히 일어나기 힘든, 이례적인 상황이 연출된 것으로 보인다.이런 이중지불은 과거에도 발생했을 가능성이 크다. 그렇다고 해서 비트코인이 제대로 작동하지 않는다는 뜻은 아니다. 각각 다른 환경에서 벌어진 일이고, 결국엔 블록체인의 거래에 아무런 영향도 주지 않았다. 이 점이 중요하다.

 

· This story originally appeared on CoinDesk, the global leader in blockchain news and publisher of the Bitcoin Price Index. view BPI.
· Translated by NewsPeppermint.

제보, 보도자료는 contact@coindeskkorea.com



댓글삭제
삭제한 댓글은 다시 복구할 수 없습니다.
그래도 삭제하시겠습니까?
댓글 0
댓글쓰기
계정을 선택하시면 로그인·계정인증을 통해
댓글을 남기실 수 있습니다.