/noah

Noah is a library that provide tools to create and verify public transaction with confidential data.

Primary LanguageRustOtherNOASSERTION

GitHub top language GitHub tag (latest SemVer) GitHub issues GitHub pull requests License

Noah: A Cryptographic Library for Privacy Assets

Noah is a Rust library that implements various cryptographic primitives for privacy assets. It implements two constructions:

  • Maxwell construction. In 2015, a renowned blockchain developer Gregory Maxwell presented a construction of confidential transactions (CT) for a UTXO chain. We implemented it with:

    • Secp256k1 or Ed25519 for digital signatures
    • The Ristretto group over Curve25519 for Pedersen commitments
    • Bulletproofs over Curve25519
  • Zerocash construction. Improved over a prior protocol Zerocoin, the Zerocash construction, firstly proposed by Ben-Sasson, Chiesa, Garman, Green, Miers, Tromer, and Virza and improved subsequently by the Zcash Foundation and Electric Coin Company (ECC), is another privacy-preserving transfer protocol over a UTXO chain. We implemented it with:

    • Secp256k1 or Ed25519 (incoming) for digital signatures
    • An inhouse variant of TurboPlonk with various optimization tricks
    • The European technique for efficient memory in zk-SNARK, using the Anemoi-Jive hashes

Thanks to all the people who already contributed!

Licensing

The primary license for Noah is the Business Source License 1.1 (BUSL-1.1), see LICENSE.