zkSync

상상해보자
zkSync는 Ethereum의 거래를 더 빠르고 저렴하게 만들어주는 초고속 배송 서비스와 같다.
Ethereum을 차량(거래)으로 가득한 혼잡한 고속도로라고 상상해보면 된다. 이러한 혼잡은 고속도로를 느리고 비싸게 만든다.
zkSync는 고속도로 옆에 매우 빠른 차선을 추가하여, 차량들이 교통 체증 없이 빠르게 이동할 수 있도록 한다.
zkSync 작동방식
거래를 모아 처리하기 (Aggregating Transactions): zkSync는 작은 패키지들(거래)을 모아서 한 번에 모두 배달해주는 큰 트럭과 같다.
영지식 증명 (Zero-Knowledge Proofs, ZKPs): ZKP는 패키지가 열리지 않은 상태에서도 올바르게 포장되었음을 증명해주는 마법의 봉인과 같다.
Ethereum에 증명 제출하기 (Submitting Proofs to Ethereum): 패키지가 모이고 봉인된 후, zkSync는 이 요약본을 Ethereum 고속도로에 제출한다.
zkSync 기술적 특징
zkSync는 "영지식 롤업(zk-rollups)"이라고 불리는 특별한 기술을 사용한다. 이 롤업은 여러 개의 거래를 하나로 묶어서 한 번에 처리할 수 있게 해준다. 이러한 묶음 처리 방식은 Ethereum 네트워크가 처리해야 할 개별 거래 수를 크게 줄여준다.
zk-rollups로 거래를 묶어 처리함으로써, zkSync는 전체 과정을 훨씬 더 빠르고 저렴하게 만들어준다.
zkEVM 작동 방식
step 1 - 거래 수집 (Aggregating Transactions): zkSync는 여러 개의 거래를 모아 하나로 묶는다.
예시: 0x12312312 + 0x12312312 = zkEVM
step 2 - 영지식 증명 생성 (Zero-Knowledge Proofs, ZKPs): 거래가 모두 묶인 후, zkSync는 이를 증명(Proof)으로 변환하여 검증한다.
step 3 - Ethereum에 증명 제출 (Submitting Proofs to Ethereum): 증명이 완료된 후, zkSync는 이 증명을 Ethereum에 제출한다. 이는 Ethereum 네트워크에 대한 최종 요약본이다.
zkEVM 컴파일러 작동 방식
zkEVM은 다양한 프로그래밍 언어를 컴파일할 수 있다. 예를 들어, Solidity, Vyper, Rust 등의 언어를 사용하여 코드를 작성할 수 있다. 컴파일 과정은 다음과 같이 진행된다:
Solidity, Yul, Vyper, Rust 등의 언어를 사용하여 코드를 작성한다.
LLVM으로 코드를 변환한다.
변환된 코드는 zkEVM으로 컴파일되어 Ethereum에서 실행될 수 있게 된다.
Reference
Last updated