모네로 블록체인 공격 당했나? 21개 블록 하드포크 되며 이중지불 가능했다

어제 (5월 7일) 프라이버시 코인 모네로의 블록체인이 무려 21개 블록이나 하드포크되는 사건이 일어났다. 이번 사건으로 소수의 이중지불 사태가 발생하거나 본인의 암호화폐가 분실되는 등 블록체인의 안전에 심각한 문제들이 부각되었다.

‘가장 긴 블록체인’의 개념

모네로가 이용하는 ‘작업증명(Proof-of-work)’ 블록체인은 기본적으로 가장 앞서는 블록체인을 ‘진실’로 삼으며 블록 내부에서 일어난 거래들의 진위여부를 판단한다. 이는 비트코인으로 부터 계승된 수학적 논리이다.

사토시 나카모토는 기본적으로 한 블록체인이 전송내역의 진위여부로 대립되는 상황이 올 때, 가장 많은 ‘작업’을 한 블록체인이 진실을 말하고 있다고 전제한다. 그렇기 때문에 암호화폐 전송 후 추가되는 블록에 비례하는 ‘컨펌’이라는 개념이 적용된다. 꾸준히 새로운 블록이 추가될수록 진위여부에 대한 논란이 없다는 것을 뜻하기 때문이다.

만약 거래의 진위여부를 두고 블록체인의 분열이 일어나 각 블록이 비슷한 양의 일을 하고 있을 경우, 한 체인이 압도적으로 앞서기 까지 기다려야 한다.

이상 현상을 보인 모네로 블록체인

이번 모네로 블록체인에서 일어난 블록체인 분열 사건은 이런 의미에서 모네로 블록체인의 안정성에 대해 큰 의구심을 불러왔다.

작업증명 블록체인에서는 흔히 블록체인이 분열되는 현상이 일어나기는 해도, 보통 한두 개의 블록이 생성된 뒤에 ‘승자’가 결정되며 사건이 정리된다. 지금까지 모네로 블록체인은 4분(2개 블록) 이상 분열된 적이 없었다.

하지만 이번에 모네로 블록체인에서는 무려 42분(21개 블록) 동안 ‘승자’가 결정나지 않아 거래에 큰 혼선을 빚었다. 보통 모네로 결제는 2개에서 5개의 컨펌이 확정될 때 전송이 성공한 것으로 보기 때문에, 무려 21개 블록에 문제가 생긴 것은 사실상 100% 이중지불이 가능했다는 뜻이다.

인터넷 커뮤니티 레딧(Reddit)에서 일부 모네로 유저들은 코인이 전송되지 않는 현상을 보인다고 제보했다. 노드를 직접 운영하는 일부 유저들은 DDoS 공격 현상이 일어나기 시작했다고 밝혔으며, 전송한 코인이 사라지거나, 이중지불이 성공적으로 처리되는 현상도 확인되었다.

실질적인 원인은 아직도 파악 불가

이번 사건의 원인은 아직 파악되고 있지 않다. 외부에서 대량의 채굴기를 이용해 공격을 진행한 것이라면, 모네로 전체 블록체인의 연산 능력(Hash rate) 수치가 오르는 것이 포착 되어야 한다. 하지만 모든 데이터상으로 모네로의 연산 능력에 이상 징후는 확인되지 않았다.

일각에서는 채굴에 참여하는 내부자 중 일부가 네트워크 공격에 가담했다는 소문이 제기되고 있다. 반면, 일부 유저들은 최근 모네로가 ASIC 채굴기를 막기 위해 진행한 하드포크의 코드에 문제가 있기 때문에 사건이 일어날 수 있었던 거라고 주장하기도 했다.

현재로서 21개 블록을 포크할 정도의 공격을 하기 위해 필요한 자금과 연산능력은 비현실적일 정도로 엄청나다. 가장 유력한 원인은 모네로 코드에 문제가 있었거나, 단순한 ‘확률’의 문제 때문인 것으로 보인다.

Image: Shutterstock