Giter Club home page Giter Club logo

libzerocash's Introduction

libzerocash: a C++ library implementing the Zerocash protocol

forked from: https://github.com/Zerocash/libzerocash

refer to: https://github.com/Electric-Coin-Company/libzerocash

The libzerocash library implements the Zerocash protocol, which provides a privacy-preserving version of Bitcoin (or a similar currency).

Zerocash fixes an inherent weakness of Bitcoin: every user's payment history is recorded in public view on the block chain, and is thus readily available to anyone. While there are techniques to obfuscate this information, they are problematic and ineffective. Instead, in Zerocash, users may pay one another directly, via payment transactions that reveal neither the origin, destination, or amount of the payment. This is a marked improvement compared to Bitcoin (and similar decentralized digital currencies), where every payment's information is made public for the whole world to see.

The basic Zerocash protocol is described in this paper:

It improves on an earlier protocol, Zerocoin, developed by some of the same authors, both in functionality (Zerocoin only hides a payment's origin, but not its destination or amount) and in efficiency (Zerocash transactions are less than 1KB and take less than 6ms to verify).

Zerocash relies on Succinct Noninteractive Arguments of Knowledge (SNARK) proofs, as implemented in the open-source libsnark library by SCIPR Lab.

Notes on getting it running

    1. ./get-libsnark,r un get-libsnark to git pull libsnark from github.com,
    1. checkout the version when lightning_circuit was generated. cd depsrc/libsnark/ && git checkout 746ade7ce0f30a6f6e612e50450294c8e7ade9a4
    1. Comment git pull in get-libsnark
    1. run get-libsnark again, ./get-libsnark
    1. make

There are two bugs:

  • fatal error: curses.h: No such file or directory
    solution: sudo apt-get install libncurses5-dev libncursesw5-dev

  • fatal error: cryptopp/osrng.h: No such file or directory
    solution: sudo apt-get install libcrypto++-dev libcrypto++-doc libcrypto++-utils

  • error: base class ‘class CryptoPP::AbstractRingCryptoPP::Integer’ should be explicitly initialized in the copy constructor [-Werror=extra]
    solution: removed the -Werror and -Wfatal-errors flags from the Makefile. zcash issue

For more information see the Zerocash web site.

Warning

This is an academic proof-of-concept prototype. This implementation is not ready for production use. It does not yet contain all the features, careful code review, tests and integration that are needed for a deployment. Future changes to the cryptographic protocol and data formats are likely.

Authors

libzerocash's People

Contributors

tromer avatar madars avatar agzs avatar defuse avatar

Watchers

James Cloos 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.