halo2/rustdoc/latest/halo2_proofs/plonk/index.html

72 lines
15 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="This module provides an implementation of a variant of (Turbo)PLONK that is designed specifically for the polynomial commitment scheme described in the Halo paper."><meta name="keywords" content="rust, rustlang, rust-lang, plonk"><title>halo2_proofs::plonk - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../SourceSerif4-Regular.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../FiraSans-Regular.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../FiraSans-Medium.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../SourceCodePro-Regular.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../SourceSerif4-Bold.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../SourceCodePro-Semibold.ttf.woff2"><link rel="stylesheet" type="text/css" href="../../normalize.css"><link rel="stylesheet" type="text/css" href="../../rustdoc.css" id="mainThemeStyle"><link rel="stylesheet" type="text/css" href="../../ayu.css" disabled><link rel="stylesheet" type="text/css" href="../../dark.css" disabled><link rel="stylesheet" type="text/css" href="../../light.css" id="themeStyle"><script id="default-settings" ></script><script src="../../storage.js"></script><script src="../../crates.js"></script><script defer src="../../main.js"></script>
<noscript><link rel="stylesheet" href="../../noscript.css"></noscript><link rel="alternate icon" type="image/png" href="../../favicon-16x16.png"><link rel="alternate icon" type="image/png" href="../../favicon-32x32.png"><link rel="icon" type="image/svg+xml" href="../../favicon.svg"><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.10.0/dist/katex.min.css" integrity="sha384-9eLZqc9ds8eNjO3TmqPeYcDj8n+Qfa4nuSiGYa6DjLNcv9BtN69ZIulL9+8CqC9Y" crossorigin="anonymous">
<script src="https://cdn.jsdelivr.net/npm/katex@0.10.0/dist/katex.min.js" integrity="sha384-K3vbOmF2BtaVai+Qk37uypf7VrgBubhQreNQe9aGsz9lB63dIFiQVlJbr92dw2Lx" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/katex@0.10.0/dist/contrib/auto-render.min.js" integrity="sha384-kmZOZB5ObwgQnS/DuDg6TScgOiWWBiVt0plIRkZCmE6rDZGrEOQeHM5PcHi+nyqe" crossorigin="anonymous"></script>
<script>
document.addEventListener("DOMContentLoaded", function() {
renderMathInElement(document.body, {
delimiters: [
{left: "$$", right: "$$", display: true},
{left: "\\(", right: "\\)", display: false},
{left: "$", right: "$", display: false},
{left: "\\[", right: "\\]", display: true}
]
});
});
</script>
</head><body class="rustdoc mod"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">&#9776;</button><a class="sidebar-logo" href="../../halo2_proofs/index.html"><div class="logo-container"><img class="rust-logo" src="../../rust-logo.svg" alt="logo"></div>
</a><h2 class="location"></h2>
</nav>
<nav class="sidebar"><a class="sidebar-logo" href="../../halo2_proofs/index.html"><div class="logo-container"><img class="rust-logo" src="../../rust-logo.svg" alt="logo"></div>
</a><h2 class="location"><a href="#">Module plonk</a></h2><div class="sidebar-elems"><section><div class="block"><ul><li><a href="#structs">Structs</a></li><li><a href="#enums">Enums</a></li><li><a href="#traits">Traits</a></li><li><a href="#functions">Functions</a></li></ul></div></section><div id="sidebar-vars" data-name="plonk" data-ty="mod" data-relpath="./"></div><script defer src="./sidebar-items.js"></script></div></nav><main><div class="width-limiter"><div class="sub-container"><a class="sub-logo-container" href="../../halo2_proofs/index.html"><img class="rust-logo" src="../../rust-logo.svg" alt="logo"></a><nav class="sub"><form class="search-form"><div class="search-container"><span></span><input class="search-input" name="search" autocomplete="off" spellcheck="false" placeholder="Click or press S to search, ? for more options…" type="search"><button type="button" id="help-button" title="help">?</button><div id="settings-menu" tabindex="-1">
<a href="../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../wheel.svg"></a></div>
</div></form></nav></div><section id="main-content" class="content"><div class="main-heading">
<h1 class="fqn"><span class="in-band">Module <a href="../index.html">halo2_proofs</a>::<wbr><a class="mod" href="#">plonk</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../clipboard.svg" width="19" height="18" alt="Copy item path"></button></span></h1><span class="out-of-band"><a class="srclink" href="../../src/halo2_proofs/plonk.rs.html#1-142">source</a> · <a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class="inner">&#x2212;</span>]</a></span></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>This module provides an implementation of a variant of (Turbo)<a href="https://eprint.iacr.org/2019/953">PLONK</a>
that is designed specifically for the polynomial commitment scheme described
in the <a href="https://eprint.iacr.org/2019/1021">Halo</a> paper.</p>
</div></details><h2 id="structs" class="small-section-header"><a href="#structs">Structs</a></h2>
<div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.Advice.html" title="halo2_proofs::plonk::Advice struct">Advice</a></div><div class="item-right docblock-short"><p>An advice column</p>
</div></div><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.BatchVerifier.html" title="halo2_proofs::plonk::BatchVerifier struct">BatchVerifier</a></div><div class="item-right docblock-short"><p>A verifier that checks multiple proofs in a batch.</p>
</div></div><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.Column.html" title="halo2_proofs::plonk::Column struct">Column</a></div><div class="item-right docblock-short"><p>A column with an index and type</p>
</div></div><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.Constraint.html" title="halo2_proofs::plonk::Constraint struct">Constraint</a></div><div class="item-right docblock-short"><p>An individual polynomial constraint.</p>
</div></div><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.ConstraintSystem.html" title="halo2_proofs::plonk::ConstraintSystem struct">ConstraintSystem</a></div><div class="item-right docblock-short"><p>This is a description of the circuit environment, such as the gate, column and
permutation arrangements.</p>
</div></div><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.Constraints.html" title="halo2_proofs::plonk::Constraints struct">Constraints</a></div><div class="item-right docblock-short"><p>A set of polynomial constraints with a common selector.</p>
</div></div><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.Fixed.html" title="halo2_proofs::plonk::Fixed struct">Fixed</a></div><div class="item-right docblock-short"><p>A fixed column</p>
</div></div><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.Instance.html" title="halo2_proofs::plonk::Instance struct">Instance</a></div><div class="item-right docblock-short"><p>An instance column</p>
</div></div><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.PinnedConstraintSystem.html" title="halo2_proofs::plonk::PinnedConstraintSystem struct">PinnedConstraintSystem</a></div><div class="item-right docblock-short"><p>Represents the minimal parameters that determine a <code>ConstraintSystem</code>.</p>
</div></div><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.PinnedVerificationKey.html" title="halo2_proofs::plonk::PinnedVerificationKey struct">PinnedVerificationKey</a></div><div class="item-right docblock-short"><p>Minimal representation of a verification key that can be used to identify
its active contents.</p>
</div></div><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.ProvingKey.html" title="halo2_proofs::plonk::ProvingKey struct">ProvingKey</a></div><div class="item-right docblock-short"><p>This is a proving key which allows for the creation of proofs for a
particular circuit.</p>
</div></div><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.Selector.html" title="halo2_proofs::plonk::Selector struct">Selector</a></div><div class="item-right docblock-short"><p>A selector, representing a fixed boolean value per row of the circuit.</p>
</div></div><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.SingleVerifier.html" title="halo2_proofs::plonk::SingleVerifier struct">SingleVerifier</a></div><div class="item-right docblock-short"><p>A verifier that checks a single proof at a time.</p>
</div></div><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.TableColumn.html" title="halo2_proofs::plonk::TableColumn struct">TableColumn</a></div><div class="item-right docblock-short"><p>A fixed column of a lookup table.</p>
</div></div><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.VerifyingKey.html" title="halo2_proofs::plonk::VerifyingKey struct">VerifyingKey</a></div><div class="item-right docblock-short"><p>This is a verifying key which allows for the verification of proofs for a
particular circuit.</p>
</div></div><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.VirtualCells.html" title="halo2_proofs::plonk::VirtualCells struct">VirtualCells</a></div><div class="item-right docblock-short"><p>Exposes the “virtual cells” that can be queried while creating a custom gate or lookup
table.</p>
</div></div></div><h2 id="enums" class="small-section-header"><a href="#enums">Enums</a></h2>
<div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="enum" href="enum.Any.html" title="halo2_proofs::plonk::Any enum">Any</a></div><div class="item-right docblock-short"><p>An enum over the Advice, Fixed, Instance structs</p>
</div></div><div class="item-row"><div class="item-left module-item"><a class="enum" href="enum.Assigned.html" title="halo2_proofs::plonk::Assigned enum">Assigned</a></div><div class="item-right docblock-short"><p>A value assigned to a cell within a circuit.</p>
</div></div><div class="item-row"><div class="item-left module-item"><a class="enum" href="enum.Error.html" title="halo2_proofs::plonk::Error enum">Error</a></div><div class="item-right docblock-short"><p>This is an error that could occur during proving or circuit synthesis.</p>
</div></div><div class="item-row"><div class="item-left module-item"><a class="enum" href="enum.Expression.html" title="halo2_proofs::plonk::Expression enum">Expression</a></div><div class="item-right docblock-short"><p>Low-degree expression representing an identity that must hold over the committed columns.</p>
</div></div></div><h2 id="traits" class="small-section-header"><a href="#traits">Traits</a></h2>
<div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="trait" href="trait.Assignment.html" title="halo2_proofs::plonk::Assignment trait">Assignment</a></div><div class="item-right docblock-short"><p>This trait allows a <a href="trait.Circuit.html" title="Circuit"><code>Circuit</code></a> to direct some backend to assign a witness
for a constraint system.</p>
</div></div><div class="item-row"><div class="item-left module-item"><a class="trait" href="trait.Circuit.html" title="halo2_proofs::plonk::Circuit trait">Circuit</a></div><div class="item-right docblock-short"><p>This is a trait that circuits provide implementations for so that the
backend prover can ask the circuit to synthesize using some given
<a href="struct.ConstraintSystem.html" title="ConstraintSystem"><code>ConstraintSystem</code></a> implementation.</p>
</div></div><div class="item-row"><div class="item-left module-item"><a class="trait" href="trait.ColumnType.html" title="halo2_proofs::plonk::ColumnType trait">ColumnType</a></div><div class="item-right docblock-short"><p>A column type</p>
</div></div><div class="item-row"><div class="item-left module-item"><a class="trait" href="trait.FloorPlanner.html" title="halo2_proofs::plonk::FloorPlanner trait">FloorPlanner</a></div><div class="item-right docblock-short"><p>A floor planning strategy for a circuit.</p>
</div></div><div class="item-row"><div class="item-left module-item"><a class="trait" href="trait.VerificationStrategy.html" title="halo2_proofs::plonk::VerificationStrategy trait">VerificationStrategy</a></div><div class="item-right docblock-short"><p>Trait representing a strategy for verifying Halo 2 proofs.</p>
</div></div></div><h2 id="functions" class="small-section-header"><a href="#functions">Functions</a></h2>
<div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.create_proof.html" title="halo2_proofs::plonk::create_proof fn">create_proof</a></div><div class="item-right docblock-short"><p>This creates a proof for the provided <code>circuit</code> when given the public
parameters <code>params</code> and the proving key <a href="struct.ProvingKey.html" title="ProvingKey"><code>ProvingKey</code></a> that was
generated previously for the same circuit. The provided <code>instances</code>
are zero-padded internally.</p>
</div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.keygen_pk.html" title="halo2_proofs::plonk::keygen_pk fn">keygen_pk</a></div><div class="item-right docblock-short"><p>Generate a <code>ProvingKey</code> from a <code>VerifyingKey</code> and an instance of <code>Circuit</code>.</p>
</div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.keygen_vk.html" title="halo2_proofs::plonk::keygen_vk fn">keygen_vk</a></div><div class="item-right docblock-short"><p>Generate a <code>VerifyingKey</code> from an instance of <code>Circuit</code>.</p>
</div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.verify_proof.html" title="halo2_proofs::plonk::verify_proof fn">verify_proof</a></div><div class="item-right docblock-short"><p>Returns a boolean indicating whether or not the proof is valid</p>
</div></div></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-current-crate="halo2_proofs" data-themes="ayu,dark,light" data-resource-suffix="" data-rustdoc-version="1.63.0-nightly (546c826f0 2022-06-12)" ></div>
</body></html>