Skip to content

upright-vc/plumo-verifier

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.

About

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

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 100.0%