BTC
ETH
HTX
SOL
BNB
시장 동향 보기
简中
繁中
English
日本語
한국어
ภาษาไทย
Tiếng Việt

zkSync 2.0: 헬로 이더리움

Block unicorn
特邀专栏作者
이 기사는 약 4066자로, 전체를 읽는 데 약 6분이 소요됩니다
가장 큰 기술적 과제에 직면한 우리는 EVM 호환 환경에서 스마트 계약을 배포하기 위한 스프린트를 시작하고 있습니다.
AI 요약
펼치기
가장 큰 기술적 과제에 직면한 우리는 EVM 호환 환경에서 스마트 계약을 배포하기 위한 스프린트를 시작하고 있습니다.

소개하다

소개하다

첫 번째 레벨 제목

주요실적

암호화 측면에서 zkEVM의 명령어 세트는 완전하며 회로 내 및 실행 환경에서 두 가지 구현이 모두 완료됩니다.

컴파일러 측면에서 Solidity 및 Zinc로 작성된 스마트 계약은 이제 zkEVM 바이트코드로 컴파일할 수 있습니다.

핵심 인프라 측면에서 전체 노드 통합이 완료되고 컴파일된 스마트 계약이 성공적으로 배포 및 실행될 수 있습니다.

zkEVM 및 코어 2.0 인프라가 노출될 준비가 되어 있는 동안 컴파일러는 모든 에지 케이스를 적절하게 처리하기 위해 더 많은 작업이 필요합니다. 보다 포괄적인 개발자 경험을 제공하기 위해 우리는 컴파일러가 100% 신뢰할 수 있는 즉시 zkEVM, 컴파일러 및 코어 SDK에 대한 액세스를 개방하기로 결정했습니다.

zkSync 2.0 대 이더리움

첫 번째 레벨 제목

견고성 스마트 계약

Ethereum의 대부분의 opcode가 지원됩니다! 그러나 다음과 같은 몇 가지 예외가 있습니다.

  • ADDMOD, SMOD, MULMOD, EXP 및 CREATE2 opcode는 이 릴리스에서 지원되지 않지만 향후 지원될 예정입니다.

  • 우리는 현재 KECCAK256 opcode를 지원하지 않지만 이에 대한 모든 호출을 다른 충돌 방지 해시 함수에 대한 호출로 자동 대체합니다. KECCAK256은 나중에 프리컴파일로 소개될 예정입니다.

  • Ethereum이 제거할 계획이기 때문에 SELFDESTRUCT opcode를 포함하지 않기로 결정했습니다.

  • 비용

비용

첫 번째 레벨 제목

Web3 API

다음 릴리스에는 Ethereum 문서에서 정의한 Web3 표준과 호환되는 Web3 API 구현이 포함됩니다. 이벤트는 즉시 작동하며 모든 서비스를 쉽게 통합할 수 있습니다.

zkSync에는 커밋되고 완료된 블록의 개념과 같이 L1에 없는 기능이 포함되어 있습니다. 따라서 개발자에게 데이터를 보다 정확하게 제어할 수 있는 다른 방법이 있을 것입니다. Web3 클라이언트 코드는 Ethereum과 동일한 데이터를 수신하지만 `zksync_` 네임스페이스를 사용하여 특수 정보를 요청할 수 있습니다.

첫 번째 레벨 제목

거래에 서명하다

zkSync 2.0의 트랜잭션은 두 가지 방법으로 승인될 수 있습니다(우선 순위 큐 메커니즘에 추가):

  • 사용자는 EIP712 메시지에 서명하여 일반 이더리움 지갑(예: Metamask 또는 WalletConnect 지갑)으로 트랜잭션에 서명할 수 있습니다.

  • 첫 번째 레벨 제목

스토리지 효율성 향상

미리 컴파일됨

미리 컴파일됨

첫 번째 레벨 제목

추가 제한

zkSync 2.0의 첫 번째 반복은 적절한 회계 메커니즘이 구현될 때까지 트랜잭션당 32개의 스마트 계약 호출이라는 추가 제한을 부과할 수 있습니다.

