When Specifications Meet Reality: Uncovering API Inconsistencies in Ethereum Infrastructure

이 논문은 이더리움 클라이언트 간 API 불일치로 인한 금융 및 네트워크 리스크를 해결하기 위해, 명세 기반 테스트 입력 생성과 대규모 언어 모델을 활용한 오보식 필터링 기술을 통해 기존 도구보다 높은 코드 커버리지와 낮은 오검출률을 달성한 자동화 테스트 프레임워크 'APIDiffer'를 제안하고, 이를 통해 11 개 주요 클라이언트에서 72 개의 버그를 발견하여 개발자들이 수정하거나 채택한 실증적 성과를 보여줍니다.

Jie Ma, Ningyu He, Jinwen Xi, Mingzhe Xing, Liangxin Liu, Jiushenzi Luo, Xiaopeng Fu, Chiachih Wu, Haoyu Wang, Ying Gao, Yinliang Yue

게시일 Mon, 09 Ma
📖 4 분 읽기☕ 가벼운 읽기

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

이더리움의 '숨은 결함'을 찾아낸 AI 탐정: APIDiffer 이야기

이 논문은 블록체인, 특히 **이더리움 (Ethereum)**이라는 거대한 디지털 금융 시스템의 안전성을 지키기 위해 개발된 새로운 도구, APIDiffer에 대한 이야기입니다.

상상해 보세요. 이더리움은 전 세계 수천 명의 개발자가 각자 다른 언어 (고급, 루스트, 자바 등) 로 만든 **11 개의 서로 다른 '은행 지점' (클라이언트)**이 함께 돌아가는 거대한 은행 시스템입니다. 이 은행 지점들은 모두 같은 규칙 (명세서) 을 따르지만, 실제로는 서로 다른 사람이 만들었기 때문에 가끔씩 실수가 생길 수 있습니다.

이 논문은 바로 그 실수 (버그) 를 자동으로 찾아내는 AI 탐정을 소개합니다.


1. 왜 이런 도구가 필요할까요? (현실의 문제)

이더리움에는 **수천 조 원 (약 3,800 억 달러)**의 자금이 걸려 있습니다. 하지만 일반 사용자는 직접 은행 지점을 운영할 수 없기 때문에, 이더리움 지갑 (메타마스크 등) 을 통해 **API(은행 창구)**를 통해 거래를 합니다.

문제는 이 창구들이 서로 다르게 작동할 때 발생합니다.

  • 실제 사례 (그림 1): 어떤 사용자는 Etherscan(블록체인 검색 사이트) 에서 "내 계좌 잔고가 0.1 ETH"라고 보았는데, 실제로는 0.01 ETH였습니다. 10 배 차이가 난 것입니다!
  • 원인: 이더리움의 여러 '은행 지점' 중 하나가 데이터를 잘못 전달했기 때문입니다.
  • 위험: 이런 작은 오차가 금융 사기나 혼란을 불러일으킬 수 있습니다.

기존에는 개발자들이 직접 눈으로 하나하나 확인하거나, 수동으로 테스트를 만들었습니다. 하지만 이더리움은 너무 빨리 변하고, 지점도 너무 많아서 사람이 다 따라잡기 힘들었습니다.

2. APIDiffer 는 어떻게 작동할까요? (해결책)

저자들은 APIDiffer라는 도구를 만들었습니다. 이 도구는 세 가지 마법 같은 능력을 가지고 있습니다.

① 규칙서 (명세서) 를 보고 시험지를 자동으로 만드는 능력

기존 도구들은 개발자가 직접 시험 문제 (테스트 케이스) 를 만들어야 했지만, APIDiffer 는 **공식 규칙서 (API 명세서)**를 읽어서 자동으로 문제를 만듭니다.

  • 유사한 예: 요리사들이 만든 '요리 레시피 (규칙서)'를 AI 가 읽어서, "소금 1g 을 넣어야 한다"는 규칙을 보고 "소금 0g", "소금 100g", "설탕 1g" 같은 잘못된 상황까지 포함한 시험지를 자동으로 만들어냅니다.

② 현실 세계의 데이터를 가져와서 시험을 보는 능력

단순히 규칙만 따르는 게 아니라, 실제 블록체인에 있는 진짜 데이터를 가져와서 테스트합니다.

  • 유사한 예: "가상의 주소로 돈을 보내라"고 하면 은행은 "그 주소는 없습니다"라고 답할 뿐입니다. 하지만 APIDiffer 는 "실제 존재하는 주소를 찾아서" 그 주소를 시험지에 적어 넣습니다. 이렇게 해야 은행이 진짜로 작동하는지 확인할 수 있습니다.

③ AI 가 "실수"와 "차이"를 구별하는 능력 (가장 중요한 부분)

서로 다른 은행 지점들이 답을 다르게 내놓으면, 그게 진짜 실수일까요, 아니면 그냥 표현 방식이 다를 뿐일까요?

  • 유사한 예:
    • 은행 A: "오류가 발생했습니다."
    • 은행 B: "데이터를 읽을 수 없습니다."
    • 의미는 똑같은데 말투가 다릅니다.
    • 기존 도구는 이걸 '실수'로 오해해서 개발자에게 계속 신고했습니다.
    • APIDiffer는 최신 **AI(대형 언어 모델)**를 써서 "아, 이건 말투만 다를 뿐, 의미는 같아. 이건 신고하지 말자"라고 **거짓 경보 (False Positive)**를 걸러냅니다.

3. 어떤 성과를 냈나요? (결과)

APIDiffer 는 이더리움의 모든 주요 은행 지점 (11 개) 을 테스트했습니다.

  • 72 개의 버그 발견: 개발자들이 몰랐던 숨은 결함 72 개를 찾아냈습니다.
  • 90% 이상 해결: 이 중 90% 가 넘는 65 개의 버그는 개발자들이 이미 고쳤거나 고치고 있습니다.
  • 규칙서 자체의 오류 발견: 심지어는 공식 규칙서 (명세서) 에 잘못된 내용이 적혀 있는 경우까지 찾아냈습니다! (예: "데이터 길이가 32 자여야 한다"고 적혀 있었는데, 실제로는 33 자여야 하는 경우).
  • 효율성: 기존 도구보다 코드 커버리지 (테스트 범위) 가 89% 더 넓어졌고, 불필요한 신고는 37% 줄였습니다.

4. 결론: 왜 이것이 중요한가요?

APIDiffer 는 이더리움이라는 거대한 디지털 도시의 안전 검사관 역할을 합니다.

  • 개발자에게: "여기 이 부분이 잘못됐어요"라고 알려주어 시스템을 튼튼하게 만듭니다.
  • 사용자에게: 내 돈이 안전하게 거래되고, 잔고 정보가 정확히 표시된다는 신뢰를 줍니다.
  • 전체 생태계: 서로 다른 개발 팀이 만든 시스템이 서로 잘 통하도록 만들어, 이더리움 네트워크가 더 안전하고 강력해지도록 돕습니다.

이 논문은 **"규칙서와 현실이 맞지 않을 때, AI 가 어떻게 그 차이를 찾아내고 해결하는가"**를 보여주는 아주 훌륭한 사례입니다. 이제 이더리움은 더 이상 개발자들의 눈과 손에만 의존하지 않고, 똑똑한 AI 도구를 통해 더 안전하게 운영될 수 있게 되었습니다.