zkGalaxy 개발자 가이드

zkGalaxy 개발자 가이드

개요

zkGalaxy PlatoBlockchain 데이터 인텔리전스에 대한 개발자 가이드. 수직 검색. 일체 포함.
성능과 호환성 간의 zkEVM에 대한 Vitalik의 장단점

이것은 zkEVM을 지원하기 위한 접근 방식을 차별화하는 매우 유용한 휴리스틱입니다. 그러나 zkEVM은 영지식 애플리케이션을 구축할 수 있는 모든 가능한 방법의 하위 집합입니다. zk 계산의 고유한 속성, 즉 간결함, 제로 지식 및 정확성, zkEVM이 최선의 선택이 아닐 수 있습니다. 전체 개발자 도구 세트를 배치함으로써 애플리케이션에 적합한 zk 스택에 대한 의사 결정 프로세스를 지원하는 가이드를 제공하고자 합니다.

지난 XNUMX~XNUMX년 동안 zk 도구에는 엄청난 발전이 있었습니다. 그들은 평범한 소프트웨어 개발자가 위협적인 기본 수학 및 엔지니어링에 대한 깊은 이해 없이도 zk의 강력한 속성을 활용할 수 있는 지점에 접근하고 있습니다. 다른 한편으로는 zk 전문가가 zk 스택을 매우 세밀하게 제어할 수 있는 고급 사용자용 도구가 급증했습니다.

복잡성 추상화의 힘

최신 소프트웨어는 전문가의 생산성을 극대화하기 위해 무수히 많은 추상화 계층을 기반으로 합니다. 다소 직관적인 엔지니어링의 추상화에는 많은 이점이 있습니다. 웹 개발자는 운영 체제가 작동하는 방식을 깊이 이해할 필요가 없습니다. 

훌륭하고 재사용 가능한 추상화 계층을 구축하기 위한 핵심은 계층의 복잡성을 캡슐화한 다음 사용할 스택의 상위 계층에 대해 간단하면서도 표현력이 풍부한 인터페이스를 제공하는 것입니다. 올바르게 수행하면 다양한 전문 분야와 지식을 가진 개발자가 스택 전체에서 유용한 도구를 구축할 수 있습니다.

당연히 이러한 동일한 원칙이 zk 시스템에 적용되며 이러한 추상화 계층은 zk 초보자가 오늘날 이를 사용하고 애플리케이션을 구축할 수 있을 만큼 충분히 성숙해지고 있습니다.

zk 기술 스택
각 계층에서 몇 가지 예제 도구/기술이 포함된 zk 스택

저수준 zk 개발

Arkworks-rs

Arkworks-rs zkSNARK 애플리케이션 하위 구성 요소의 효율적이고 안전한 구현을 제공하는 Rust 라이브러리의 생태계입니다. Arkworks는 개발자가 다른 기존 라이브러리와의 공통성을 다시 구현하지 않고도 zk 애플리케이션용 소프트웨어 스택을 사용자 지정하는 데 필요한 인터페이스를 제공합니다.

Arkworks 이전에는 새로운 zk 애플리케이션을 생성하는 유일한 방법은 모든 것을 처음부터 빌드하는 것이었습니다. 맞춤형 수직 통합 도구에 비해 Arkworks-rs의 주요 이점은 유연성 수준, 중복 엔지니어링 감소 및 감사 노력 감소입니다. 구성 요소 사이의 Arkworks의 합리적인 인터페이스 라인은 팀이 처음부터 모든 것을 다시 빌드하도록 강요하지 않고 zk 기술의 맹렬한 혁신 속도 속에서 스택 관련성을 유지할 수 있는 업그레이드 속도를 허용합니다.

누구를위한 거니?