실행 추적에 대한 엄격한 제한이 있지만 현재 이더리움 블록 크기 제한과 비슷하며 대부분의 프로토콜에 영향을 미치지 않아야 합니다.

더 많은 제한이 있을 수 있지만 우리의 목표는 최종 릴리스에서 최소한으로 줄이는 것입니다.

zkSync 2.0 아키텍처에 대해 자세히 알아보기

블록체인 트릴레마에 대해 들어보셨을지 모르지만 이더리움 확장과 관련하여 프로그래밍 가능성이라는 네 번째 요소가 있습니다. 현재의 모든 확장 솔루션은 확장성을 위해 일부 보안, 탈중앙화 및 프로그래밍 가능성을 희생하는 범위 내에 존재합니다. zkSync 2.0의 설계는 다음 2가지 기술 혁신을 결합하여 4가지 기능을 모두 극대화합니다.

  • zkEVM: L1 보안 및 안정성을 위한 스마트 계약으로 지원되는 유일한 솔루션인 EVM 호환 zkRollup을 구동하는 엔진입니다.

  • 이미지 설명

(zkSync의 사진)

zkEVM과 zkPorter는 상호 운용 가능하고 구성 가능하기 때문에 zkSync 2.0은 다른 모든 스케일링 솔루션보다 훨씬 뛰어난 성능을 발휘할 수 있습니다.

첫 번째 레벨 제목

상태 트리

zkSync 2.0 상태 트리는 이더리움의 전체 160비트 주소 공간을 다룹니다. 각 계정은 상태의 zkRollup 부분 또는 zkPorter 부분에 상주합니다. zkRollup 및 zkPorter 계정은 보장된 데이터 가용성이라는 한 가지 구성 요소를 제외하고는 동일합니다. zkRollup 트랜잭션 데이터는 calldata를 통해 Ethereum에 게시되고 zkPorter 트랜잭션 데이터는 zkSync Guardian 네트워크에 게시되며 zkSync 토큰 보유자는 지분 증명에 참여합니다.

데이터가 게시되는 위치는 비용과 보안 간의 절충점입니다. zkPorter 거래는 집계 거래보다 훨씬 저렴하지만 자금이 동결될 가능성이 있습니다. 그러나 zkRollup 및 zkPorter 계정의 유효성은 모두 영지식 증명과 이더리움에 의해 보장됩니다. 즉, zkPorter의 자금은 도난당하지 않고 동결만 가능합니다.

암호화

암호화

가장 일반적으로 zkEVM이라고 하는 우리 VM은 EVM의 1:1 사본이 아니지만 Solidity로 작성된 계약의 99%를 실행할 수 있고 복구 및 예외와 같은 동일한 동작을 유지할 수 있도록 설계되었습니다. 한편, zkEVM은 회로에서 영지식 증명을 효율적으로 생성하도록 작성되었습니다.

이것은 증명 시스템에 큰 변화 없이 수행되었으며, 사용자 정의 게이트 및 룩업 테이블(일반적으로 UltraPLONK로 알려짐) 및 이더리움의 BN-254 곡선과 함께 PLONK를 계속 사용했습니다. 이는 증명 시스템이 2020년 6월부터 zkSync 1.0뿐만 아니라 동일한 증명 시스템을 사용하는 다른 프로젝트에서 전투 테스트를 거쳤기 때문에 유리합니다.

다시 한 번, 우리는 몇 달간의 노력 끝에 zkEVM 명령 세트가 완전하고 회로 및 실행 환경에서 구현되었음을 발표하게 되어 기쁩니다.

여기에는 중요한 차이점이 있습니다. 회로에서의 구현과 실행 환경은 분리되어 있으며 서로 다른 목적을 수행합니다. 회로의 임무는 실행 증명 추적을 생성하고 증인을 제공하는 것이지만 이것은 매우 느립니다. 반면에 실행 환경은 Rust에서 zkEVM을 직접 구현하여 효율적이고 빠릅니다. 우리가 증명을 생성하고 실행하기 위해 회로에 의존한다면 트랜잭션을 완료하는 데 몇 시간이 걸릴 것입니다. 증명 생성과 간단한 실행의 분리는 zkSync에서 트랜잭션의 즉각적인 결제를 가능하게 합니다.

