BTC
ETH
HTX
SOL
BNB
시장 동향 보기
简中
繁中
English
日本語
한국어
ภาษาไทย
Tiếng Việt

不止于私钥:从钱包、L2 到供应链,如何守护 Web3 的安全边界?

imToken
特邀专栏作者
2026-07-09 10:35
이 기사는 약 4198자로, 전체를 읽는 데 약 6분이 소요됩니다
当安全风险从一个点扩展为一条链,用户的防御,也必须从保护好私钥,升级成一套完整的习惯。
AI 요약
펼치기
  • 핵심 요점: 6월 암호화폐 분야에서 보안 사고가 빈번하게 발생하여 총 40건의 공격으로 7,587만 달러의 손실이 발생했습니다. 위험은 단순한 개인키 유출에서 지갑 서명 구현, L2 프로토콜 취약점 및 제3자 공급망 공격 등 여러 단계로 확대되었으며, 사용자는 보안 전략을 개인키 보호에서 체인상의 전체 상호 작용 경로 보호로 업그레이드해야 합니다.
  • 핵심 요소:
    1. 6월에는 총 40건의 주요 해킹 공격이 발생하여 총 7,587만 달러의 손실을 입혔으며, 공격 경로는 지갑, L2 프로토콜 및 제3자 서비스를涵盖하며 다양화되는 추세를 보였습니다.
    2. Cardano 생태계 지갑 SecondFi는 기본 서명 구현의 결함(nonce 유도 오류)으로 인해 공격자가 니모닉 문구 없이 체인의 공개 데이터로부터 개인키를 유도할 수 있었고, 약 1,600만 ADA(약 240만 달러)가 도난당했습니다.
    3. Aztec의 두 구형 Rollup 배포가 공격을 받아 약 435만 달러의 손실이 발생했으며, 이는 L2 시스템의 트랜잭션 데이터 불일치 및 영지식 증명 회로 제약 조건 부재와 같은 구조적 취약점을 드러냈습니다.
    4. Taiko는 SGX 서명 개인키가 이전에 공개되었고 체인상 검증이 DEBUG 모드를 거부하지 않아 공격자가 L2 상태 증명을 위조하여 브리지 자금에서 약 170만 달러를窃取했습니다.
    5. Polymarket은 제3자 공급업체가 침해되어 프런트엔드에 악성 스크립트가 로드되었고, 이로 인해 약 300만 달러의 사용자 자산 손실이 발생했습니다. 이는 공급망 공격이 스마트 계약 자체의 보안 감사를 직접 우회할 수 있음을 보여줍니다.
    6. Base 메인넷은 블록 구축 로직 결함으로 인해 두 차례 연속 블록 생성이 중단되었습니다. 자산 손실은 발생하지 않았지만, L2 네트워크의可用성 자체가 보안 모델의 중요한 구성 요소임을 강조합니다.

지난 6월, 암호화폐 세계는 여러 영역에 걸친 일련의 보안 사고를 겪었습니다.

PeckShield가 최근 발표한 월간 보안 보고서에 따르면, 6월에는 총 40건의 주요 해킹 사건이 발생하여 총 손실액이 7,587만 달러에 달했습니다. 더욱 주목해야 할 점은 이러한 공격이 특정 공격 경로에 집중되지 않고, 지갑 서명 구현 결함, L2 프로토콜 취약점, 제3자 서비스 공급망 공격에 이르기까지 여러 방어선이 같은 달에 연이어 무너졌다는 사실입니다.

Web3 보안 위험이 단일 진입점에서 전체 온체인 상호작용 경로로 확장됨에 따라, 모든 사용자는 한 가지 질문을 다시 생각하지 않을 수 없게 되었습니다: 과연 내 암호화폐 자산은 아직 안전한가?

1. 개인키 외에도, 지갑 기반 서명 구현의 중요성

6월 Cardano 생태계 지갑 SecondFi에서 발생한 보안 사건이 가장 직접적인 예시입니다.

SecondFi는 Cardano 생태계 지갑 Yoroi의 후신입니다. 6월 21일부터 23일까지 공격자는 일부 SecondFi 사용자 주소에서 약 1,600만 ADA(당시 가격 기준 약 240만 달러)를 빼돌렸으며, 이는 약 374개 지갑과 관련이 있습니다. SecondFi는 이후 긴급 조치를 통해 피해 가능성이 있었던 약 1억 2,900만 ADA를 추가로 보호했다고 밝혔습니다.

