Smart Learning to Find Dumb Contracts (Extended Version)

이 논문은 소스 코드 분석을 통해 학습된 신경망 기반의 'DLVA'를 제안하여, 이더리움 스마트 계약의 바이트코드를 직접 분석함으로써 기존 도구들보다 월등히 빠르고 정확한 취약점 탐지를 가능하게 함을 보여줍니다.

Tamer Abdelaziz, Aquinas Hobor

게시일 2026-03-19
📖 4 분 읽기☕ 가벼운 읽기

Each language version is independently generated for its own context, not a direct translation.

스마트 학습으로 멍청한 계약을 찾아내다: DLVA 설명

이 논문은 이더리움 블록체인에 있는 '스마트 계약' (자동 실행되는 디지털 계약) 의 허점을 찾아내는 새로운 도구인 DLVA를 소개합니다. 기존 도구들이 가진 한계를 뛰어넘어, 훨씬 더 빠르고 정확하게 문제를 찾아낸다는 것이 핵심입니다.

이 복잡한 내용을 일상적인 비유로 쉽게 설명해 드리겠습니다.


1. 배경: 왜 이런 도구가 필요한가요?

스마트 계약은 은행이나 중개자 없이 돈을 주고받는 자동화된 프로그램입니다. 하지만 이 프로그램도 사람이 만든 것이니 버그 (오류) 가 생길 수 있습니다.

  • 문제: 해커들은 이 버그를 찾아내어 수억 원, 수천억 원의 자금을 훔쳐갑니다. (예: DAO 해킹 사건)
  • 기존 방식의 한계:
    • 소스 코드 필요: 대부분의 검사 도구는 계약이 작성된 '원고 (소스 코드)'를 봐야 합니다. 하지만 블록체인에 공개된 것은 '컴파일된 기계어 (바이트코드)'뿐인 경우가 많습니다. 원고가 없으면 검사할 수 없습니다.
    • 느린 속도: 기존 도구들은 복잡한 수학적 계산을 하느라 한 개를 검사하는 데 몇 초에서 몇 분씩 걸립니다. 수백만 개의 계약을 실시간으로 검사하는 것은 불가능합니다.

2. DLVA 의 등장: "스승"과 "제자"의 이야기

DLVA 는 딥러닝 (인공지능) 기술을 활용합니다. 이를 이해하기 위해 '스승과 제자' 비유를 들어보겠습니다.

  • 스승 (Slither): 기존에 가장 유명한 검사 도구인 '슬리더 (Slither)'입니다. 이 도구는 원고 (소스 코드) 를 보면 아주 정확하게 버그를 찾아냅니다. 하지만 원고가 없으면 아무것도 못 합니다.
  • 제자 (DLVA): DLVA 는 이 '슬리더'를 스승으로 삼아 학습합니다.
    1. 학습 과정: 슬리더가 원고를 보고 "여기 버그가 있다"라고 가르쳐 줍니다.
    2. 전환: DLVA 는 슬리더가 가르친 내용을 바탕으로, 원고 없이 기계어 (바이트코드) 만 보고도 "아, 이건 슬리더가 버그라고 했을 것 같다"라고 추론하는 법을 배웁니다.
    3. 결과: 제자가 스승을 능가합니다! 원고가 없는 계약도 검사할 수 있고, 오히려 스승이 놓친 버그까지 찾아냅니다.

3. DLVA 가 어떻게 작동하나요? (3 단계 프로세스)

DLVA 는 세 가지 핵심 기술을 조합하여 작동합니다.

① 스마트 계약 → 벡터 (SC2V): "계약의 지문 만들기"

  • 비유: 계약서 100 페이지 분량의 복잡한 내용을 읽지 않고도, 그 계약의 핵심 성격을 나타내는 '지문' (숫자 나열) 으로 변환하는 기술입니다.
  • 작동: 계약의 기계어를 분석하여 4,000 개 이상의 숫자로 이루어진 '벡터'라는 지문을 만듭니다. 이 지문만 봐도 이 계약이 어떤 성격을 가졌는지 알 수 있습니다.

② 형제 탐지기 (Sibling Detector, SD): "유사한 친구 찾기"

  • 비유: 새로 생긴 계약의 '지문'을 만들어서, 과거에 이미 버그가 발견된 계약들의 '지문'과 비교합니다.
  • 작동: "이 새로운 계약의 지문과, 우리가 아는 '나쁜 계약'의 지문이 거의一模一样 (똑같다)"라면?
    • 판단: "아, 이 친구도 나쁜 계약이 틀림없다!"라고 바로 결론을 내립니다.
    • 장점: 복잡한 계산 없이 순식간에 (0.2 초) 정답을 맞힙니다. 전체 계약의 약 56% 는 이 단계에서 해결됩니다.

③ 핵심 분류기 (Core Classifier, CC): "고도의 추리력"

  • 비유: 형제 탐지기로도 비슷한 친구를 찾지 못한 경우, 수사관 (AI) 이 직접 증거를 뜯어보고 판단합니다.
  • 작동: 지문의 거리가 멀더라도, AI 가 학습한 패턴을 바탕으로 "이 계약은 이런 구조를 가지고 있으니 버그일 가능성이 높다"라고 추론합니다.
  • 장점: 형제 탐지기로는 못 찾는 '새로운 유형의 나쁜 계약'도 찾아냅니다.

4. DLVA 의 놀라운 성과

이 도구는 기존 도구들과 비교해 압도적인 성능을 보여줍니다.

  • 속도: 기존 도구들이 10 초수 분 걸리는 작업을 0.2 초에 끝냅니다. (약 101,000 배 빠름)
    • 비유: 기존 도구가 한 장의 서류를 검토하는 동안, DLVA 는 도서관에 있는 모든 책을 한 번에 훑어볼 수 있습니다.
  • 정확도: 99.7% 의 정확도를 기록했습니다.
    • 거짓 경보 (False Positive): "버그가 있는데 없다"라고 하는 실수는 거의 없습니다. (0.6%)
    • 놓침 (False Negative): "버그가 없는데 있다"라고 하는 실수도 매우 적습니다.
  • 범용성: 원고 (소스 코드) 가 없어도 기계어만 있으면 100% 검사가 가능합니다. 이는 블록체인에 있는 모든 계약을 검사할 수 있게 해줍니다.

5. 왜 이것이 중요한가요?

  • 대규모 감시 가능: 블록체인에는 수백만 개의 계약이 있습니다. 느린 도구로는 실시간 감시가 불가능했지만, DLVA 는 이 모든 계약을 순식간에 스캔할 수 있습니다.
  • 새로운 버그 발견: DLVA 는 단순히 규칙을 따르는 게 아니라, 스스로 학습합니다. 그래서 기존 도구들이 놓친 새로운 유형의 해킹 시도를 찾아낼 수도 있습니다.
  • 안전한 생태계: DLVA 는 개발자와 사용자에게 "이 계약은 안전합니다" 혹은 "여기에 큰 구멍이 있습니다"라고 알려주어, 막대한 금전적 손실을 막아줍니다.

요약

DLVA"원고 없이도 기계어만 보고 버그를 찾아내는, 초고속 AI 수사관" 입니다.
기존의 느리고 원고에 의존하던 검사 방식에서 벗어나, 인공지능이 스승에게 배운 뒤 스스로 판단하여 블록체인 전체를 실시간으로 보호하는 혁신적인 도구입니다. 마치 "멍청한 계약 (버그가 있는 계약)"을 찾아내어 우리가 더 안전한 디지털 세상을 만들 수 있게 해주는 영웅과 같습니다.