Arkworks는 전체 zk 소프트웨어 스택에 대한 세밀한 제어가 필요하지만 모든 중복 부분을 처음부터 빌드하고 싶지 않은 프로젝트를 위한 것입니다. 예를 들어 새로운 증명 시스템의 프로토타이핑을 하고 있지만 약속 체계 또는 해당 타원 곡선이 확실하지 않기 때문에 회로 DSL의 사용자 지정 버전을 고려하고 있는 경우 arkworks를 사용하면 공유 인터페이스를 사용하여 여러 옵션 간에 신속하게 전환할 수 있습니다. 처음부터 시작하는 것보다

장점

  • 모듈성을 통한 유연성
  • 코드 중복 감소
    • 엔지니어링 비용 절감
    • 감사/버그 노출 영역 감소
  • 대대적인 리팩토링 없이 구성 요소 업그레이드
  • 빠르게 진화하는 zk 환경에서 새로운 프리미티브로 쉽게 실험

단점

  • 전체 소프트웨어 스택에 대한 깊은 이해가 필요합니다.
    • 통제력이 너무 강하면 적절하게 이해하지 못하면 발포로 이어질 수 있습니다.
  • 세분화된 제어에는 스택의 모든 수준에 대한 전문 지식이 필요합니다.
    • Arkworks는 합리적인 기본값을 제공합니다.

zk 도메인 특정 언어(DSL)

일부 계산에 대한 증명을 생성하려면 먼저 이 계산을 zkSNARK 시스템이 이해할 수 있는 형식으로 표현해야 합니다. 여러 도메인 특정 언어는 응용 프로그램 개발자가 이러한 방식으로 계산을 표현할 수 있는 프로그래밍 언어를 만들었습니다. 여기에는 다음이 포함됩니다. 아즈텍 누아르, 스타크넷의 카이로써컴조크라테스, 그리고 알레오 레오 무엇보다도. 기본 증명 시스템 및 수학적 세부 사항은 일반적으로 응용 프로그램 개발자에게 노출되지 않습니다.

개발자 경험

zkApp 개발자는 도메인별 언어로 프로그램을 작성하는 데 능숙해야 합니다. 이러한 언어 중 일부는 친숙한 프로그래밍 언어처럼 보이지만 다른 언어는 배우기가 매우 어려울 수 있습니다. 다음 중 몇 가지를 분석해 보겠습니다.

카이로 – Starknet에서 앱을 구축하려면 Starkware DSL이 필요합니다. Cairo zkVM에서 해석할 수 있는 Cairo 특정 어셈블리 언어로 컴파일됩니다.

조크라테스 — ZoKrates는 회로를 작성하기 위한 고급 언어를 포함하여 일반적인 SNARK 요구 사항을 위한 툴킷입니다. ZoKrates는 또한 곡선, 입증 체계 및 백엔드에 약간의 유연성이 있어 개발자가 간단한 CLI 인수로 핫스왑할 수 있습니다.

써컴 — Circom은 회로 구성을 위해 특별히 제작된 언어입니다. 현재 생산 중인 회로를 위한 사실상의 언어입니다. 언어는 특별히 인체공학적이지 않습니다. 언어 자체는 당신이 회로를 작성하고 있다는 사실을 절실하게 인식하게 합니다.

레오 — Leo는 Aleo 블록체인용 언어로 개발되었습니다. Leo는 Rust와 유사한 구문을 가지고 있으며 특히 블록체인 내부의 상태 전환을 위해 만들어졌습니다.

노아 – Rust에서 영감을 받은 구문. 언어 자체가 아닌 IR을 중심으로 설계되었으므로 임의의 프런트엔드를 가질 수 있습니다. 

zkGalaxy PlatoBlockchain 데이터 인텔리전스에 대한 개발자 가이드. 수직 검색. 일체 포함.
특히 Aztec Noir 컴파일 스택에는 모듈식 아키텍처가 있습니다.

누구를위한 거니?

