23 research outputs found

    EdMSM: Multi-Scalar-Multiplication for SNARKs and Faster Montgomery multiplication

    Get PDF
    The bottleneck in the proving algorithm of most of elliptic-curve-based SNARK proof systems is the Multi-Scalar-Multiplication (MSM) algorithm. In this paper we give an overview of a variant of the Pippenger MSM algorithm together with a set of optimizations tailored for curves that admit a twisted Edwards form. We prove that this is the case for SNARK-friendly chains and cycles of elliptic curves, which are useful for recursive constructions. Our contribution is twofold: first, we optimize the arithmetic of finite fields by improving on the well-known Coarsely Integrated Operand Scanning (CIOS) modular multiplication. This is a contribution of independent interest that applies to many different contexts. Second, we propose a new coordinate system for twisted Edwards curves tailored for the Pippenger MSM algorithm. Accelerating the MSM over these curves is critical for deployment of recursive proof systems applications such as proof-carrying-data, blockchain rollups and blockchain light clients. We implement our work in Go and benchmark it on two different CPU architectures (x86 and arm64). We show that our implementation achieves a 40-47% speedup over the state-of-the-art implementation (which was implemented in Rust). This MSM implementation won the first place in the ZPrize competition in the open division “Accelerating MSM on Mobile” and will be deployed in two real-world applications: Linea zkEVM by ConsenSys and probably Celo network

    Organic food consumption and eating habit in Morocco, Algeria, and Tunisia during the COVID-19 pandemic lockdown

    Get PDF
    The purpose of the current study is to understand how the COVID-19 pandemic has affected eating behavior and directed toward organic food and bioproducts consumption in the North African region especially Morocco, Algeria, and Tunisia as well as identify the variables that may affect the eating behavior of these population. Data were collected using an anonymous online survey on 1,244 respondents from Morocco, Algeria, and Tunisia. The results showed that the confinement did influence the consumption of healthy food to enhance people’s immune system so as to prevent infection by the COVID-19, and other diseases. Moreover, academic level, gender, and country of residence were diversely correlated with the eating behavior during COVID-19 confinement. The understanding of people’s eating behavior will help the public health to reshape future policies toward organic and bio-based food production; moreover, some further nutritional recommendations could be concluded to maintain a global better health status and improve body defence mechanism.info:eu-repo/semantics/publishedVersio

    L'arithmétique des systèmes de preuves à base de couplage

    No full text
    A proof system is a protocol where one party (called the prover) tries to convince another party (called the verifier) that a given statement is true. In the class of non-interactive proof systems, a particularly interesting concept for proving the computational integrity is the Succinct Non-interactive ARgument of Knowledge (SNARK). It provides a computationally sound proof, cheap to verify and small compared to the size of the statement or the witness. Bilinear pairings over elliptic curves have become key ingredients for instantiating such SNARKs.In this thesis we investigate tailored pairing-friendly elliptic curves to efficiently implement SNARKs. We present a study at three stages of the process: curves to instantiate a SNARK, curves to instantiate a recursive SNARK, and also curves to express an elliptic-curve related statement. We provide new constructions of curves for SNARKs and new families of 2-chain curves for recursive SNARKs. We derive and implement in open-source efficient algorithms to speed up the arithmetic on these curves: Co-factor clearing, subgroup membership testing, multi-scalar multiplication and pairings over 2-chains. We also study and optimize elliptic curves arithmetic and pairings as a SNARK statement, yielding to the fastest recursive proof generation in pairing-based settings.Un système de preuve est un protocole où une partie (appelée le prouveur) essaie de convaincre une autre partie (appelée le vérifieur) qu'un énoncé donné est vrai. Dans la classe des systèmes de preuve non interactifs, un concept intéressant pour prouver l'intégrité de calcul est le "Succinct Non-interactive ARgument of Knowledge" (SNARK). Il fournit une preuve calculatoirement solide, peu coûteuse à vérifier et petite de taille par rapport à la taille de l'énoncé ou du témoin. Les couplages bilinéaires sur des courbes elliptiques sont devenus des ingrédients clés pour instancier de tels SNARKs.Dans cette thèse nous étudions des courbes elliptiques à couplage efficace adaptées à ce type de SNARKs. Nous présentons une étude à trois étapes du processus: Des courbes pour instancier un SNARK, des courbes pour instancier un SNARK récursif, et également des courbes pour exprimer un énoncé lié à l'arithmétique sur la courbe elliptique. Nous fournissons de nouvelles constructions de courbes pour les SNARK et de nouvelles familles de 2-chaînes de courbes pour les SNARKs récursifs. Nous dérivons et implémentons en open-source des algorithmes efficaces pour accélérer l'arithmétique sur ces courbes: Effacement des cofacteurs, test d'appartenance aux sous-groupes, multiplication multi-scalaire et couplage sur les 2-chaînes. Nous étudions et optimisons également l'arithmétique des courbes elliptiques et le couplage bilinéaire en tant qu'énoncés SNARK à prouver, permettant de générer rapidement une preuve récursive

    L'arithmétique des systèmes de preuves à base de couplage

    No full text
    A proof system is a protocol where one party (called the prover) tries to convince another party (called the verifier) that a given statement is true. In the class of non-interactive proof systems, a particularly interesting concept for proving the computational integrity is the Succinct Non-interactive ARgument of Knowledge (SNARK). It provides a computationally sound proof, cheap to verify and small compared to the size of the statement or the witness. Bilinear pairings over elliptic curves have become key ingredients for instantiating such SNARKs.In this thesis we investigate tailored pairing-friendly elliptic curves to efficiently implement SNARKs. We present a study at three stages of the process: curves to instantiate a SNARK, curves to instantiate a recursive SNARK, and also curves to express an elliptic-curve related statement. We provide new constructions of curves for SNARKs and new families of 2-chain curves for recursive SNARKs. We derive and implement in open-source efficient algorithms to speed up the arithmetic on these curves: Co-factor clearing, subgroup membership testing, multi-scalar multiplication and pairings over 2-chains. We also study and optimize elliptic curves arithmetic and pairings as a SNARK statement, yielding to the fastest recursive proof generation in pairing-based settings.Un système de preuve est un protocole où une partie (appelée le prouveur) essaie de convaincre une autre partie (appelée le vérifieur) qu'un énoncé donné est vrai. Dans la classe des systèmes de preuve non interactifs, un concept intéressant pour prouver l'intégrité de calcul est le "Succinct Non-interactive ARgument of Knowledge" (SNARK). Il fournit une preuve calculatoirement solide, peu coûteuse à vérifier et petite de taille par rapport à la taille de l'énoncé ou du témoin. Les couplages bilinéaires sur des courbes elliptiques sont devenus des ingrédients clés pour instancier de tels SNARKs.Dans cette thèse nous étudions des courbes elliptiques à couplage efficace adaptées à ce type de SNARKs. Nous présentons une étude à trois étapes du processus: Des courbes pour instancier un SNARK, des courbes pour instancier un SNARK récursif, et également des courbes pour exprimer un énoncé lié à l'arithmétique sur la courbe elliptique. Nous fournissons de nouvelles constructions de courbes pour les SNARK et de nouvelles familles de 2-chaînes de courbes pour les SNARKs récursifs. Nous dérivons et implémentons en open-source des algorithmes efficaces pour accélérer l'arithmétique sur ces courbes: Effacement des cofacteurs, test d'appartenance aux sous-groupes, multiplication multi-scalaire et couplage sur les 2-chaînes. Nous étudions et optimisons également l'arithmétique des courbes elliptiques et le couplage bilinéaire en tant qu'énoncés SNARK à prouver, permettant de générer rapidement une preuve récursive

    L'arithmétique des systèmes de preuves à base de couplage

    No full text
    Un système de preuve est un protocole où une partie (appelée le prouveur) essaie de convaincre une autre partie (appelée le vérifieur) qu'un énoncé donné est vrai. Dans la classe des systèmes de preuve non interactifs, un concept intéressant pour prouver l'intégrité de calcul est le "Succinct Non-interactive ARgument of Knowledge" (SNARK). Il fournit une preuve calculatoirement solide, peu coûteuse à vérifier et petite de taille par rapport à la taille de l'énoncé ou du témoin. Les couplages bilinéaires sur des courbes elliptiques sont devenus des ingrédients clés pour instancier de tels SNARKs.Dans cette thèse nous étudions des courbes elliptiques à couplage efficace adaptées à ce type de SNARKs. Nous présentons une étude à trois étapes du processus: Des courbes pour instancier un SNARK, des courbes pour instancier un SNARK récursif, et également des courbes pour exprimer un énoncé lié à l'arithmétique sur la courbe elliptique. Nous fournissons de nouvelles constructions de courbes pour les SNARK et de nouvelles familles de 2-chaînes de courbes pour les SNARKs récursifs. Nous dérivons et implémentons en open-source des algorithmes efficaces pour accélérer l'arithmétique sur ces courbes: Effacement des cofacteurs, test d'appartenance aux sous-groupes, multiplication multi-scalaire et couplage sur les 2-chaînes. Nous étudions et optimisons également l'arithmétique des courbes elliptiques et le couplage bilinéaire en tant qu'énoncés SNARK à prouver, permettant de générer rapidement une preuve récursive.A proof system is a protocol where one party (called the prover) tries to convince another party (called the verifier) that a given statement is true. In the class of non-interactive proof systems, a particularly interesting concept for proving the computational integrity is the Succinct Non-interactive ARgument of Knowledge (SNARK). It provides a computationally sound proof, cheap to verify and small compared to the size of the statement or the witness. Bilinear pairings over elliptic curves have become key ingredients for instantiating such SNARKs.In this thesis we investigate tailored pairing-friendly elliptic curves to efficiently implement SNARKs. We present a study at three stages of the process: curves to instantiate a SNARK, curves to instantiate a recursive SNARK, and also curves to express an elliptic-curve related statement. We provide new constructions of curves for SNARKs and new families of 2-chain curves for recursive SNARKs. We derive and implement in open-source efficient algorithms to speed up the arithmetic on these curves: Co-factor clearing, subgroup membership testing, multi-scalar multiplication and pairings over 2-chains. We also study and optimize elliptic curves arithmetic and pairings as a SNARK statement, yielding to the fastest recursive proof generation in pairing-based settings

    Pairings in Rank-1 Constraint Systems

    No full text
    International audienceBilinear pairings have been used in different cryptographic applications and demonstrated to be a key building block for a plethora of constructions. In particular, some Succinct Non-interactive ARguments of Knowledge (SNARKs) have very short proofs and very fast verification thanks to a multi-pairing computation. This succinctness makes pairing-based SNARKs suitable for proof recursion, that is proofs verifying other proofs. In this scenario one requires to express efficiently a multi-pairing computation as a SNARK arithmetic circuit. Other compelling applications such as verifying Boneh-Lynn-Shacham (BLS) signatures or Kate-Zaverucha-Goldberg (KZG) polynomial commitment opening in a SNARK fall into the same requirement. The implementation of pairings is challenging but the literature has very detailed approaches on how to reach practical and optimized implementations in different contexts and for different target environments. However, to the best of our knowledge, no previous publication has addressed the question of efficiently implementing a pairing as a SNARK arithmetic circuit. In this work, we consider efficiently implementing pairings in Rank-1 Constraint Systems (R1CS), a widely used model to express SNARK statements. We implement our techniques in the gnark open-source ecosystem and show that the arithmetic circuit depth can be almost halved compared to the previously best known pairing implementation on a Barreto-Lynn-Scott (BLS) curve of embedding degree 12, resulting in a significantly faster proving time. We also investigate and implement the case of BLS curves of embedding degree 24
    corecore