TL;DR
영지식 증명 기술은 계산의 무결성, 정확성 및 프라이버시를 보장할 수 있으며 블록체인 확장 및 프라이버시에 적용할 수 있습니다.
zk-SNARK와 zk-STARK 모두 고유한 장점이 있으며 합리적인 조합은 더 많은 잠재력을 가지고 있습니다.
zkVM은 애플리케이션에 영지식 증명 기능을 부여할 수 있으며 zkVM은 주류, EVM 또는 새로운 명령어 세트로 나눌 수 있습니다.
EVM의 적응에는 EVM 호환성, 동등성 및 사양에 대한 적응이 포함됩니다.
zkEVM은 EVM 호환 및 영지식 증명 친화적 환경으로 주로 네이티브 및 컴파일 장르로 나뉩니다.
네이티브 zkEVM은 이더리움 과 블록체인의 미래입니다.
Solidity 생태계를 지원하는 범용 zkVM은 Web3의 미래입니다.
0. 영지식 증명 엄격하지는 않지만 이해하기 쉬운 영지식 증명 도입:
당신은 초등학생입니다. 교사는 검증자이고 학생은 인증자입니다. 이차 방정식의 풀이 공식을 하나의 변수로 마스터했음을 어떻게 증명합니까? 그러면 수학 시험이 필요합니다.
선생님이 관련 질문 10개를 임의로 선택하여 숙지했다면 모두 풀 수 있습니다. 지식 숙달.
사실 이것은 Tartaglia와 Cardano (예, 그 이름입니다)가 단항 삼차 방정식의 발견자가 누구인지 경쟁하기 위해 사용하는 방법입니다. 질문을 통해 쉽게 검증할 수 있고 그 과정에서 지식을 드러내지 않고 이 지식을 숙달했는지 판단할 수 있습니다.
영지식 증명의 용도는 무엇입니까?사용은 전체 프로세스가 컴퓨팅 성능을 절약하고 체인의 공간을 압축하는 동시에 개인 정보를 보호하는 것입니다. 암호화.
1. SNARK 및 STARK 블록체인 분야에서 사용되거나 언급되는 "zk"는 일반적으로 진정한 영지식 증명이 아니라 유효성 증명인 경우가 많습니다.
현재 블록체인 환경에서 zk는 블록체인 확장(zk 없는 유효성 증명) 및 개인 정보 보호 기술(real zk)을 위한 가장 최첨단의 최적 솔루션이라고 할 수 있습니다.Tornado.cash, ZCash, zkSync, zk.money, Filecoin 및 Mina와 같은 프로젝트.
현재의 기술 솔루션은 크게 SNARK와 STARK 두 가지로 나뉘는데, STARK의 S는 scalable의 약자로 증명된 문장이 반복되는 구조를 의미하는 반면, SNARK는 간결한 증명을 달성하기 위해 전처리된 임의의 회로를 지원한다. SNARK의 기술적 관행이 지배적인 위치를 차지하고 있으며 Stark는 주로 StarkWare에서 대규모로 출시된 제품에 채택되었습니다.다음은 이들 간의 비교입니다.
Meme 관점에서 STARK는 SNARK(?, Star Wars, Star Trek)보다 낫습니다.
SNARK가 이더리움 2.0의 미래라면 STARK는 이더리움 3.0의 미래가 될 것입니다.
하지만 STARK가 생성하는 증명의 양은 그보다 훨씬 크고, 꽤 많은데, 예를 들어 WASM의 일부 제한 사항으로 인해 시공 중에 추가 작업이 필요할 수 있습니다(여기서는 SNARK). 의 STARK는 Plonky2의 일부이다.(Plonky2와 Starky의 관계는 더 복잡하다...) 개인적으로 큰 크기는 다양한 방법으로 최적화할 수 있다고 생각하지만, 알고리즘 자체의 시간 복잡도는 더 이상 압축하기 어렵다.
이러한 영지식 증명 기술을 합리적으로 결합하여 보다 강력한 애플리케이션을 구축할 수 있습니다.
요약하자면, SNARK와 STARK는 각각 장단점이 있는 뛰어난 영지식 증명 기술이며, 이들의 합리적인 조합은 더 많은 잠재력을 가지고 있습니다.
2. zkVM 앞서 언급한 Tornado.cash와 zk.money는 모두 송금 작업만 지원하고 범용 계산을 지원하지 않는 영지식 증명 애플리케이션입니다. Turing은 생태계 구축은 말할 것도 없고 완전합니다(Bitcoin의 스마트 계약은 구축된 적이 없습니다).
zkVM은 영지식 증명에 의해 보안, 검증 가능 및 신뢰할 수 있는 기능을 보장하는 가상 머신입니다. 간단히 말해서 이전 상태와 프로그램을 입력하고 새로운 상태를 반환합니다. 모든 응용 프로그램에 영지식 증명의 초강력을 부여할 수 있습니다.
ETH Amsterdam에서의 Miden의 강연은 zkVM이 실제로 무엇인지에 대한 좋은 개요를 제공했습니다.
zkVM의 장점:
사용 용이성: 개발자는 zkVM을 사용하여 컴퓨팅 보안을 보장하기 위해 암호화 또는 영지식 개발을 배우지 않고도 프로그램을 실행할 수 있습니다(임계값이 전혀 없다는 의미는 아님).
일반: zkVM은 모든 프로그램 및 계산에 대한 증명을 생성할 수 있습니다.
간결성: 상대적으로 적은 수의 제약 조건으로 전체 VM을 설명할 수 있습니다(전체 VM의 회로를 반복하지 않고).
Recursion : Free recursive 기능 보편성과 마찬가지로 VM의 검증도 VM을 통해 가능하다는 점이 매우 흥미롭습니다.
zkVM의 단점:
이제 주류 zkVM에는 세 가지 주요 유형이 있으며 명령 세트는 괄호 안에 있습니다: 주류(WASM, RISC-V), EVM(EVM 바이트코드), ZK-최적화(새로운 명령 세트, 카이로와 zkSync ) 다음은 ETH 암스테르담에서 미덴의 연설에 따라 컴파일된 유형 비교 차트입니다.
영지식 증명 개발 생태학이 하는 대부분의 일은 개발자가 Circcom 라이브러리(및 snarkyjs) 또는 기타 새로 생성된 언어(레오 또는 카이로와 같은 언어에는 이상한 제한이 있음)를 사용하여 범용 zk를 수행할 수 있도록 하는 것입니다. DApp 개발은 Ethereum의 Solidity만큼 간단하고 배우기 쉽지 않습니다.
또한 zkSync, Scroll과 같은 많은 프로젝트가 있거나 Polygon 아래의 많은 회사에서 zkEVM 또는 다른 zkVM을 만들려고 합니다.
3. 평가기준 EVM은 Ethereum의 가상 머신으로 스마트 계약을 실행하기 위한 실행 환경으로도 이해할 수 있습니다.
수년에 걸쳐 다양한 퍼블릭 체인이 EVM과 호환되도록 노력하여 이더리움의 개발 생태계에 연결하기 위해 노력했으며 이를 위해 EVM 호환성, 동등성 및 기타 정의가 도출되었습니다.
EVM 호환성: Solidity와 같은 언어 수준의 적응.
EVM 동등성: EVM 바이트코드 수준에서의 적응.
EVM 사양 적응: 소위 실제 zkEVM은 대부분의 경우 이전 버전과의 호환성이 최적화된 상위 집합일지라도 계정 추상화(즉, 각 계정이 스마트 계약임) 및 EVM이 특성을 제공하지 않는 다른 것들을 제공할 수 있습니다.
4. zkEVM zkEVM을 다시 해석해 보겠습니다 정의상 zkEVM은 EVM과 호환되고 영지식 증명에 친숙하며 프로그램, 작업 및 입력 및 출력의 완전한 정확성을 보장할 수 있는 가상 머신입니다.
일반 컴퓨팅의 실현을 위해 zkEVM을 수행하려면 주로 두 가지 어려움을 해결해야 합니다.
a) 회로가 복잡하다 서로 다른 계약은 서로 다른 회로를 생성해야 하며 이러한 회로는 "복잡"합니다.
이 측면은 분산 클러스터를 통해 Proof를 동시에 계산하거나 다양한 하드웨어 최적화를 통해 가속화하는 Aleo(그러나 최적화를 설명하기 위한 직접 ZK 유형이 아님)와 같은 다양한 최적화에 주로 의존합니다.
b) 설계하기 어려움 zkEVM은 EVM을 재구성해야 할 뿐만 아니라 영지식 증명 기술로 이더리움의 전반적인 상태 전환을 재구성해야 합니다.
EVM을 설계할 때 zkEVM을 앞으로 할 것이라고는 예상하지 못해서 큰 어려움을 겪었고 두 분파의 루트로 이어졌는데 모두 그림에 있습니다.
또는 VM의 아키텍처에 따라 다음과 같이 보입니다.(원본 사진 요약에 대한 Scroll Tech 덕분에!) Opcode는 EVM Opcode를 나타냅니다. StarkWare 부분은 Warp를 사용하여 Solidity를 Cairo 계약으로 변환하거나 Cairo 계약에 직접 작성합니다. , 좋은 개발 경험과 전체 도구 세트를 얻을 수도 있습니다.
개발자와 사용자 차원에서는 기본적으로 이들 솔루션이 별 차이가 없다고 생각하지만 인프라 측면에서는 오른쪽으로 갈수록 EVM 호환성이 좋아지고 Geth와 같은 인프라에 원활하게 연결할 수 있지만 개발 진행이 기본적으로 더 느립니다.
5. zkEVM 및 zkVM zkEVM의 존재는 이더리움의 번영과 그 생태계에 기여할 수 있는 이더리움 생태계를 개조하고 패치하는 것이라고 생각하지만 zkVM의 존재가 반드시 이더리움을 강화하는 것은 아니지만 더 큰 상상력을 가지고 있습니다.
StarkNet의 Cairo VM이 내 상상 속의 완벽한 zkVM은 아닐지 몰라도 EVM이나 zkEVM보다 더 많은 일을 할 수 있으며 EIP 수준에서의 기능 확장만이 아니라 Cairo VM에서 기계 학습 모델을 실행할 수 있으며 심지어 있습니다. 또한 StarkNet에 구축되는 기계 학습 모델 플랫폼입니다.
zkEVM과 비교하여 zkVM은 구축하기 쉽고(EVM의 기술적 부채에 대해 걱정할 필요 없음), 더 유연하고(EVM 업데이트에 대해 걱정할 필요 없음), 최적화하기 쉽습니다(회로 및 증명기의 하드웨어 및 소프트웨어 최적화는 zkEVM을 구축하는 것보다 훨씬 간단하고 저렴합니다.
물론 zkVM의 가장 작지만 치명적인 단점 중 하나는 zkVM이 EVM 호환성(Solidity 언어 수준)을 지원하지 못한다면 zkVM이 EVM과 같이 가장 완전하고 성숙한 Web3 개발 생태계를 갖기 어렵다는 것입니다.
ZkVM은 EVM의 수직적 최적화를 EVM 생태계의 수평적 확장으로 전환하여 EVM의 한계를 뛰어넘는 더 큰 추세일 수 있습니다.
6. zkVM의 미래 Solidity뿐만 아니라 Cairo뿐만 아니라 Rust, C++, Go 등 모든 프로그래밍 언어의 스마트 계약이 영지식 증명의 축복으로 안전하게 실행될 수 있는 범용 zkVM이 있다면 어떨까요? (Stellar는 시도했지만 실패했다.)
@kelvinfichter가 말했듯이: zkMIPS인 경우 zkEVM이 필요한 이유 @KyleSamani가 말했듯이: EVM은 기능이 아닌 버그입니다.
Winterfall이나 Distaff 또는 Miden VM과 같은 zkVM은 개발에 그다지 우호적이지 않습니다.Nervos에는 RISC-V VM이 있지만 Nervos는 영지식 증명 기술을 사용하지 않습니다.
현재 상황에서 최적의 솔루션은 WASM 또는 RISC-V zkVM을 구축하는 것이며, 바람직하게는 Rust, Go, C++ 및 심지어 Solidity와 같은 언어를 지원합니다(zkSync가 큰 기여를 할 수 있을 것 같습니다). 일반적인 zkVM이라면 zkEVM의 경우 차원 축소 타격이 될 것입니다.
Web3 개발자의 수는 전체 개발자의 약 0.07%를 차지하며 Solidity 개발자의 수는 실제로 0.07% 미만일 것이며 더 적은 수는 Cairo를 사용하여 계약을 작성하거나 Leo를 사용하여 회로를 작성할 것이라고 유추할 수 있습니다. 완벽한 zkVM은 거의 100%의 개발자를 대상으로 하며, 모든 개발자는 거의 모든 언어로 완벽한 영지식 운영 환경을 얻을 수 있습니다.
Web3와 Crypto가 세상을 지배할 날이 온다면 분명 EVM 생태계가 모든 개발자의 100%를 차지하는 것은 아니지만 모든 개발자가 천천히 Web3와 Crypto 개발자로 변모할 것이라고 생각합니다. 장소.
네이티브 zkEVM은 블록체인의 미래입니다.
Universal zkVM은 Web3의 미래입니다.
저자: Suning Yao @ Foresight Ventures