애플리케이션에서 zk의 고유한 속성을 활용하려는 모든 애플리케이션 개발자. 이러한 언어 중 일부는 ZCash 및 Starknet과 같은 체인을 통해 수십억 달러가 이동하는 전투 테스트를 거쳤습니다. 우리가 논의할 프로젝트 중 일부는 프로덕션 용도로 사용할 준비가 되지 않았지만 Arkworks와 같은 툴킷이 제공하는 보다 미세한 제어가 필요하지 않는 한 이러한 언어 중 하나로 회로를 작성하는 것이 현재 최상의 전략입니다.

장점

  • 사용자는 기본 zk 세부 정보를 이해할 필요가 없습니다.
  • 오늘 사용 가능 약간의 제작 경험으로
  • 체인에서 검증 가능
  • 생태계 불가지론자

단점

  • 사용자는 새로운 DSL을 배워야 합니다.
  • 이러한 각 언어에 대한 격리된 도구 및 지원
  • 기본 검증 스택에 대한 제어가 거의 또는 전혀 없음(현재로서는)

zkEVM의 주요 목표는 이더리움 상태 전환을 취하고 간결한 제로 지식 정확성 증명을 사용하여 그 유효성을 증명하는 것입니다. Vitalik의 게시물에서 언급한 바와 같이 미묘한 차이점과 이에 상응하는 절충안을 통해 이를 수행하는 방법에는 여러 가지가 있습니다. 

이들 모두의 주요 기술적 차이점은 언어 스택에서 계산이 증명 시스템에서 사용할 수 있는 형식(산술화)으로 변환되는 정확한 위치입니다. 일부 zkEVM에서 이것은 고급 언어(Solidity, Vyper, Yul)에서 발생하는 반면, 다른 접근 방식은 EVM을 opcode 수준까지 증명하려고 시도합니다. 이러한 접근 방식 간의 장단점은 Vitalik의 게시물에서 자세히 다루었지만 한 문장으로 요약하겠습니다. 스택에서 변환/산술화가 더 낮을수록 성능 저하가 더 커집니다.

zk에서 EVM opcode를 증명하는 데 비용이 많이 드는 이유는 무엇입니까?

가상 머신에 대한 증명을 생성할 때의 주요 문제는 회로의 크기가 실행되는 모든 명령에 대해 가능한 모든 명령의 크기에 비례하여 증가한다는 것입니다. 이것은 회로가 각 프로그램에서 어떤 명령이 실행될지 모르기 때문에 발생하므로 모든 명령을 지원해야 합니다.

zkGalaxy PlatoBlockchain 데이터 인텔리전스에 대한 개발자 가이드. 수직 검색. 일체 포함.
범용 회로에서 실행되는 모든 명령어는 지원되는 모든 명령어의 합에 비례하는 비용을 갖습니다.

이것이 실제로 의미하는 바는 가장 간단한 명령어만 실행하는 경우에도 가능한 가장 비싼 명령어에 대해 (성능 비용으로) 비용을 지불한다는 것입니다. 이것은 일반화 가능성과 성능 사이의 직접적인 절충안으로 이어집니다. 일반화 가능성에 대한 지침을 더 추가함에 따라 이에 대한 비용을 매주 당신이 증명하는 지시!

이것은 범용 회로의 근본적인 문제이지만 기술의 새로운 발전 IVC(Incremental Verifiable Compute)와 마찬가지로 이 제한은 계산을 각각 특수하고 작은 하위 회로가 있는 더 작은 덩어리로 나누어 개선할 수 있습니다.

오늘날의 zkEVM 구현은 이 문제의 영향을 완화하기 위해 다양한 전략을 사용합니다. 예를 들어, zkSync는 주요 실행 증명 회로에서 더 비싼 작업(주로 해시 및 ECDSA와 같은 암호화 사전 컴파일)을 snark 재귀를 통해 끝납니다. zkSync는 대부분의 비용이 몇 가지 복잡한 명령에서 나온다는 사실을 깨닫고 이 접근 방식을 채택했습니다.

