암호화폐 거래소에 송금한 파일코인(FIL)이 이중으로 입금되는 사고가 18일(현지 시간) 발생해 블록체인 업계의 비상한 관심이 쏟아졌다. 블록체인 네트워크의 기초적인 문제인 이중 지불 오류일 가능성이 제기됐기 때문이다. 이중 지불은 블록에 담긴 기존의 거래 정보를 악의적으로 덮어씌워 코인의 잔액을 이중으로 복사하거나 전송하는 사고를 말한다. 그러나 파일코인은 조사 결과 암호화폐 거래소가 파일코인의 클라이언트를 제대로 사용하지 않아 이중 예치가 발생한 결과라고 밝혔다.
이번 사건은 파일코인을 채굴하는 채굴업체인 파일폭스와 파일스타가 지난 18일(현지 시각) 6만1000파일코인(한화 약 52억원)을 다국적 암호화폐 거래소인 바이낸스로 전송하면서 시작됐다. 네트워크가 혼잡해 전송 작업에 소요되는 시간이 예상보다 길어지자 이들은 기존 트랜잭션을 취소하고 지불 수수료를 높여 다시 전송하려 시도했다. 코인을 송금할때 수수료를 많이 내면 빠른 속도로 처리될 가능성이 높기 때문이다. 그러나 이미 전송된 트랜잭션을 취소하는 작업이 실패하면서 바이낸스의 입금계좌에는 FIL 코인의 양이 원래보다 두 배인 12만2000FIL(한화 104억원)이 입금됐다.
바이낸스는 이 결과를 놓고 “파일코인 메인넷에 문제가 있다”며 “이중 지불은 잘못된 리모트 프로시저 콜(RPC) 연결의 결과”라고 밝혔다. 문제의 원인이 파일코인의 메인넷에 있다는 분석 때문에 네트워크 자체에 오류가 있는 것이 아니냐는 지적이 나오면서 블록체인 업계가 한순간 들썩거렸다. 파일코인은 코인마켓캡 기준으로 시가총액 21위인 대형 블록체인 프로젝트이기 때문이다.
파일코인도 사안의 심각성을 인지하고 재빨리 조사에 착수했고 이후 이번 사건의 원인이 블록체인 프로토콜에서 발생한 이중 지불 문제가 아니라고 의혹을 일축했다. 파일코인은 자사의 블로그를 통해 응용프로그래밍 인터페이스(API)와 RPC 연결에는 결함이 발견되지 않았으며 암호화폐 거래소가 클라이언트 프로그램에서 취소된 트랜잭션을 탐지하는 API의 기능을 잘못 사용한 결과라고 밝혔다. 파일코인은 블로그 글을 통해 “바이낸스 등 암호화폐 거래소 여럿은 작년에 등장한 파일코인의 새로운 클라이언트인 로터스를 사용해 입출금을 관리하고 있다. 이번 이슈는 로터스의 해당 기능을 제대로 숙지하지 않아 발생한 문제”라고 덧붙였다.
실제로 파일코인에서 트랜잭션을 취소하고 코인을 재전송하는 과정에는 이전 트랜잭션과 새로운 트랜잭션 등 총 두 개의 트랜잭션이 모두 전송된다. 취소된 트랜잭션과 새로운 트랜잭션의 메시지를 비교해 데이터를 맞춰보기 위함이라는 설명이다. 두 트랜잭션은 수수료 가스값만 다르고 나머지 값은 동일한 형태로 겉보기로는 구별이 쉽지 않다. 때문에 암호화폐 거래소에선 이같이 사용자가 취소한 트랜잭션을 걸러내기 위해 별도의 처리 절차를 진행해야 한다. 그렇지 않으면 취소된 트랜잭션도 정상적인 트랜잭션으로 둔갑할 수 있다. 반면 바이낸스 등 암호화폐 거래소는 해당 API의 기능을 제대로 사용하지 않아 사용자가 취소한 트랜잭션을 미처 파악하지 못했다는 설명이다.
이번 사건으로 암호화폐 거래소에서 현재까지 발생한 자금 피해는 없는 것으로 확인됐다. 바이낸스 등 문제가 발생한 암호화폐 거래소에선 사용자의 FIL 입출금을 즉각 중단했고 잘못된 트랜잭션도 후속적으로 취소했다는 설명이다. 파일코인의 로터스 팀은 이번에 발생한 사건을 토대로 해당 기능을 포함한 API를 구체적으로 설명하는 게시글을 자사의 깃허브에 올렸다.
[강민승 기자]