첫 번째 레벨 제목

이미지 설명

(zkSync의 사진)

우리는 zkEVM을 위한 두 개의 컴파일러 프런트 엔드인 Yul과 Zinc를 동시에 작업하고 있습니다. Yul은 다양한 백엔드용 바이트코드로 컴파일되는 중간 Solidity 표현입니다. Zinc는 스마트 계약 및 범용 영지식 증명 회로를 위한 Rust 기반 언어입니다.

컴파일러는 LLVM 프레임워크를 사용하여 빌드되었기 때문에 프론트엔드 Yul → LLVM IR 및 백엔드 LLVM IR → zkEVM 바이트코드를 갖는 것으로 볼 수 있습니다. LLVM을 채택하면 다음과 같은 몇 가지 주요 이점이 있습니다.

  • LLVM 최적화 프레임워크는 타의 추종을 불허합니다. LLVM IR에서 가장 효율적인 zkEVM 바이트코드를 생성합니다.

  • 최신 버전의 Solidity 또는 Zinc를 사용하면 컴파일러 프런트엔드가 모든 변경 사항을 처리하는 반면 LLVM은 컴파일러 백엔드를 변경하지 않아도 됩니다.

  • 미래에 개발자가 네이티브 Rust 또는 Javascript로 스마트 계약을 작성하려는 경우 해당 언어에 대한 컴파일러 프런트 엔드만 구축하면 되며 스마트 계약은 zkSync에서 즉시 작동합니다.

컴파일러 보안은 우리에게 가장 중요하며 여러 테스트를 통과했습니다.

  • Zinc 및 Yul 컴파일러의 어휘, 구문 및 의미 테스트.

  • 소스 코드 구문 분석에서 계약 배포 및 zkSync에서 트랜잭션 실행에 이르기까지 전체 스마트 계약 수명 주기 동안 자체 Zinc 및 Solidity 통합 테스트를 수행합니다.

  • 통합 테스트 도구를 위해 Solidity 리포지토리에서 통합된 광범위한 테스트 스위트입니다.

각 제품군에는 이미 수천 개의 테스트가 포함되어 있으며 이 숫자를 최소한 한 자릿수 이상 늘릴 것입니다.

우리의 2개 컴파일러는 두 언어로 간단한 스마트 계약을 성공적으로 배포하고 실행했습니다. 그러나 수행해야 할 더 많은 최적화가 있으며 일부 복잡한 LLVM IR 문을 zkEVM 바이트코드로 변환해야 합니다. 따라서 보다 강력한 상태가 될 때까지 컴파일러를 릴리스하지 않기로 결정했습니다.

첫 번째 레벨 제목

핵심 인프라

zkSync 2.0의 핵심은 몇 가지 주요 행위자로 구성됩니다.

전체 노드

  • 가상 머신의 zkEVM 바이트코드를 통한 사전 실행자 환경

  • 트랜잭션이 전송된 후 몇 초 이내에 상태를 사용할 수 있습니다.

  • 블록 팽창으로 이어질 수 있는 명백히 잘못된 거래(예: 자금이 부족한 거래)를 걸러냅니다.

  • 트랜잭션을 실행하고 mempool에서 블록을 생성합니다.

인증자

  • 블록을 수신하고 영지식 증명을 생성하는 증인,

  • 병렬 증명 생성을 위한 증명자 인터페이스,

  • 필요에 따라 Prover 시스템을 생성하고 종료하는 사용자 지정 Prover Autoscaler입니다.

인터랙터

  • Ethereum L1을 보고 상호 작용하기 위한 도구,

  • 거래 수수료는 토큰 가격, ZKP 생성 비용 및 L1 가스 가격을 기준으로 계산됩니다.

편집증 모니터

Prometheus, elastic, sentry, uptime, 여러 독립 이벤트 알림 시스템 및 맞춤형 상태 확인 서비스. 이 핵심 인프라는 완벽하게 작동하며 이미 zkEVM 실행기가 통합되어 있습니다.

BTC
ETH
Odaily 공식 커뮤니티에 가입하세요