zkGalaxy PlatoBlockchain 데이터 인텔리전스에 대한 개발자 가이드. 수직 검색. 일체 포함.
거래 비용은 몇 가지 값비싼 작업에 의해 좌우됩니다.

핵심에서 더 많은 EVM과 동등한 명령어 세트를 증명하는 것이 더 비싼 이유는 ​​EVM이 zk 계산을 위해 설계되지 않았기 때문입니다. 스택의 초기에 EVM을 폐기하면 zkEVM이 zk에 더 최적화된 명령어 세트에서 실행될 수 있으므로 증명 비용이 저렴합니다.

누구를위한 거니?

zkEVM의 이상적인 고객은 L1 이더리움에서 사용 가능한 것보다 훨씬 저렴한 트랜잭션이 필요한 스마트 계약 애플리케이션입니다. 이 개발자들은 처음부터 zk 애플리케이션을 작성하기 위한 전문 지식이나 대역폭이 반드시 필요한 것은 아닙니다. 따라서 그들은 Solidity와 같이 친숙한 고급 언어로 애플리케이션을 작성하는 것을 선호합니다. 

왜 그렇게 많은 팀이 이것을 구축하고 있습니까?

이더 리움 확장 현재 zk 기술이 가장 많이 요구되는 애플리케이션입니다.

zkEVM은 L1 dApp 개발자를 제한하는 혼잡 문제를 마찰 없이 완화하는 이더리움 확장 솔루션입니다.

개발자 경험

zkEVM의 목표는 가능한 한 현재 이더리움 개발에 가까운 개발자 경험을 지원하는 것입니다. 완전한 Solidity 지원은 팀이 여러 코드베이스를 구축하고 유지할 필요가 없음을 의미합니다. zkEVM은 합리적인 시간 내에 합리적인 크기의 증명을 생성할 수 있도록 일부 호환성을 절충해야 하기 때문에 완벽하게 수행하는 것은 다소 비실용적입니다.

빠른 사례 연구: zkSync와 Scroll

zkSync와 Scroll의 주요 차이점은 스택에서 산술화를 수행하는 위치/시기입니다. 즉, 일반 EVM 구성에서 SNARK 친화적 표현으로 변환하는 위치입니다. zkSync의 경우 YUL 바이트코드를 자체 사용자 정의 zk 명령어 세트로 변환할 때 이런 일이 발생합니다. Scroll의 경우 마지막에 실제 실행 추적이 실제 EVM opcode로 생성될 때 발생합니다.

따라서 zkSync의 경우 zk 바이트코드가 생성될 때까지 모든 것이 EVM과 상호 작용하는 것과 동일합니다. Scroll의 경우 실제 바이트코드가 실행될 때까지 모든 것이 동일합니다. 이는 지원을 위해 성능을 절충하는 미묘한 차이입니다. 예를 들어, zkSync는 완전히 다른 바이트코드이기 때문에 기본 디버거와 같은 EVM 바이트코드 도구를 지원하지 않습니다. Scroll은 명령 세트에서 좋은 성능을 얻는 데 더 어려움이 있지만 zk용으로 설계되지 않았습니다. 두 전략 모두 장단점이 있으며 궁극적으로 상대적인 성공에 영향을 미치는 많은 외생적 요인이 있습니다.

zkLLVM 회로 컴파일러

💡 이름에도 불구하고 LLVM은 VM(가상 머신)이 아닙니다. LLVM은 언어에 구애받지 않는 중간 표현(IR)에 의해 고정되는 컴파일러 도구 세트의 이름입니다.

=없음; 파운데이션(이름에 대해 SQL 주입 농담 궁금하다면)는 LLVM 프런트엔드 언어를 SNARK 내에서 입증할 수 있는 중간 표현으로 변환할 수 있는 컴파일러를 구축하고 있습니다. zkLLVM은 Rust, C, C++ 등과 같은 많은 고급 언어를 지원하는 산업 표준 툴체인인 기존 LLVM 인프라의 확장으로 설계되었습니다.

전달 방법

zkGalaxy PlatoBlockchain 데이터 인텔리전스에 대한 개발자 가이드. 수직 검색. 일체 포함.
zkLLVM 아키텍처의 대략적인 스케치

일부 계산을 증명하려는 사용자는 해당 계산을 C++로 구현하기만 하면 됩니다. zkLLVM은 수정된 clang 컴파일러(현재 C++)에서 지원하는 이 고급 소스 코드를 사용하여 회로의 일부 중간 표현을 생성합니다. 이 시점에서 회로를 검증할 준비가 되었지만 사용자는 일부 동적 입력을 기반으로 회로를 검증하기를 원할 수 있습니다. 동적 입력을 처리하기 위해 zkLLVM에는 할당자라고 하는 추가 구성 요소가 있습니다. 이 구성 요소는 모든 입력과 증인이 완전히 사전 처리되고 회로와 함께 입증할 준비가 된 할당 테이블을 생성합니다.

이 두 가지 구성 요소는 증명을 생성하는 데 필요한 모든 것입니다. 사용자는 이론적으로 스스로 증명을 생성할 수 있지만 이것은 다소 전문적인 계산 작업이기 때문에 하드웨어를 가지고 있는 다른 사람에게 비용을 지불하고 싶어할 수 있습니다. 이 상대방 발견 메커니즘의 경우, =nil; Foundation은 또한 증명자들이 비용을 지불할 사용자를 위해 계산을 증명하기 위해 경쟁하는 '증명 시장'을 설립했습니다. 이 자유 시장 역학은 가장 가치 있는 증명 작업을 최적화하는 증명자로 이어질 것입니다.

트레이드 오프

입증해야 할 모든 계산 작업은 고유하고 다른 회로를 생성하기 때문에 검증자가 처리해야 하는 무한 수의 회로가 있습니다. 이 강제 일반화 가능성은 개별 회로의 최적화를 어렵게 만듭니다. 증명 시장의 도입으로 시장에서 가치 있는 것으로 간주되는 회로에 대한 전문화가 가능합니다. 이 시장이 없다면 이 자연적인 콜드 스타트 ​​문제 때문에 증명자가 이 회로를 최적화하도록 설득하는 것이 어려울 것입니다.

다른 트레이드 오프는 고전적인 추상화 대 제어입니다. 이 사용하기 쉬운 인터페이스를 사용하려는 사용자는 기본 암호화 기본 요소에 대한 제어를 포기하고 있습니다. 많은 사용자에게 이는 암호화 전문가가 이러한 결정을 내리도록 하는 것이 더 나은 경우가 많기 때문에 매우 유효한 절충안입니다.

장점

  • 사용자는 친숙한 고급 언어로 코드를 작성할 수 있습니다.
  • 모든 zk 내부는 사용자로부터 추상화됩니다.
  • 추가 오버헤드를 추가하는 특정 'VM' 회로에 의존하지 않음

단점

  • 모든 프로그램에는 다른 회로가 있습니다. 최적화하기 어렵습니다. (증명시장이 이를 부분적으로 해결)
  • 내부 zk 라이브러리를 교체/업그레이드하는 것은 쉽지 않습니다(포킹 필요).

zkVM은 모든 zk 가상 머신의 상위 집합을 설명하는 반면, zkEVM은 특정 유형의 zkVM이며, 오늘날 널리 퍼져 있기 때문에 별도의 주제로 논의할 가치가 있습니다. 맞춤형 암호화 VM 외에 ISA를 기반으로 하는 보다 일반화된 zkVM을 구축하는 작업을 진행 중인 몇 가지 다른 프로젝트가 있습니다.

