← 최신 논문
💻 computer science

A Rust-to-Lean Verification Pipeline with AI Provers: An Experience Report

본 논문은 이더리움 재단의 zkEVM 프로젝트 내 프로덕션 Rust 암호화 코드에 대해 기계 검증된 정확성 증명을 성공적으로 생성하기 위해 Rust-to-Lean 추출 도구, 형식 암호화 라이브러리, AI 증명기를 통합한 견고하고 커널 검증된 검증 파이프라인을 제시합니다.

원저자: Natalia Klaus, Palina Tolmach, Juan Conejero

게시일 2026-05-29
📖 4 분 읽기☕ 가벼운 읽기

원저자: Natalia Klaus, Palina Tolmach, Juan Conejero

원본 논문은 CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) 라이선스로 제공됩니다. 이것은 아래 논문에 대한 AI 생성 설명입니다. 저자가 작성하거나 승인한 것이 아닙니다. 기술적 정확성을 위해서는 원본 논문을 참조하세요. 전체 면책 조항 읽기

당신은 거대하고 보이지 않는 금고 (영지식 가상 머신) 를 위한 디지털 열쇠를 제작하는 고위험 공장을 상상해 보십시오. 이 공장의 톱니바퀴 중 하나라도 약간 구부러져 있다면, 금고의 보안은 완전히 훼손되며 너무 늦었을 때야 비로소 누가 알아차리게 됩니다.

수년 동안 이러한 톱니바퀴를 점검하는 일은 모든 나사를 손으로 검사하기 위해 전문가 기계공 팀을 고용하는 것과 같았습니다. 이는 느리고 비용이 많이 들며, 기계공들이 아무것도 놓치지 않는다는 전제에 의존합니다.

이 논문은 다음 세 가지 일을 수행하는 새로운 자동화 조립 라인을 설명합니다:

  1. 번역: 복잡한 언어인 Rust로 작성된 공장 설계도를 컴퓨터가 완벽하게 이해할 수 있는 보편적인 수학 언어 (Lean 4) 로 변환합니다.
  2. 제공: 기계가 어떻게 작동해야 하는지에 대한 완벽한 사전 작성된 "골드 스탠더드"를 (ArkLibCompPoly라는 라이브러리를 사용하여) 제공합니다.
  3. 고용: 번역된 설계도를 골드 스탠더드와 비교하고 일치함을 증명하는 증명을 작성하는 초지능 AI 어시스턴트 (AlephAristotle이라고 함) 를 고용합니다.

간단한 비유를 사용하여 이 과정이 어떻게 작동하는지 살펴보겠습니다:

1. 번역기 (Rust 에서 Lean 으로)

공장 설계도는 빠르고 안전한 소프트웨어 구축을 위해 엔지니어들이 사랑하는 언어인 Rust로 작성됩니다. 그러나 "수학적 판사들" (Lean 4 시스템) 은 Rust 를 구사하지 않습니다. 그들은 순수 수학만 구사합니다.

이 논문은 AeneasHax라는 도구를 번역기로 사용합니다. 이들은 Rust 코드를 가져와 "순수 함수형" 수학으로 변환합니다.

  • 비유: 요리사의 은어 (Rust) 로 작성된 레시피를 엄격한 단계별 화학 공식 (Lean) 으로 번역한다고 상상해 보십시오. 번역기는 또한 모든 단계에 "안전 태그"를 추가합니다. 어떤 단계가 실패할 수 있다면 (0 으로 나누기나 재료 부족과 같이), 번역은 이를 명확하게 표시하여 수학이 이를 확인할 수 있게 합니다.

2. 골드 스탠더드 (명세)

"작동"의 정의가 없으면 기계가 작동함을 증명할 수 없습니다.

  • 비유: ArkLibCompPoly를 암호학의 "공식 규칙서"로 생각하십시오. 여기에는 "종이 접기" (FRI folding) 나 "Merkle 트리 확인"과 같은 것들이 수학적으로 어떻게 작동해야 하는지에 대한 완벽한 추상적 정의가 포함되어 있습니다.
  • 목표는 번역된 Rust 코드 (공장 기계) 가 규칙서가 말해야 하는 것과 정확히 일치함을 증명하는 것입니다. 더 많지도, 더 적지도 않게요.

