Giter Site home page Giter Site logo

noah's Introduction

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.

noah's People

Contributors

akhilpeddireddy avatar alxiong avatar ancient123 avatar anene avatar bbuenz avatar ben-a-fisch avatar bpr avatar ccmlm avatar chancharles92 avatar confusesun avatar dependabot[bot] avatar dieracdelta avatar dlin128 avatar fernandoeian avatar findora-crypto avatar findora-sun avatar happydavy avatar harryliisme avatar harshadptl avatar hridambasu avatar kingpinxd avatar ktmlm avatar ledgermechanic avatar nomaxg avatar philippecamacho avatar serge-juarez avatar shenkeyao avatar tiannian avatar weikengchen avatar ws4charlie avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

noah's Issues

Use `ark_std::test_rng` for tests

Many of the tests in this library use a ChaCha20 random number generator with a fixed seed. In other words, our test random number generator is deterministic. Although it facilitates debugging, we are concerned about how strong such testing is.

A solution is to do the following:

  • pub use ark_std::test_rng in zei-algebra
  • make sure that the std feature is on by default and propagates correctly in the Zei library
  • replace ChaCha20Rng in tests with this

If we use a deterministic ChaCha20Rng in code that is not about tests. We should also label it, so we track our use of deterministic random number generator---they are okay for URS.

Assigned to @confuseSUN

Release versions on crates.rs

We should prepare to bump the version numbers in the Noah library to 0.5.0 and prepare a release, after asset tracing is done.

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.