EVM을 증명하는 대신 시스템은 새로운 VM에서 RISC-V 또는 WASM과 같은 다른 ISA(명령어 세트 아키텍처)를 증명할 수 있습니다. 이러한 일반화된 zkVM에서 작동하는 두 프로젝트는 RISC Zero와 zkWASM입니다. 여기에서 RISC Zero에 대해 자세히 살펴보고 이 전략의 작동 방식과 장점/단점을 살펴보겠습니다. 

zkGalaxy PlatoBlockchain 데이터 인텔리전스에 대한 개발자 가이드. 수직 검색. 일체 포함.
Risc 제로 증명 생성 상위 수준 아키텍처

RISC Zero는 RISC-V 아키텍처에서 실행되는 모든 계산을 증명할 수 있습니다. RISC-V는 인기를 얻고 있는 오픈 소스 ISA(Instruction Set Architecture) 표준입니다. RISC(reduced instruction set computer) 철학은 최소한의 복잡성으로 매우 간단한 명령어 세트를 구축하는 것입니다. 즉, 스택의 상위 계층에 있는 개발자는 하드웨어 구현을 더 간단하게 만드는 동시에 이 아키텍처를 사용하여 명령을 구현하는 데 더 많은 부하를 받게 됩니다.

이 철학은 일반 컴퓨팅에도 적용되며 ARM 칩은 RISC 스타일 명령어 세트를 활용하고 모바일 칩 시장을 지배하기 시작했습니다. 단순한 명령어 세트가 에너지와 다이 영역 효율성도 더 높다는 것이 밝혀졌습니다.

이 비유는 zk 증명을 생성하는 효율성에 꽤 잘 맞습니다. 이전에 논의한 바와 같이 zk에서 실행 추적을 증명할 때 추적의 모든 항목당 모든 명령 비용의 합계를 지불하므로 더 간단하고 총 명령 수가 적을수록 좋습니다.

전달 방법

개발자의 관점에서 RISC Zero를 사용하여 zk 증명을 처리하는 것은 AWS Lambda 함수를 사용하여 백엔드 서버 아키텍처를 처리하는 것과 매우 유사합니다. 개발자는 단순히 코드를 작성하여 RISC Zero 또는 AWS Lambda와 상호 작용하고 서비스는 모든 백엔드 복잡성을 처리합니다.

RISC Zero의 경우 개발자는 Rust 또는 C++(결국 RISC-V를 대상으로 하는 모든 것)를 작성합니다. 그런 다음 시스템은 컴파일 중에 생성된 ELF 파일을 VM 회로의 입력 코드로 사용합니다. 개발자는 누구나 어디에서나 `verify`를 호출할 수 있는 영수증(실행 추적의 zk 증명 포함) 개체를 반환하는 증명을 호출하기만 하면 됩니다. 개발자의 관점에서 zk가 어떻게 작동하는지 이해할 필요가 없으며 기본 시스템이 이 모든 복잡성을 처리합니다.

zkGalaxy PlatoBlockchain 데이터 인텔리전스에 대한 개발자 가이드. 수직 검색. 일체 포함.
Risc Zero 인턴?

장점

  • 사용하기 쉬운. 모든 프로그래머가 zk 애플리케이션을 구축할 수 있는 문을 엽니다.
  • 증명자가 전문화할 수 있는 단일 회로
    • 또한 공격에 대한 노출 영역이 적고 감사 대상이 적습니다.
  • 모든 블록체인과 호환되며 증명을 게시하기만 하면 됩니다.

단점

  • 이러한 일반 인터페이스를 지원하기 위해 많은 오버헤드(증명 크기 및 생성 속도)를 차지합니다.
  • 기존 라이브러리에 대한 광범위한 지원을 달성하려면 증명 생성 기술의 상당한 개선이 필요합니다.

사전 구축된 재사용 가능 회로

