2700만 달러 증발시킨 이더리움 ERC-20 표준의 ‘토큰 분실 취약점’을 해결하는 새로운 이중 레이어 보안 기술

 



가상자산 시장이 급격히 성장하면서 블록체인 네트워크 위에서 작동하는 스마트 계약 기술은 금융 거래, 공급망 관리, 디지털 신원 확인 등 수많은 분야의 핵심 기반으로 자리 잡았다세계에서 가장 활발하게 사용되는 블록체인 플랫폼 중 하나인 이더리움은 자체 생태계 안에서 가상자산을 쉽게 발행하고 관리할 수 있도록 ‘ERC-20’이라는 표준 인터페이스 규격을 제공한다이 표준 덕분에 수많은 탈중앙화 애플리케이션인 디앱(dApp)과 가상자산 거래소, 사용자 지갑 서비스가 서로 매끄럽게 연동되어 동작할 수 있다.


그러나 대중적으로 널리 쓰이는 ERC-20 표준에는 치명적인 설계 결함이 존재한다사용자가 실수로 주소를 잘못 입력하거나 시스템 구조를 오해하여 특정 주소로 토큰을 전송했을 때, 전송된 디지털 자산이 영구히 잠겨버려 절대 되찾을 수 없는 *‘토큰 분실 문제(Lost Token Problem)’*가 바로 그것이다학계와 블록체인 업계의 조사에 따르면 이 취약점으로 인해 발생한 누적 피해 금액만 이미 2700만 달러(한화 약 360억 원)를 넘어섰다최근 발표된 블록체인 학술 연구에서는 기존에 제안된 보안 대책들의 한계를 수학적으로 검증하고, 이미 배포되어 사용 중인 기존 가상자산까지 안전하게 보호할 수 있는 혁신적인 *‘이중 레이어(Double-layer) 솔루션’*을 제시하여 주목받고 있다.


가상자산이 스마트 계약 자체 주소나 빈 주소로 전송되면 왜 영원히 갇히게 될까


블록체인 사용자들이 가장 자주 겪는 자산 손실 사례 중 하나는 토큰을 발행한 스마트 계약 프로그램의 자체 주소로 토큰을 전송하는 경우이다. 왜 이런 일이 발생할까. 원인은 ERC-20 표준 내부의 ‘transfer()’ 함수 설계 방식에 있다이 함수는 토큰을 받는 대상이 일반 사용자의 개인 지갑 주소인지, 아니면 특정 기능을 수행하는 스마트 계약 주소인지를 구별하지 않고 무조건 잔액을 이동시키도록 설계되었다.


만약 사용자가 가상자산을 소각(Burn)하여 전체 유통량을 줄이려는 목적으로 소각 전용 함수 대신 일반 전송 함수를 잘못 호출하거나, 시스템 구조를 잘 몰라 토큰 계약 주소로 자산을 보내면 문제가 발생한다해당 스마트 계약 내부에 내부 자산을 다시 외부로 출금하거나 이체할 수 있는 회수 기능이 프로그래밍되어 있지 않다면, 그 주소로 들어온 토큰은 그 누구도 손댈 수 없는 상태로 블록체인 네트워크에 영원히 묶이게 된다.


블록체인 네트워크는 한 번 코드를 배포하면 보안 취약점이 발견되더라도 사후에 임의로 코드를 수정하거나 변경할 수 없는 *‘불변성’*을 특성으로 가지기 때문에 가상자산이 데드락(Deadlock, 교착 상태)에 빠져 허공으로 날아가 버리는 것이다실제로 옵티미즘(Optimism) 블록체인 플랫폼에서는 사용자의 조작 실수로 인해 약 19만 7000달러 상당의 OP 토큰 13만 개가 자체 계약에 묶여 동결되는 사고가 발생하기도 했다.


여기에 더해 가상자산이 스마트 계약 자체에 묶여버리면 가상자산 투자자들이 시장 가치를 판단할 때 사용하는 중요한 지표인 ‘완전 희석 가치(Fully Diluted Valuation, FDV)’ 계산에도 오류가 생긴다실제로는 영구히 동결되어 시장에 유통될 수 없는 가산자산인데도 시스템상으로는 발행된 자산으로 집계되기 때문이다실제로 42억 개가 넘는 대규모 토큰이 스마트 계약에 잠겼을 때, 시장 가치가 약 64억 4225만 달러로 평가되어야 함에도 실제보다 과대평가된 64억 4245만 달러로 왜곡되는 현상이 관측되었다.


