암호화폐 버전 유령주식 사태...1경개의 유령 SMT토큰 어디로
거래소 후오비 "이상 거래 발견 직후 거래 중지 조치" OKEx도 거래 중지
이 기사를 공유합니다
박근모
박근모 2018년 4월26일 18:15
SMT, 오버플로우, ERC20이더리움 ERC20 프로토콜을 기반으로 만들어진 SMT(SmartMesh) 토큰에서 잔고보다 많은 금액이 인출되어 전송되는 오버플로우(overflow) 오류가 발생했다. 이번 사건은 그동안 꾸준히 지적됐던 블록체인 상의 취약점을 이용한 것으로 존재하지 않은 SMT 1경개 토큰(한화 약 9경1885조원)을 거래소에 전송한 뒤 현금화하는 방식으로 진행됐다. 암호화폐 거래소 후오비가 SMT의 '이상거래'를 처음 발견한 것으로 알려졌다. 후오비 측은 이상거래를 발견 후 거래 중지 조치를 취했지만, 이더스캔을 통해서 해당 지갑 주소를 확인한 결과 이미 일부가 다른 지갑으로 출금된 것이 확인됐다. SMT 토큰은 암호화폐 정보사이트인 코인마켓캡에서 시가총액 기준 100위권에 있던 암호화폐로 스마트폰 등 모바일 기기를 연결해 블록체인을 만드려는 취지로 2017년 12월에 발행됐다.

SMT 토큰은 이더리움 ERC20 프로토콜을 기반으로 만들어졌고, 후오비와 OKEx, HitBTC, Gate.io 등 총 4곳의 거래소에서 상장됐다. 총 발행량은 31억 4159만 2653개다. 이번 오버플로우 오류는 ERC20 프로토콜의 취약점이 아닌, SMT 측에서 토큰 전송을 위해 임의로 만든 트랜스퍼프록시(transferProxy) 함수의 오류다. 트랜스퍼프록시 함수를 사용하면 이더리움 기반의 토큰을 전송할 때 이더리움 대신 SMT를 수수료로 지불할 수 있다.

트랜스퍼프록시 함수는 보내는 사람의 지갑 잔고를 확인 후 받는 사람이 정확한지 검증한다. 검증이 완료되면 SMT 토큰이 전송된다. 이 과정에서 토큰을 보내는 사람의 잔고가 전송하려는 토큰보다 많아야 정상적으로 처리된다. 하지만 해커는 이 과정에서 트랜스퍼프록시 함수의 취약점을 노려 보내는 사람의 잔고 이상의 토큰을 전송했다.

다수의 블록체인 개발자들에 따르면 이번에 발견된 오버플로우 오류는 이더리움 스마트컨트랙트를 위한 적용을 위한 EVM(이더리움가상머신) 개발 초기부터 이미 지적된 문제로, ERC20 기반의 토큰 개발에 있어서 반드시 고려해야 하는 필수 항목이다. 특히 오버플로우 오류를 막기 위해서 이더리움에는 세이프매스(safeMath)라는 함수가 마련돼 있다. ERC20 기반 토큰을 만들 때 세이프매스 함수를 삽입해 두면 오버플로우나 언더플로우 발생시 오류 메시지가 뜨면서 작동하지 않는다.  현재 개발됐거나 개발 중인 ERC20 기반 토큰들은 대부분 세이프매스 함수를 적용한 상태이다.

SMT, 이더스캔
해커가 오버플로우 오류를 이용해 대규모로 토큰을 생성한 지갑


이더리움 트랜잭션을 확인할 수 있는 이더스캔에 해커가 이용한 지갑 주소를 확인한 결과, 해커는 4월 24일 오후 7시 16분경 먼저 지갑 주소 ''0xDF31A499A5A8358b74564f1e2214B31bB34Eb46F'에서 오버플로우 취약점을 이용해 65,133,050,195,990,400,000,000,000,000,000,000,000,000,000,000,000,000,000,000개의 토큰을  생성한 후 다시 자신의 지갑 주소로 보냈다. 이후 '0xDF31A499A5A8358b74564f1e2214B31bB34Eb46F'에서 '0xd6a09BDB29e1EafA92a30373c44b09E2e2e0651E'로 50,659,039,041,325,800,000,000,000,000,000,000,000,000,000,000,000,000,000,000 개의 토큰을 전송했으며, 이 중 1경개의 토큰이 후오비로 전송됐다.

SMT, 이더스캔
해커가 생성한 위조 토큰이 타 지갑으로 이체된 흔적도 발견됐다.


이더스캔을 확인한 결과 해커의 지갑(0xDF31A499A5A8358b74564f1e2214B31bB34Eb46F)을 통해서 소규모로 타 지갑으로 이체된 흔적도 남아있어 향후 대응책 마련이 필요할 것으로 보인다.

SMT 측은 "25일 새벽 오버플로우 오류를 발견했다"라며 "현재 후오비, OKEx, Gate.io 등 거래소들과 협조하에 SMT 거래 및 송금을 모두 중단한 상태"라고 전했다. 이어 "해당 위조 토큰을 보유한 주소는 동결했으며, 오는 30일 이더리움 블록체인과 독립할 계획"이라고 덧붙였다.

블록체인 업계 관계자들은 "이번 오버플로우 오류는 이더리움 기반 토큰 개발에 있어서 기본적으로 체크해야하는 부분"이라며 "SMT 개발자들의 능력이 부족해서 발생한 것인지, 고의로 기본적인 오류 발생 가능성을 무시한 것 아닌지 의심스럽다"고 전했다.

더불어 SMT 토큰뿐만 아니라 BEC 토큰도 오버플로우 오류가 발견된 것으로 알려져 ERC20 기반 토큰들에 대한 소스코드 검증이 필요한 것 아니냐는 의견도 제시됐다.

이에 대해 권용석 엑스블록시스템즈 최고기술책임자(CTO)는 "SMT와 BEC 토큰 등 ERC20 기반 토큰들에서 오버플로우 오류가 발견됨에 따라 현재 잘 알려진 ERC20 토큰들의 소스코드 분석 작업을 진행 중"이라고 설명했다.

SMT 토큰을 상장했던 후오비코리아 측은 "후오비에서 SMT 이상 거래를 처음 발견해 가장 먼저 거래 중지를 하는 등 조취를 취했다"라며 "SMT 상장에 따른 검증 절차가 미비했다는 점에 대해서는 추가로 확인 후 답변하겠다"고 말했다.

OK코인코리아 측은 "현재 OKEx와 SMT가 투자자 보호를 위한 대응책 마련을 위해서 대화를 진행 중"이라며 "OK코인코리아에는 SMT가 거래되지 않았던만큼 직접적인 투자자 피해는 없을 것으로 예상되지만, SMT와 관련된 추가 정보가 나오는데로 제공할 계획"이라고 전했다.

 

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



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