Towards Automated Formal Verification of zkEVMs Using LLM-Guided Constraint Synthesis
이 논문은 수동 명세 및 LLM의 환각 현상이라는 한계를 극복함으로써, Rust zkEVM 코드로부터 실행 가능한 검증 모델을 자동으로 합성하여 90% 이상의 버그 탐지율을 달성하는 하이브리드 LLM-SMT 파이프라인을 활용한 새로운 프레임워크인 VeriSynth을 소개한다.
원본 논문은 CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) 라이선스로 제공됩니다. 이것은 아래 논문에 대한 AI 생성 설명입니다. 저자가 작성하거나 승인한 것이 아닙니다. 기술적 정확성을 위해서는 원본 논문을 참조하세요. 전체 면책 조항 읽기
인터넷을 모든 사람이 모든 거래를 볼 수 있지만, 그 누구도 단독으로 제어할 수 없는 거대하고 글로벌한 디지털 장부라고 상상해 보십시오. 이것이 블록체크의 세계이며, 그곳의 가장 유명한 거주자는 이더리움입니다. 이 시스템을 더 빠르고 저렴하게 만들기 위해, 개발자들은 메인 네트워크에는 최종 결과만을 보여주고 실제 무거운 작업은 화면 밖에서 처리하는 "레이어 2(Layer-2)" 네트워크를 구축했습니다. 이 화면 밖의 결과가 비밀스러운 세부 사항을 드러내지 않으면서도 정직하다는 것을 증명하기 위해, 그들은 "영지식 증명(Zero-Knowledge Proof)"이라는 마법 같은 기술을 사용합니다. 이것은 마법사가 잠긴 상자를 보여주며, 상자를 열지 않고도 그 안에 담긴 보물이 약속한 것과 정확히 일치한다는 것을 당신에게 증명하는 것과 같습니다.
하지만 여기에는 함정이 있습니다. 마법이 작동하려면 마법사의 주문서(컴퓨터 코드)가 완벽해야 합니다. 만약 마법사가 주문에서 아주 작은 실수라도 한다면—예를 들어 금의 양을 잘못 세거나 지도를 업데이트하는 것을 잊어버린다면—상자는 여전히 잠겨 있고 유효해 보일지라도, 내부가 비어 있거나 가짜 코인으로 가득 차 있을 수 있습니다. 이는 보안에 있어 악몽과 같습니다. 이를 막기 위해 전문가들은 "형식 검증(formal verification)"이라는 방법을 사용하는데, 이는 매우 엄격한 로봇 수학자가 주문서를 한 줄 한 줄 검사하여 논리가 결함 없이 완벽한지 확인하는 방법입니다. 하지만 이 로봇에게 줄 지침을 작성하는 것은 매우 어렵습니다. 마치 비밀 언어로 쓰인 복잡한 비디오 게임 매뉴얼을 로봇이 읽을 수 있는 수학 교과서로 번역하려는 것과 같습니다.
여기서 VeriSynth라는 새로운 도구가 등장합니다. 연구진은 인공지능(AI)이 코드를 작성하는 데는 뛰어나지만, 사실처럼 들리지만 틀린 내용을 만들어내는 "환각(hallucination)" 현상을 일으킬 수 있다는 점을 깨달았습니다. 그래서 그들은 단순히 AI에게 버그를 찾아달라고 요청하는 대신, AI가 창의적인 번역가 역할을 수행하고 로봇이 "네, 이것은 정확합니다" 또는 "아니요, 이것은 말도 안 됩니다, 다시 시도하세요"라고 말하는 엄격한 판사 역할을 하는 팀을 구축했습니다.
문제점: 침묵하는 버그
영지식 이더리움 가상 머신(zkEVM)의 세계에서, 쇼를 실행하는 코드는 Rust라는 언어로 작성됩니다. 이 언어는 강력하지만 까다롭습니다. 때때로 개발자는 실수로 가스(트랜잭션 수수료)를 잘못 계산하거나 메모리 슬롯을 업데이트하는 것을 잊어버리는 코드를 작성할 수 있습니다. 이런 일이 발생하면, 시스템은 실제로 고장 난 트랜잭션에 대해 "유효한" 증명을 생성할 수 있습니다. 이는 마치 은행원이 실수로 당신에게 10달러 대신 100달러를 주었지만, 영수증에는 모든 것이 완벽하다고 적혀 있는 것과 같습니다. 증명이 유효해 보이기 때문에, 이 실수는 눈에 띄지 않은 채 시스템 전체의 보안을 조용히 무너뜨립니다.
이를 해결하는 일반적인 방법은 인간이 상세한 테스트 케이스를 작성하여 가능한 모든 실수를 잡아내기를 기대하는 것입니다. 하지만 인간은 지치기 마련이며, 컴퓨터가 마주칠 수 있는 모든 기이한 시나리오를 상상할 수 없습니다. 또 다른 접근 방식은 에세이나 코드를 작성하는 것과 같은 대규모 언어 모델(LLM)을 사용하여 버그를 찾는 것입니다. 그러나 이 논문은 AI에게 단순히 "버그를 찾아보라"고 요청하는 것은 신뢰할 수 없다고 주장합니다. AI는 보안에 필요한 엄격한 수학적 확실성이 부족하기 때문에, 버그가 없는데도 있다고 추측하거나 아예 놓칠 수 있기 때문입니다.
해결책: 번역가와 판사의 팀
이 논문의 저자인 황시첸(Shichen Huang)과 그의 팀은 VeriSynth라는 프레임워크를 만들었습니다. 그들은 이 문제를 메시지가 완벽해야 하는 고도의 집중력을 요하는 "전화 게임(Telephone)"처럼 다룹니다.
- 번역가 (LLM): 먼저, 시스템은 복잡한 Rust 코드를 거대한 퍼즐을 개별 조각으로 나누듯 작고 관리 가능한 덩어리로 분해합니다. 그런 다음 AI에게 각 조각을 "검증 모델"로 번역하도록 요청합니다. 이것은 단순한 설명이 아니라, 코드가 어떻게 작동해야 하는지를 로봇 수학자에게 정확히 알려주는 Python/Z3라는 언어로 작성된 엄격한 수학적 규칙 세트입니다.
- 참조 라이브러리: AI가 근거 없는 내용을 만들어내는 것을 막기 위해, VeriSynth는 이전에 검증된 사례들이 담긴 "치트 시트"를 제공합니다. 이는 AI에게 새로운 레고를 조립하라고 시키기 전에 이미 올바르게 조립된 레고 세트의 사진을 보여주어, 각 부품이 어떻게 생겨야 하는지 알게 하는 것과 같습니다.
- 판사 (SMT Solver): 이 부분이 가장 중요합니다. AI의 번역은 결코 즉시 신뢰되지 않습니다. 번역물은 엄격한 로봇 수학자(SM-solver)에게 전달됩니다. 로봇은 규칙에 따라 번역을 검사합니다. 만약 번역에 구문 오류, 누락된 부분 또는 논리적 모순이 있다면, 로봇은 이를 거부합니다.
- 자동 복구: 만약 로봇이 번역을 거부하면, 단순히 "실패"라고 말하는 데 그치지 않습니다. 로봇은 AI에게 "이 숫자의 크기가 잘못되었습니다" 또는 "메모리 업데이트를 잊었습니다"와 같은 구체적인 에러 메시지를 보냅니다. 그러면 AI는 실수를 수정하여 다시 보냅니다. 이 루프는 로봇이 만족할 때까지 계속됩니다.
연구 결과
팀은 숨겨진 실수가 포함된 95개의 서로 다른 코드 예시로 구성된 커스텀 "버그" 데이터셋을 구축하여 VeriSynth를 테스트했습니다. 이 실수들은 단순한 수학적 오류부터 시스템이 서로 다른 프로그램 간의 호출을 처리하는 복잡한 문제에 이르기까지 다양했습니다.
결과는 놀라웠습니다:
- VeriSynth는 95개 중 87개의 버그를 찾아내어 **91.6%**의 탐지율을 달고했습니다.
- 반면, 엄격한 로봇 판사 없이 단순히 AI에게 버그를 찾도록 요청했을 때는 44개의 버그만을 찾아내어 **46.3%**의 성공률을 보였습니다.
- 심지어 AI가 로봇과 대화하며 다시 시도하게 하는 "대화형(conversational)" 방식을 사용하더라도, 58개의 버그(61.1%)만을 찾아냈습니다.
논문은 또한 VeriSynth를 Scroll이라는 주요 프로젝트에서 사용하는 실제 테스트 방법과 비교했습니다. Scroll의 전문가 팀은 버그를 잡기 위해 자체적인 테스트 세트를 작성했습니다. 그들의 테스트는 95개 중 55개의 버그를 잡아냈습니다. VeriSynth는 87개를 잡아냈으며, 이는 VeriSynth가 인간이 작성한 테스트가 놓친 32개의 추가 버그를 찾아냈음을 의미합니다.
왜 중요한가
연구진은 이것이 인간 개발자를 대체하거나 AI가 완벽하다고 말하려는 것이 아님을 강조합니다. 대신, AI를 번역이라는 힘든 작업을 수행하는 강력한 도구로 사용하되, 엄격하고 흔들림 없는 로봇을 최종 권위자로 두는 것에 관한 것입니다. "자동 복구" 기능은 가장 결정적인 부분이었습니다. 이 기능이 없었다면 시스템의 성공률은 **66.3%**로 떨어졌을 것이며, 이는 스스로 실수를 바로잡는 능력이 시스템을 작동하게 만드는 핵심임을 입증합니다.
이 연구는 AI의 창의성과 수학적 솔버의 엄격한 논리를 결합함으로써, 인간이 혼자 만들 수 있는 것보다 훨씬 더 강력한 블록체인의 미래 안전망을 구축할 수 있음을 시사합니다. 이는 디지털 보안의 세계에서 최선의 방어는 창의적인 정신이 제안하고 엄격한 논리가 결정하는 팀을 구성하는 것임을 상기시켜 줍니다.
연구 분야의 논문에 파묻히고 계신가요?
연구 키워드에 맞는 최신 논문의 일일 다이제스트를 받아보세요 — 기술 요약 포함, 당신의 언어로.