Node.js module for verifying Plumo proofs and reading states based on it

Overview

plumo-verifier

Node.js module for verifying Plumo proofs and reading states based on it.

Plumo is a SNARK-based light client verifier for the Celo blockchain. Plumo proves the evolution of the validator set through the election process on epoch blocks, which happen once a day. Creating Plumo proofs is possible since the Donut hardfork, in which CIP-22 was activated, enablding Plumo proofs since epoch 393.

Using Plumo, one can verify the validity of block headers, and as a consequence read verified data from state or transaction roots, such as balances or NFT ownership details.

A two phase Groth16 setup has been performed for Plumo, resulting in a proving and verification keys.

A persistent prover is operated by us and is serving proofs, created after each epoch change. See the example code on how to fetch proofs, verify them and obtain your verified token balance.

Example

node --experimental-wasm-modules examples/check_balance.js

Tasks to pick up

  • Direct catch-up when the Plumo proof is being generated after an epoch change - download the latest epoch proof, the next epoch block, verify the signature and update the validator set.
  • Optimize multiple epoch proofs through receiving just "glue" hashes instead of the entire validator sets.
  • Batch verification of Groth16 signatures.
  • Support more kinds of queries - e.g. NFT ownership.
You might also like...

zkPoB is a mobile compatible tool that lets anyone prove they own a Bufficorn (or any NFT) without revealing which Buffi they own or the address they are verifying themselves with

zkPoB is a mobile compatible tool that lets anyone prove they own a Bufficorn (or any NFT) without revealing which Buffi they own or the address they are verifying themselves with

zkPoB is a mobile compatible tool that lets anyone prove they own a Bufficorn (or any NFT) without revealing which Buffi they own or the address they are verifying themselves with

Aug 25, 2022

Container Image Signing & Verifying on Ethereum [Testnet]

Container Image Signing & Verifying on Ethereum [Testnet]

cosigneth An experimental decentralized application for storing and verifying container image signatures as an NFT on Ethereum cosigneth, is a decentr

Jul 4, 2022

Dapp example for airdropping ERC-20 tokens using World ID, preserving privacy for the claimers with zero-knowledge proofs.

World ID Example - Mesha Airdrop This repository contains an example decentralized application (dapp) for World ID. With Mesha Airdrop test airdroppin

Dec 16, 2022

2FA with Zero-Knowledge proofs

2FA with Zero-Knowledge proofs

zkAuth 🗝️ 🔗 Zero-Knowledge protected onchain two-factor Authentication This project provides 2FA for EVM blockchains, compatible with the broadly ad

Dec 26, 2022

Promise-based utility to control modal states in React

Promise-based utility to control modal states in React

Promise-based utility to control modal states in React Zero-dependency library that easily integrates with your existing UI components and allows you

Dec 5, 2022

Awesome TV is the First and Original streaming entertainment network for Global Africa from United States of America (USA).

Awesome TV is the First and Original streaming entertainment network for Global Africa from United States of America (USA).

LEADBOARD APP Awesome TV is the First and Original streaming entertainment network for Global Africa from United States of America (USA). Built With H

Apr 4, 2022

Search, fetch, and get data regarding United States presidents.

us-presidents Search, fetch, and get data regarding United States presidents. GitHub Documention Discord Examples Installation NPM npm install us-pres

May 7, 2022

Mailbox is the predictable states & transitions container for actors.

Mailbox is the predictable states & transitions container for actors.

Mailbox (turns XState Machine into a REAL Actor) Mailbox is an NPM module built on top of the XState machine, by adding a message queue to the XState

Aug 24, 2022

Userland module that implements the module path mapping that Node.js does with "exports" in package.json

exports-map Userland module that implements the module path mapping that Node.js does with "exports" in package.json npm install exports-map Usage co

May 31, 2022
Owner
Celo
Celo
Firefox Extension for Smart Reading - Bionic Reading

Smart Reader - Bionic Reading Smart Reader or Bionic reading is a way to keep our focus on the web. The fact that the beginnings of words are bolded,

Poucous 27 Dec 17, 2022
Grupprojekt för kurserna 'Javascript med Ramverk' och 'Agil Utveckling'

JavaScript-med-Ramverk-Laboration-3 Grupprojektet för kurserna Javascript med Ramverk och Agil Utveckling. Utvecklingsguide För information om hur utv

Svante Jonsson IT-Högskolan 3 May 18, 2022
Hemsida för personer i Sverige som kan och vill erbjuda boende till människor på flykt

Getting Started with Create React App This project was bootstrapped with Create React App. Available Scripts In the project directory, you can run: np

null 4 May 3, 2022
Kurs-repo för kursen Webbserver och Databaser

Webbserver och databaser This repository is meant for CME students to access exercises and codealongs that happen throughout the course. I hope you wi

null 14 Jan 3, 2023
Digital Identifier is a secure, decentralized, anonymous and tampered proof way of maintaining and verifying all essential identity-based documents to create a unique digital identity of a person.

Digital Identifier ?? To design and develop a secure, decentralized, anonymous and tampered proof way of maintaining and verifying all essential ident

Mukul Kolpe 4 Dec 17, 2022
An npm package for demonstration purposes using TypeScript to build for both the ECMAScript Module format (i.e. ESM or ES Module) and CommonJS Module format. It can be used in Node.js and browser applications.

An npm package for demonstration purposes using TypeScript to build for both the ECMAScript Module format (i.e. ESM or ES Module) and CommonJS Module format. It can be used in Node.js and browser applications.

Snyk Labs 57 Dec 28, 2022
Solidity NFT whitelist contract example using MerkleTree.js for constructing merkle root and merkle proofs.

MerkleTree.js Solidity NFT Whitelist example Allow NFT minting only to whitelisted accounts by verifying merkle proof in Solidity contract. Merkle roo

Miguel Mota 65 Dec 29, 2022
FIXYL is a tool for testing and verifying software that uses the FIX protocol.

FIXYL FIXYL is a tool for testing and verifying software that uses the FIX protocol. It allows establishing FIX sessions and exchanging (and manipulat

Yaala Labs 22 Dec 29, 2022
Groth16 proofs are very popular and are used by many protocols in production.

Geometry presents: the Groth16 Malleability Challenge Preamble Groth16 proofs are very popular and are used by many protocols in production. Libraries

Geometry 39 Dec 14, 2022
The zkPass browser extension can proxy three parties TLS and generate zero-knowledge proofs

zkPass Extension zkPass a Chromium extension which can proxy three parties TLS and generate zero-knowledge proofs. Technology Dependence Multi-party c

zkPass 9 Nov 1, 2022