zkML과 암호학적 증명을 통한 검증 가능한 온체인 AI
소개: 블록체인에서 검증 가능한 AI의 필요성
AI 시스템의 영향력이 커짐에 따라 그 결과물의 신뢰성을 보장하는 것이 중요해졌습니다. 전통적인 방법은 제도적 보증(본질적으로 "그냥 우리를 믿으세요")에 의존하며, 이는 암호학적 보장을 제공하지 않습니다. 이는 블록체인과 같은 탈중앙화된 환경에서 특히 문제가 되는데, 스마트 계약이나 사용자는 무거운 모델을 온체인에서 다시 실행할 수 없이 AI가 도출한 결과를 신뢰해야 하기 때문입니다. **영지식 머신러닝(zkML)**은 ML 연산의 _암호학적 검증_을 허용함으로써 이 문제를 해결합니다. 본질적으로 zkML은 증명자가 _"출력 $Y$는 입력 $X$에 대해 모델 $M$을 실행하여 나왔다"_는 간결한 증명을 생성할 수 있게 해주며, 이때 $X$나 $M$의 내부 세부 정보는 공개하지 않습니다. 이러한 영지식 증명(ZKP)은 누구나(또는 어떤 계약이든) 효율적으로 검증할 수 있어, AI 신뢰를 "정책에서 증명으로" 전환시킵니다.
AI의 온체인 검증 가능성 은 블록체인이 연산 자체를 수행하는 대신 정확한 실행 증명을 검증함으로써 고급 연산(신경망 추론 등)을 통합할 수 있음을 의미합니다. 이는 광범위한 영향을 미칩니다. 스마트 계약은 AI 예측을 기반으로 결정을 내릴 수 있고, 탈중앙화된 자율 에이전트는 자신들의 알고리즘을 따랐음을 증명할 수 있으며, 크로스체인 또는 오프체인 연산 서비스는 검증 불가능한 오라클 대신 검증 가능한 결과물을 제공할 수 있습니다. 궁극적으로 zkML은 신뢰가 필요 없고 프라이버시를 보존하는 AI로 가는 길을 제시합니다. 예를 들어, AI 모델의 결정이 개인 데이터나 독점적인 모델 가중치를 노출하지 않고 정확하고 승인되었음을 증명할 수 있습니다. 이는 안전한 의료 분석부터 블록체인 게임, DeFi 오라클에 이르기까지 다양한 애플리케이션에 핵심적입니다.
zkML의 작동 원리: ML 추론을 간결한 증명으로 압축하기
높은 수준에서 zkML은 암호학적 증명 시스템과 ML 추론을 결합하여 복잡한 모델 평가를 작은 증명으로 "압축"할 수 있도록 합니다. 내부적으로 ML 모델(예: 신경망)은 많은 산술 연산(행렬 곱셈, 활성화 함수 등)으로 구성된 회로나 프로그램으로 표현됩니다. 모든 중간 값을 공개하는 대신, 증명자는 전체 연산을 오프체인에서 수행한 다음 영지식 증명 프로토콜을 사용하여 모든 단계가 올바르게 수행되었음을 증명합니다. 검증자는 증명과 일부 공개 데이터(최종 출력 및 모델 식별자 등)만으로 모델을 재실행하지 않고도 정확성을 암호학적으로 확신할 수 있습니다.
이를 달성하기 위해 zkML 프레임워크는 일반적으로 모델 연산을 ZKP에 적합한 형식으로 변환합니다.
- 회로 컴파일: SNARK 기반 접근 방식에서는 모델의 연산 그래프가 산술 회로 또는 다항식 제약 조건 집합으로 컴파일됩니다. 신경망의 각 계층(컨볼루션, 행렬 곱셈, 비선형 활성화)은 입력이 주어졌을 때 출력이 정확함을 보장하는 제약 조건이 있는 하위 회로가 됩니다. 신경망은 다항식에 자연스럽게 적합하지 않은 비선형 연산(ReLU, Sigmoid 등)을 포함하기 때문에, 이를 효율적으로 처리하기 위해 룩업 테이블과 같은 기술이 사용됩니다. 예를 들어, ReLU(출력 = max(0, 입력))는 입력≥0일 때 출력이 입력과 같고 그렇지 않으면 0임을 검증하는 사용자 정의 제약 조건이나 룩업으로 강제할 수 있습니다. 최종 결과는 증명자가 만족해야 하는 암호학적 제약 조건 집합이며, 이는 모델이 올바르게 실행되었음을 암묵적으로 증명합니다.
- 실행 추적 및 가상 머신: 대안은 zkVM 접근 방식에서처럼 모델 추론을 프로그램 추적으로 취급하는 것입니다. 예를 들어, JOLT zkVM은 RISC-V 명령어 집합을 대상으로 합니다. ML 모델(또는 이를 계산하는 코드)을 RISC-V로 컴파일한 다음 각 CPU 명령어가 올바르게 실행되었음을 증명할 수 있습니다. JOLT는 "룩업 특이점" 기술을 도입하여, 비용이 많이 드는 산술 제약 조건을 각 유효한 CPU 연산에 대한 빠른 테이블 룩업으로 대체합니다. 모든 연산(덧셈, 곱셈, 비트 연산 등)은 사전 계산된 유효한 결과의 거대한 테이블에서 룩업을 통해 확인되며, 이를 효율적으로 유지하기 위해 특화된 인수(Lasso/SHOUT)를 사용합니다. 이는 증명자의 작업량을 극적으로 줄입니다. 복잡한 64비트 연산조차도 많은 산술 제약 조건 대신 증명에서 단일 테이블 룩업이 됩니다.
- 상호작용 프로토콜 (GKR 합계 검사): 세 번째 접근 방식은 GKR(Goldwasser–Kalai–Rotblum)과 같은 상호작용 증명을 사용하여 계층화된 연산을 검증하는 것입니다. 여기서 모델의 연산은 계층화된 산술 회로로 간주됩니다(각 신경망 계층은 회로 그래프의 한 계층임). 증명자는 모델을 정상적으로 실행한 다음, 각 계층의 출력이 입력에 따라 정확함을 증명하기 위해 _합계 검사 프로토콜_에 참여합니다. Lagrange의 접근 방식(다음에서 자세히 설명할 DeepProve)에서는 증명자와 검증자가 상호작용 다항식 프로토콜(Fiat-Shamir를 통해 비상호작용적으로 만듦)을 수행하여 각 계층의 연산을 다시 수행하지 않고 일관성을 확인합니다. 이 합계 검사 방법은 단일의 정적 회로를 생성하는 것을 피하고, 대신 최소한의 암호학적 연산(주로 해싱 또는 다항식 평가)으로 단계별로 _연산의 일관성_을 검증합니다.
어떤 접근 방식을 사용하든, 결과는 전체 추론의 정확성을 증명하는 간결한 증명(일반적으로 수 킬로바이트에서 수십 킬로바이트)입니다. 이 증명은 _영지식_이므로, 모든 비밀 입력(개인 데이터 또는 모델 매개변수)은 숨겨질 수 있습니다. 이는 증명에 영향을 미치지만 검증자에게는 공개되지 않습니다. 의도된 공개 출력이나 주장만이 공개됩니다. 이는 _"모델 $M$을 환자 데이터 $X$에 적용하면 진단 $Y$가 나온다는 것을 $X$나 모델의 가중치를 공개하지 않고 증명하라"_와 같은 시나리오를 가능하게 합니다.
온체인 검증 활성화: 증명이 생성되면 블록체인에 게시될 수 있습니다. 스마트 계약은 증명을 확인하기 위한 검증 로직을 포함할 수 있으며, 종종 사전 컴파일된 암호학적 프리미티브를 사용합니다. 예를 들어, 이더리움은 많은 zk-SNARK 검증기에서 사용되는 BLS12-381 페어링 연산을 위한 사전 컴파일을 가지고 있어, SNARK 증명의 온체인 검증을 효율적으로 만듭니다. STARK(해시 기반 증명)는 더 크지만, 신중한 최적화나 일부 신뢰 가정(예를 들어, StarkWare의 L2는 이더리움에서 STARK 증명을 온체인 검증기 계약으로 검증하지만 SNARK보다 가스 비용이 높음)을 통해 여전히 온체인에서 검증될 수 있습니다. 핵심은 체인이 ML 모델을 실행할 필요 없이, 원래 연산보다 훨씬 저렴한 검증만 실행한다는 것입니다. 요약하면, zkML은 _비용이 많이 드는 AI 추론을 블록체인(또는 모든 검증자)이 밀리초에서 초 단위로 확인할 수 있는 작은 증명으로 압축_합니다.
Lagrange DeepProve: zkML의 혁신적인 아키텍처와 성능
Lagrange Labs의 DeepProve는 속도와 확장성에 초점을 맞춘 최첨단 zkML 추론 프레임워크입니다. 2025년에 출시된 DeepProve는 Ezkl과 같은 이전 솔루션보다 극적으로 빠른 새로운 증명 시스템을 도입했습니다. 그 설계는 _합계 검사를 포함한 GKR 상호작용 증명 프로토콜_과 신경망 회로에 대한 특화된 최적화를 중심으로 합니다. DeepProve의 작동 방식과 성능 달성 방법은 다음과 같습니다.
-
일회성 전처리: 개발자는 훈련된 신경망(현재 다층 퍼셉트론 및 인기 있는 CNN 아키텍처 지원)으로 시작합니다. 모델은 표준 그래프 표현인 ONNX 형식으로 내보내집니다. 그런 다음 DeepProve의 도구는 ONNX 모델을 파싱하고 효율적인 필드 산술을 위해 양자화(가중치를 고정 소수점/정수 형태로 변환)합니다. 이 단계에서 암호학적 프로토콜을 위한 증명 및 검증 키도 생성합니다. 이 설정은 모델당 한 번만 수행되며 추론마다 반복할 필요가 없습니다. DeepProve는 통합의 용이성을 강조합니다: "모델을 ONNX로 내보내기 → 일회성 설정 → 증명 생성 → 어디서든 검증".
-
증명 (추론 + 증명 생성): 설정 후, 증명자(사용자, 서비스 또는 Lagrange의 탈중앙화 증명자 네트워크에서 실행 가능)는 새로운 입력 $X$를 받아 모델 $M$을 실행하여 출력 $Y$를 얻습니다. 이 실행 동안 DeepProve는 각 계층의 연산에 대한 실행 추적을 기록합니다. SNARK 접근 방식처럼 모든 곱셈을 정적 회로로 미리 변환하는 대신, DeepProve는 선형 시간 GKR 프로토콜을 사용하여 각 계층을 즉석에서 검증합니다. 각 네트워크 계층에 대해 증명자는 계층의 입력과 출력에 커밋하고(예: 암호학적 해시 또는 다항식 커밋을 통해), 그런 다음 출력이 계층의 함수에 따라 실제로 입력에서 비롯되었음을 증명하기 위해 합계 검사 인수에 참여합니다. 합계 검사 프로토콜은 실제 값을 공개하지 않고 계층의 연산을 인코딩하는 다항식의 평가 합계의 정확성을 검증자에게 반복적으로 확신시킵니다. 비선형 연산(ReLU, softmax 등)은 DeepProve에서 _룩업 인수_를 통해 효율적으로 처리됩니다. 활성화의 출력이 계산되면, DeepProve는 각 출력이 해당 함수에 대해 사전 계산된 테이블의 유효한 입력-출력 쌍에 해당함을 증명할 수 있습니다. 계층별로 증명이 생성된 다음, 전체 모델의 순방향 전파를 다루는 하나의 간결한 증명으로 집계됩니다. 암호학의 무거운 작업은 최소화됩니다. DeepProve의 증명자는 거대한 제약 조건 시스템을 푸는 대신, 주로 일반적인 수치 연산(실제 추론)과 일부 가벼운 암호학적 커밋을 수행합니다.
-
검증: 검증자는 최종 간결한 증명과 함께 몇 가지 공개 값(일반적으로 모델의 커밋된 식별자($M$의 가중치에 대한 암호학적 커밋), 입력 $X$(비공개가 아닌 경우), 주장된 출력 $Y$)을 사용하여 정확성을 확인합니다. DeepProve 시스템에서의 검증은 합계 검사 프로토콜의 트랜스크립트와 최종 다항식 또는 해시 커밋을 검증하는 것을 포함합니다. 이는 고전적인 SNARK를 검증하는 것(몇 번의 페어링일 수 있음)보다 더 복잡하지만, _모델을 다시 실행하는 것보다 훨씬 저렴_합니다. Lagrange의 벤치마크에서, 중간 크기 CNN에 대한 DeepProve 증명을 검증하는 데 소프트웨어에서 0.5초 정도 걸립니다. 이는 예를 들어 수십만 개의 매개변수를 가진 컨볼루션 네트워크가 올바르게 실행되었음을 확인하는 데 약 0.5초가 걸린다는 의미이며, 이는 검증을 위해 GPU에서 해당 CNN을 순진하게 재계산하는 것보다 500배 이상 빠릅니다. (실제로 DeepProve는 CNN에 대해 최대 521배 빠른 검증, MLP에 대해 _671배 빠른 검증_을 재실행과 비교하여 측정했습니다.) 증명 크기는 온체인으로 전송하기에 충분히 작으며(수십 KB), 0.5초의 연산은 신중한 가스 최적화나 레이어 2 실행이 필요할 수 있지만, 필요하다면 스마트 계약에서 검증을 수행할 수 있습니다.
아키텍처 및 도구: DeepProve는 Rust로 구현되었으며 개발자를 위한 툴킷(zkml
라이브러리)을 제공합니다. ONNX 모델 그래프를 기본적으로 지원하므로 PyTorch나 TensorFlow의 모델(내보내기 후)과 호환됩니다. 증명 프로세스는 현재 최대 수백만 개의 매개변수를 가진 모델을 대상으로 합니다(테스트에는 4백만 매개변수 밀집 네트워크 포함). DeepProve는 다중 선형 다항식 커밋(계층 출력에 커밋하기 위해), 연산 검증을 위한 합계 검사 프로토콜, 비선형 연산을 위한 룩업 인수 등 여러 암호학적 구성 요소를 조합하여 활용합니다. 특히 Lagrange의 오픈 소스 저장소는 이전 작업(Scroll의 Ceno 프로젝트에서 온 합계 검사 및 GKR 구현)을 기반으로 구축되었음을 인정하며, 이는 zkML과 영지식 롤업 연구의 교차점을 나타냅니다.
실시간 확장성을 달성하기 위해 Lagrange는 DeepProve를 **증명자 네트워크(Prover Network)**와 결합합니다. 이는 전문 ZK 증명자들의 탈중앙화 네트워크입니다. 무거운 증명 생성은 이 네트워크에 오프로드될 수 있습니다. 애플리케이션이 추론 증명이 필요할 때, 작업을 Lagrange의 네트워크에 보내면, 많은 운영자(보안을 위해 EigenLayer에 스테이킹됨)가 증명을 계산하고 결과를 반환합니다. 이 네트워크는 신뢰할 수 있는 증명 생성을 경제적으로 인센티브화합니다(악의적이거나 실패한 작업은 운영자를 슬래싱함). 증명자들에게 작업을 분산시키고(잠재적 으로 GPU나 ASIC 활용), Lagrange 증명자 네트워크는 최종 사용자로부터 복잡성과 비용을 숨깁니다. 그 결과는 빠르고, 확장 가능하며, 탈중앙화된 zkML 서비스입니다: "검증 가능한 AI 추론을 빠르고 저렴하게".
성능 이정표: DeepProve의 주장은 이전 최첨단 기술인 Ezkl과의 벤치마크로 뒷받침됩니다. 약 264k 매개변수를 가진 CNN(CIFAR-10 규모 모델)의 경우, DeepProve의 증명 시간은 약 1.24초였던 반면, Ezkl은 약 196초로, 약 158배 더 빨랐습니다. 4백만 개의 매개변수를 가진 더 큰 밀집 네트워크의 경우, DeepProve는 추론을 약 2.3초 만에 증명했지만, Ezkl은 약 126.8초가 걸렸습니다(약 54배 더 빠름). 검증 시간도 단축되었습니다. DeepProve는 264k CNN 증명을 약 0.6초 만에 검증했지만, Ezkl 증명(Halo2 기반)을 CPU에서 검증하는 데는 5분 이상 걸렸습니다. 이러한 속도 향상은 DeepProve의 거의 선형적인 복잡성에서 비롯됩니다. 증명자는 연산 수에 따라 대략 _O(n)_으로 확장되는 반면, 회로 기반 SNARK 증명자는 종종 초선형적인 오버헤드(FFT 및 다항식 커밋 확장)를 가집니다. 실제로 DeepProve의 증명자 처리량은 일반 추론 런타임의 한 자릿수 이내일 수 있습니다. 최근 GKR 시스템은 대규모 행렬 곱셈에 대해 원시 실행보다 10배 미만으로 느릴 수 있으며, 이는 ZK에서 인상적인 성과입니다. 이는 _실시간 또는 온디맨드 증명_을 더 실현 가능하게 만들어, 상호작용 애플리케이션에서 검증 가능한 AI의 길을 열어줍니다.
사용 사례: Lagrange는 이미 Web3 및 AI 프로젝트와 협력하여 zkML을 적용하고 있습니다. 예시 사용 사례로는 검증 가능한 NFT 특성(게임 캐릭터나 수집품의 AI 생성 진화가 승인된 모델에 의해 계산되었음을 증명), AI 콘텐츠의 출처(딥페이크와 싸우기 위해 이미지나 텍스트가 특정 모델에 의해 생성되었음을 증명), DeFi 위험 모델(독점 데이터를 공개하지 않고 금융 위험을 평가하는 모델의 출력을 증명), 의료 또는 금융에서의 프라이빗 AI 추론(병원이 환자 데이터를 노출하지 않고 정확성을 보장하는 증명과 함께 AI 예측을 받을 수 있음) 등이 있습니다. AI 출력을 검증 가능하고 프라이버시를 보존하게 만듦으로써, DeepProve는 탈중앙화 시스템에서 _"신뢰할 수 있는 AI"_의 문을 엽니다. 이는 _"블랙박스 모델에 대한 맹목적인 신뢰"_의 시대에서 _"객관적인 보증"_의 시대로 나아가는 것입니다.
SNARK 기반 zkML: Ezkl과 Halo2 접근 방식
zkML에 대한 전통적인 접근 방식은 zk-SNARK(Succinct Non-interactive Arguments of Knowledge)를 사용하여 신경망 추론을 증명합니다. Ezkl(ZKonduit/Modulus Labs 제작)은 이 접근 방식의 대표적인 예입니다. 이는 Halo2 증명 시스템(BLS12-381 상의 다항식 커밋을 사용하는 PLONK 스타일의 SNARK)을 기반으로 합니다. Ezkl은 개발자가 PyTorch나 TensorFlow 모델을 가져와 ONNX로 내보내면, Ezkl이 이를 자동으로 맞춤형 산술 회로로 컴파일하는 툴링 체인을 제공합니다.
작동 방식: 신경망의 각 계층은 제약 조건으로 변환됩니다.
- 선형 계층(밀집 또는 컨볼 루션)은 입력, 가중치, 출력 간의 내적을 강제하는 곱셈-덧셈 제약 조건의 모음이 됩니다.
- 비선형 계층(ReLU, 시그모이드 등)은 이러한 함수가 다항식이 아니기 때문에 룩업 또는 조각별 제약 조건을 통해 처리됩니다. 예를 들어, ReLU는 $y = x \cdot b$, $0 \le b \le 1$, $x>0$일 때 $b=1$을 보장하는 불리언 선택자 $b$로 구현될 수 있거나, 더 효율적으로는 $x$ 값의 범위에 대해 $x \mapsto \max(0,x)$를 매핑하는 룩업 테이블을 사용할 수 있습니다. Halo2의 룩업 인수는 16비트(또는 더 작은) 값의 청크를 매핑할 수 있으므로, 큰 도메인(예: 모든 32비트 값)은 보통 여러 개의 작은 룩업으로 _"청크화"_됩니다. 이 청크화는 제약 조건의 수를 증가시킵니다.
- 큰 정수 연산이나 나눗셈(있는 경우)도 비슷하게 작은 조각으로 나뉩니다. 그 결과 특정 모델 아키텍처에 맞춰진 대규모 R1CS/PLONK 제약 조건 집합이 생성됩니다.
그런 다음 Ezkl은 Halo2를 사용하여 비밀 입력(모델 가중치, 개인 입력)과 공개 출력이 주어졌을 때 이러한 제약 조건이 성립한다는 증명을 생성합니다. 툴링 및 통합: SNARK 접근 방식의 한 가지 장점은 잘 알려진 프리미티브를 활용한다는 것입니다. Halo2는 이미 이더리움 롤업(예: Zcash, zkEVM)에서 사용되고 있으므로, 실전에서 검증되었고 온체인 검증기를 쉽게 사용할 수 있습니다. Ezkl의 증명은 BLS12-381 곡선을 사용하며, 이더리움은 사전 컴파일을 통해 이를 검증할 수 있어 스마트 계약에서 Ezkl 증명을 검증하는 것이 간단합니다. 팀은 또한 사용자 친화적인 API를 제공했습니다. 예를 들어, 데이터 과학자는 파이썬에서 모델 작업을 하고 Ezkl의 CLI를 사용하여 회로에 대한 깊은 지식 없이도 증명을 생성할 수 있습니다.
강점: Ezkl의 접근 방식은 SNARK의 일반성과 생태계로부터 이점을 얻습니다. 상당히 복잡한 모델을 지원하며 이미 _"실용적인 통합(DeFi 위험 모델에서 게임 AI까지)"_을 통해 실제 ML 작업을 증명했습니다. 모델의 연산 그래프 수준에서 작동하기 때문에, 중요하지 않은 가중치를 가지치기하거나 매개변수를 양자화하여 회로 크기를 줄이는 등 ML 관련 최적화를 적용할 수 있습니다. 또한 모델 기밀성이 자연스럽다는 것을 의미합니다. 가중치는 개인 증인 데이터로 처리될 수 있으므로, 검증자는 단지 어떤 유효한 모델이 출력을 생성했거나 기껏해야 모델에 대한 커밋만 볼 수 있습니다. SNARK 증명의 검증은 매우 빠르며(일반적으로 온체인에서 수 밀리초 이하), 증명 크기가 작아(수 킬로바이트) 블록체인 사용에 이상적입니다.
약점: 성능이 아킬레스건입니다. 회로 기반 증명은 특히 모델이 커질수록 큰 오버헤드를 부과합니다. 역사적으로 SNARK 회로는 증명자에게 모델을 그냥 실행하는 것보다 _백만 배 더 많은 작업_이 될 수 있다고 알려져 있습니다. Halo2와 Ezkl은 이를 최적화하지만, 여전히 대규모 행렬 곱셈과 같은 연산은 수많은 제약 조건을 생성합니다. 모델에 수백만 개의 매개변수가 있는 경우, 증명자는 그에 상응하는 수백만 개의 제약 조건을 처리해야 하며, 그 과정에서 무거운 FFT와 다중 지수 연산을 수행해야 합니다. 이로 인해 증명 시간이 길어지고(종종 중요하지 않은 모델의 경우에도 수 분 또는 수 시간이 걸림) 메모리 사용량이 높아집니다. 예를 들어, 비교적 작은 CNN(예: 수십만 개의 매개변수)을 증명하는 데도 단일 머신에서 Ezkl로 수십 분이 걸릴 수 있습니다. DeepProve 팀은 Ezkl이 특정 모델 증명에 몇 시간이 걸렸지만 DeepProve는 몇 분 만에 할 수 있다고 언급했습니다. 대규모 모델은 메모리에 맞지 않거나 여러 증명으로 분할해야 할 수도 있습니다(그런 다음 재귀적 집계가 필요함). Halo2가 _"적당히 최적화"_되었지만, 룩업을 "청크화"하거나 넓은 비트 연산을 처리해야 하는 필요성은 추가 오버헤드로 이어집니다. 요약하면, 확장성이 제한적입니다. Ezkl은 소규모에서 중간 규모의 모델에 잘 작동하지만(실제로 벤치마크에서 일부 초기 대안보다 성능이 우수했음), 모델 크기가 일정 지점을 넘어서면 어려움을 겪습니다.
이러한 어려움에도 불구하고, Ezkl 및 유사한 SNARK 기반 zkML 라이브러리는 중요한 디딤돌입니다. 그들은 온체인에서 _검증된 ML 추론이 가능함_을 증명했으며 활발하게 사용되고 있습니다. 특히, Modulus Labs와 같은 프로젝트는 SNARK를 사용하여 (대대적인 최적화와 함께) 1,800만 매개변수 모델을 온체인에서 검증하는 것을 시연했습니다. 비용은 상당했지만, 이는 발전 궤도를 보여줍니다. 또한, Mina Protocol은 자체 zkML 툴킷을 가지고 있어, Mina의 스마트 계약(Snark 기반)이 ML 모델 실행을 검증할 수 있도록 합니다. 이는 SNARK 기반 zkML에 대한 다중 플랫폼 지원이 증가하고 있음을 나타냅니다.