2026년 8월 31일, Injective가 block 181,027,000에서 멈췄습니다.
이번 중단은 장애로 인해 블록 생성이 불가능해진 것이 아니라, 공격이 진행되는 상황에서 validator들이 의도적으로 네트워크를 중단한 emergency halt였습니다.
Injective Foundation은 validator들에게 potential attack vector가 발견됐다며 block 181,027,000에 halt-height를 설정해달라고 요청했고, 이후 v1.20.3-safeharbor.1 바이너리를 배포했습니다.
하지만 체인이 멈췄을 당시 상당한 자산은 이미 Injective 밖으로 빠져나간 상태였습니다.
그렇다면 탈중앙화된 블록체인은 위기 상황에서도 멈출 수 없어야 할까요?
Binary Options 취약점을 이용해 약 $4.8M이 탈취된 것으로 추정된다
2026년 9월 1일 현재 Injective의 공식 post-mortem은 공개되지 않았습니다. 따라서 정확한 exploit path는 아직 확정할 수 없습니다.
현재 공개된 온체인 분석에서는 공격자가 약 $55K의 초기 자금을 이용해 Binary Options market을 반복적으로 공격한 것으로 추정하고 있습니다.
가장 유력한 분석은 공격자가 자신의 계정 간 Binary Options 거래로 realized PnL을 만든 뒤, oracle price가 제공되지 않는 시장의 환불·정산 과정에서 이미 반영된 이익과 margin refund를 중복으로 가져갔다는 것입니다.
이 패턴이 약 299개 market에서 반복됐고, 약 $4.8M이 공격자 측으로 이동한 것으로 추정됩니다.
Injective의 safeharbor 패치는 Mainnet에서 Binary Options 관련 기능을 비활성화했습니다. derivative market의 quote denom과 insurance fund의 deposit denom 일치 여부를 검증하는 로직도 추가됐습니다.
다만 insurance fund 관련 변경이 이번 exploit의 직접적인 root cause인지는 아직 확인되지 않았습니다.
긴급 패치:
https://github.com/InjectiveFoundation/injective-core/releases/tag/v1.20.3-safeharbor.1-1788190988
공격자는 Circle CCTP를 통해 USDC를 Injective에서 Ethereum으로 옮겼다
공격자 주소로 추정되는 계정입니다.
0x792c6bf8ee604edee807327168af89fbf863c027
Injective Explorer:
Ethereum:
공격자는 Circle CCTP를 이용해 자산을 Injective에서 Ethereum으로 이동시켰습니다.
Injective에서 44,094 USDC를 burn했다
Injective block 181,025,018에서 공격자는 44,094.293341 USDC를 Circle CCTP의 depositForBurn()으로 burn합니다.
호출의 destinationDomain은 0이고, Circle CCTP에서 domain 0은 Ethereum을 의미합니다. recipient는 공격자 자신의 EVM 주소입니다.
약 20초 뒤 Ethereum에서 동일한 44,094 USDC가 mint됐다
Ethereum에서는 약 20초 뒤 Circle CCTP의 receiveMessage()가 실행됩니다.
https://etherscan.io/tx/0xa876e6a57af4f64f78b8f44ef4fd3ef638124241697a3ecf94730d914e312497
정확히 44,094.293341 USDC가 동일한 공격자 주소에 mint됩니다.
Event log에는 다음 값이 기록돼 있습니다.
sourceDomain = 29mintRecipient = 0x792c6bf8...amount = 44,094.293341 USDC
Circle CCTP에서 domain 29는 Injective이므로, 두 transaction은 동일한 CCTP transfer의 양쪽 기록으로 볼 수 있습니다.
Injective USDC burn → Ethereum USDC mint
Ethereum으로 옮긴 USDC는 Uniswap에서 ETH로 전환됐다
공격자는 Ethereum에 도착한 USDC를 Uniswap에서 WETH로 교환했습니다.
https://etherscan.io/tx/0xbcf17493454be53daee100adae30cd3a9f00ea3a41b96dc95a2b3d65e08f8200
해당 transaction에서는
44,094.293341 USDC → 17.879993994158254918 WETH
가 swap됩니다.
확인되는 자금 흐름은 다음과 같습니다.
Binary Options exploitInjective USDCCircle CCTPEthereum USDCUniswapETH
약 1,980 ETH가 별도의 Ethereum 주소로 모였다
변환된 ETH는 다음 주소로 이동했습니다.
0x5A18C382eD5bb01814296ee03026dbf5b32A69EA
확인되는 주요 transfer는 다음과 같습니다.
1,650 ETH
211.107589 ETH
118.7 ETH
합계는 약 1,979.807589 ETH입니다.
당시 가격으로 약 $4.9M이며, 공개 분석에서 추정한 약 $4.8M의 exploit 규모와 유사합니다.
Injective의 chain halt는 이미 탈취된 자산의 회수가 아니라 추가 exploit 차단을 위한 조치였다
온체인에서 확인되는 대규모 자산 이동 중 상당 부분은 halt 이전에 이미 Injective 밖으로 이동했습니다.
1,650 ETH 이동은 2026년 8월 31일 03:50 UTC에 발생했습니다.
https://etherscan.io/tx/0xda74518b78483c101890c4cb0e233d7b7698f0a9e96d79caea74612e0fab8c4b
211.107589 ETH 이동은 같은 날 05:21 UTC에 발생했습니다.
https://etherscan.io/tx/0x93a1de874fc6ec4bd61834971ea13bb1a8f26974a1752dc1bbe9e88d2b8c12a2
둘 다 Injective Foundation의 halt 요청보다 앞섭니다.
halt 요청 이후 실제 halt height에 도달하기 전까지도 출금은 이어졌습니다.
앞서 확인한 44,094.293341 USDC CCTP transaction은 block 181,025,018에서 실행됐고, target halt height는 181,027,000이었습니다.
따라서 이번 halt는 이미 탈취된 자산을 되돌리거나 가두기 위한 조치가 아니었습니다.
공격자가 같은 취약점을 반복해 추가 자산을 가져가는 것을 막기 위해 patch가 적용될 때까지 네트워크의 state transition을 중단한 것입니다.
공격자의 기존 transaction을 rollback하거나 balance를 수정하지는 않았습니다.
공격 자산이 모인 주소에는 bounty 협상 메시지도 전송됐다
0x5A18... 주소에는 다음 transaction이 전송됐습니다.
https://etherscan.io/tx/0xe2d56a88696ed1b72f6421875eb6bb1278373fbab589fef67e477b430f7eda24
Input data에는 다음 메시지가 포함돼 있습니다.
Hi. We would like to chat and offer you a bounty. Please get in touch.
transaction은 0x91e4f2e8770Cad99Bf3F1905c0336EbF8B964640 주소에서 전송됐습니다.
온체인에서 확인되는 전체 흐름을 정리하면 다음과 같습니다.
ExploitInjective USDC 확보CCTP를 통해 Ethereum으로 이동Uniswap에서 ETH로 변환약 1,980 ETH를 별도 주소로 이동해당 주소에 bounty 협상 메시지 전송
KelpDAO 해킹 당시 Arbitrum은 체인을 멈추는 대신 공격자의 30,766 ETH를 직접 이동시켰다
이번 사건과 비교할 만한 사례가 2026년 4월 KelpDAO의 rsETH exploit입니다.
흔히 “LayerZero 해킹”이라고 불리지만, LayerZero protocol 자체의 취약점보다는 KelpDAO의 bridge configuration과 LayerZero Labs DVN이 사용하던 RPC infrastructure가 공격받은 사건에 가깝습니다.
위조된 cross-chain message가 정상 메시지로 처리되면서 약 116,500 rsETH, 당시 약 $292M 규모의 자산이 탈취됐습니다.
LayerZero incident report:
이후 공격자가 보유한 30,765.67 ETH가 Arbitrum One에 존재하자 Arbitrum Security Council이 emergency action을 실행했습니다.
https://forum.arbitrum.foundation/t/security-council-emergency-action-21-04-2026/30803
Security Council은 Arbitrum Inbox contract를 일시적으로 upgrade하고, 공격자 주소를 대신해 transaction을 실행할 수 있는 기능을 추가했습니다.
이후 약 30,766 ETH를 recovery address로 이동시키고 Inbox implementation을 원래 상태로 복구했습니다.
체인은 계속 작동했지만 Security Council이 특정 계정의 state에 직접 개입했습니다.
Injective는 체인을 멈췄고, Arbitrum은 특정 state를 변경했다
Injective와 Arbitrum의 대응 방식은 분명히 달랐습니다.
Injective는 validator coordination을 통해 네트워크 전체를 멈췄습니다. 목적은 취약점을 이용한 추가 exploit을 차단하는 것이었고, 이미 탈취된 자산을 직접 이동시키지는 않았습니다.
반면 Arbitrum은 네트워크를 계속 운영한 채 Security Council이 특정 공격자 계정의 state에 직접 개입했습니다. 공격자가 보유한 약 30,766 ETH를 recovery address로 이동시켜 추가 이동을 차단했습니다.
정리하면 Injective는 추가 exploit을 막기 위해 chain 전체를 멈췄고, Arbitrum은 chain을 유지하면서 특정 공격자 자산에 직접 개입했습니다.
탈중앙화의 핵심은 ‘개입 불가능성’보다 ‘개입 권한의 제한’일 수 있다
블록체인의 탈중앙화를 설명할 때 흔히 “누구도 거래를 막거나 되돌릴 수 없다”고 말합니다.
하지만 치명적인 취약점이 발견돼도 누구도 시스템을 멈출 수 없다면 피해는 계속 커질 수 있습니다.
반대로 소수의 주체가 언제든 특정 계정의 자산이나 state를 변경할 수 있다면 immutable system이라고 부르기 어렵습니다.
따라서 개입 가능 여부만으로 탈중앙화를 판단하기는 어렵습니다.
더 중요한 것은 다음과 같은 조건입니다.
누가 어떤 조건에서 개입할 수 있는가
권한의 범위는 어디까지인가
얼마나 많은 독립된 주체의 동의가 필요한가
개입 과정과 결과를 누구나 검증할 수 있는가
Injective에서는 validator coordination을 통한 network halt로 비상 권한이 행사됐습니다.
Arbitrum에서는 Security Council의 emergency upgrade 권한으로 특정 state에 개입했습니다.
두 사건 모두 실제 블록체인에는 emergency power가 존재한다는 점을 보여줍니다.
차이는 그 권한이 누구에게 있고, 얼마나 넓으며, 어떤 절차를 통해 행사되는가에 있습니다.
탈중앙화를 평가할 때도 “누구도 개입할 수 없는가”보다 “개입 권한이 얼마나 제한되고 분산되어 있는가”를 함께 봐야 하는 이유입니다.










