Go to file
zkbot 057ab6b4d1 Auto merge of #1760 - ebfull:vk-preprocess, r=bitcartel
Process verification keys to perform online verification

Checking proofs involves some arithmetic with pairings using components of the proof and the verification key. If you already have some curve points, like those in the verification key, you can amortize the cost of some of the more expensive arithmetic.

This PR adopts libsnark's precomputation of G2 elements in the verification key.

We *currently* call `r1cs_ppzksnark_verifier_strong_IC`:

```c++
template<typename ppT>
bool r1cs_ppzksnark_verifier_strong_IC(const r1cs_ppzksnark_verification_key<ppT> &vk,
                                       const r1cs_ppzksnark_primary_input<ppT> &primary_input,
                                       const r1cs_ppzksnark_proof<ppT> &proof)
{
    enter_block("Call to r1cs_ppzksnark_verifier_strong_IC");
    r1cs_ppzksnark_processed_verification_key<ppT> pvk = r1cs_ppzksnark_verifier_process_vk<ppT>(vk);
    bool result = r1cs_ppzksnark_online_verifier_strong_IC<ppT>(pvk, primary_input, proof);
    leave_block("Call to r1cs_ppzksnark_verifier_strong_IC");
    return result;
}
```

Notice that this merely performs precomputation of the verification key, and then calls `r1cs_ppzksnark_online_verifier_strong_IC`. This PR merely performs the precomputation during verification key initialization, and calls that function directly.
2016-11-15 14:56:22 +00:00
.tx Change transifex slug to `translation-011x` 2015-05-01 14:25:02 +02:00
build-aux/m4 Changes to upgrade bdb to 6.2.23 2016-10-25 16:18:19 +01:00
contrib 1.0.2 release. 2016-11-07 19:03:20 -07:00
depends Build libsnark with -march=x86-64 instead of -march=native 2016-10-27 16:32:27 -07:00
doc 1.0.2 release. 2016-11-07 19:03:20 -07:00
qa Auto merge of #1847 - bitcartel:1680_rpckeepalive_deadlock, r=ebfull 2016-11-15 10:25:24 +00:00
share Hardcoded seeds update June 2015 2015-06-25 17:10:09 +02:00
src Auto merge of #1760 - ebfull:vk-preprocess, r=bitcartel 2016-11-15 14:56:22 +00:00
zcutil Add --disable-tests flag to zcutils/build.sh 2016-11-06 12:35:55 -08:00
.gitattributes Separate protocol versioning from clientversion 2014-10-29 00:24:40 -04:00
.gitignore Auto merge of #1567 - str4d:rename-binaries, r=daira 2016-10-21 20:48:11 -04:00
.travis.yml travis: for travis generating an extra build 2015-09-22 00:43:09 +00:00
COPYING Changes to upgrade bdb to 6.2.23 2016-10-25 16:18:19 +01:00
INSTALL Refer to Zcash wiki in INSTALL 2016-10-07 16:17:08 -07:00
Makefile.am Add build scripts and fetch-params.sh to "make install" and "make dist" 2016-11-02 12:13:47 -05:00
README.md 1.0.2 release. 2016-11-07 19:03:20 -07:00
autogen.sh Bugfix: Replace bashisms with standard sh to fix build on non-BASH systems 2014-10-03 23:45:26 +00:00
code_of_conduct.md Update my email address in the Code of Conduct. 2016-09-29 01:33:11 +01:00
configure.ac 1.0.2 release. 2016-11-07 19:03:20 -07:00
libzcashconsensus.pc.in Rename libbitcoinconsensus to libzcashconsensus 2016-10-18 16:45:37 -05:00

README.md

Zcash 1.0.2

What is Zcash?

Zcash is an implementation of the "Zerocash" protocol. Based on Bitcoin's code, it intends to offer a far higher standard of privacy through a sophisticated zero-knowledge proving scheme that preserves confidentiality of transaction metadata. Technical details are available in our Protocol Specification.

This software is the Zcash client. It downloads and stores the entire history of Zcash transactions; depending on the speed of your computer and network connection, the synchronization process could take a day or more once the block chain has reached a significant size.

Security Warnings

See important security warnings in doc/security-warnings.md.

Zcash is unfinished and highly experimental. Use at your own risk.

Where do I begin?

We have a guide for joining the main Zcash network: https://github.com/zcash/zcash/wiki/1.0-User-Guide

Need Help?

  • See the documentation at the Zcash Wiki for help and more information.
  • Ask for help on the Zcash forum.

Participation in the Zcash project is subject to a Code of Conduct.

Building

Build Zcash along with most dependencies from source by running ./zcutil/build.sh. Currently only Linux is officially supported.

License

For license information see the file COPYING.