블록체인 애플리케이션이나 다른 곳에 특히 유용한 일부 기본적이고 재사용 가능한 회로의 경우 팀에서 이미 이러한 회로를 구축하고 최적화했을 수 있습니다. 특정 사용 사례에 대한 입력을 제공할 수 있습니다. 예를 들어 Merkle 포함 증명은 암호화 응용 프로그램(에어드롭 목록, 토네이도 캐시 등)에서 일반적으로 필요한 것입니다. 응용 프로그램 개발자로서 이러한 실전 테스트를 거친 계약을 항상 재사용하고 맨 위에 있는 레이어를 수정하여 고유한 응용 프로그램을 만들 수 있습니다.

예를 들어, Tornado Cash의 회로는 다음 용도로 재사용할 수 있습니다. 개인 에어드랍 신청 또는 개인 투표 신청. Manta와 Semaphore는 기본 zk 문 수학에 대한 이해가 거의 또는 전혀 없는 Solidity 계약에서 사용할 수 있는 이와 같은 공통 회로 가젯의 전체 툴킷을 구축하고 있습니다.

가이드 — 스택 선택

오랫동안 논의한 바와 같이 zk 애플리케이션을 개발하기 위한 무수히 많은 다양한 옵션이 있으며 모두 고유한 장단점이 있습니다. 이 차트는 이 결정 매트릭스를 요약하는 데 도움이 되므로 귀하의 zk 전문 지식 수준과 성능 요구 사항에 따라 작업에 가장 적합한 도구를 선택할 수 있습니다. 이것은 포괄적인 목록이 아니며 앞으로 더 많은 도구가 출시될 것임을 알게 되면 여기에 추가할 계획입니다.

zkGalaxy PlatoBlockchain 데이터 인텔리전스에 대한 개발자 가이드. 수직 검색. 일체 포함.
zkGalaxy에 대한 애플리케이션 개발자 가이드

zk 앱 개발 치트시트

1. 저수준 Snark 라이브러리

사용시기 : 

  • 전체 Prover 스택에 대한 세밀한 제어가 필요합니다.
  • 공통 구성 요소를 재구축하지 않으려는 경우
  • 다양한 조합으로 실험하고 싶은 분 입증 계획, 곡선 및 기타 저수준 기초 요소

사용하지 않을 때:

  • 높은 수준의 검증 인터페이스를 찾는 초보자입니다.

옵션 : 


3. zk 컴파일러

사용시기 : 

  • 범용 회로의 오버헤드를 감수하지 않으려 함
  • 익숙한 언어로 회로를 작성하고 싶음 
  • 고도로 맞춤화된 회로 필요

사용하지 않을 때: 

  • 기본 암호화 프리미티브를 제어하고 싶습니다.
  • 이미 많이 최적화된 회로가 필요합니다.

옵션 :


5. zkVM

사용시기 : 

  • 고급 언어로 코드를 작성하고 싶음 
  • 이 실행의 정확성을 증명해야 합니다. 
  • 검증자로부터 이 실행에 대한 일부 입력을 숨길 필요가 있음
  • zk에 대한 전문 지식이 거의 또는 전혀 없음

사용하지 않을 때:

  • 대기 시간이 매우 짧은 환경(여전히 느림)
  • 엄청난 프로그램이 있습니다(현재로서는).

옵션 :

2. zk DSL

사용시기 : 

  • 당신은 새로운 언어를 배우는 것이 편합니다
  • 전투 테스트를 거친 언어를 사용하고 싶습니다.
  • 최소한의 회로 크기 필요, 추상화 포기

사용하지 않을 때: 

  • 검증 백엔드에 대한 미세 제어 필요(현재 일부 DSL에 대해 백엔드를 교환할 수 있음)

옵션 :


4. zkEVM

사용시기 : 

  • 이미 EVM에서 작동하는 dApp이 있습니다.
  • 사용자를 위한 더 저렴한 트랜잭션이 필요합니다. 
  • 새로운 체인에 배포하는 노력을 최소화하고 싶습니다.
  • zk(압축)의 간결함 속성에만 관심을 가집니다.

