Giter Club home page Giter Club logo

orion's Introduction

Orion: Zero Knowledge Proof with Linear Prover Time

Orion is a high-speed zero-knowledge proof system, that achieves $O(N)$ prover time of field operations and hash functions and $O(\log^2 N)$ proof size.

This repo provides a C++ implmenetation of Orion polynomial commitment, that can be coupled with other proof systems like (Virgo/Ligero/Hyrax/Spartan...) to achieve linear time zero-knowledge proofs.

Note that this library has not received a security review or audit.

Highlights

General Polynomial Commitment

We supports both univariant and multivariant polynomial commitment schemes.

Succinct proof size

The proof size of our system is $O(\log^2 N)$

State-of-the-art performance

We offers the fastest prover that can prove $2^{27}$ coefficients within $100$s in single thread mode.

Expander testing

We offer our expander testing protocol for people to setup their own expander.

Interface

Our main expander generation is defined in linear_code/linear_code_encode.h

Our main PC interface is defined in include/VPD/linearPC.h

To use our protocol, you need to first generate a expander:

int col_size = XXX, row_size = N / col_size;
expander_init(row_size);

Then commit your secret coefficient array using:

auto h = commit(coefs, N);

You can open the polynomial at a given point x using:

auto result = open_and_verify(x, N, h);

Examples and tests

Univariate Polynomial Commitment

Build

cmake .
make linearPC

Code

See examples/univariate_PC_test.cpp

Multivariant Polynomial Commitment

Build

cmake .
make linearPC_multi

code

See examples/multivariate_PC_test.cpp

Under which license is the Orion distributed?

Most of the source and header files in the Orion are licensed under Apache License 2.0, see LICENSE file for details. The exceptions are the following in XKCP library:

orion's People

Contributors

niconiconi avatar starzyp avatar weikengchen avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.