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.

Issues
  • 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上没有

偕臧 54 Jul 21, 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 121 Jul 21, 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 32.8k Jul 31, 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.7k Aug 2, 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 14k Jul 31, 2022
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 Jul 31, 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 627 Jul 22, 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 Jul 25, 2022
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 612 Jul 30, 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 95 Aug 2, 2022
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

kamino410 12 Feb 17, 2022
SOINN / 聚类 / 无监督聚类 / 快速 / clustering / unsupervised clustering / fast

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

lfs 12 Aug 4, 2022
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.

OpenNMT 315 Aug 8, 2022
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

null 63 Aug 4, 2022
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:

Kangcheng LIU 68 Jun 23, 2022
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

null 2.1k Jul 31, 2022
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"

Wangxu1996 36 Jul 22, 2022
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.

Winford 1 Apr 3, 2022
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

Layjuns 15 Jul 4, 2022