EIP-7702는 바이낸스 63억 달러 해킹의 주요 원인이 아님; 서명을 어떻게 획득했는지가 핵심임
베이징 시간 2026년 10월 30일 04:24
체인 기록에 따르면 자금은 주소 0x28C6…1d60에서 유출됨. 이 주소는 '바이낸스 14'라 불리며, 바이낸스 최대 이더리움 핫 월렛 중 하나로 하루 수천 건의 출금을 처리함. 이번 거래로 167,464 ETH, 16.15억 달러 상당의 USDT, 60종 이상의 토큰(당시 시가 약 25억 달러)이 이동했으며, 월렛에는 1 ETH만 남음
가스 수수료는 0.0004 ETH로 1달러 미만임
3분 전인 04:21에 누군가 EIP-7702 유형 거래를 제출해 50개의 위임(authorization)을 포함시켰으며, nonce는 18,914,775~18,914,824까지 범위임. 이 중 49개는 무효였고, 단 1개만 성공함. '성공'이란: 그 순간부터 바이낸스 14 주소로의 모든 호출이 공격자가 전날 23:59에 배포한 검증되지 않은 '청소기(sweeper)' 스마트 계약(단일 청소 기능만 있음)을 실행한다는 의미임
따라서 바이낸스 14는 더 이상 월렛이 아님. 타인의 프로그램을 담은 껍질이 됨
08:06까지 위임은 여전히 유효함. 3시간 45분 동안 아무도 이를 철회하지 않음
그리고 이 위임을 '철회'하려면 동일한 키로 한 번만 추가 서명하면 됨. 당일 06:55에 바이낸스는 여전히 이 키를 사용해 청소되지 않은 분산 토큰들을 자체 월렛으로 재이체함
EIP-7702가 이번 공격의 주요 원인인가?
EIP-7702의 논리는 다음과 같음: 일반 주소(EOA)가 스마트 계약 코드를 '대여'할 수 있도록 허용하며, 주소·잔고·개인키는 모두 그대로 유지됨. 대여 방식은 해당 주소의 코드 필드에 23바이트(0xef0100 + 계약 주소)를 기록하는 것임. 이 23바이트는 실행 가능한 코드가 아니라 단순 포인터일 뿐임. 이후 이 주소로의 호출은 EVM이 포인터가 가리키는 코드를 로드해 해당 주소의 컨텍스트(즉, address(this)와 잔고는 그대로 유지)에서 실행함
이 사양엔 결함이 없음. 제로디브 창업자이자 EIP-7702 참여자인 드렉 쳉은 사건 당일 명확히 밝힘: EIP-7702 자체에 취약점은 없으며, 이 표준을 지원하는 월렛 사용자는 당황할 필요가 없음. 또 덧붙임: 공격자가 7702를 악용하려면 반드시 개인키를 확보하거나 바이낸스를 속여 7702 위임 서명을 받아야 함
이것이 공격 도구로 사용된 건 처음이 아님. 이더리움 펙트라 업그레이드 후, 윈터뮤트는 수주 내에 메인넷의 7702 위임 중 97% 이상이 거의 동일한 '청소기' 계약을 가리키는 것을 발견함. 연구 결과, 약 366만 건의 위임 거래 중 약 63%가 악성 계약과 관련되었고, 확인된 손실은 230만 달러임. 블록에이드는 2026년 상반기에 4건의 7702 관련 사건을 검증했으며, 총 피해액은 약 108만 달러로, 연내 7자리(백만 달러) 규모 사건이 발생할 것이라고 예측함
그 결과는 10자리(십억 달러) 규모로, 그들의 예측보다 세 자릿수 높음
이로 인해 많은 이들이 인류 역사상 최대 규모의 바이낸스 56억 달러 해킹 사건 원인을 EIP-7702로 지목함. 그러나 정말로 7702 문제인가?
서명은 어떻게 획득되었는가
더 깊이 들어가기 전에 분명히 해야 할 점 하나: 50개의 위임은 곧 50개의 서명을 의미함—그럼 정확히 이 50개 서명은 어떻게 생성된 것인가?
공격자가 완전한 개인키를 확보했다면 왜 50개의 nonce를 맹목적으로 추적해야 했겠는가? 키가 항상 바이낸스 소유였다면 왜 12분 안에 11개 월렛이 동시에 해킹당했는가? 아직 아무런 설명이 없음
주요 스윕 후 24초 만에 바이낸스 16호 지갑이 동일한 수신 주소로 28,005.6 ETH, 5,570만 달러 USDT, 2,590만 달러 RLUSD, 84.5 WBTC를 전송함.
12분 이내에 다른 10개 바이낸스 핫월렛이 4개 체인에서 동일한 행위 수행: 옵티미즘의 바이낸스 55호가 4,420만 달러 OP 전송; 아비트럼의 4개 월렛이 7,460만 달러 ARB 및 8,426 ETH 전송; 어베인치의 4개 월렛이 181만 AVAX 및 841만 달러 USDT 전송.
해당 월렛 중 어느 하나도 코드를 포함하지 않음. 모든 거래는 월렛 고유 프라이빗 키로 서명된 일반 송금으로, 정상적인 인출 사이에 삽입됨.
프라이빗 키 보유자는 논스를 맹목적으로 스나이프할 필요 없음. eth_getTransactionCount 조회는 1초면 충분함.
50개 연속 논스를 한 번에 커버하는 50개 승인을 동시에 생성해야 하는 사람은 다른 유형임: 서명은 얻었으나 월렛 실시간 상태에 접근 불가능한 사람, 혹은 사전 조립된 승인 일괄 제출만 가능하고 시스템이 자동 시도하도록 놔두는 사람.
특히 주목할 점은 이 50개 승인이 단일 트랜잭션 내에서 한 번에 승인됐다는 점임.
보안업체 블록에이드(Blockaid)는 '키가 오용됨'이라 평가했으며, 유가 랩스(Yuga Labs) 블록체인 부사장 퀴트(Quit) 역시 공격자가 확보한 것은 '승인된 서명'이지 프라이빗 키가 아니라고 판단함. 리레이어를 통한 제출은 서명 출처를 은폐하려는 의도였을 가능성 있음.
선유(Shenyu)는 아침 리캡에서 상세히 언급함: 06:55까지 바이낸스는 여전히 동일한 프라이빗 키로 서명하며, 회수되지 않은 분쇄 토큰을 자사 월렛으로 재전송함.
이는 당일 아침에도 키가 바이낸스의 통제 하에 있었다는 것을 의미함.
방금 10시 26분, 바이낸스는 초기 설명을 발표함: 개발운영(DevOps) 엔지니어의 노트북이 침해당해 공격자가 서비스 컨테이너에 접근하고 무단 인출 거래를 제출함. 현재까지 월렛 프라이빗 키 유출 증거는 발견되지 않음.
실종된 시점은 체인상이 아님.
핵심 문제는 EIP-7702가 아니라 서명 이전 단계임.
핫월렛은 하루 수천 건 거래를 서명하므로 자동화되어야 하며, 보안을 위해 HSM, MPC, 멀티시그, 승인 흐름 등이 필수임. 따라서 전체 보안 모델은 한 문장으로 압축됨: '이 거래를 서명해서는 안 된다'는 판단을 서명 전에 할 수 있는가?
문제는 대부분의 판단 기준이 금액과 주소 두 가지 항목만 고려한다는 점임.
7702 승인에는 이 두 항목이 모두 없음. 금액이 없고, 변경되는 것은 '얼마나 전송할 것인가'가 아니라 '이 주소가 무엇인지'임.
바이낸스가 방어하지 않았던 것이 아님.
사건 3일 전인 10월 27일, 바이낸스는 주목할 만한 사실을 적극 공개함: 지난 1주일간 보안팀이 북한 관련 공격을 여러 차례 차단함. 공격 방법은 '감염성 인터뷰(Contagious Interview)'로, 상대방이 채용 담당자로 위장해 인터뷰·코딩 테스트 등을 제안하고 '개발 도구 먼저 설치해 달라'며 악성 프로그램 실행을 유도함. 프로그램 실행 시 키, 내부 네트워크, 자금 이동까지 모두 침투 경로가 열림.
하지만 '이 거래를 서명해야 하는가'라는 판단은 막지 못함.


