QR 코드를 스캔하여 다운로드하세요.
BTC $74,201.25 -1.83%
ETH $2,331.25 -0.97%
BNB $670.46 -2.03%
XRP $1.42 -4.56%
SOL $81.67 -4.53%
TRX $0.2795 -0.47%
DOGE $0.0974 -3.83%
ADA $0.2735 -4.22%
BCH $470.79 -1.67%
LINK $8.64 -2.97%
HYPE $28.98 -1.81%
AAVE $122.61 -3.42%
SUI $1.03 -2.10%
XLM $0.1605 -4.62%
ZEC $260.31 -8.86%
BTC $74,201.25 -1.83%
ETH $2,331.25 -0.97%
BNB $670.46 -2.03%
XRP $1.42 -4.56%
SOL $81.67 -4.53%
TRX $0.2795 -0.47%
DOGE $0.0974 -3.83%
ADA $0.2735 -4.22%
BCH $470.79 -1.67%
LINK $8.64 -2.97%
HYPE $28.98 -1.81%
AAVE $122.61 -3.42%
SUI $1.03 -2.10%
XLM $0.1605 -4.62%
ZEC $260.31 -8.86%

Foresight Ventures: zk, zkVM, zkEVM 및 그 미래에 대한 자세한 설명

Summary: 원주율 zkEVM은 블록체인의 미래이며, 범용 zkVM은 Web3의 미래입니다.
포사이트 벤처스
2022-05-24 12:00:13
수집
원주율 zkEVM은 블록체인의 미래이며, 범용 zkVM은 Web3의 미래입니다.

저자: Suning Yao, Foresight Ventures

TL; DR

  • 제로 지식 증명 기술은 계산의 완전성, 정확성 및 개인 정보를 보장할 수 있으며, 블록체인 확장 및 개인 정보 보호에 응용됩니다.
  • zk-SNARK와 zk-STARK는 각각 장점이 있으며, 이들의 합리적인 결합은 더욱 큰 잠재력을 가지고 있습니다.
  • zkVM은 애플리케이션에 제로 지식 증명 기능을 부여할 수 있으며, zkVM은 주류, EVM 또는 새로운 명령어 집합을 사용하는 것으로 나뉩니다.
  • EVM의 적합성에는 EVM 호환성, 동등성 및 사양에 대한 적합성이 포함됩니다.
  • zkEVM은 EVM과 호환되면서 제로 지식 증명에 친화적인 환경으로, 주로 네이티브와 컴파일 계열로 나뉩니다.
  • 네이티브 기반의 zkEVM은 이더리움과 블록체인의 미래입니다.
  • Solidity 생태계를 지원하는 범용 zkVM은 Web3의 미래입니다.

제로 지식 증명

엄밀하지는 않지만 간단하게 제로 지식 증명을 소개하자면:

당신은 초등학교에 다니고 있습니다. 선생님은 검증자이고, 당신은 학생으로서 증명자입니다. 당신은 어떻게 1차 방정식의 해법을 알고 있다는 것을 증명할 수 있을까요? 그건 수학 시험이 필요합니다.

선생님은 관련된 10개의 문제를 무작위로 출제하고, 당신이 이를 잘 알고 있다면 모두 풀 수 있습니다. 이 과정에서 당신은 해법의 구체적인 내용을 암기하거나 필기하지 않았지만, 선생님은 당신의 지식 습득 정도를 쉽게 검증할 수 있습니다.

사실 이것은 Tartaglia와 Cardano(맞습니다, 바로 그 이름)가 1차 방정식의 발견자를 두고 경쟁할 때 사용한 방법입니다. 그들은 서로에게 자신의 공식 내용을 알려주고 싶지 않았지만, 문제를 풀면서 지식을 드러내지 않고도 서로의 지식 습득 여부를 쉽게 판단할 수 있었습니다.

제로 지식 증명의 용도는 무엇일까요? 그 용도는 전체 과정에서 계산 능력을 절약하고 체인 상의 공간을 압축할 수 있으며, 개인 정보 보호를 할 수 있어 블록체인의 비신뢰 특성과 암호학의 유전자에 부합합니다.

SNARK와 STARK

블록체인 분야에서 사용되거나 언급되는 "zk"는 일반적으로 진정한 제로 지식 증명이 아니라 종종 유효성 증명(Validity Proof)입니다. 관련 용어의 혼란으로 인해 본문에서는 이러한 "오용"을 계속 사용할 것입니다.

image

현재 블록체인 맵에서 zk는 블록체인 확장(비 zk의 유효성 증명) 및 개인 정보 보호 기술(진정한 zk)의 최전선 및 최적의 솔루션이라고 할 수 있으며, Tornado.cash, ZCash, zkSync, zk.money, Filecoin 및 Mina와 같은 프로젝트에서 사용되고 있습니다.

