[Paper] SolAgent: Solidity 코드 생성을 위한 특화된 다중 에이전트 프레임워크
Source: arXiv - 2601.23009v1
Overview
스마트 계약은 오늘날 분산 애플리케이션을 구동하지만, 버그나 보안 결함 없이 작성하는 것은 매우 어렵습니다. 이 논문에서는 SolAgent라는 다중 에이전트 시스템을 소개합니다. 이 시스템은 대형 언어 모델을 실제 Solidity 도구(Forge 컴파일러와 Slither 분석기)와 결합하여 계약 코드를 자동으로 생성, 테스트 및 강화합니다. 저자들은 이러한 “인간과 같은” 워크플로우가 기존 LLM 기반 코드 생성기와 비교했을 때 기능적 정확성과 보안성을 크게 향상시킬 수 있음을 보여줍니다.
주요 기여
- Dual‑loop refinement architecture: Forge를 사용해 생성된 코드를 컴파일하여 기능적 정확성을 검증하는 내부 루프와, Slither를 실행해 보안 취약점을 제거하는 외부 루프를 결합한 구조.
- File‑system aware agents: 시스템이 다중 파일 Solidity 프로젝트를 탐색하고, import를 해결하며, 프로젝트 수준의 종속성을 자동으로 관리할 수 있음.
- SolEval+ benchmark: 생성 품질과 보안을 평가하기 위해 실제 계약을 엄선해 만든 새로운 벤치마크 스위트.
- State‑of‑the‑art performance: SolAgent은 Pass@1 **64.39 %**를 달성했으며, 이는 기존 공개 LLM 및 AI IDE보다 두 배 이상 높은 수치이며, 인간이 작성한 기준 대비 취약점 비율을 최대 **39.77 %**까지 감소시킴.
- Model distillation pipeline: 고품질 생성 트레이스를 공개하여, 더 작은 오픈소스 모델이 SolAgent의 보안 인식 행동을 학습하도록 미세 조정할 수 있음.
방법론
- 프롬프트 및 초기 생성 – 기본 LLM 에이전트가 자연어 사양(예: “시간 잠금이 있는 ERC‑20 토큰”)을 받아 초기 Solidity 파일 세트를 출력합니다.
- 내부 루프(기능 검사) – 생성된 파일을 Forge 컴파일러에 전달합니다. 컴파일 오류가 발생하면 피드백 메시지가 생성되고, LLM이 문제 부분을 다시 작성하여 계약이 정상적으로 컴파일될 때까지 반복합니다.
- 외부 루프(보안 검사) – 컴파일이 성공하면 Slither 정적 분석기가 계약군을 스캔합니다. 재진입, 초기화되지 않은 저장소 등 감지된 이슈를 간결한 보고서로 정리하고, LLM이 이를 사용해 코드를 수정합니다.
- 파일‑시스템 에이전트 – 보조 에이전트가 프로젝트 디렉터리를 모니터링하여 누락된 import를 추가하고, 보조 라이브러리를 생성하며, 전체 프로젝트 구조가 Solidity 요구사항에 맞도록 보장합니다.
- 반복 수렴 – 내부 루프와 외부 루프가 번갈아 실행되어 컴파일과 보안 검사가 모두 통과하거나 최대 반복 횟수에 도달할 때까지 진행합니다.
- 데이터 수집 및 정제 – 성공적인 모든 경로(프롬프트 → 코드 → 정제)가 기록됩니다. 이 로그는 이후 작은 모델을 미세 조정하는 데 활용되어 접근성을 높입니다.
전체 파이프라인은 자동으로 실행되며, 입력으로는 원본 사양만 필요합니다.
결과 및 발견
| 지표 | SolAgent | 최고 공개 LLM | GitHub Copilot | 인간 기준 |
|---|---|---|---|---|
| Pass@1 (기능 정확도) | 64.39 % | ~25 % | ~30 % | 70 % (수동) |
| 취약점 감소 (인간 대비) | ‑39.77 % | +12 % (버그 증가) | +8 % | 0 % |
| 평균 정제 사이클 | 3.2 | 5.8 | 5.1 | N/A |
핵심 요약
- 이중 루프 설계는 원시 LLM 생성에 비해 기능 통과율을 ~2.5× 향상시킵니다.
- 보안 중심 피드백은 일반적인 Solidity 버그를 크게 감소시켜, 벤치마크에서 신중한 인간 작성자보다도 뛰어납니다.
- 시스템은 확장성이 뛰어나며, 2‑GPU 정도의 소규모 설정에서도 전체 SolEval+ 스위트(≈1,200개 계약)를 6시간 이하로 처리합니다.
실용적인 시사점
- 빠른 프로토타이핑 – 개발자는 고수준 사양을 SolAgent에 입력하면 몇 분 안에 컴파일 준비가 된 보안 검증된 계약을 받아 감사 주기를 몇 주 단축할 수 있습니다.
- 통합 CI/CD – 내부/외부 루프를 pre‑commit 훅이나 GitHub Action으로 감싸서 컴파일에 실패하거나 Slither 경고를 발생시키는 PR을 자동으로 거부할 수 있습니다.
- 감사 비용 절감 – 많은 저수준 버그를 조기에 잡음으로써 기업은 기본 안전 검증이 아닌 비즈니스 로직의 정확성에 집중한 정식 감사를 진행할 수 있습니다.
- 오픈소스 민주화 – 공개된 트래젝터리를 통해 스타트업은 비용이 많이 드는 상용 LLM 라이선스 없이도 경량 모델(예: LLaMA‑7B)을 내부용으로 미세 조정할 수 있습니다.
- 교육 및 온보딩 – 코딩 부트캠프는 SolAgent를 교육 조교로 활용하여 계약이 컴파일되지 않거나 취약한 이유를 즉시 알려줌으로써 학습 속도를 높일 수 있습니다.
제한 사항 및 향후 작업
- 툴체인 의존성 – SolAgent의 성공은 Forge와 Slither에 달려 있습니다; 이 도구들이 아직 지원하지 않는 최신 Solidity 기능에 의존하는 계약은 놓칠 수 있습니다.
- 대규모 코드베이스에 대한 확장성 – 현재 구현은 일반적인 토큰 계약과 소규모 라이브러리를 처리합니다; 수 메가바이트 규모의 DeFi 스위트로 확장하려면 더 스마트한 의존성 캐싱이 필요할 수 있습니다.
- 보안 분석 깊이 – Slither는 정적 분석기이며, 가스 제한 공격이나 복잡한 교차 계약 불변식과 같은 런타임 전용 문제를 감지할 수 없습니다. 향후 버전에서는 심볼릭 실행이나 형식 검증 도구를 통합할 수 있습니다.
- 프롬프트 민감도 – 초기 사양의 품질이 여전히 결과에 영향을 미칩니다; 모호한 프롬프트는 서로 다른 구현으로 이어질 수 있습니다. 프롬프트 엔지니어링 가이드를 개선하는 것이 열린 연구 과제입니다.
전체적으로, SolAgent는 LLM의 창의성과 도메인‑특화 도구를 결합함으로써 빠른 코드 생성과 프로덕션 수준 보안 사이의 격차를 메울 수 있음을 보여줍니다—이는 다른 안전‑중요 소프트웨어 분야에 대한 유망한 청사진입니다.
저자
- Wei Chen
- Zhiyuan Peng
- Xin Yin
- Chao Ni
- Chenhao Ying
- Bang Xie
- Yuan Luo
Paper Information
- arXiv ID: 2601.23009v1
- Categories: cs.SE
- Published: 2026년 1월 30일
- PDF: PDF 다운로드