根据2022年11月 第5届ZKProof Workshop Keynote: ZKP Languages - Where We Are Now - Kobi Gurkan (Geometry)有:
以下内容主要摘自2021年10月视频 ZK HACK #1 - Introduction to Domain Specific Languages (DSLs) by Alex Ozdemir。 在ZKP系统中,核心之一是将待证明的内容通过circuit language转换为电路: 当前的电路编程语言主要有:
当前的电路类型主要有:
- 1)R1CS电路
- 2)Plonk电路
- 3)AIR电路
针对这些电路类型,相应的编程语言有:
基本的语言类型衍变路径为:
- 底层库-》硬件描述语言-》高级编程语言
ZKP电路编程语言按语言类型分为:
可变变量特性是指:
根据是否支持可变变量特性,ZKP电路编程语言分为: 原语类型特性定义为:
电路编程语言的原语类型特性有:
- 1)Field原语
- 2)Bool原语
- 3)Machine Integers原语
相应的分类为: if-条件分支特性是指:
根据是否支持if-条件分支特性,分为:
用户自定义结构体特性是指:
根据所支持的用户自定义结构体类型,分为:
数组特性是指:
根据支持数组特性的情况,分为:
电路编程语言的未来展望为:
-
1)仍需继续探索新的编程语言;
-
2)电路编译仍是难题,目前编译结果较复杂;
-
3)或许未来可共享基础架构:【详细可参看Alex Ozdemir等人2020年论文《CirC: Compiler infrastructure for proof systems, software verification, and more》 和 (Cir)cuit ©ompiler. Compiling high-level languages to circuits for SMT, zero-knowledge proofs, and more.】
[1] 2021年10月视频 ZK HACK #1 - Introduction to Domain Specific Languages (DSLs) by Alex Ozdemir [2] A Taxonomy of Circuit Languages [3] 2022年6月视频 Programming Languages in ZKP