mirror of
https://github.com/arnaucube/hyperplonk.git
synced 2026-01-12 08:51:33 +01:00
open source under MIT license
This commit is contained in:
@@ -1,3 +1,9 @@
|
||||
// Copyright (c) 2023 Espresso Systems (espressosys.com)
|
||||
// This file is part of the HyperPlonk library.
|
||||
|
||||
// You should have received a copy of the MIT License
|
||||
// along with the HyperPlonk library. If not, see <https://mit-license.org/>.
|
||||
|
||||
pub mod pcs;
|
||||
pub mod poly_iop;
|
||||
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
// Copyright (c) 2022 Espresso Systems (espressosys.com)
|
||||
// This file is part of the Jellyfish library.
|
||||
// Copyright (c) 2023 Espresso Systems (espressosys.com)
|
||||
// This file is part of the HyperPlonk library.
|
||||
|
||||
// You should have received a copy of the MIT License
|
||||
// along with the Jellyfish library. If not, see <https://mit-license.org/>.
|
||||
// along with the HyperPlonk library. If not, see <https://mit-license.org/>.
|
||||
|
||||
//! Error module.
|
||||
|
||||
|
||||
@@ -1,3 +1,9 @@
|
||||
// Copyright (c) 2023 Espresso Systems (espressosys.com)
|
||||
// This file is part of the HyperPlonk library.
|
||||
|
||||
// You should have received a copy of the MIT License
|
||||
// along with the HyperPlonk library. If not, see <https://mit-license.org/>.
|
||||
|
||||
mod errors;
|
||||
mod multilinear_kzg;
|
||||
mod structs;
|
||||
|
||||
@@ -1,3 +1,9 @@
|
||||
// Copyright (c) 2023 Espresso Systems (espressosys.com)
|
||||
// This file is part of the HyperPlonk library.
|
||||
|
||||
// You should have received a copy of the MIT License
|
||||
// along with the HyperPlonk library. If not, see <https://mit-license.org/>.
|
||||
|
||||
//! Sumcheck based batch opening and verify commitment.
|
||||
// TODO: refactoring this code to somewhere else
|
||||
// currently IOP depends on PCS because perm check requires commitment.
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
// Copyright (c) 2022 Espresso Systems (espressosys.com)
|
||||
// This file is part of the Jellyfish library.
|
||||
// Copyright (c) 2023 Espresso Systems (espressosys.com)
|
||||
// This file is part of the HyperPlonk library.
|
||||
|
||||
// You should have received a copy of the MIT License
|
||||
// along with the Jellyfish library. If not, see <https://mit-license.org/>.
|
||||
// along with the HyperPlonk library. If not, see <https://mit-license.org/>.
|
||||
|
||||
//! Main module for multilinear KZG commitment scheme
|
||||
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
// Copyright (c) 2022 Espresso Systems (espressosys.com)
|
||||
// This file is part of the Jellyfish library.
|
||||
// Copyright (c) 2023 Espresso Systems (espressosys.com)
|
||||
// This file is part of the HyperPlonk library.
|
||||
|
||||
// You should have received a copy of the MIT License
|
||||
// along with the Jellyfish library. If not, see <https://mit-license.org/>.
|
||||
// along with the HyperPlonk library. If not, see <https://mit-license.org/>.
|
||||
|
||||
//! Implementing Structured Reference Strings for multilinear polynomial KZG
|
||||
use crate::pcs::{
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
// Copyright (c) 2022 Espresso Systems (espressosys.com)
|
||||
// This file is part of the Jellyfish library.
|
||||
// Copyright (c) 2023 Espresso Systems (espressosys.com)
|
||||
// This file is part of the HyperPlonk library.
|
||||
|
||||
// You should have received a copy of the MIT License
|
||||
// along with the Jellyfish library. If not, see <https://mit-license.org/>.
|
||||
// along with the HyperPlonk library. If not, see <https://mit-license.org/>.
|
||||
|
||||
//! Useful utilities for KZG PCS
|
||||
use ark_ff::PrimeField;
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
// Copyright (c) 2022 Espresso Systems (espressosys.com)
|
||||
// This file is part of the Jellyfish library.
|
||||
// Copyright (c) 2023 Espresso Systems (espressosys.com)
|
||||
// This file is part of the HyperPlonk library.
|
||||
|
||||
// You should have received a copy of the MIT License
|
||||
// along with the Jellyfish library. If not, see <https://mit-license.org/>.
|
||||
// along with the HyperPlonk library. If not, see <https://mit-license.org/>.
|
||||
|
||||
//! Prelude
|
||||
pub use crate::pcs::{
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
// Copyright (c) 2022 Espresso Systems (espressosys.com)
|
||||
// This file is part of the Jellyfish library.
|
||||
// Copyright (c) 2023 Espresso Systems (espressosys.com)
|
||||
// This file is part of the HyperPlonk library.
|
||||
|
||||
// You should have received a copy of the MIT License
|
||||
// along with the Jellyfish library. If not, see <https://mit-license.org/>.
|
||||
// along with the HyperPlonk library. If not, see <https://mit-license.org/>.
|
||||
|
||||
use ark_ec::PairingEngine;
|
||||
use ark_serialize::{CanonicalDeserialize, CanonicalSerialize, Read, SerializationError, Write};
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
// Copyright (c) 2022 Espresso Systems (espressosys.com)
|
||||
// This file is part of the Jellyfish library.
|
||||
// Copyright (c) 2023 Espresso Systems (espressosys.com)
|
||||
// This file is part of the HyperPlonk library.
|
||||
|
||||
// You should have received a copy of the MIT License
|
||||
// along with the Jellyfish library. If not, see <https://mit-license.org/>.
|
||||
// along with the HyperPlonk library. If not, see <https://mit-license.org/>.
|
||||
|
||||
//! Main module for univariate KZG commitment scheme
|
||||
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
// Copyright (c) 2022 Espresso Systems (espressosys.com)
|
||||
// This file is part of the Jellyfish library.
|
||||
// Copyright (c) 2023 Espresso Systems (espressosys.com)
|
||||
// This file is part of the HyperPlonk library.
|
||||
|
||||
// You should have received a copy of the MIT License
|
||||
// along with the Jellyfish library. If not, see <https://mit-license.org/>.
|
||||
// along with the HyperPlonk library. If not, see <https://mit-license.org/>.
|
||||
|
||||
//! Implementing Structured Reference Strings for univariate polynomial KZG
|
||||
|
||||
|
||||
@@ -1,3 +1,9 @@
|
||||
// Copyright (c) 2023 Espresso Systems (espressosys.com)
|
||||
// This file is part of the HyperPlonk library.
|
||||
|
||||
// You should have received a copy of the MIT License
|
||||
// along with the HyperPlonk library. If not, see <https://mit-license.org/>.
|
||||
|
||||
//! Error module.
|
||||
|
||||
use crate::pcs::prelude::PCSError;
|
||||
|
||||
@@ -1,3 +1,9 @@
|
||||
// Copyright (c) 2023 Espresso Systems (espressosys.com)
|
||||
// This file is part of the HyperPlonk library.
|
||||
|
||||
// You should have received a copy of the MIT License
|
||||
// along with the HyperPlonk library. If not, see <https://mit-license.org/>.
|
||||
|
||||
use ark_ff::PrimeField;
|
||||
use std::marker::PhantomData;
|
||||
|
||||
|
||||
@@ -1,3 +1,9 @@
|
||||
// Copyright (c) 2023 Espresso Systems (espressosys.com)
|
||||
// This file is part of the HyperPlonk library.
|
||||
|
||||
// You should have received a copy of the MIT License
|
||||
// along with the HyperPlonk library. If not, see <https://mit-license.org/>.
|
||||
|
||||
//! Main module for the Permutation Check protocol
|
||||
|
||||
use self::util::computer_nums_and_denoms;
|
||||
|
||||
@@ -1,3 +1,9 @@
|
||||
// Copyright (c) 2023 Espresso Systems (espressosys.com)
|
||||
// This file is part of the HyperPlonk library.
|
||||
|
||||
// You should have received a copy of the MIT License
|
||||
// along with the HyperPlonk library. If not, see <https://mit-license.org/>.
|
||||
|
||||
//! This module implements useful functions for the permutation check protocol.
|
||||
|
||||
use crate::poly_iop::errors::PolyIOPErrors;
|
||||
|
||||
@@ -1,3 +1,9 @@
|
||||
// Copyright (c) 2023 Espresso Systems (espressosys.com)
|
||||
// This file is part of the HyperPlonk library.
|
||||
|
||||
// You should have received a copy of the MIT License
|
||||
// along with the HyperPlonk library. If not, see <https://mit-license.org/>.
|
||||
|
||||
pub use crate::poly_iop::{
|
||||
errors::PolyIOPErrors, perm_check::PermutationCheck, prod_check::ProductCheck,
|
||||
structs::IOPProof, sum_check::SumCheck, utils::*, zero_check::ZeroCheck, PolyIOP,
|
||||
|
||||
@@ -1,3 +1,9 @@
|
||||
// Copyright (c) 2023 Espresso Systems (espressosys.com)
|
||||
// This file is part of the HyperPlonk library.
|
||||
|
||||
// You should have received a copy of the MIT License
|
||||
// along with the HyperPlonk library. If not, see <https://mit-license.org/>.
|
||||
|
||||
//! Main module for the Product Check protocol
|
||||
|
||||
use crate::{
|
||||
|
||||
@@ -1,3 +1,9 @@
|
||||
// Copyright (c) 2023 Espresso Systems (espressosys.com)
|
||||
// This file is part of the HyperPlonk library.
|
||||
|
||||
// You should have received a copy of the MIT License
|
||||
// along with the HyperPlonk library. If not, see <https://mit-license.org/>.
|
||||
|
||||
//! This module implements useful functions for the product check protocol.
|
||||
|
||||
use crate::poly_iop::{errors::PolyIOPErrors, structs::IOPProof, zero_check::ZeroCheck, PolyIOP};
|
||||
|
||||
@@ -1,3 +1,9 @@
|
||||
// Copyright (c) 2023 Espresso Systems (espressosys.com)
|
||||
// This file is part of the HyperPlonk library.
|
||||
|
||||
// You should have received a copy of the MIT License
|
||||
// along with the HyperPlonk library. If not, see <https://mit-license.org/>.
|
||||
|
||||
//! This module defines structs that are shared by all sub protocols.
|
||||
|
||||
use arithmetic::VirtualPolynomial;
|
||||
|
||||
@@ -1,3 +1,9 @@
|
||||
// Copyright (c) 2023 Espresso Systems (espressosys.com)
|
||||
// This file is part of the HyperPlonk library.
|
||||
|
||||
// You should have received a copy of the MIT License
|
||||
// along with the HyperPlonk library. If not, see <https://mit-license.org/>.
|
||||
|
||||
//! This module implements the sum check protocol.
|
||||
|
||||
use crate::poly_iop::{
|
||||
|
||||
@@ -1,3 +1,9 @@
|
||||
// Copyright (c) 2023 Espresso Systems (espressosys.com)
|
||||
// This file is part of the HyperPlonk library.
|
||||
|
||||
// You should have received a copy of the MIT License
|
||||
// along with the HyperPlonk library. If not, see <https://mit-license.org/>.
|
||||
|
||||
//! Prover subroutines for a SumCheck protocol.
|
||||
|
||||
use super::SumCheckProver;
|
||||
|
||||
@@ -1,3 +1,9 @@
|
||||
// Copyright (c) 2023 Espresso Systems (espressosys.com)
|
||||
// This file is part of the HyperPlonk library.
|
||||
|
||||
// You should have received a copy of the MIT License
|
||||
// along with the HyperPlonk library. If not, see <https://mit-license.org/>.
|
||||
|
||||
//! Verifier subroutines for a SumCheck protocol.
|
||||
|
||||
use super::{SumCheckSubClaim, SumCheckVerifier};
|
||||
|
||||
@@ -1,3 +1,9 @@
|
||||
// Copyright (c) 2023 Espresso Systems (espressosys.com)
|
||||
// This file is part of the HyperPlonk library.
|
||||
|
||||
// You should have received a copy of the MIT License
|
||||
// along with the HyperPlonk library. If not, see <https://mit-license.org/>.
|
||||
|
||||
//! useful macros.
|
||||
|
||||
/// Takes as input a struct, and converts them to a series of bytes. All traits
|
||||
|
||||
@@ -1,3 +1,9 @@
|
||||
// Copyright (c) 2023 Espresso Systems (espressosys.com)
|
||||
// This file is part of the HyperPlonk library.
|
||||
|
||||
// You should have received a copy of the MIT License
|
||||
// along with the HyperPlonk library. If not, see <https://mit-license.org/>.
|
||||
|
||||
//! Main module for the ZeroCheck protocol.
|
||||
|
||||
use std::fmt::Debug;
|
||||
|
||||
Reference in New Issue
Block a user