ExpanderCompilerCollection

package module
v1.0.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 24, 2025 License: AGPL-3.0 Imports: 1 Imported by: 4

README

Expander

ExpanderCompilerCollection

Expander is a proof generation backend for the Polyhedra Network. The ExpanderCompilerCollection is a component of the Expander proof system. It transforms circuits written in gnark into an intermediate representation (IR) of a layered circuit. This IR can later be used by the Expander prover to generate proofs.

Documentation

Documentation is available at Expander Compiler Collection Documentation.

Using this Library

To incorporate the compiler into your Go project, include the following import statement in your code:

import "github.com/PolyhedraZK/ExpanderCompilerCollection"

We also have a Rust frontend similar to gnark.

Example

Refer to this example for a practical demonstration of our compiler. In this example, we illustrate how a gnark circuit can be compiled using ExpanderCompilerCollection. The output of this example includes a circuit description file "circuit.txt" and a corresponding witnesses file "witness.txt". Our prover, Expander, utilizes these IRs to generate the actual proof.

Acknowledgement

We extend our gratitude to the following projects, whose prior work has been crucial in bringing this project to fruition:

gnark: our frontend language is based on gnark's frontend.

Future Roadmap

As a compiler collection, we will support more circuit frontend languages in the near term.

Features in Progress

  • On-chain verifier generation
  • Extended in-circuit randomness generation

Documentation

Index

Constants

This section is empty.

Variables

View Source
var Compile = ecgo.Compile
View Source
var DeserializeInputSolver = ecgo.DeserializeInputSolver
View Source
var DeserializeLayeredCircuit = ecgo.DeserializeLayeredCircuit

Functions

This section is empty.

Types

type API

type API = ecgo.API

type CompileResult

type CompileResult = ecgo.CompileResult

Directories

Path Synopsis
circuit-std-go
Package ecgo wraps the most commonly used compiler APIs and provides an entry point for compilation.
Package ecgo wraps the most commonly used compiler APIs and provides an entry point for compilation.
builder
Package builder provides an implementation based on the gnark frontend builder with the following modifications: - LinearExpression has been changed to allow for quadratic terms in the form of Expression.
Package builder provides an implementation based on the gnark frontend builder with the following modifications: - LinearExpression has been changed to allow for quadratic terms in the form of Expression.
layered
Package layered defines the structures and functions necessary for creating and manipulating layered circuits within the ExpanderCompilerCollection compiler.
Package layered defines the structures and functions necessary for creating and manipulating layered circuits within the ExpanderCompilerCollection compiler.
gf2
m31

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL