본문으로 건너뛰기

© 2026 Molayo

Dev.to헤드라인2026. 06. 15. 04:58

크립토 지갑이 해킹되었음을 증명하는 AI 에이전트 구축하기 — Qwen Cloud 사용

요약

Qwen Cloud를 활용하여 암호학적 결함인 논스 재사용(nonce reuse)을 탐지하는 AI 에이전트 'ChainSleuth' 구축 과정을 소개합니다. LLM의 추론 능력과 결정론적인 암호 검증 로직을 결합하여 신뢰할 수 있는 포렌식 보고서를 생성하는 구조를 제안합니다.

핵심 포인트

  • 논스 재사용 취약점을 추적하는 AI 에이전트 ChainSleuth 구축
  • Qwen-max를 활용한 Planner, Analyst, Reporter 에이전트 구성
  • LLM의 추측을 방지하기 위해 수학적 검증을 수행하는 CryptoVerifier 도입
  • Alibaba Cloud DashScope의 OpenAI 호환 엔드포인트를 통한 손쉬운 구현

Qwen Cloud를 활용한 글로벌 AI 해커톤 시리즈용 ChainSleuth 구축 (트랙 4: 오토파일럿 에이전트).

크립토 지갑이 전 세계에 개인 키를 넘겨줄 수 있는 단 하나의 실수가 있습니다. 시드 구문 유출이나 피싱 링크가 아닙니다. 바로 **논스 재사용(nonce reuse)**이라는 미묘한 암호학적 실수입니다. 이것이 발생하면, 공개 블록체인을 보는 사람이라면 몇 줄의 산술 연산만으로도 키를 복구할 수 있습니다.

이는 2010년 플레이스테이션 3의 코드 서명(code-signing)을 무너뜨렸고, 2013년 안드로이드 비트코인 지갑을 고갈시켰습니다. 그리고 오늘날에도 온체인(on-chain)에서 여전히 발견됩니다.

저는 이것을 추적하는 AI 에이전트를 만들고 싶었습니다. 그리고 결정적으로, 실제로 신뢰할 수 있는 에이전트였습니다. 이것이 ChainSleuth가 되었고, 저는 이를 Qwen Cloud를 기반으로 구축했습니다. 여정이 여기 있습니다.

결함은 한 단락으로 설명하자면

모든 ECDSA 서명(signature)은 (r, s) 쌍이며, 여기서 r은 각 서명마다 선택되는 임의의 숫자 k(즉,

설명하자면

모든 ECDSA 서명(signature)은 (r, s) 쌍이며, 여기서 r은 각 서명마다 선택되는 임의의 숫자 k(즉,

Planner, Analyst, 그리고 Reporter는 Qwen 에이전트입니다. 이들은 감사 범위를 설정하고(scope the audit), 서명을 분류하며(triage the signatures), 사람이 읽을 수 있는 포렌식 보고서를 작성합니다. 하지만 CryptoVerifier에는 LLM이 전혀 없습니다. 이는 실제 secp256k1 복구를 실행한 다음, 복구된 키를 온체인 서명과 비교하여 **검증(verifies)**합니다. 발견 사항은 오직 키가 수학적으로 일치할 때만 보고됩니다. 에이전트의 설명(narrative)이 결코 판결(verdict)이 될 수 없습니다.

바로 이 단 하나의 설계 결정이 출력물을 확신에 찬 추측이 아닌 신뢰할 수 있는 것으로 만듭니다.

Qwen Cloud에서 에이전트 구축하기

이 에이전트들은 **Alibaba Cloud Model Studio (DashScope)**를 통해 **qwen-max**로 실행됩니다. 눈에 띄는 몇 가지 점들이 있었습니다:

  • OpenAI와 호환되는 엔드포인트 덕분에 연결 작업이 매우 쉬웠습니다. SDK가 필요하지도 않았습니다. DashScope의 호환 모드 엔드포인트로 일반적인 stdlib HTTP 호출만으로 전체 에이전트 루프를 실행할 수 있었습니다. 환경 변수 하나만 바꾸니 목업 파이프라인(mock pipeline)이 라이브한 것으로 바뀌었습니다.
  • qwen-max는 구조화된 추론에 진정으로 뛰어납니다. Planner는 구체적이고 잘 정리된 감사 계획을 생성하며, Reporter는 일반적인 채움말이 아닌 마치 인간 분석가가 작성한 것처럼 심각도와 해결책이 포함된 사고 보고서를 작성합니다.
  • 모든 것이 Alibaba Cloud입니다. 추론은 Alibaba Cloud Model Studio에서 실행되고, 보고서는 Alibaba Cloud OSS에 아카이브됩니다.

가장 좋은 점은 다음과 같습니다. 암호화 과정이 결정론적(deterministic)이기 때문에, 저는 전체 파이프라인을 무료인 '목업' 모드에서 오프라인으로 개발한 다음 마지막에만 실제 Qwen으로 전환했습니다. 발견 사항들은 동일했으며, Qwen은 그 위에 추론과 산문(prose)만을 추가했을 뿐입니다.

실제 체인에서 작동하는 모습 관찰하기

식재된 샘플로 데모를 하는 것과는 다릅니다. 그래서 저는 이것을 **실제 이더리움(live Ethereum)**에 연결했습니다. ChainSleuth는 실제 트랜잭션을 가져와 순수 Python keccak-256 + RLP 디코딩으로 각 서명 해시를 재구성하고, 수천 개의 실제 서명을 스캔했습니다.

저는 최근 20개 블록에 걸친 5,320개의 라이브 서명을 스캔했습니다. 재사용된 논스(nonce)는: 없었습니다.

그것은 실패가 아니라 교훈입니다. 현대적인 지갑은 결정론적 (deterministic) 논스 (RFC 6979)를 사용하므로, 물리적으로 논스를 재사용할 수 없습니다. 건강한 체인은 깨끗해 보입니다. ChainSleuth는 안전한 지갑을 정확하게 통과(clear)했으며, 이는 실제 감사 (audit)가 수행하는 대부분의 작업과 같습니다.

그다음, 재미 삼아 현존하는 가장 유명한 코인을 대상으로 시도해 보았습니다: 사토시 나카모토 (Satoshi Nakamoto)의 초기 서명들입니다. 전설적인 약 110만 BTC가 2009년의 논스 실수로 인해 노출될 수 있었을까요? 저는 그 초기 서명들을 인덱싱하여 확인했습니다.

모든 서명은 고유한 논스를 사용했습니다. 암호학적으로 결함이 없었습니다 (Cryptographically flawless). 전 세계가 15년 동안 그 코인들을 면밀히 조사해 왔으며, 단 한 번의 오후 만에 독립적으로 재확인되었습니다: 사토시의 서명은 세심했습니다. 문은 없었으며, 그저 매우 견고한 벽만이 있었습니다.

윤리는 아키텍처의 일부입니다

개인 키 (private keys)를 복구하는 도구는 이중 용도 (dual-use)이며, 저는 이를 진지하게 받아들였습니다. ChainSleuth는 오직 퍼블릭 체인 상에서 이미 유출된 지갑에 대해서만 키를 생성하며, 올바르게 서명하는 지갑에는 접근할 수 없습니다. 또한 복구된 키는 기본적으로 마스킹 (masked) 처리되며, 인간 분석가가 체크포인트에서 확인한 후에만 공개됩니다. 이 도구는 **책임 있는 공개 (responsible disclosure)**를 위해 구축되었습니다. 즉, 노출된 지갑을 탐지하여 소유자가 자금을 이동시키지 않도록 경고할 수 있게 하는 것입니다. 원칙은 간단합니다: 자신이 소유하거나 확인 권한이 있는 것만 감사하십시오. 타인의 지갑을 낚시하려 하지 마십시오.

배운 점

가장 큰 깨달음은 크립토보다 더 큰 주제입니다: LLM을 사용하는 가장 신뢰할 수 있는 방법은 결정론적 (deterministic) 코어 주변에 LLM을 감싸는 것입니다. LLM이 계획을 세우고, 우선순위를 정하고, 설명하는 것 — 즉, LLM이 진정으로 잘하는 일들 — 을 하게 하되, 반드시 정확해야 하는 주장에 대해 LLM이 진실의 근원 (source of truth)이 되게 해서는 안 됩니다. Qwen은 에이전트들이 실제 포렌식 팀처럼 느껴지게 만들었고, 수학은 그들을 정직하게 만들었습니다.

시도해 보기

ChainSleuth는 오픈 소스입니다: https://github.com/Vinny010/chainsleuth

qwen-max + Alibaba Cloud Model Studio + OSS를 사용하여 Global AI Hackathon Series with Qwen Cloud — Track 4: Autopilot Agent를 위해 단독으로 구축되었습니다.

지갑이 논스 (nonce)를 재사용할 때, 해당 지갑의 개인 키 (private key)는 이미 유출된 상태입니다. ChainSleuth는 이러한 미세한 암호학적 결함을 클릭 한 번으로 입증 가능한 (provable) 포렌식 판결로 전환하며, 이는 Qwen 위에서 실행됩니다.

AI 자동 생성 콘텐츠

본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
0

댓글

0