2.93억 달러 증발, 코드 제로 취약점: 2026년 최대 해킹 사건이 드러낸 DVN 구성 보안 맹점
- 핵심 관점: 2026년 4월 발생한 Kelp DAO 29.3억 달러 공격 사건의 근본 원인은 스마트 계약 코드 취약점이 아닌, 크로스체인 브리지(LayerZero)의 구성 위험과 노드 운영 보안의 이중 실패로 인한 것이며, 이는 현재 DeFi 보안 감사 패러다임이 비코드(non-code) 수준의 위험에 대응할 때의 구조적 맹점을 드러냈다.
- 핵심 요소:
- 공격 근원은 구성 오류: Kelp DAO가 LayerZero V2를 배포할 때, DVN(탈중앙화 검증 네트워크) 임계값을 "1-of-1"로 구성했으며, 이는 공격자가 단 하나의 검증 노드만 공격하면 위조된 크로스체인 메시지를 생성할 수 있음을 의미한다.
- 노드가 공격당함: 공격자는 유일한 DVN 노드를 성공적으로 침입하여 메시지를 위조할 수 있었고, 이로 인해 메인넷에 실제 자산 담보 없이 116,500개의 rsETH를 발행할 수 있었다.
- 감사 도구의 맹점: 기존 보안 감사 도구(예: Slither, Mythril)는 주로 코드 논리 취약점을 스캔하며, 배포 시 구성 매개변수(예: DVN 임계값)의 적절성을 감지할 수 없다.
- 막대한 부실 채권 발생: 공격자는 위조된 rsETH를 담보로 사용하여 Aave, Compound 등 주요 대출 프로토콜에서 2.36억 달러 이상의 실물 자산을 차입했으며, 이 중 Aave V3는 약 1.77억 달러의 부실 채권에 직면했다.
- 비코드 취약점으로 인한 손실 규모: 이번 사건은 이전의 Nomad 크로스체인 브리지 사건(구성 오류)과 유사하며, 구성/초기화 클래스 취약점으로 인한 누적 손실이 약 50억 달러에 달해, 키 유출 클래스 손실 규모와 비슷함을 보여준다.
2026년 4월 18일, Kelp DAO의 유동성 재스테이킹 프로토콜이 몇 시간 만에 공격자로부터 크로스체인 브리지에서 116,500개의 rsETH(당시 가치로 약 2억 9300만 달러 상당)를 빼앗겼습니다. 전체 과정은 다소 비정상적으로 효율적이었는데, 위조된 크로스체인 메시지부터 Aave V3, Compound V3, Euler 세 가지 대출 프로토콜에 불법 자금을 분산시켜 실제 자산을 빌리는 과정까지, 공격자는 당일 2억 3600만 달러 상당의 WETH를 가지고 철수했습니다. Aave, SparkLend, Fluid는 즉시 rsETH 시장을 전면 동결했습니다.
이는 2026년 현재까지 가장 큰 DeFi 공격 사건입니다.
하지만 이번 공격을 대부분의 해킹 사건과 구별 짓는 한 가지가 있습니다. Kelp DAO의 스마트 계약 코드에는 어떤 취약점도 없었습니다. 조사에 참여한 보안 연구원 @0xQuit은 X에 "제가 현재 파악한 바에 따르면, 이는 두 가지 문제가 중첩된 것입니다: 1-of-1 DVN 구성, 그리고 DVN 노드 자체가 공격당한 것입니다."라고 썼습니다. LayerZero 공식도 성명에서 계약 코드를 언급하지 않고, 문제를 'LayerZero 취약점'이 아닌 'rsETH 취약점'으로 규정했습니다.

2억 9300만 달러는 어떤 코드 줄에도 없었습니다. 그것은 배포 시 잘못 입력된 하나의 구성 매개변수에 숨어 있었습니다.
DeFi 보안 감사의 일반적인 논리는 다음과 같습니다: 계약을 찾고, 코드를 읽고, 취약점을 찾는다. 이 논리는 코드 로직 취약점을 대응할 때는 상당히 원활하게 작동하며, Slither, Mythril과 같은 도구들은 재진입 공격, 정수 오버플로우와 같은 알려진 패턴에 대한 탐지 능력이 비교적 성숙합니다. 최근 2년간 적극적으로 홍보된 LLM 보조 코드 감사는 비즈니스 로직 취약점(예: 플래시론 차익 거래 경로)에 대해서도 어느 정도 능력을 갖추고 있습니다.