이 사건의 가장 특별한 점은 영향을 받은 사용자가 공격자에게 시드 문구를 능동적으로 넘기지 않았다는 데 있으며, 문제는 지갑 기반의 서명 구현에 있었습니다. 보안 기관 BlockSec의 분석에 따르면, 공개된 트랜잭션 메시지에서 서명 nonce를 잘못 도출하여 표준 구현에서 요구하는 비밀 nonce 접두사를 누락했습니다.

이로 인해 사용자가 영향을 받는 버전의 지갑으로 트랜잭션에 서명할 때마다 체인에 게시되는 공개 서명 데이터는 주소 개인키를 도출하기에 충분한 정보를 노출하게 되었습니다. 따라서 공격자는 사용자 휴대폰을 침입하거나 시드 문구를 얻을 필요 없이, 공개된 온체인 데이터만 분석하면 해당 주소의 서명 개인키를 복구할 수 있었습니다.

사용자 입장에서는 지갑이 정상적으로 작동하는 것처럼 보였습니다. 시드 문구가 팝업 창을 통해 유출된 적도 없고, 비밀번호가 해독된 적도 없으며, 트랜잭션이 실제로 본인에 의해 시작되었기 때문입니다. 하지만 암호학적 관점에서 보면, 사용자 주소가 영향을 받는 버전을 통해 유효한 서명을 몇 번이라도 생성했다면, 공개된 트랜잭션 및 서명 데이터는 공격자가 해당 주소의 서명 개인키를 도출하는 데 도움이 될 수 있었습니다.

결국, 지갑 보안은 개인키가 올바르게 생성되는지, 암호학적 표준에 따라 서명이 엄격히 완료되는지, 그리고 이러한 핵심 코드가 외부에서 검토되고 검증될 수 있는지에 달려 있으며, 이것이 바로 핵심 지갑 구성 요소를 오픈소스로 유지하는 것의 중요성입니다.

물론 이는 특정 지갑의 특정 버전에서 발생한 구현 결함으로, 모든 자체 관리 지갑의 일반적인 문제는 아닙니다. imToken의 TokenCore를 예로 들면, 그 핵심 코드 저장소는 GitHub에 공개적으로 호스팅되어 있으며, 키 관리, 주소 파생, 트랜잭션 서명과 같은 기반 지갑 기능을 다룹니다.

오픈소스라고 해서 코드에 취약점이 전혀 없다는 것을 의미하거나 사용자가 경계를 완전히 늦춰도 된다는 것을 의미하지는 않지만, 지갑에서 가장 민감한 암호학 및 서명 구성 요소의 경우, 오픈소스는 적어도 보안 연구원, 개발자 및 커뮤니티가 코드를 검사하고, 문제를 재현하며, 지속적으로 테스트할 수 있는 중요한 전제 조건을 제공합니다. 검증할 수 없는 블랙박스를 신뢰할 수밖에 없는 상황과는 대조적입니다.

일반 사용자의 경우, 이러한 사건은 몇 가지 더 현실적인 보안 원칙에 해당합니다.

  • 첫째, 지갑은 항상 공식 웹사이트나 공식 앱 스토어를 통해 다운로드하고, 보안 버전으로 신속히 업데이트해야 합니다.
  • 둘째, 모든 자산을 동일한 일상 상호작용 지갑에 보관하지 않는 것이 좋습니다. 고액의 장기 자산은 하드웨어 지갑이나 별도의 콜드 월렛에 보관하여 자주 DApp에 연결하는 핫 월렛과 분리하는 것이 좋습니다.
  • 더 중요한 것은, 지갑 공식 측에서 키 생성 또는 서명 구현 수준의 취약점을 확인한 후, 단순히 기존 시드 문구를 다른 지갑으로 가져오는 것만으로는 문제가 해결되지 않는 경우가 많다는 점입니다.

동일한 시드 문구를 다른 지갑으로 가져와도 이미 노출된 주소와 개인키는 변경되지 않기 때문입니다. 영향을 받은 자산은 취약한 버전을 통해 서명된 적이 없는 새로운 주소로 이전되어야 합니다. 일반 사용자에게는 공식 비상 절차에 따라 완전히 새로운 지갑과 시드 문구 세트를 다시 생성한 후 자산을 마이그레이션하는 것이 기존 주소를 직접 반복적으로 가져오거나 조작하는 것보다 더 안전한 방법입니다.

2. L2는 단지 '더 저렴한 이더리움'이 아니라, 복잡한 신뢰 체인의 집합체입니다

