Skip to main content

Python library for ethsnarks

Project description

EthSnarks

Join the chat at https://gitter.im/ethsnarks

Zero-Knowledge proofs are coming to Ethereum and Dapps in 2019!

EthSnarks is a collection of zkSNARK circuits and supporting libraries to use them with Ethereum smart contracts, it aims to help solve one of the biggest problems facing zkSNARKS on Ethereum - cross-platform on desktop, mobile and in-browser, cheap enough to run on-chain, and with algorithms that significantly reduces the time it takes to run the prover.

The notable advantages of using EthSnarks are:

  • Reduced cost, 500k gas with 1 input, using Groth16.
  • Prove zkSNARKs in-browser, with WebAssembly and Emscripten
  • Linux, Mac and Windows builds
  • Solidity, Python and C++ support in one place
  • A growing library of gadgets and algorithms

EthSnarks is participating in the Ethereum Foundation's grants program, development will continue full-time and we will be working with companies and developers to help overcome the common challenges and hurdles that we all face. Get in-touch for more information.

WARNING: EthSnarks is beta quality software, improvements and fixes are made frequently, and documentation doesn't yet exist

Examples

Building

Build Status Build status

Unix Flavours (Linux, OSX, Ubuntu, CentOS etc.)

The following dependencies are required to build Ethsnarks:

  • cmake
  • g++ or clang++
  • gmp
  • npm / nvm

Check-out the source-code using:

git clone git@github.com:HarryR/ethsnarks.git && cd ethsnarks

After checking-out the repository you need to install the necessary dependencies, the Makefile includes pre-determined rules for different platforms, you need to run this as root or an administrator user (i.e. for Brew on OSX):

  • make fedora-dependencies (CentOS, Fedora, RHEL etc. requires dnf)
  • make ubuntu-dependencies (Ubuntu, Debian etc. requires apt-get)
  • make mac-dependencies (OSX, requires Homebrew)

Then install the Python dependencies, via Pip, into the local user directory:

  • make python-dependencies

Then build and test the project:

  • git submodule update --init --recursive
  • make

Windows (64-bit)

Install MSYS2 from https://www.msys2.org/ then open the MSYS2 Shell and run:

pacman --noconfirm -S make gmp gmp-devel gcc git cmake
git clone git@github.com:HarryR/ethsnarks.git
cd ethsnarks
git submodule update --init --recursive
cmake -E make_directory build
cmake -E chdir build cmake -DCMAKE_BUILD_TYPE=Debug ..
cmake --build build

Building under 32-bit MinGW32, MSYS (not MSYS2) and Microsoft Visual Studio may be supported in future depending upon demand, but currently it's probably broken...

WASM / Browser

WebAssembly, WASM and JavaScript builds are partially supported via ethsnarks-emscripten and ethsnarks-cheerp. The build process is similar, but using the Emscripten and Cheerp toolchains.

Requests and Contributions

This project aims to help create an ecosystem where a small number of well tested but simple zkSNARK circuits can be easily integrated into your project without having to do all of the work up-front.

If you have any ideas for new components, please Open an issue, or submit a pull request.

Gadgets

We are surely increasing the range of gadgets, supporting libraries, available documentation and examples; at the moment the best way to find out how to use something is to dig into the code or ask questions via a new issue

The following gadgets are available

Maintainers

@HarryR

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

py-ethsnarks-0.0.2.tar.gz (56.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

py_ethsnarks-0.0.2-py3-none-any.whl (47.2 kB view details)

Uploaded Python 3

File details

Details for the file py-ethsnarks-0.0.2.tar.gz.

File metadata

  • Download URL: py-ethsnarks-0.0.2.tar.gz
  • Upload date:
  • Size: 56.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.3

File hashes

Hashes for py-ethsnarks-0.0.2.tar.gz
Algorithm Hash digest
SHA256 4f2d9a9e68646904ee0c537e173b24a7dd1508ac0850d9d025f50eedb71d1e41
MD5 f9ed38710aec77b6cf77d0e9effa2b47
BLAKE2b-256 ae32d5bb095e8df26eef8b45b7c13af203f8b7bcfb365c82fe5b2289072faecd

See more details on using hashes here.

File details

Details for the file py_ethsnarks-0.0.2-py3-none-any.whl.

File metadata

  • Download URL: py_ethsnarks-0.0.2-py3-none-any.whl
  • Upload date:
  • Size: 47.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.3

File hashes

Hashes for py_ethsnarks-0.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 15f11df3cef9ab899d5b1f2f68348e3b1960b25dbb7aac5854f69e0cf7af716a
MD5 da47ec56a5141e595161879bf497fff8
BLAKE2b-256 1c0b59eed1deb29534c19bb5e2fa4957669c12a2f1142b57800b8083b866683c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page