사용하지 않을 때: 

  • 완벽한 EVM 동등성이 필요합니다.
  • zk의 프라이버시 속성이 필요합니다. 
  • 블록체인 이외의 사용 사례가 있습니다. 

옵션 : 


6. 사전 구축된 재사용 가능 회로

사용시기 : 

  • Merkle 포함과 같은 공통 zk 빌딩 블록에 의존하는 스마트 계약 애플리케이션이 있습니다.
  • 기본 zk에 대한 전문 지식이 거의 또는 전혀 없습니다.

사용하지 않을 때:

  • 고도로 전문화된 요구 사항이 있습니다.
  • 귀하의 사용 사례는 사전 구축된 회로에서 지원되지 않습니다. 

옵션 : 

결론

zk는 여러 기술의 최첨단에 있으며 이를 구축하려면 수학, 암호화, 컴퓨터 과학 및 하드웨어 공학에 대한 깊은 이해가 필요합니다. 그러나 매일 점점 더 많은 추상화 계층을 사용할 수 있으므로 앱 개발자는 박사 학위 없이도 zk의 기능을 활용할 수 있습니다. 스택의 모든 수준에서 최적화를 통해 시간이 지남에 따라 증명 시간의 제한이 서서히 해제됨에 따라 일반 개발자를 위한 더 간단한 도구를 보게 될 것입니다.

호기심 많은 소프트웨어 개발자인 당신이 지금 당신의 애플리케이션에서 zk를 사용할 수 있다고 확신시켰기를 바랍니다. 행복한 해킹 🙂

zkGalaxy PlatoBlockchain 데이터 인텔리전스에 대한 개발자 가이드. 수직 검색. 일체 포함.
무엇을 기다리고 있니? zk 앱을 빌드하세요.

공개 : Blockchain Capital은 위에서 언급한 여러 프로토콜의 투자자입니다.

각 블로그 게시물에 표현된 견해는 각 작성자의 개인적인 견해일 수 있으며 반드시 Blockchain Capital 및 그 계열사의 견해를 반영하는 것은 아닙니다. Blockchain Capital이나 저자는 각 블로그 게시물에 제공된 정보의 정확성, 적합성 또는 완전성을 보장하지 않습니다. 블로그 게시물에 포함된 정보의 정확성, 완전성 또는 공정성에 대해 Blockchain Capital, 작성자 또는 다른 사람에 의해 또는 그를 대신하여 명시적이든 묵시적이든 어떠한 진술이나 보증도 제공되지 않으며 어떠한 책임이나 의무도 수락되지 않습니다. 그러한 정보에 대해. 각 블로그 게시물에 포함된 어떠한 내용도 투자, 규제, 법률, 규정 준수 또는 세금 또는 기타 조언을 구성하지 않으며 투자 결정을 내리는 데 의존해서는 안 됩니다. 블로그 게시물을 현재 또는 과거의 추천이나 유가 증권 매매 제안 또는 투자 전략 채택 권유로 간주해서는 안 됩니다. 블로그 게시물에는 많은 가능한 사건이나 요인의 결과로 변경될 수 있는 믿음, 가정 및 기대에 기반한 예상 또는 기타 미래 예측 진술이 포함될 수 있습니다. 변경 사항이 발생할 경우 실제 결과는 미래 예측 진술에 표현된 내용과 실질적으로 다를 수 있습니다. 모든 미래 예측 진술은 해당 진술이 작성된 날짜에만 적용되며 Blockchain Capital이나 각 저자는 법에서 요구하는 경우를 제외하고 이러한 진술을 업데이트할 의무가 없습니다. Blockchain Capital에서 제작, 게시 또는 배포한 문서, 프리젠테이션 또는 기타 자료가 블로그 게시물에서 참조되는 범위 내에서 해당 자료에 제공된 면책 조항에 주의하여 읽어야 합니다.

타임 스탬프 :

더보기 Blockchain Capital