하지만 이 매트릭스에는 빨간색으로 표시된 두 개의 행이 있습니다.
구성 계층 취약점은 도구 감사에서 구조적 사각지대에 속합니다. Kelp DAO에 문제가 발생한 부분은 .sol 파일에 있지 않고, 프로토콜 배포 시 기록된 하나의 매개변수인 DVN 임계값에 있었습니다. 이 매개변수는 크로스체인 메시지가 몇 개의 검증 노드 확인을 거쳐야 합법적인 것으로 간주되는지를 결정합니다. 이것은 코드에 들어가지 않으며, Slither의 스캔 범위에도, Mythril의 기호 실행 경로에도 들어가지 않습니다. Dreamlab Technologies의 비교 연구에 따르면, Slither와 Mythril은 테스트된 계약에서 각각 5/10개와 6/10개의 취약점을 탐지했지만, 이 성적은 '취약점이 코드 안에 있다'는 전제 위에 세워진 것입니다. IEEE 연구에 따르면, 코드 수준에서도 기존 도구들은 악용 가능한 취약점의 8%-20%만 탐지할 수 있습니다.
기존 감사 패러다임 관점에서, 'DVN 임계값이 합리적인지 감지'할 수 있는 도구는 존재하지 않습니다. 만약 이러한 종류의 구성 위험을 감지하려면 필요한 것은 코드 분석기가 아니라, 전용 구성 체크리스트입니다: "사용된 크로스체인 프로토콜의 DVN 수 ≥ N?", "최소 임계값 요구사항이 있는가?"와 같은 질문들은 현재 표준화된 도구로 커버되지 않으며, 심지어 널리 인정받는 업계 규범조차 없습니다.
마찬가지로 빨간색 영역에 있는 것은 키와 노드 보안입니다. @0xQuit의 설명에서 언급된 DVN 노드 '공격당함'은 운영 보안(OpSec) 범주에 속하며, 어떤 정적 분석 도구의 탐지 경계를 벗어납니다. 어떤 일류 감사 기관이든 AI 스캔 도구든, 노드 운영자의 개인 키가 유출될지 여부를 예측할 능력이 없습니다.
이번 공격은 매트릭스의 두 빨간색 영역을 동시에 촉발시켰습니다.

DVN은 LayerZero V2의 크로스체인 메시지 검증 메커니즘으로, Decentralized Verifier Network(탈중앙화 검증 네트워크)의 약자입니다. 그 설계 철학은 보안 결정권을 애플리케이션 계층에 넘기는 것입니다: LayerZero에 연결된 각 프로토콜은 크로스체인 메시지를 통과시키기 위해 몇 개의 DVN 노드가 동시에 확인해야 하는지를 스스로 선택할 수 있습니다.
이 '자유도'는 하나의 스펙트럼을 만들어냅니다.
Kelp DAO는 스펙트럼의 가장 왼쪽 끝인 1-of-1을 선택했습니다. 즉, 하나의 DVN 노드 확인만 필요했습니다. 이는 내결함성이 제로임을 의미하며, 공격자는 그 하나의 노드만 공격하면 임의의 크로스체인 메시지를 위조할 수 있었습니다. 이와 대조적으로 Apechain은 마찬가지로 LayerZero에 연결되었지만, 두 개 이상의 필수 DVN을 구성했으며, 이번 사건에서 영향을 받지 않았습니다. LayerZero 공식 성명의 표현은 "다른 모든 애플리케이션은 여전히 안전합니다"였는데, 이 말의 함의는 다음과 같습니다: 안전한지 여부는 당신이 어떤 구성을 선택했는지에 달려 있습니다.
정상적인 업계 권장 사항은 최소 2-of-3이며, 공격자는 메시지를 위조하기 위해 두 개의 독립적인 DVN 노드를 동시에 공격해야 하므로 내결함성이 33%로 향상됩니다. 5-of-9과 같은 높은 보안성 구성은 내결함성을 55%까지 높일 수 있습니다.
문제는 외부 관찰자와 사용자가 이 구성을 볼 수 없다는 점입니다. 마찬가지로 'LayerZero 지원'이라고 불리지만, 그 배후에는 0% 내결함성일 수도 있고 55% 내결함성일 수도 있습니다. 둘 다 문서에서는 DVN이라고 불립니다.
Anyswap 사건을 경험한 베테랑 암호화폐 투자자 Dovey Wan은 X에 직접 이렇게 썼습니다: "LayerZero의 DVN이 1/1 검증자라니... 모든 크로스체인 브리지는 즉시 포괄적인 보안 검토를 수행해야 합니다."