3. AI 증명 작성자 (두뇌)

이 부분이 가장 흥미롭습니다. 코드가 번역되고 규칙서가 준비되면, 이들이 일치함을 증명하는 증명을 작성해야 합니다. 전통적으로 인간 수학자가 이 증명을 작성해야 했는데, 이는 거대하고 복잡한 퍼즐을 푸는 것과 같습니다.

이 논문은 무거운 작업을 수행할 AI 증명기 (Aleph 와 Aristotle) 를 소개합니다.

  • 비유: AI 를 지칠 줄 모르는 초고속 탐정으로 상상해 보십시오. 당신은 번역된 설계도와 규칙서를 그에게 주고, 그는 말합니다. "연결고리를 보았습니다! 이것이 증명입니다."
  • 중요한 안전 점검: AI 는 단순히 옳다고 말하는 것이 아닙니다. 최후의 판사인 Lean Kernel이 읽을 수 있는 언어로 증명을 작성합니다. Kernel 은 AI 의 논리 단계를 하나하나 점검합니다. AI 가 잘못 추측하면 Kernel 은 이를 거부합니다. 따라서 AI 는 창의적일 수 있지만, 속일 수는 없습니다.

그들이 실제로 한 일

이 팀은 이 파이프라인을 Ethereum Foundation의 프로젝트 (특히 Plonky3RISC Zero) 에서 사용되는 실제 암호학 코드에 적용했습니다.

  • 성공: 그들은 코드의 특정 부분 (데이터를 접는 방법을 계산하거나 트리가 올바르게 포함되었는지 확인하는 것과 같은) 이 수학적으로 완벽함을 성공적으로 증명했습니다.
  • AI 의 역할: compute_log_arity_for_round라는 함수와 관련된 한 특정 예에서, AI (Aleph) 는 이전에 막혀 있던 ("우리는 그것이 사실임을 알지만 아직 증명하지는 않았습니다"라는 의미인 "sorry"로 표시됨) 두 개의 복잡한 증명을 자동으로 작성했습니다.
  • 인간의 역할: AI 는 논리 퍼즐, "if-then" 시나리오, 그리고 기본 수학 처리에 뛰어났습니다. 그러나 여전히 인간이 다음을 수행해야 했습니다:
    • 전체 전략 ( "규칙서") 을 설계합니다.
    • 복잡한 루프를 처리합니다 (예: 반복되는 시퀀스에서 올바른 패턴 찾기).
    • Rust 코드가 번역기가 처리하기에 너무 까다로워 번역 오류를 수정합니다.

허들 (공학적 격차)

이 논문은 조립 라인이 아직 완벽하지 않음을 인정합니다.

  • 버전 불일치: 번역기, 규칙서, 그리고 AI 는 모두 수학 언어의 약간 다른 "사투리"를 구사합니다. 팀은 모두를 같은 버전으로 맞추기 위해 조정해야 했습니다.
  • 번역 한계: 제네릭 타입이나 외부 라이브러리와 같은 일부 복잡한 Rust 기능은 번역기가 변환하기 어렵습니다. 팀은 번역기가 이해할 수 있도록 일부 코드를 더 간단한 "모델"로 다시 작성해야 했습니다.

결론

이 논문은 AI 가 인간 엔지니어를 대체했다고 주장하지 않습니다. 대신 다음과 같은 파이프라인을 보여줍니다:

  1. 인간이 코드를 번역하고 목표를 설정합니다.
  2. AI 는 지루하고 논리적인 증명을 작성하는 강력한 어시스턴트로 작동합니다.
  3. 엄격한 컴퓨터 판사 (Kernel) 가 안전을 보장하기 위해 모든 것을 검증합니다.

그 결과, 생산급 암호학 코드를 기계가 확인하고 수학적으로 보장된 증명으로 변환하는 작동 시스템이 만들어졌으며, 이는 "보이지 않는 금고"를 훨씬 더 안전하게 만듭니다.

연구 분야의 논문에 파묻히고 계신가요?

연구 키워드에 맞는 최신 논문의 일일 다이제스트를 받아보세요 — 기술 요약 포함, 당신의 언어로.

Digest 사용해 보기 →