현재의 기술 솔루션은 주로 SNARK와 STARK 두 가지로 나뉩니다. STARK의 S는 확장 가능성을 의미하며, 증명된 문장은 반복적인 구조를 가지고 있고, SNARK는 임의의 회로를 지원하며, 이러한 회로는 간결한 증명을 위해 미리 처리됩니다. SNARK의 기술적 실천이 주도적인 위치를 차지하고 있으며, STARK는 StarkWare가 이미 출시된 제품에서 대규모로 채택하고 있습니다. 다음은 이들 간의 비교입니다.

image

Meme의 관점에서 STARK는 SNARK보다 우수합니다(? Star Wars, Star Trek).

만약 SNARK가 이더리움 2.0의 미래라면, STARK는 이더리움 3.0의 미래가 될 것입니다. 진지하게 말하자면, STARK의 장점은 다음과 같습니다:

  • 더 낮은 가스 비용(더 잘 확장 가능)
  • 더 큰 배치 크기(더 잘 확장 가능 * 2)
  • 더 빠른 증명(더 잘 확장 가능 * 3)
  • 신뢰할 수 있는 설정 없음(생성된 매개변수는 현재의 응용 프로그램에만 유효하며, 수정이 발생하면 다시 설정해야 함)
  • 후량자 안전성

하지만 STARK가 생성하는 증명의 크기는 더 크고, 상당히 큽니다. 예를 들어 WASM의 일부 제한으로 인해 빌드 시 추가 작업이 필요할 수 있습니다(여기서는 SNARK). Mir는 최근 Starky에서 AIR 기반 STARK의 실천을 제시했으며, 이는 Plonky2의 일부입니다(Plonky2와 Starky의 관계는 다소 복잡합니다…). 개인적으로는, 크기는 다양한 방법으로 최적화할 수 있지만, 알고리즘 자체의 시간 복잡도는 더 이상 압축하기 어렵다고 생각합니다.

이러한 제로 지식 증명 기술은 합리적인 결합을 통해 더 강력한 응용 프로그램을 구축할 수 있습니다. 예를 들어 Polygon Hermez는 SNARK를 통해 STARK의 정확성을 증명하여 최종 증명 발표 시 가스 비용을 줄입니다.

요약하자면, SNARK와 STARK는 모두 뛰어난 제로 지식 증명 기술로, 각기 장점이 있으며, 이들의 합리적인 결합은 더욱 큰 잠재력을 가지고 있습니다.

zkVM

앞서 언급한 Tornado.cash와 zk.money는 모두 전송 작업만 지원하는 제로 지식 증명 응용 프로그램으로, 범용 계산을 지원하지 않습니다. 비유하자면, 이러한 응용 프로그램은 비트코인의 기능만 가지고 있으며, 이더리움의 튜링 완전성에는 미치지 못하며, 생태계를 구축하는 것은 더더욱 어렵습니다(비트코인에서 스마트 계약은 생태계를 구축하지 못했습니다).

zkVM은 제로 지식 증명을 통해 안전하고 검증 가능한 신뢰 특성을 보장하는 가상 머신으로, 간단히 말해 이전 상태와 프로그램을 입력하면 새로운 상태를 반환합니다. 이는 모든 응용 프로그램에 제로 지식 증명의 초능력을 부여할 수 있습니다.

Miden은 ETH Amsterdam의 발표에서 zkVM이 무엇인지 잘 요약한 그림을 사용했습니다.

image

zkVM의 장점:

  • 사용 용이성: 개발자는 암호학이나 제로 지식 개발을 배우지 않고도 zkVM을 사용하여 프로그램을 실행하고 계산의 안전성을 보장할 수 있습니다(완전히 무장벽을 의미하지는 않음).
  • 범용성: zkVM은 모든 프로그램과 계산에 대해 증명을 생성할 수 있습니다.
  • 간결성: 상대적으로 적은 제약 조건으로 전체 VM을 설명할 수 있습니다(전체 VM의 회로를 반복적으로 생성할 필요 없음).
  • 재귀성: 무료 재귀 특성. 범용성과 마찬가지로 VM의 검증은 VM을 통해 수행할 수 있습니다. 이는 꽤 재미있습니다. 예를 들어, zkVM 안에 zkVM을 넣을 수 있으며, 이는 StarkWare가 말하는 L3 개념과 유사합니다.

zkVM의 단점:

  • 계산 아키텍처가 특수함: 모든 제로 지식 증명 시스템이 zkVM으로 사용될 수 있는 것은 아닙니다.
  • 성능 문제: 회로는 최적화가 필요하며, 특정 계산을 위해 맞춤형 최적화를 할 수 있습니다.

현재 주류의 zkVM은 세 가지 주요 유형이 있으며, 괄호 안은 그들의 명령어 집합입니다: 주류(WASM, RISC-V), EVM(EVM 바이트코드), ZK-Optimized(제로 지식 증명을 위해 최적화된 새로운 명령어 집합, 예: Cairo 및 zkSync). 다음은 Miden이 ETH Amsterdam에서 발표한 유형 비교 그림입니다:

image