2022년 8월, Nomad 크로스체인 브리지에서 취약점이 발견되었습니다. 누군가 첫 번째 공격 트랜잭션을 복사하여 약간 수정한 후, 그것도 성공한다는 것을 발견했습니다. 그래서 수백 개의 주소가 차례로 복사를 시작하여 몇 시간 만에 1억 9000만 달러를 털어갔습니다.
Nomad의 사후 분석에 따르면, 취약점의 근원은 "일상적인 업그레이드 중 trusted root를 0x00으로 초기화한 것"이었습니다. 이것은 배포 단계에서 발생한 구성 오류였습니다. Merkle 증명 검증 로직에는 문제가 없었고, 코드 자체에도 문제가 없었으며, 문제는 하나의 초기값을 잘못 입력한 것이었습니다.
이번 사건과 Nomad 사건을 합치면, 구성/초기화 클래스 취약점은 이미 약 4억 8200만 달러의 손실을 초래했습니다. 전체 크로스체인 브리지 도난 역사에서, 이 카테고리의 규모는 이미 키 유출 클래스(Ronin 6억 2400만 달러, Harmony 1억 달러, Multichain 1억 2600만 달러, 합계 약 8억 5000만 달러)와 나란히 할 수준입니다.
하지만 코드 감사 업계의 제품 설계는 결코 이 카테고리를 대상으로 한 것이 아닙니다.
업계에서 가장 많이 논의되는 것은 여전히 코드 로직 취약점입니다. Wormhole 3억 2600만 달러는 서명 검증 우회로 인해 해킹당했고, Qubit Finance 8000만 달러는 가짜 입금 사건으로 인해 도난당했습니다. 이러한 사례들은 완전한 취약점 분석 보고서, CVE 번호 유사체, 재현 가능한 PoC를 가지고 있어 감사 도구의 훈련과 최적화에 적합합니다. 구성 계층의 문제는 코드에 기록되지 않아 이 생산 순환에 들어가기 어렵습니다.
주목할 만한 한 가지 세부 사항은, 두 번의 구성 클래스 사건의 촉발 방식이 완전히 달랐다는 점입니다. Nomad는 일상적인 업그레이드 중 실수로 잘못된 초기값을 입력한 것으로, 실수에 속합니다. 반면 Kelp DAO의 1-of-1은 능동적인 구성 선택이었습니다. LayerZero 프로토콜은 이 옵션을 금지하지 않았고, Kelp DAO도 어떤 프로토콜 규칙도 위반하지 않았습니다. '준수'하는 구성 선택과 '실수'인 초기값이 결국 동일한 결과를 가리켰습니다.

이번 공격의 실행 로직은 간단했습니다. 위조된 크로스체인 메시지가 이더리움 메인넷에 "다른 체인에 누군가가 등가 자산을 이미 잠금 해제했다"고 알려, 메인넷에서 rsETH를 발행하도록 유발했습니다. 발행된 rsETH 자체는 실제 담보가 없었지만, 그 온체인 기록은 '합법적'이었기 때문에 대출 프로토콜에서 담보로 받아들여질 수 있었습니다.
공격자는 즉시 116,500개의 rsETH를 Aave V3(이더리움 및 Arbitrum), Compound V3, Euler에 분산시켜 총 2억 3600만 달러가 넘는 실제 자산을 빌렸습니다. 여러 보도에 따르면, Aave V3 단독으로 직면한 부실 채권 추정 가치는 약 1억 7700만 달러입니다. Aave의 보안 모듈인 Umbrella는 부실 채권을 흡수하는 데 사용할 수 있는 WETH 준비금이 약 5000만 달러로, 커버리지가 30%도 되지 않으며, 나머지 부분은 aWETH 스테이커들이 부담하게 될 것입니다.
이 빚은 결국 단지 약간의 WETH 이자율을 벌고 싶었던 사람들의 어깨에 떨어졌습니다.
LayerZero 공식은 기사 작성 시점까지도 보안 비상 대응 조직 SEAL Org와 공동 조사 중이며, 모든 정보를 확보한 후 Kelp DAO와 공동으로 사후 분석 보고서를 발표할 것이라고 밝혔습니다. Kelp DAO는 '능동적 구제'를 진행 중이라고 밝혔습니다.
2억 9300만 달러의 취약점은 코드에 없었습니다. '감사 통과'라는 네 글자는 그 매개변수가 위치한 곳을 커버하지 않았습니다.