또 다른 심각한 시나리오는 블록체인에 아무런 프로그램도 배포되지 않은 상태인 *‘빈 주소(Empty Address)’*로 토큰을 잘못 보냈을 때 발생한다대표적으로 2022년 가상자산 투자 기업인 윈터뮤트(Wintermute)가 실수로 2000만 개의 OP 토큰을 주인이 지정되지 않은 빈 스마트 계약 주소로 전송하는 사건이 있었다블록체인 네트워크에서는 주인이 없는 빈 주소에 토큰이 쌓여 있을 때, 해커가 무차별 대입(Brute-force) 방식으로 해당 주소와 정확히 일치하는 스마트 계약 생성 매개변수를 찾아내어 직접 계약을 배포하는 공격이 가능하다이 사건에서 해커는 토큰이 묶여 있는 빈 주소에 교묘하게 공격용 스마트 계약을 강제로 배포한 뒤 쌓여 있던 토큰을 모두 탈취해 달아났으며, 이로 인한 피해 액수만 무려 2700만 달러에 달했다.


기존에 제안된 보안 표준들은 이미 발행된 가상자산을 보호하지 못한다


블록체인 커뮤니티와 개발자들은 이 같은 토큰 분실 문제를 해결하기 위해 스마트 계약 코드 수준에서 여러 대책을 제안해 왔다가장 단순한 방식은 토큰 계약 내부의 전송 함수에 조건문(require)을 추가하여 수신 주소가 토큰 계약 자신의 주소와 일치할 경우 거래(Transaction) 자체를 강제로 취소(Revert)시키는 방법이다또한 수신 주소의 코드 크기(extcodesize)를 검사하여 아무런 프로그램이 배포되지 않은 빈 주소이거나 네이티브 가산자산 잔액이 전혀 없는 곳으로의 전송을 사전에 차단하는 스마트 계약 코드를 삽입하는 방식도 연구되었다.


더 나아가 기존 ERC-20을 확장하여 ‘ERC-1363’이나 ‘ERC-4524’ 같은 새로운 토큰 표준을 도입하는 움직임도 있었다이 표준들은 가상자산을 전송한 직후에 토큰을 받는 상대방 스마트 계약이 이 자산을 인식하고 처리할 수 있는 전용 *‘콜백(Callback) 함수’*를 가지고 있는지 확인하는 기능을 핵심으로 삼는다만약 자산을 받는 스마트 계약에 토큰 수령용 함수가 구현되어 있지 않다면 전송 프로세스 자체를 안전하게 중단시켜 자산이 허공에 잠기는 현상을 방지하는 원리이다.


그러나 학술 연구진이 ‘플러스칼(+CAL)’ 언어와 *‘행위 시간 논리(Temporal Logic of Actions, TLA)’*를 활용하여 이 기존 솔루션들을 수학적으로 정밀하게 검증(Formal Verification)한 결과, 치명적인 공통 한계점이 발견되었다기존의 모든 방안은 가상자산을 처음 만드는 개발자인 ‘토큰 발행자(Token Author)’ 관점에서만 문제를 해결하려 했다는 점이다.


이러한 방식은 두 가지 심각한 문제를 낳는다. 


첫째, 이미 블록체인 네트워크에 배포되어 전 세계 수많은 사용자가 거래 중인 기존의 수천 수만 가지 ERC-20 가상자산에는 이 보안 코드를 사후에 적용할 방법이 전혀 없다블록체인의 스마트 계약은 수정이 불가능하므로, 이미 만들어진 자산의 보안 취약점을 고치려면 가상자산 전체를 새로 발행하여 전량 교환(마이그레이션)해야 하는 막대한 비용과 혼란이 수반된다만약 계약을 수정할 수 있도록 프록시 패턴 등의 업그레이드 기능을 미리 넣어둔다 하더라도, 이는 역설적으로 관리자가 언제든 코드를 바꿀 수 있다는 의미가 되어 블록체인의 핵심 가치인 탈중앙성과 신뢰성을 크게 훼손한다


