저자: a16z crypto; 번역: Block unicorn
서문
오늘, LayerZero는 새로운 체인 Zero를 출시했습니다. 이 체인은 거래 실행과 검증을 분리하는 완전히 새로운 제로 지식 증명 방식을 포함한 여러 기술적 진보를 담고 있습니다. 이 모든 것은 'Jolt Inside' 덕분입니다.
Jolt란 무엇인가? Jolt는 오픈소스 RISC-V 기반 zkVM(제로 지식 가상 머신, 더 정확히는 '간결한' 가상 머신)으로, 빠르고 안전하며 사용하기 쉽습니다. 이것은 a16z crypto의 3년간 연구 개발을 바탕으로 한 완전히 새로운 최첨단 SNARK 설계 방식을 대표하며, 누구나 사용하거나 추가 개발할 수 있도록 오픈소스로 공개되었습니다. 그러나 Jolt의 탄생은 사실 수십 년에 걸친 준비 과정의 결과물입니다.
zkVM과 SNARK 설계가 왜 중요한가?
SNARK 설계의 진화를 깊이 있게 살펴보기 전에, 먼저 zkVM이 무엇인지 자세히 알아볼 필요가 있습니다.
이 가상 머신은 일반적으로 "zk" 가상 머신으로 불리지만, 여기서 더 자주 언급되는 특성은 간결성입니다. "제로 지식"이 프라이버시 보호에 매우 중요하지만, "간결함"은 증명이 짧고 검증하기 쉽다는 것을 의미합니다. 이는 유용하지만 서로 다른 두 가지 특성이지만 종종 혼동되곤 합니다. (Jolt는 이미 간결성을 갖추고 있으며, 곧 제로 지식도 구현될 예정입니다.)
그렇다면 zkVM이 왜 중요한가? zkVM과 더 넓은 의미의 SNARK (간결한 비상호작용적 지식 증명)은 블록체인의 확장성, 프라이버시, 보안 등 다양한 측면에서 핵심 요소입니다. 이러한 증명, 논증 및 제로 지식(통칭 검증 가능 컴퓨팅 기술)은 암호화폐 산업을 비롯한 다양한 분야에서 무수히 많은 응용 사례를 가지고 있습니다. >기존 설계 아키텍처 및 기타 사유로 인해 업계는 지금까지 zkVM 구축에 복잡한 접근 방식을 채택해 왔으며, 이에 대해서는 후술하겠습니다. 그러나 Jolt는 처음부터 효율성, 사용성 및 성능 향상을 목표로 하는 완전히 다른 SNARK 설계 방법에 집중해 왔습니다.
간단히 말해, zkVM은 컴퓨터 프로그램을 올바르게 실행했음을 증명하는 방법입니다. zkVM이 다른 SNARK에 비해 갖는 장점은 개발자 친화적이라는 점입니다. 오픈소스 LLVM 컴파일러 생태계와 같은 기존 컴퓨팅 인프라를 활용함으로써, 개발자는 도메인 특정 언어(DSL)를 사용하지 않고도 자신이 선택한 프로그래밍 언어에서 SNARK의 강력한 기능을 활용할 수 있습니다.
이는 오늘날 많은 현대 암호학 분야와 유사합니다. 암호화와 디지털 서명을 위한 표준 및 내장 라이브러리가 존재하며, 일반 개발자는 내부 작동 원리를 알 필요 없이 매일 이러한 라이브러리를 사용합니다. Jolt는 개발자에게 동일한 추상화를 제공합니다. margin-bottom: 0px;margin-left: 8px;letter-spacing: 0.578px;"},"namespaceURI":"http://www.w3.org/1999/xhtml"}]'>계층: 기존 프로그램을 사용하고 검증하기만 하면 되며, 두 프로그램 간의 상호작용을 걱정할 필요가 없습니다. 이는 모든 새로운 암호학 대중화 애플리케이션의 필수 조건입니다.
개발자는 실제 작업에 집중할 수 있습니다. Jolt를 통해 개발자는 SNARK 관련 전문 지식 없이도 단 한 번의 버튼 클릭으로 이미 작성한 컴퓨터 코드를 사용하여 Jolt 증명을 생성할 수 있습니다.
그러나 Jolt가 많은 진전을 이루었음에도 불구하고, 중간 수준의 복잡성을 가진 증명(예: 표준 CPU 코어 하나가 1초 동안 수행하는 작업)을 생성하는 데는 여전히 강력한 컴퓨팅 능력이 필요합니다. 복잡한 증명을 합리적인 시간 내에 생성하려면 여러 GPU가 필요합니다. LayerZero는 Jolt 증명기를 CUDA로 이식하고 Zero를 출시했습니다. Zero는 Jolt의 고도로 병렬화된 알고리즘을 GPU의 병렬 하드웨어와 결합하여 더 높은 수준의 확장성을 실현합니다. LayerZero는 Jolt 알고리즘을 GPU 친화적인 버전으로 공동 개발하는 것을 포함하여 Jolt를 생산 등급 GPU 증명기로 발전시키는 데 주력하고 있으며, 이는 zkVM 및 증명의 확장성 향상에 매우 중요합니다.
오픈소스 연구개발
Jolt 자체는 오픈소스이므로 누구나 이 혁신적인 기술을 사용하거나 기반으로 개발할 수 있습니다. 오픈소스는 궁극적인 증폭제입니다: 성과를 공개적으로 공유함으로써 생태계 내 더 많은 사람들이 이를 사용하고, 재사용하고, 스트레스 테스트/검토/수정하고, 개선하며, 이를 바탕으로 추가적인 혁신을 이룰 수 있게 합니다.
벤처 캐피털이 오픈소스 프로젝트에 투자하는 것은 이례적으로 보일 수 있지만, 현대 연구 개발의 구조는 대부분의 개발 작업이 기업 내부(예: 과거의 기업 연구소나 현재의 재단 연구소) 또는 학계에서 이루어지도록 결정합니다. 우리는 a16z 암호 연구 기관을 설립하여 학계 이론과 산업 실무를 연결하는 산업 연구 실험실 및 엔지니어링 팀을 구축하고자 합니다. 벤처 캐피털 회사로서 우리는 다른 기관이 지원할 수 없는 프로젝트를 후원할 수 있습니다… 특히 역방향 투자(reverse investment)의 경우에 더욱 그렇습니다.
SNARK 의 역방향 설계 접근법은 Jolt에게 특히 중요합니다. 이는 기존 설계 방법과 완전히 다른 중대한 '패러다임 전환'을 의미하기 때문입니다. 이러한 설계 진화는 수년에 걸쳐 이루어졌습니다.
혁신의 이야기는 종종 아키텍처 설계의 변화에 관한 이야기입니다변화 이야기
Jolt의 SNARK 설계 방법론에 대한 중대한 혁신을 이해하려면 2천여 년 전으로 거슬러 올라가야 합니다: 고대 그리스인들이 형식화된 수학적 증명 체계의 발전을 개척했으며, 이후 중동, 아시아 및 기타 지역의 학자들이 이를 확장해 나갔습니다.
이러한 초기 증명들—단계별로 작성된 논리적 추론—은형식적 언어나 공식으로 기록되어 누구나 검증할 수 있도록 했습니다. 예를 들어, 한 수학자가 증명을 '책'에 기록하면 다른 수학자가 그 책을 한 글자 한 글자 읽어 검증할 수 있었습니다. 이러한 전통적인 정적 서면 증명 개념은 바로 유명한 'P 대 NP' 문제의 NP 복잡도 클래스를 구현한 것입니다.
주목할 점은 이 전통적인 증명 방식이 순차적이며 교대로 진행되어야 한다는 것이다: 그것은 상호작용적이지 않고 정적인 것이다.
그러나시간을 1985년*으로 빠르게 돌려보면, Shafi Goldwasser, Silvio Micali, Charles Rackoff가상호작용 증명("IP") 개념을 제안했습니다.[*실제로 논문 제출은 몇 년 앞당겨졌으나, 여러 차례 거절당한 후 채택되었습니다.] 이 상호작용적 증명 방법의 핵심 아이디어는 다음과 같습니다: 예를 들어, 두 수학자가 소통할 때, 한 쪽이 증명을 작성한 후 다른 쪽을 설득하기를 기다릴 필요가 없습니다. 대신, 그들은 실시간으로 질문할 수 있습니다; 다시 말해, 상호작용을 통해 증명의 진리를 탐구하는 것이다.
이러한 상호증명의 막대한 힘 — 고대 그리스인들이 개척한 전통적인 정적 증명과 비교하여 — 은 5년 후인 1990년이 되어서야 비로소 완전히 인식되었다. 당시, Carsten Lund, Lance Fortnow, Howard Karloff 및 Noam Nisan은합계 검사 프로토콜: 대화형 증명 시스템을 위한 대수적 방법을 제안했습니다. Adi Shamir의 후속 연구와 결합되어, 이는 곧 "IP=PSPACE"라는 기초적인 결론으로 이어졌습니다. 이는 기술적인 표현으로, 다음과 같은 직관적인 진술을 요약합니다:
증명자와 검증자가 상호작용할 수 있다면 — 즉, 전통적인 증명 시스템처럼 도전-응답** [**
거짓말하는 증명자가 답변할 수 없는 도전으로 '발각'되지 않는다고 가정한다면),
그렇다면고대 그리스 전통의 정적이며 서면화된 증명과 비교하여, 우리는 더 복잡한 진술을 신속하게 검증할 수 있습니다.
다시 말해: 상호작용 속성은 증명 시스템에서 우리에게 큰 이점을 부여합니다. 그리고 합계 검증(sum-check)은 바로 이 이점을 효율적인 검증으로 전환하는 핵심입니다. 검증자가 증명 대상인 전체 계산 과정을 재구성하지 않고도 주장된 결과를 검증할 수 있게 해줍니다.
몇 년 후, Joe Kilian은 확률적 검증 가능 증명(PCP)을 기반으로 간결한 제로 지식 증명을 제안했습니다. PCP 증명 이론에서 증명자(고대 그리스 수학자를 상상해 보되, 지금은 컴퓨터라고 생각하면 됩니다)는 평범한 증명을 "책"에 기록하지만 형식은 매우 중복적입니다. 주목할 점은 이 중복성 덕분에 검증자가 책 전체를 읽을 필요가 없다는 것입니다: 검증자는 증명 위치에서 고정된 수의 샘플을 무작위로 추출하기만 하면 됩니다. 예를 들어 책 속의 세 개의 "단어"를 추출함으로써, 전체 증명의 유효성을 높은 신뢰도로 판단할 수 있습니다.
이에 Kilian은 PCP를 암호학과 결합하여 증명자가 이 "긴 책"을 완성하겠다는 "약속"을 한 후, 추출된 몇 개의 단어만 공개하고 간단한 암호학적 인증을 첨부하는 방법을 제시했습니다. Kilian 프로토콜의 최종 증명은 실제로 이 몇 개의 단어(일부 암호학적 인증 데이터 포함)로 구성되지만, 검증자가 책 전체가 유효하다고 믿기에 충분합니다.
이러한 증명은 당시에도 상호작용적이었다. 이후 Micali는 Fiat-Shamir 변환을 적용하여 Kilian의 PCP 기반 상호작용적 증명을 비상호작용적 증명(non-interactive proof)으로 전환하는 방법을 제시했다. 간단히 말해, Fiat-Shamir 변환은 검증자의 무작위적 도전을 "제거"하여 증명자가 스스로 도전을 생성하고 단일 출력으로 전체 증명을 제공할 수 있게 합니다. ">증명 시스템의 역사와 진화를 살펴보면, 우리는 정적에서 상호작용적, 확률적 및 비상호작용적(PCP), 다시 상호작용적(Kilian 참조), 그리고 다시 비상호작용적(Micali 참조)으로의 진화를 경험했습니다. SNARK는 이 진화의 끝에 등장했습니다: Fiat-Shamir 변환을 Kilian의 상호작용적 증명에 적용함으로써 Micali는 현재 우리가 말하는 최초의 SNARK 구조를 얻었습니다.
그러나이러한 초기 PCP 기반 SNARK에서는 증명자의 작업량이 방대하여 — 계산 시간이 지나치게 오래 걸려 — 실제 배포가 어려웠습니다.
그럼에도 불구하고,SNARK의 설계 방식은 수십 년간 이어져 왔습니다. 업계가 PCP 기반 SNARK 설계 방식에서 벗어나려 시도했음에도, 설계자들은 여전히 "선형 PCP" 등과 같은 관련 개념들을 사용해 왔는데, 이는 사실상 PCP 기법들의 변형에 불과했습니다. 이러한 방법들은 증명 시간이 극히 짧은 SNARK를 제공하기는 하지만, 증명자 속도가 가장 빠른 SNARK를 제공하지는 못했습니다.
SNARK 설계자들은근본적인 근원인 합계 검증 프로토콜로 돌아가 현대 컴퓨팅을 통해 이제 가능해진 더 빠르고 사용하기 쉬운 증명자를 얻지 못했습니다. p>
한 걸음 물러서서 말하자면, 합산 검증 프로토콜을 더 일찍 채택하려면 위에서 개괄한 SNARK의 역사와 진화를 비선형적인 방식으로 살펴볼 필요가 있습니다. (a) 상호작용 증명 → (b) PCP → (c) 간결한 상호작용 증명 → (d) 초기 SNARK의 발전 과정에서 업계는 다음과 같은 전환을 경험했습니다:
(a) 상호작용 증명 → (b) PCP로의 전환 과정에서 주요 도전 과제는 검증 간결성을 유지하면서 증명 시스템에서 상호작용을 제거하는 방법이었습니다. 이는 설계자들이 합계 검증 프로토콜(즉, 상호작용 부분)을 포기하도록 이끌었습니다. >그러나 (b) PCP에서 (c) 간결한 제로 지식 증명(SNARK)으로 전환할 때 상호작용이 다시 등장합니다……
결국, Fiat-Shamir 변환을 통해 이를 제거함으로써 (c) 간결한 상호작용 증명(SNARK)에서 (d) 초기 SNARK로의 전환을 이루었습니다. 모든 단계를 선형적으로 검토해 보면, SNARK 설계자가 실제로 두 번에 걸쳐 상호작용을 생략했음을 명확히 알 수 있습니다. 한 번은 (a) → (b) 단계에서, 다른 한 번은 (c) → (d) 단계에서입니다.
하지만 만약 우리가 Fiat-Shamir를 사용해 상호작용을 제거하려 한다면…… 우리는 중간 단계 (b), 즉 확률적 검증 가능 증명을 직접 건너뛰어야 합니다!
이 중간 (b) 단계를 건너뛰는 것이 바로 Jolt 방법의 핵심 통찰로, 상호작용 증명에서 직접 SNARK를 구축하여
합계 검증으로 직행합니다.
왜 더 많은 사람들이 더 일찍 합산 검증 프로토콜 기반 설계 방식으로 전환하지 않았을까? 초기 SNARK 설계자들이 그렇게 하지 않은 이유는 PCP와 SNARK가 표면상 유사해 보였기 때문일 수 있다. 둘 다 간결한 검증 개념을 구현하기 때문이다. 후속 발전에 있어서는 아키텍처 — 그리고 오해 — 가 지속될 수 있다.
우리에게 있어 합계 검증 기반 zkVM Jolt에 막대한 엔지니어링 및 연구 자원을 투입하는 것은 역발상적인 베팅입니다. 이는 SNARK 분야에서 수십 년간 지배해 온 패러다임과 정면으로 맞서는 것이기 때문입니다.
‘Jolt Inside’
Jolt의 SNARK 설계 방법(자체적으로 Twist + Shout과 같은 배치 평가 및 메모리 검사 메커니즘에 기반)은 대화형 증명과 합산 검증 프로토콜을 기반으로 합니다.
이제 Jolt 구축을 시작한 지 몇 년이 지난 지금, 다른 이들도 그들의 설계에 합산 검증 프로토콜 접근법을 도입하기 시작했습니다. 그렇다면 Jolt는 오늘날의 zkVM에서 어떤 특징을 가지고 있을까요? Jolt는 CPU 실행 내의 반복 구조를 최대한 활용합니다. 각 CPU 코어의 "명령어 가져오기-디코딩-실행" 추상화가 배치 평가 메커니즘에 어떻게 적용되는지 관찰함으로써, Jolt는 최소한의 복잡도로 비교할 수 없는 효율성을 구현했습니다. p>
이에 반해 다른 zkVM들은 합리적인 성능을 구현하기 위해 "프리컴파일"(특정 서브루틴용 ASIC과 유사한 가속기)에 크게 의존합니다. Jolt는 이러한 프리컴파일을 배제합니다. 프리컴파일은 zkVM이 등장하기 전 SNARK 설계 방식의 실수를 반복하기 때문입니다: 이러한 전용 SNARK 설계에는 전문가가 필요하기 때문에 버그 발생 가능성이 높고, 광범위한 개발자가 사용하기 어렵습니다. Jolt의 핵심은 SNARK의 대중화에 있습니다.
CPU 실행의 정확성을 검증하는 것이 바로 zkVM의 핵심 가치이자 개발자 경험의 큰 돌파구입니다. 이는 기존에 강화된 범용 컴퓨팅 인프라를 재사용할 수 있게 하기 때문입니다. 전 세계 컴퓨팅 인프라는 CPU를 지원하기 위해 구축되었으며, Jolt는 CPU 실행의 고유한 "구조"를 최대한 활용하여 간결성과 성능을 극대화합니다.
Jolt 처음부터사용성과생산급 성능을 최우선으로: 개발자는 기존 프로그램을 직접 검증할 수 있으며; 빠른 검증을 위해 코드를 수정할 필요조차 없습니다. Jolt는 다른 솔루션과 달리 수용 가능한 성능을 위해 팀이 "사전 컴파일"이나 특수 API를 중심으로 애플리케이션을 리팩토링하도록 강요하지 않습니다. 대신 원본 코드의 무결성을 유지하여도입이 더 용이하고 감사하기 더 쉬우며이테레이션 비용이 더 낮습니다.
더 중요한 것은, Jolt는 단순히더 빠를 뿐만 아니라더 간단하다는 점입니다. 다른 솔루션은 zkVM 설계자가 가상 머신의 각 기본 명령어에 대해 회로를 지정해야 하지만, Jolt는 그렇지 않습니다: Jolt에서는 각 기본 명령어를 약 10줄의 Rust 코드로 지정할 수 있습니다. 회로 없이, 단지 10줄의 코드만으로 가능합니다. text-align: left;">우리는 속도 측면에서 이미 선도적 위치에 있습니다. 재귀 및 제로 지식 증명과 같은 추가 최적화와 기능 도입, 특히 타원 곡선 암호학에서 격자 암호학으로의 전환을 계획 중이며, 이를 통해 올해 말 속도에서 또 다른 차원의 향상을 달성할 예정입니다. 포스트 퀀텀 시대는 말할 것도 없습니다.
Jolt는 더 많은 애플리케이션의 실현을 가능하게 합니다. 블록체인에 있어 모두가 오랫동안 기다려온 확장성과 탈중앙화는 훨씬 더 쉽게 배포될 수 있게 될 것입니다. 제로 지식 증명 집계는 몇 달 또는 몇 년이 걸리는 암호 공학 작업 없이도 바로 사용할 수 있습니다.
그러나 Jolt의 추가 발전—예를 들어 휴대폰과 노트북에서 실행 가능한 빠르고 간편한 제로 지식 증명 가상 머신 구축—을 통해 개발자는 클라이언트 및 프라이버시 보호 측면에서 더 많은 활용 사례를 열 수 있을 것입니다. 예를 들어 휴대폰의 프라이버시 보호 애플리케이션은 유지보수가 어렵고 실행이 거의 불가능했던 것에서 쉽게 바로 사용 가능한 수준으로 전환될 수 있습니다. p>장기적으로 이러한 증명 시스템은 암호화나 디지털 서명과 유사하게 세계 디지털 인프라의 핵심 구성 요소가 될 것입니다. 이 범용 암호화 압축 기술—누구나 전체 데이터 대신 50킬로바이트의 증명 파일만 전송함으로써 특정 속성을 충족하는 수 기가바이트 규모의 데이터를 보유하고 있음을 증명할 수 있다는 점— —이토록 강력한 기능으로,사람들이 이를 활용해 어떤 애플리케이션을 개발할지 예측하기 어렵습니다. 그 가능성은 무궁무진합니다.