많은 제로 지식 증명 개발 생태계에서 하는 일은 대부분 개발자가 Circom 라이브러리(및 snarkyjs와 같은) 또는 기타 새로 생성된 언어(Leo 또는 Cairo와 같은 언어는 이상한 제한이 있음)를 사용하여 범용 zk DApp 개발을 할 수 있도록 하는 것이지만, 이더리움에서 Solidity를 사용하는 것처럼 직접적이고 배우기 쉬운 것은 아닙니다.

그 외에도 zkSync, Scroll 또는 Polygon 산하의 여러 회사가 zkEVM 또는 기타 zkVM을 시도하고 있습니다.

EVM

EVM은 이더리움의 가상 머신으로, 스마트 계약을 실행하는 환경으로 이해할 수 있습니다.

수년간 여러 공공 블록체인은 EVM과 호환되도록 시도하며 이더리움의 개발 생태계에 접속하고 있습니다. 이 개념에 따라 EVM 호환성, 동등성 및 기타 정의가 파생되었습니다.

  • EVM 호환성: Solidity 등 언어 수준의 적합성.
  • EVM 동등성: EVM 바이트코드 수준의 적합성.
  • EVM 사양 적합성: 일반적으로 진정한 zkEVM이라고 불리며, 대부분의 경우 후방 호환성이 있는 최적화된 초집합으로, 계정 추상화(즉, 각 계정이 스마트 계약임)와 같은 EVM이 제공하지 않는 특성을 제공할 수 있습니다.

zkEVM

zkEVM을 다시 해석해 보겠습니다. 정의상 zkEVM은 EVM과 호환되면서 제로 지식 증명에 친화적인 가상 머신으로, 프로그램, 작업 및 입력/출력 등의 완전한 정확성을 보장할 수 있습니다.

범용 계산을 구현하기 위해 zkEVM을 만들기 위해서는 두 가지 난제를 해결해야 합니다:

a) 회로 복잡성

다양한 계약은 서로 다른 회로를 생성해야 하며, 이러한 회로는 매우 "복잡"합니다.

이 부분은 주로 다양한 최적화에 의존해야 합니다. 예를 들어 Aleo는 분산 클러스터를 통해 증명을 병렬로 계산하거나 다양한 하드웨어 최적화를 통해 속도를 높입니다(하지만 이는 직접적인 ZK가 아닙니다… 단지 최적화를 설명하기 위한 예시입니다).

b) 설계 어려움

zkEVM은 EVM을 재구성하는 것뿐만 아니라 이더리움의 전체 상태 전환을 제로 지식 증명 기술로 재구성해야 합니다.

EVM이 설계될 때 zkEVM을 만들 것이라고는 생각하지 않았기 때문에 매우 큰 어려움이 발생했습니다. 이로 인해 두 가지 파벌의 경로가 생겼습니다. 이는 그림에 나와 있습니다.

image

또는 VM 아키텍처에 따라 나누면 이렇게 됩니다(Scroll Tech의 원본 요약에 깊은 감사를 드립니다!). Opcode는 EVM Opcode를 의미합니다. StarkWare 부분은 Solidity를 Cairo 계약으로 변환하기 위해 Warp를 사용하거나 직접 Cairo로 계약을 작성하여 훌륭한 개발 경험과 전체 도구 세트를 얻을 수 있습니다.

image

개발자와 사용자 측면에서 이 몇 가지 솔루션은 기본적으로 차이가 없다고 생각하지만, 인프라 측면에서 오른쪽으로 갈수록 EVM 호환성이 더 좋으며, Geth와 같은 인프라에 원활하게 연결할 수 있지만 개발 진행 속도는 기본적으로 더 느립니다.

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의 한계를 넘어설 수 있습니다.

zkVM의 미래

모든 프로그래밍 언어의 스마트 계약을 지원하는 범용 zkVM이 있다면, 단순히 Solidity나 Cairo뿐만 아니라 Rust, C++, Go 등에서 제로 지식 증명의 지원을 받아 안전하게 실행될 수 있을까요? (Stellar가 시도했지만 실패했습니다.)

@kelvinfichter가 말했듯이: Why zkEVM if zkMIPS? @KyleSamani가 말했듯이: EVM is a bug not a feature. Why zkEVM if zkVM?

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%의 개발자를 대상으로 하며, 모든 개발자가 거의 모든 언어로 완벽한 제로 지식 실행 환경을 얻을 수 있습니다.

image

만약 Web3와 Crypto가 세상을 지배하는 날이 온다면, 저는 EVM 생태계가 모든 개발자의 100%를 차지하는 것이 아니라, 모든 개발자가 서서히 Web3와 Crypto 개발자로 전환될 것이라고 생각합니다. 이것이 바로 범용 zkVM의 절묘한 점입니다.

네이티브 zkEVM은 블록체인의 미래입니다.

범용 zkVM은 Web3의 미래입니다.

warnning 위험 경고
app_icon
ChainCatcher Building the Web3 world with innovations.