지갑 외에도 6월의 여러 사건은 점점 더 복잡해지는 L2 시스템으로 위험을 향하게 했습니다.

6월 14일과 18일, Aztec과 관련된 두 개의 구형 Rollup 배포판이 연이어 공격을 받아 총 약 435만 달러의 손실이 발생했습니다.

특히, 공격받은 것은 레거시 상태로 전환된 Aztec Connect 등의 구형 배포판으로, 현재의 Aztec Network 메인넷 자체가 공격받은 것은 아닙니다. 그러나 두 사건에서 드러난 문제는 전체 ZK Rollup 분야에 상당한 경고 신호를 제공합니다.

한 사건에서 공격자는 트랜잭션 수와 실제 처리 데이터 간의 불일치를 이용하여 시스템이 증명 내부에 예치금을 기록하도록 하면서도 L1에서 해당 잔액 차감 절차를 우회했습니다.

다른 사건은 영지식 증명 회로의 제약 조건 누락에서 비롯되었습니다. 시스템은 형식적으로 유효한 증명을 검증했지만, 해당 증명이 사용한 비공개 상태 트리가 이더리움에서 실제 결제에 사용되는 공개 상태 루트와 완전히 일치하는지 확인하지 않았습니다. 이에 공격자는 위조된 상태 트리를 기반으로 증명을 생성하고 L1 컨트랙트에서 자산을 인출할 수 있었습니다.

이러한 문제는 전통적인 '컨트랙트에 특정 취약점 코드 라인이 존재하는가'로概括하기 어렵습니다. 영지식 증명은 특정 계산 과정이 정해진 규칙을 따랐음을 증명할 수 있지만, 그 전제는 규칙 자체가 정확하고 완전해야 한다는 점입니다. 만약 개발자가 어떤 핵심 변수에 대한 제약을 잊어버리면, 증명은 여전히 수학적으로 유효할 수 있지만 실제 결제 상태와 일치하지 않는 결과를 증명하게 됩니다.

이후 발생한 Taiko의 보안 사건은 또 다른 유형의 L2 신뢰 체인 위험을 드러냈습니다.

6월 22일, Taiko의 SGX 기반 증명 검증 프로세스가 악용되어 약 170만 달러의 손실이 발생했습니다. BlockSec의 분석에 따르면, 공격자는 공개 GitHub 저장소에 제출된 적이 있는 SGX Enclave 서명 개인키를 사용하고, 체인 상의 검증 컨트랙트가 DEBUG 모드 Enclave를 거부하지 않는 결함을 이용하여 악성 Prover를 합법적인 인스턴스로 등록했습니다.

공격자는 이후 L2 상태 증명을 위조하여 이더리움 상의 컨트랙트가 존재하지 않는 L2 상태를 수락하도록 하고, 최종적으로 브리지된 자금에서 자산을 인출했습니다. 결론적으로, 신뢰할 수 있는 실행 환경에 서명하는 데 사용된 키가 공개되었고, 원격 증명 규칙이 실행 환경 속성을 완전히 확인하지 못하여 '인증된' 증명이 본래 가져야 할 신뢰의 의미를 상실하게 된 것입니다.

한편, Base는 6월 25일부터 26일까지 메인넷 블록 생성이 연속적으로 중단되는 현상을 겪었습니다. Base는 사후 복기에서 두 번의 중단이 동일한 블록构建 로직 결함에서 비롯되었다고 밝혔습니다. 실행에 실패한 트랜잭션이 이전에 기록된 상태를 올바르게 정리하지 못하여 후속 트랜잭션의 Gas가 잘못 계산되었고, 유효하지 않은 상태 전환을 포함하는 블록이 생성되었습니다. 다른 노드들이 해당 블록을 수락할 수 없었기 때문에 네트워크는 결국 진행을 멈췄습니다. Base는 사고 기간 동안 체인의 무결성은 손상되지 않았으며 사용자 자금은 항상 안전했다고 밝혔습니다.

이는 자산 도난이나 외부 공격이 아닌, 네트워크 가용성과 복구 능력에 영향을 미친 기술적 장애였습니다. 하지만 더 넓은 의미의 보안 관점에서 볼 때, 가용성 그 자체도 L2 보안 모델의 일부입니다.

사용자에게 있어 체인이 안전한지 여부는 해커가 자산을 위조할 수 있는지에만 달려 있지 않습니다. 블록이 지속적으로 생성될 수 있는지, 크로스체인 브리지가 정상적으로 작동하는지, 노드가 신속히 복구될 수 있는지, 그리고 시스템에 장애가 발생했을 때 사용자에게 여전히 실행 가능한 출구 경로가 있는지도 중요합니다.

