fast zksnark prover

Overview

rapidsnark

rapid snark is a zkSnark proof generation written in C++ and intel assembly. That generates proofs created in circom and snarkjs very fast.

dependencies

You should have installed gcc, libsodium, and gmp (development)

In ubuntu:

sudo apt install build-essential
sudo apt-get install libgmp-dev
sudo apt-get install libsodium-dev
sudo apt-get install nasm

compile prover

npm install
git submodule init
git submodule update
npx task createFieldSources
npx task buildProver

Building proof

You have a full prover compiled in the build directory.

So you can replace snarkjs command:

snarkjs groth16 prove <circuit.zkey> <witness.wtns> <proof.json> <public.json>

by this one

./build/prove <circuit.zkey> <witness.wtns> <proof.json> <public.json>

Benchmark

This prover uses intel assembly with ADX extensions and parallelizes as much as it can the proof generation.

The prover is much faster that snarkjs and faster than bellman.

[TODO] Some comparation tests should be done.

License

rapidsnark is part of the iden3 project copyright 2021 0KIMS association and published with GPL-3 license. Please check the COPYING file for more details.

You might also like...
Unofficial third-party implementation of FFD (fast feature detector) published in IEEE TIP 2020.

fast_feature_detector Unofficial third-party implementation of FFD (fast feature detector) published in IEEE TIP 2020. Caution I have not got any perm

SOINN / 聚类 / 无监督聚类 / 快速 / clustering / unsupervised clustering / fast
SOINN / 聚类 / 无监督聚类 / 快速 / clustering / unsupervised clustering / fast

____ ___ ___ _ _ _ _ / ___| / _ \_ _| \ | | \ | | \___ \| | | | || \| | \| | ___) | |_| | || |\ | |\ | |____/ \___/___|_| \_|_| \_| SOIN

CTranslate2 is a fast inference engine for OpenNMT-py and OpenNMT-tf models supporting both CPU and GPU executio

CTranslate2 is a fast inference engine for OpenNMT-py and OpenNMT-tf models supporting both CPU and GPU execution. The goal is to provide comprehensive inference features and be the most efficient and cost-effective solution to deploy standard neural machine translation systems such as Transformer models.

fast face classification
fast face classification

Fast Face Classification (F²C)—— An Efficient Training Approach for Very Large Scale Face Recognition Training on ultra-large-scale datasets is time-c

FG-Net: Fast Large-Scale LiDAR Point Clouds Understanding Network Leveraging Correlated Feature Mining and Geometric-Aware Modelling
FG-Net: Fast Large-Scale LiDAR Point Clouds Understanding Network Leveraging Correlated Feature Mining and Geometric-Aware Modelling

FG-Net: Fast Large-Scale LiDAR Point Clouds Understanding Network Leveraging Correlated Feature Mining and Geometric-Aware Modelling Comparisons of Running Time of Our Method with SOTA methods RandLA and KPConv:

Header-only C++/python library for fast approximate nearest neighbors

Hnswlib - fast approximate nearest neighbor search Header-only C++ HNSW implementation with python bindings. NEWS: Hnswlib is now 0.5.2. Bugfixes - th

An implementation on Fast Ground Segmentation for 3D LiDAR Point Cloud Based on Jump-Convolution-Process.
An implementation on Fast Ground Segmentation for 3D LiDAR Point Cloud Based on Jump-Convolution-Process.

An implementation on "Shen Z, Liang H, Lin L, Wang Z, Huang W, Yu J. Fast Ground Segmentation for 3D LiDAR Point Cloud Based on Jump-Convolution-Process. Remote Sensing. 2021; 13(16):3239. https://doi.org/10.3390/rs13163239"

ESP32/8266 Arduino/PlatformIO library that painlessly enables incredibly fast re-connect to the previous wireless network after deep sleep.

WiFiQuick ESP32/8266 Platformio/Arduino library that painlessly enables incredibly fast re-connect to the previous wireless network after deep sleep.

Fast and robust template matching with majority neighbour similarity and annulus projection transformation
Fast and robust template matching with majority neighbour similarity and annulus projection transformation

A-MNS_TemplateMatching This is the official code for the PatternRecognition2020 paper: Fast and robust template matching with majority neighbour simil

