ZK概述

zk rollup是layer2项目中的明星,难度也不是一般的大,基本思路是利用zk技术,把layer2的执行结果,和proof一起提交给layer1,然后layer1验证上链。

在layer2中,需要虚拟机vm来执行打包的交易,这种基于zk技术的虚拟机,叫做zkVM,如果该虚拟机兼容以太坊智能合约,叫做zkEVM。

EVM

先理解下evm合约的执行过程:把合约编译成字节码,然后字节码通过EVM执行。

什么是zkEVM

zkEVM就是通过zk技术,支持solidity合约执行的虚拟机。

zkEVM按照vitalik的分类,一共有四种:

* https://vitalik.ca/general/2022/08/04/zkevm.html

  • type 1,完全以太坊等效, 是直接可以在以太坊链上运行的EVM,最难实现。PSE(前身是appliedzkp)和taiko正在做
  • type2,完全EVM等效,但是并不是以太坊等效,也就是可以运行EVM的合约,但数据结构和状态树可能不同,可以运行在一条和eth不同的链上。目前scroll和polygon正在做
  • type2.5,几乎EVM等效,仅仅gas费的消耗不一样
  • type3,几乎EVM等效,但有一些功能性的差别。type3是一个过渡类型,目前scroll和polygon事实上是type3,但目标是type2或者type2.5,即除了gas消耗更低外,完全EVM等效。
  • type4,高级语言兼容的 ZK-EVM,也就是能够编译solidity智能合约,但是底层和EVM没啥关系。主流项目是Starkware 和 zkSync。

vitalik的四种分类,是从产品的角度来看,从实现的角度来看,zkEVM的实现方式一般有两种手段:

  • 语言级别兼容EVM: 就相当于type4,仅从语言层面支持solidity,但底层实现和EVM没啥关系。这种思路的产品有Starkware 的 StarkNet 和 zkSync2.0。这种思路的特点是底层的虚拟机指令集和EVM不同,有一些现有开发工具不能直接使用,但是对 ZK 友好,能更有效生成零知识证明。
  • 字节码级别: 相当于type2,或者type2.5。这种思路是先把上层语言编译为和EVM一样的字节码,然后为每个字节码用zk电路实现其逻辑。主要产品是Polygon ZK-EVM 和 Scroll。这样的特点是实现了一个以太坊完全兼容的零知识 (ZK) 扩展解决方案:所有现有的智能合约、开发人员工具和钱包都可以无缝运行,当然也更复杂

zk证明算法

目前有两种主流的zkp算法:

  • ZK-SNARK (Zero-Knowledge Succinct Non-Interactive Argument of Knowledge)。
  • ZK-STARK(Zero-Knowledge Scalable Transparent Argument of Knowledge)。

其中的ZK-SNARK有trusted setup过程,也就是需要提前通过一些秘密信息来准备一批参数,如果这些秘密信息被泄露,就会破坏系统的安全性,因此这些信息又叫做有害废料(toxic waste),存在安全隐患。

而对ZK-STARK而言,其设计目标之一是消除对 trusted setup的需求。使用了一些先进的数学技术,如多项式插值和低度伪随机函数。这些技术使得构建 STARK 参数的过程更加透明、去中心化,并且不依赖于有害废料,这使得 STARK 在可验证性和可扩展性方面具有优势,并为系统的部署和使用提供更高的安全性和可信度。

zkp和zkEVM是什么关系呢:

  • zkEVM是产品,支持智能合约的运行
  • zkp算法是技术,zkEVM采用其中一种zkp算法实现

zkEVM相关项目

Applied ZKP

以太坊基金会的zk项目,目标是type1。

开源地址:https://github.com/privacy-scaling-explorations/zkevm-specs

Polygon zkEVM

polygon zkEVM是Polygon 通过收购并合并一个叫做 Hermez 的 ZKR 项目而形成的。运行方式是通过电路实现EVM的opcode。

开源地址:https://github.com/orgs/0xPolygonHermez/repositories

目前是type3,目标是type2~2.5。

Scroll

Scroll也是开源的:https://github.com/scroll-tech

运行方式和Polygon类似,也是通过电路实现EVM的opcode。

目前是type3,目标是type2~2.5。

Taiko

Taiko的目标也是type1。

开源地址:https://github.com/taikoxyz

zkSync

zkSync属于type4。

开源地址:https://github.com/matter-labs/zksync

zkSync 是由 Matter Labs 开发的整套zkrollup协议的总称。

zkSync Era是运行zkVM的链。

zkSync的思路,是使用自己的LLVM compiler,把合约代码,比如solidity代码,编译成自己需要的字节码(而不是evm的opcode),然后传递给zkVM执行。

Starkware

StarkWare是一个以色列的技术公司,专注于构建基于zkSTARK(零知识可验证的可扩展性零知识证明)的可扩展解决方案。

StarkNet是StarkWare运行的区块链。

SNVM是运行在StartNet上的合约虚拟机。SNVM虚拟机利用 zkSTARK技术实现智能合约执行。

Cairo是用于编写运行在StarkNet上智能合约语言。

原本Starknet和zkEVM没啥关系,单纯的是zkVM,但Nethermind’s Warp项目提供一种编译器,能把solidity编译为Cairo,也就是把starkware的starknet变相的变成了type4。

各家产品对比

越往右对EVM兼容越好,实现难度越大。

Ref



《 “ZK概述” 》 有 4 条评论

  1. I don t have any good memories of them, and didn t really enjoy interacting with them get cytotec without prescription When did your cycle end

  2. buy priligy 30mg It provides safety ratings for more than 78, 000 cosmetics and other personal care products

回复 agodelo 取消回复

您的邮箱地址不会被公开。 必填项已用 * 标注

About Me

一位程序员,会弹吉他,喜欢读诗。
有一颗感恩的心,一位美丽的妻子,两个可爱的女儿
mail: geraldlee0825@gmail.com
github: https://github.com/lisuxiaoqi
medium: https://medium.com/@geraldlee0825