![alt text](https://github.com/stichtingorganism/zei/raw/master/zei_logo.png) **Confidential Assets** [![Gitter](https://badges.gitter.im/stichtingorganism/community.svg)](https://gitter.im/stichtingorganism/community?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge) Zei is a library to help manage and create Confidential Assets & More. Current Limitation is one asset type per transaction. This is due to the proof system used. There are known schemes such as cloak which are based on R1CS circuits and yield single proofs for multi asset inputs and outputs. However, full security proofs are in progress and adding Circuits to Bulletproofs is another added layer of complexity for our MVP. Using Multiple assets per transacton can also be done by adding seperation indicators for asset types Inputs & Outputs and provind Asset Proofs for each one but that leaks information about how many asset types are being used in a transaction and we chose to keep it simple for the first format and information leakage is less desirable. # Internal View [Protocol](https://github.com/stichtingorganism/zei/blob/master/PROTOCOL.md) # Benchmarks # Installation To install, add the following to your project's `Cargo.toml`: ```toml [dependencies.zei] version = "0.0.1" ``` Then, in your library or executable source, add: ```rust extern crate zei; ``` By default, `zei` builds against `curve25519-dalek`'s `u64_backend` feature, which uses Rust's `i128` feature to achieve roughly double the speed as the `u32_backend` feature. When targetting 32-bit systems, however, you'll likely want to compile with `cargo build --no-default-features --features="u32_backend"`. If you're building for a machine with avx2 instructions, there's also the experimental `avx2_backend`. To use it, compile with `RUSTFLAGS="-C target_cpu=native" cargo build --no-default-features --features="avx2_backend"`