둘째, 스마트 계약 내부에 주소 검증과 콜백 함수 확인 등 복잡한 논리 구조가 추가될수록 사용자가 거래할 때 지불해야 하는 수수료인 *‘가스비(Gas Fee)’*가 대폭 상승하여 사용자에게 경제적 부담을 전가하게 된다.


사용자 화면에서 자산 유실 가능성을 실시간으로 감지하고 차단하는 이중 레이어 솔루션

기존 기술의 한계를 극복하기 위해 이번 연구에서 제안된 혁신적인 접근법은 보안의 초점을 토큰 발행자가 아닌, 서비스를 실제로 사용하는 *‘토큰 보유자(Token Holder)’*와 사용자가 접하는 웹 브라우저 화면인 *‘사용자 인터페이스(User Interface, UI) 레이어’*로 전환하는 것이다연구진이 개발한 기술은 가상자산 거래가 블록체인 네트워크로 전송되기 직전, 웹 프론트엔드와 지갑 인터페이스 단계에서 안전성을 검사하는 시스템이다.


이 시스템은 사용자가 거래 화면에서 송금 버튼을 누르는 순간 백엔드에서 작동하여 두 가지 핵심 레이어 보안 검증을 수행한다먼저, 사용자가 보내려는 목적지 주소가 해당 토큰의 오리지널 스마트 계약 자체 주소인지를 실시간으로 대조한다만약 일치한다면 시스템은 네트워크에 거래를 제출하지 않고 화면에 즉시 경고창을 띄워 거래를 강제로 중단시킨다두 번째 레이어에서는 수신처 주소가 네트워크상에서 비어 있는 주소인지를 블록체인 노드를 통해 즉각 조회한다만약 수신처가 스마트 계약 프로그램도 없고 개인 키 주인도 지정되지 않은 빈 상태로 확인되면 자산 유실 및 해커의 탈취 위험이 크다고 판단하여 전송 명령 자체를 원천 차단한다.


이 *‘이중 레이어 솔루션’*이 가지는 가장 강력한 장점은 탁월한 *‘하위 호환성(Backward Compatibility)’*에 있다블록체인에 이미 배포되어 작동 중인 취약한 기존 ERC-20 스마트 계약들의 코드를 단 한 줄도 수정하지 않고 그대로 둔 채, 사용자들이 토큰을 거래할 때 사용하는 웹사이트나 탈중앙화 금융(DeFi) 서비스의 프론트엔드 인터페이스 라이브러리(예: EtherJS 확장 등)만 업데이트하면 즉시 시스템을 적용할 수 있기 때문이다스마트 계약 자체에는 복잡한 검증 코드가 추가되지 않으므로 사용자가 거래할 때 부담해야 하는 블록체인 가스비 수수료가 단 1원도 추가로 증가하지 않는 경제적 이점까지 동시에 확보할 수 있다.


안전한 가상자산 거래 생태계를 위해 보안 패러다임이 나아가야 할 방향

블록체인 기술이 진정한 제도권 금융과 글로벌 서비스로 도약하기 위해서는 사용자의 단순한 오작동이나 사소한 실수 하나 때문에 수십억 원의 자산이 한순간에 증발하고 해킹당하는 취약한 사용자 경험부터 반드시 개선되어야 한다그동안 가상자산 업계는 스마트 계약 내부의 소스 코드 보안 검사나 오디팅(Auditing)에만 치중해 왔으나, 이번 연구는 시스템 설계 단계의 오류가 초래하는 자산 손실을 사용자 접점 레이어에서 완벽하게 상쇄할 수 있음을 증명했다.


수학적 모델 검증 기법을 통해 안전성이 완벽히 입증된 이 이중 레이어 방안은 앞으로 가상자산 지갑 서비스와 디앱 프론트엔드 표준 개발에 폭넓게 인용될 것으로 전망된다기술의 완전무결함만을 강조하며 사용자에게 모든 책임을 전가하던 기존의 블록체인 보안 패러다임에서 벗어나, 기술이 인간의 실수를 능동적으로 보완하고 자산을 보호하는 진정한 사용자 중심의 안전한 웹3 생태계가 구축되기를 기대한다.


출처

  • Songsom, N., Suaboot, J., & Werapun, W. (2026). Resolving the token loss vulnerability in the Ethereum ERC-20 standard. Blockchain: Research and Applications, 7(1), 100329. https://doi.org/10.1016/j.bcra.2025.100329