따라서 사용자는 L2를 사용할 때 수수료와 에어드랍 기대치만 비교해서는 안 됩니다. 규모가 작거나, 막上线되었거나, 보안 메커니즘이 빠르게 변화하고 있는 L2의 경우, 실제 사용 필요 이상의 큰 자산을 장기간 보관하는 것을 피해야 합니다. 크로스체인 전에는 공식 브리지를 사용하는지 확인하고, 출금 시간, 중단 메커니즘 및 긴급 출구 방식을 이해해야 합니다. 네트워크가 블록 생산을 중단하거나, 크로스체인에 이상이 발생하거나, 공식 보안 경고가 발령되었을 때는 트랜잭션을 반복적으로 제출하거나 브리지 자산을 계속 입금하지 말아야 합니다.

더 안전한 방법은 용도와 위험 수준이 다른 자산을 분산하여 관리하는 것이지, 모든 유동성을 단일 L2, 단일 크로스체인 브리지 또는 단일 출구 메커니즘에 맡기는 것이 아닙니다.

3. 컨트랙트가 뚫리지 않았어도, 서드파티 서비스가 사용자에게 공격을 전달할 수 있습니다

지갑과 L2의 문제가 상대적으로 하위 기술 구성 요소에서 발생했다면, Polymarket 사건은 사용자에게 가장 가까운 웹 프론트엔드 역시 자금 유입 경로가 될 수 있음을 보여줍니다.

6월 25일, Polymarket은 자사가 사용하는 한 서드파티 공급업체가 침해당했으며, 공격자는 이를 통해 일부 사용자가 방문한 Polymarket 프론트엔드에 악성 스크립트를 주입했다고 밝혔습니다.

보안 기관 및 온체인 분석가들의 집계에 따르면, 이 사건으로 약 11개 지갑에서 총 약 300만 달러의 사용자 자산 손실이 발생했습니다. 도난당한 자금은 이후 Polygon에서 이더리움으로 크로스체인되어 약 1,893 ETH로 교환되었습니다. 하지만 Polymarket은 이후 영향을 받은 의존성을 제거했으며, 영향을 받은 사용자에게 전액 환불할 것이라고 밝혔습니다.

이 사건의 핵심은 사용자가 여전히 정확한 Polymarket 도메인에 접속하고 있었을 가능성이 높으며, 현재까지 공개된 내용은 Polymarket 핵심 스마트 컨트랙트의 취약점을 지목하지 않고, 문제가 주로 웹 페이지가 로드하는 서드파티 프론트엔드 의존성에 있었다는 점입니다.

이것은 하나의 거울이기도 합니다. 오늘날 대부분의 Web3 애플리케이션은 완전히 온체인에서 실행되지 않습니다. 사용자가 보는 웹 페이지(예: 거래 인터페이스)는 여전히 전통적인 인터넷 인프라와 서드파티 소프트웨어 패키지에 크게 의존합니다. 이러한 의존성 중 하나라도 공격받으면 합법적인 웹사이트가 사용자에게 잘못된 정보를 표시하거나, 입금 주소를 바꿔치기하거나, 지갑이 악의적인 트랜잭션에 서명하도록 유도할 수 있습니다.

따라서 '웹사이트 주소가 진짜'라는 것이 '현재 로드된 모든 코드가 안전하다'는 것을 의미하지는 않으며, '컨트랙트가 감사를 통과했다'는 것이 사용자와 컨트랙트 간의 전체 상호작용 경로에 위험이 전혀 없다는 것을 의미하지도 않습니다. 이러한 프론트엔드 및 공급망 공격에 맞서 일반 사용자가 웹 페이지가 로드하는 모든 코드를 독립적으로 검사하기는 어렵지만, 단일 상호작용 권한을 낮추고 잠재적 손실을 제한함으로써 보안을 강화할 수 있습니다:

  • 전용 DApp 상호작용 지갑 사용: 장기 저축 지갑은 다양한 DeFi, NFT, 예측 시장 및 에어드랍 사이트에 직접 연결하지 않는 것이 좋습니다. 일상적인 상호작용 지갑에는 가까운 시일 내에 사용할 자금만 보관하여, 프론트엔드나 승인에 문제가 발생하더라도 영향 범위가 상대적으로 제한적이도록 합니다.
지갑
안전
Odaily 공식 커뮤니티에 가입하세요