7月23日,隐私学院【PrivacyIN】第一期ZK训练营第四课——《ZK Hands-on》如期开讲。本期课堂由资深隐私开发工程师Kelvin Wong讲授,主要介绍Circom电路开发和ZK应用实践。
背景
随着零知识证明(ZKP)技术理论和工程应用的进步,ZK-Dapp已经成为区块链技术的应用热点,但ZKP技术的过高的技术门槛,使得设计和开发一个基于区块链系统的完整ZK-Dapp依然有较高的难度。因此PrivacyIN特别开设实践课程,从理论到实践,帮助开发者快速进入ZK应用开发。
主要课程内容
本期课堂Kelvin Wong主要围绕Circom电路设计和零知识证明应用开发进行展开。
ZK应用介绍
Kelvin老师首先介绍了当前ZK应用发展概况,带领学员了解当前主流的ZK应用和发展方向,将ZK应用主要分为:L2 ZK-Rollup应用、ZK-VM & ZK-EVM、ZK区块链系统、流行的ZK开发框架及编译器、其他热门电路及应用等,并进行分类的介绍和特点分析。
ZK-Rollup主要使用zkSNARKs技术将批量交易线下聚合,再将聚合交易及证明记录到智能合约,借助zkSANRKs其简洁、可验证、零知识性的特点,非常优雅地解决了以太坊等交易处理效率低和手续费昂贵的问题。目前ZK-Rollup涌现了非常多热点应用,包括降低转账手续费的STARKNET、zkSync、LOOPRING等,应用类ZigZog、Curve、zkNFT等。
ZK-VM是基于ZKP来保证程序执行状态转换的安全性和可验证性的可信通用虚拟机,一般ZK-VM都提供类似电路描述语言来实现计算应用。
EVM是运行在以太坊上,用来执行智能合约的虚拟机器,EVM是基于栈架构的,主要组件包括:Stack、Memory、PC、Storage等,EVM使用Gas进行指令计价和约束执行。
ZK-EVM是以ZKP方式执行智能合约或EVM指令的虚拟机,一般可以按照兼容性分为合约兼容ZK-EVM、EVM指令级别ZK-EVM、EVM标准规范级别ZK-EVM。ZK-EVM赋予了EVM执行正确性证明和可验证的特点,主要是用来构建兼容以太坊智能合约的ZK-Rollup方案或区块链系统。
基于ZK的区块链系统,最著名的是ZCash,它是第一个基于zkSNARK技术构建的提供匿名交易的电子货币实现。随着ZK理论和技术的发展,越来越多区块链系统基于ZK技术进行构建,以提供更好的匿名性和安全性。比如monero门罗币也将使用ZK技术构建,其将使用BulletProof协议来实现匿名交易;Mina使用递归零知识证明技术来构建简洁和轻量的区块链系统;Filecoin借助递归零知识证明技术来实现数据存储证明;Aleo则基于ZK构建通用、私密、高效公链系统。
在开放性区块链世界,ZK公链和应用的发展离不开开源社区,开源社区为ZK技术的发展提供了坚实的基础,以Arkworks、Matters Labs、Polygon等为代表社区或公司提供丰富的密码学开发基础库、ZK协议实现、编译器等。比较流行有开发库有:libnark、ZK-Garage/plonk、snarkjs、halo2等;经典的编译器及开发库套件,包括:Circom+Snarkjs、Aleo、ZoKrates、Cairo等。</