/garaga

Efficient pairing library, written in Cairo 🐺.

Primary LanguageCairoMIT LicenseMIT

Garaga


Report a Bug - Request a Feature - Ask a Question

GitHub Workflow Status Project license Pull Requests welcome

Table of Contents

About

Efficient pairing library using polynomial representation of field elements, written in Cairo 🐺.

Garaga can enable efficient pairing operations in StarkNet, by using polynomial representation of field elements. This is a work in progress, and is not yet ready for production use.

Here are some interesting use cases enabled by Garaga:

  • SNARKs on StarkNet: would enable privacy-preserving computations on StarkNet.
  • KZG cryptographic commitment scheme.
  • Identity-based encryption schemes.
  • Attribute-based encryption schemes.
  • BLS (Boneh–Lynn–Shacham) Digital Signature scheme.

We are exploring many optimizations techniques. For example, we are currently working on a new technique to reduce the number of constraints in the pairing computation. This technique is based on the idea of using a polynomial representation of field elements.

Architecture overview

Architecture overview

Getting Started

Prerequisites

Cairo

Specifically for profiling, the following tools dependencies are required:

Usage

Create a virtual environment and install the dependencies

make setup

Compile cairo files

make build

Profiling

make run-profile

Roadmap

See the open issues for a list of proposed features (and known issues).

Support

Reach out to the maintainer at one of the following places:

Project assistance

If you want to say thank you or/and support active development of Garaga:

  • Add a GitHub Star to the project.
  • Tweet about the Garaga.
  • Write interesting articles about the project on Dev.to, Medium or your personal blog.

Together, we can make Garaga better!

Contributing

First off, thanks for taking the time to contribute! Contributions are what make the open-source community such an amazing place to learn, inspire, and create. Any contributions you make will benefit everybody else and are greatly appreciated.

Please read our contribution guidelines, and thank you for being involved!

Authors & contributors

For a full list of all authors and contributors, see the contributors page.

Security

Garaga follows good practices of security, but 100% security cannot be assured. Garaga is provided "as is" without any warranty. Use at your own risk.

For more information and to report security issues, please refer to our security documentation.

License

This project is licensed under the MIT license.

See LICENSE for more information.

Acknowledgements

Resources

Here are some interesting resources about pairing-based cryptography:

Note: This list is not exhaustive, and is not intended to be.

Contributors ✨

Thanks goes to these wonderful people (emoji key):

Feltroid Prime
Feltroid Prime

💻
Abdel @ StarkWare
Abdel @ StarkWare

💻
Tarik K.
Tarik K.

💻
Add your contributions

This project follows the all-contributors specification. Contributions of any kind welcome!