美文网首页
Circom编译器

Circom编译器

作者: 雪落无留痕 | 来源:发表于2021-09-13 18:11 被阅读0次

Circom是零知识证明中的电路编程语言,方便设计和开发零知识证明的数值电路。

Circom工具包包括:

  • Circom: 电路开发语言;
  • Circomlib: Circom 模板库;
  • SnarkJS: JavaScript zk-SNARK实现;

Circom电路示例为:

template Multiplier() {
    signal private input a;
    signal private input b;
    signal output c;
    signal inva;
    signal invb;

    inva <-- 1/(a-1);
    (a-1)*inva === 1;

    invb <-- 1/(b-1);
    (b-1)*invb === 1;

    c <== a*b;
}

component main = Multiplier();
  • <--: 赋值,不创建任何约束
  • ===: 添加一个约束,而非赋值

Circom 基础

Templates

采用template创建通用电路, 利用 component进行实例化, main component用于启动执行。

template 可以递归定义。

functions 用于实现计算,不生成约束,可递归定义。

域元素

域元素表示为:Z/pZ

布尔类型: TRUE: 非0的域元素表示; FALSE: 元素

数组:var x[3] = [2,8,4];

带符号的整数:

  • val(z) = z-p
  • val(z)= z

Signals

Signal赋值采用 <--, <==--> , ==>

对于<==, ==> , 赋值的同时,会生成约束条件;

对于<--, -->: 计算赋值,不产生约束条件。

=== 是约束赋值。

普通变量采用var定义,用= 赋值。

约束生成

主要有以下几种形式:

  • 常量: 只允许常量值
  • 线性表达式:例如2*x + 3*y + 2
  • 二次表达式: A*B + C
  • 非二次表达式。

[图片上传失败...(image-e09e95-1631527860036)]

参考文献

https://docs.circom.io/

https://github.com/iden3/circom

https://github.com/iden3/circomlib

https://github.com/iden3/snarkjs

相关文章

  • Circom 介绍

    Circom 是基于Rust开发的编译器,主要编译circom 语言开发的电路,输出约束系统的表示,由snark...

  • Circom编译器

    Circom是零知识证明中的电路编程语言,方便设计和开发零知识证明的数值电路。 Circom工具包包括: Circ...

  • Java学习-程序编译与代码优化

    介绍 java代码编译器代表性的有三类前端编译器:我们熟知的javac就是前端编译器JIT编译器:即时编译器,如h...

  • Objective-C基础学习之@property基本概念

    1.什么是@property @property是编译器的指令 什么是编译器的指令 ?编译器指令就是用来告诉编译器...

  • @property

    1.什么是@property @property是编译器的指令什么是编译器的指令 ? 编译器指令就是用来告诉编译器...

  • OC语言@property@synthesize和id

    1.property @property是编译器的指令什么是编译器的指令,编译器指令就是用来告诉编译器要做什么 @...

  • 【Xcode编译原理】

    GCC编译器 Xcode4之前,Xcode是用GCC编译器来翻译代码的;GCC编译器是开源免费的编译器 GCC :...

  • iOS LLVM编译流程

    1. LLVM概念 1.1 编译器 LLVM与编译器息息相关,究竟什么是编译器呢?带着疑问往下看吧。编译器就是将一...

  • 编译原理 -- 编译以及编译过程

    前言 为了了解编译器是什么? 为什么需要编译器? 编译器、高级语言、源代码、机器语言 编译器:首先也是一种电脑程序...

  • 19_编译过程简介

    关键词:初识编译器、预处理、编译、汇编 1. 初识编译器 广义上的编译器由:预处理器、编译器、汇编器、链接器组成。...

网友评论

      本文标题:Circom编译器

      本文链接:https://www.haomeiwen.com/subject/qfbfgltx.html