Git Product home page Git Product logo

herald's Introduction

๐Ÿชฝ Herald: SnarkyJS Credential Creation, Issuance & Proving Framework

Welcome to Herald! A SnarkyJS credential creation, Crafting, issuing, and proving digital heralds has never been this enchanting.

Harnessing the might of SnarkyJS, and fortified by Kimchi, Herald empowers you to seamlessly create and manage credentials, delivering unparalleled performance in the realm of Mina's zk-SNARK world. ๐Ÿชถ

Embark on a journey into verifiable credentials and client-side proving. Join our passionate community of contributors! Together, we're pioneering the future of credentials not just within the Mina ecosystem, but throughout Web3.

๐Ÿง™โ€โ™‚๏ธ Unleash the spellbinding capabilities of Herald, your ultimate toolkit for establishing a fortified fortress around digital identity. Embrace the power of SnarkyJS and witness the metamorphosis of the credential ecosystem. Let Herald be the wizard's hat to your magical adventure.

Herald seeks to be compatible with the data model outlined by W3C's Verifiable Credential Data Model. It does so by mapping JSON credential objects to SnarkyJS MerkleMaps. The issuer signs the MerkleMap's root, with that signature a subject can prove arbitrary properties of their credentials privately using ZkPrograms. The resulting proof can then be used for many things, including in smart contracts and other SnarkyJS recursive programs! The possible use-cases are not limited โšก

๐ŸŒŒ Features

  • Craft, Issue, and Prove Credentials ๐ŸŽ“
  • Built upon the power of SnarkyJS ๐Ÿง™โ€โ™‚๏ธ
  • Effortless integration with the Mina ecosystem ๐ŸŒ
  • Comprehensive documentation ๐Ÿ“–
  • Active development and an engaged community ๐ŸŒŸ

๐Ÿ“š Documentation

Navigate through our extensive documentation which covers all facets of Herald:

Benchmarking

Benchmarking is vital in understanding the performance and efficiency of Herald throughout its lifecycle. It gives insights into how efficiently Herald generates and verifies zk-SNARK proofs, crucial for achieving swift, responsive applications.

The benchmark tests are conducted on a Linux-based virtual machine with the following specifications:

  • CPU: An 8-core CPU, perfect for tasks requiring multi-threading.
  • Memory: 32 GB RAM to cater to high-memory demands.
  • Storage: 300 GB SSD for fast data access.
  • OS: The system runs on Ubuntu 22.04, the latest version as of 2022.

Proving Time Benchmarks

Proving Time is a measure of how long it takes to generate a zk-SNARK proof. In Herald, it indicates the speed at which a client can produce a proof for a given rule provided by a challenger. A practical example would be the time it takes for someone to prove they're above 18 using a credential issued by a specific authority.

Swift proving times are pivotal, especially for apps depending on frequent or time-sensitive zk-SNARK proofs. However, proving time can be influenced by numerous factors like computational resources, circuit sizes, and computation complexity. It's essential to understand that different users might have varying efficiency needs. While a sequencer might not require rapid proving times, a wallet aiming for a seamless user experience would.

Verification Time Benchmarks

Verification Time represents the time needed to verify a zk-SNARK proof. It's all about how swiftly a challenger can authenticate proofs given by a subject.

Fast verification times are the backbone of zk-SNARK reliant systems. They guarantee quick confirmations, fostering real-time responsiveness in applications. Ideally, zk-SNARK verification should be ๐Ÿ”ฅ blazing ๐Ÿ”ฅ fast!

Proof Size Benchmarks

Proof Size denotes the storage space occupied by a zk-SNARK proof. This benchmark evaluates Herald's prowess in producing compact proofs - a trait zk-SNARKs are inherently known for! ๐Ÿ”Ž

Proof size is a critical factor, especially considering storage and transmission. Concise proofs lead to reduced storage demands and swifter transmission, crafting more scalable and efficient apps and interactions.

To stay updated with Herald's benchmarking progress and insights, visit our Benchmark Page.

Run Benchmarks Yourself ๐Ÿš€

To run the benchmarks yourself, from the root:

pnpm i && pnpm build && pnpm run benchmark

๐Ÿค Contribute

Herald thrives with the combined magic of our community wizards. We welcome contributors with open arms. For more details, check out our contributing guide.

๐Ÿ“– License

This project is licensed under the Apache 2.0 license.

See LICENSE for more information.

Happy building! โค๏ธ

Contributors โœจ

Thanks goes to these wonderful people (emoji key):

Teddy Pender
Teddy Pender

๐Ÿ’ป
Tomek Marciniak
Tomek Marciniak

๐Ÿ’ป

herald's People

Contributors

actions-user avatar allcontributors[bot] avatar mrcnk avatar teddyjfpender avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.