Comments
  • taskfile: Add support for building static binary

    taskfile: Add support for building static binary

    Sometimes it's nice to have a static binary which can be ported to other system. Thus, let's add a special flag for it.

    npx task buildProver -static

    file ./build/prover ./build/prover: ELF 64-bit LSB executable, x86-64, version 1 (GNU/Linux), statically linked , BuildID[sha1]=2a3cf55bdb2a7b7fa463ac76f462307f603f5f9d, for GNU/Linux 3.2.0, not stripped

    Signed-off-by: Jinank Jain [email protected]

    opened by jinankjain 1
  • feat: dockerize for portability

    feat: dockerize for portability

    Problem

    Installing on MacOS is not possible due to dependencies on specific features like:

    • https://stackoverflow.com/a/43505799
    • https://stackoverflow.com/a/53075997

    Solution

    Dockerize it so that it's portable

    opened by gakonst 0
  • Unable to `npm install` in rapidsnark

    Unable to `npm install` in rapidsnark

    I'm in the midst of attempting to install rapidsnark. On the first try, I used node version 16.4.0 and got the following messages:

    [[email protected] rapidsnark]$ npm install
    npm WARN old lockfile 
    npm WARN old lockfile The package-lock.json file was created with an old version of npm,
    npm WARN old lockfile so supplemental metadata must be fetched from the registry.
    npm WARN old lockfile 
    npm WARN old lockfile This is a one-time fix-up, please be patient...
    npm WARN old lockfile 
    
    up to date, audited 18 packages in 1s
    
    3 vulnerabilities (2 low, 1 high)
    
    Some issues need review, and may require choosing
    a different dependency.
    
    Run `npm audit` for details.
    [[email protected] rapidsnark]$ npm audit
    # npm audit report
    
    lodash  <=4.17.20
    Severity: high
    Prototype Pollution - https://npmjs.com/advisories/1523
    Command Injection - https://npmjs.com/advisories/1673
    No fix available
    node_modules/@pawelgalazka/cli/node_modules/lodash
      @pawelgalazka/cli  *
      Depends on vulnerable versions of lodash
      node_modules/@pawelgalazka/cli
        tasksfile  *
        Depends on vulnerable versions of @pawelgalazka/cli
        node_modules/tasksfile
    
    3 vulnerabilities (2 low, 1 high)
    
    Some issues need review, and may require choosing
    a different dependency.
    
    

    then I changed my node version to an LTS (version 14.17.1), and pretty much for the same error:

    [[email protected] rapidsnark]$ npm install
    npm WARN read-shrinkwrap This version of npm is compatible with [email protected], but package-lock.json was generated for [email protected] I'll try to do my best with it!
    updated 17 packages and audited 17 packages in 0.479s
    found 2 vulnerabilities (1 low, 1 high)
      run `npm audit fix` to fix them, or `npm audit` for details
    [[email protected] rapidsnark]$ npm audit fix
    up to date in 0.088s
    fixed 0 of 2 vulnerabilities in 17 scanned packages
      2 vulnerabilities required manual review and could not be updated
    

    I would recommend that these dependencies be updated, unless there is a workaround to getting over these errors.

    opened by Mikerah 0
Owner
iden3
Blockchain-based identity management solution including privacy by design with zkSNARKs
iden3
A light and fast internet speed plugin(DDE).

lfxNet English | 简体中文 | 繁體中文 lfxNet 是一款轻量、快速的实时显示系统资源信息的应用程序。 目录 背景 编译 下载 作者 鸣谢 协议 背景 喜爱 DDE ,为 Deepin 爱好者、也是开发者之一。因习惯其它系统上有一个任务栏网速插件,但在 Deepin/UOS上没有

偕臧 57 Dec 19, 2022
Blazing fast, composable, Pythonic quantile filters.

Rolling Quantiles for NumPy Hyper-efficient and composable filters. Simple, clean, intuitive interface. Supports streaming data or bulk processing. Py

Myrl Marmarelis 126 Dec 13, 2022
Caffe: a fast open framework for deep learning.

Caffe Caffe is a deep learning framework made with expression, speed, and modularity in mind. It is developed by Berkeley AI Research (BAIR)/The Berke

Berkeley Vision and Learning Center 33k Dec 30, 2022
A fast, scalable, high performance Gradient Boosting on Decision Trees library, used for ranking, classification, regression and other machine learning tasks for Python, R, Java, C++. Supports computation on CPU and GPU.

Website | Documentation | Tutorials | Installation | Release Notes CatBoost is a machine learning method based on gradient boosting over decision tree

CatBoost 6.9k Dec 31, 2022
A fast, distributed, high performance gradient boosting (GBT, GBDT, GBRT, GBM or MART) framework based on decision tree algorithms, used for ranking, classification and many other machine learning tasks.

Light Gradient Boosting Machine LightGBM is a gradient boosting framework that uses tree based learning algorithms. It is designed to be distributed a

Microsoft 14.5k Jan 5, 2023
Fast parallel CTC.

In Chinese 中文版 warp-ctc A fast parallel implementation of CTC, on both CPU and GPU. Introduction Connectionist Temporal Classification is a loss funct

Baidu Research 4k Dec 26, 2022
ThunderGBM: Fast GBDTs and Random Forests on GPUs

Documentations | Installation | Parameters | Python (scikit-learn) interface What's new? ThunderGBM won 2019 Best Paper Award from IEEE Transactions o

Xtra Computing Group 648 Dec 16, 2022
ThunderSVM: A Fast SVM Library on GPUs and CPUs

What's new We have recently released ThunderGBM, a fast GBDT and Random Forest library on GPUs. add scikit-learn interface, see here Overview The miss

Xtra Computing Group 1.4k Jan 5, 2023
Fast, differentiable sorting and ranking in PyTorch

Torchsort Fast, differentiable sorting and ranking in PyTorch. Pure PyTorch implementation of Fast Differentiable Sorting and Ranking (Blondel et al.)

Teddy Koker 654 Dec 25, 2022
The official implementation of our CVPR 2021 paper - Hybrid Rotation Averaging: A Fast and Robust Rotation Averaging Approach

Graph Optimizer This repo contains the official implementation of our CVPR 2021 paper - Hybrid Rotation Averaging: A Fast and Robust Rotation Averagin

Chenyu 109 Dec 23, 2022