Commit Graph
100 Commits
Author SHA1 Message Date
Sean Bowe 69c0f9128c Enforce that the S value of the ed25519 signature is smaller than the group order to prevent malleability attacks. 2016-05-30 11:05:55 -06:00
Sean Bowe 320f2cc7e0 Switch to Ed25519 for cryptographic binding of joinsplits to transactions. 2016-05-30 11:05:55 -06:00
Sean Bowe fd7c139e37 Pass -fopenmp at compile-time to enable MULTICORE. 2016-05-25 15:59:59 -06:00
Sean Bowe e6c2d66c93 Enable MULTICORE proving behavior with omp. 2016-05-25 11:19:13 -06:00
Sean Bowe 6b5d608899 Update proving key and tests that depend on transaction structure changes 2016-05-24 11:09:17 -06:00
Sean Bowe 3ebca007f3 Reorder fields of CPourTx to reflect the spec. 2016-05-24 11:08:31 -06:00
Sean Bowe 9285bba885 Enable binary serializations of proofs and r1cs keys, and make the CPourTx proof field fixed-size. 2016-05-24 11:08:31 -06:00
Sean Bowe defe37a6d4 Enforce first four bits are zero for all spending keys and phi. 2016-05-24 11:07:09 -06:00
Sean Bowe 1bcdec40a4 Refactor PRF_gadget to hand responsibility to PRF_addr_a_pk_gadget for creating the '0' argument to the PRF. 2016-05-23 10:43:25 -06:00
Sean Bowe a6770caa45 Update versions and release notes. 2016-05-16 23:08:35 -06:00
Sean Bowe 383f8b0c8a Change testnet network magics. 2016-05-16 22:54:33 -06:00
Sean Bowe 1896a89cac Add h_sig test vectors. 2016-05-12 16:45:12 -06:00
Sean Bowe 3e0af61b86 Update zkSNARK proving/verifying keys. 2016-05-12 16:45:12 -06:00
Sean Bowe 81469bbb83 Note values should be little-endian byte order. 2016-05-12 16:45:12 -06:00
Sean Bowe 032164d5d5 Rename hmac -> mac in circuit. 2016-05-12 16:45:12 -06:00
Sean Bowe a9640f67f1 Rename ZCASH_ constants to ZC_. 2016-05-12 16:45:07 -06:00
Sean Bowe 53ab7c06ba Use inheritance for PRF gadgets. 2016-05-12 16:44:49 -06:00
Sean Bowe ccb439c510 Protect-style joinsplits should anchor to the latest root for now, until #604 is resolved. 2016-05-12 16:44:49 -06:00
Sean Bowe 0cdfab1d92 Remove the zerocash tests from the full test suite. 2016-05-12 16:44:49 -06:00
Sean Bowe ddb03c3e8d Fix performance measurements due to modified transaction structure. 2016-05-12 16:44:49 -06:00
Sean Bowe b8d320df19 Update public zkSNARK parameters for new circuit. 2016-05-12 16:44:49 -06:00
Sean Bowe 4ec57478c4 Remove nearly all of libzerocash. 2016-05-12 16:44:49 -06:00
Sean Bowe 0d990f31a7 Stop testing old tree against new tree. 2016-05-12 16:44:49 -06:00
Sean Bowe 5975bf1c32 Added public zkSNARK parameter generation utility. 2016-05-12 16:44:49 -06:00
Sean Bowe 2dc3599271 Transplant of libzcash. 2016-05-12 16:44:47 -06:00
Sean Bowe 2140639309 Remove scriptPubKey/scriptSig from CPourTx, and add randomSeed. 2016-05-12 16:44:30 -06:00
Sean Bowe 5a2db9e283 libzcash: Add tests for API 2016-05-12 16:44:30 -06:00
Sean Bowe 59c3d926c6 zkSNARK: Enforce merkle authentication path from nonzero-valued public inputs to root. 2016-05-12 16:44:30 -06:00
Sean Bowe fcece37f00 zkSNARK: Witness commitments to input notes. 2016-05-12 16:44:30 -06:00
Sean Bowe e5f7c49d55 zkSNARK: Ensure that values balance correctly. 2016-05-12 16:44:30 -06:00
Sean Bowe 5e61a78fec zkSNARK: Enforce disclosure of commitments to output notes. 2016-05-12 16:44:30 -06:00
Sean Bowe 6b010d9bfd zkSNARK: Enforce that new output notes have unique rho to prevent faerie gold attack. 2016-05-12 16:44:30 -06:00
Sean Bowe e52f40e839 zkSNARK: Authenticate h_sig with a_sk 2016-05-12 16:44:30 -06:00
Sean Bowe 2a2f3fb80f zkSNARK: Enforce disclosure of input note nullifiers 2016-05-12 16:44:30 -06:00
Sean Bowe ca8d6c9347 zkSNARK: Enforce spend-authority of input notes. 2016-05-12 16:44:30 -06:00
Sean Bowe 53d2ade7c2 zkSNARK: Add "zero" constant variable. 2016-05-12 16:44:30 -06:00
Sean Bowe 074eb3a2cf zkSNARK: Foundations of circuit design and verification logic. 2016-05-12 16:44:30 -06:00
Sean Bowe 369df06583 Introduce new libzcash Zcash protocol API and crypto constructions surrounding the zkSNARK circuit. 2016-05-12 16:44:27 -06:00
Sean Bowe c75d6bd0fa Initialize libsodium in the gtest suite. 2016-05-10 17:46:58 -06:00
Sean Bowe 5961dcb6da Change ciphertext length to match protocol spec, and refactor the use of constants. 2016-05-05 21:02:03 -06:00
Sean Bowe 26007222e8 Distinguish the failure cases of wfcheck in tree. 2016-05-03 11:23:54 -06:00
Sean Bowe 956dcdde80 Perform zerocash tests as part of full-test-suite, in preparation for removal of zerocash waterfall. 2016-05-03 06:49:15 -06:00
Sean Bowe 6bd8e46922 Run zcash-gtest in make check and fix performance tests. 2016-05-02 23:14:53 -06:00
Sean Bowe 6f1b70300d Small nit fixes 2016-04-30 11:59:39 -06:00
Sean Bowe 4b2c67d212 Check exception has specific string message. 2016-04-28 19:35:22 -06:00
Sean Bowe 70ac6ce2ee Clarify the usage of decryption API. 2016-04-28 17:06:08 -06:00
Sean Bowe 984bdd88f1 Add additional tests for ephemeral key behavior. 2016-04-28 16:52:22 -06:00
Sean Bowe 57f118176f Move NoteEncryption tests to gtest suite. 2016-04-28 16:25:14 -06:00
Sean Bowe 6c36a9fe03 NoteEncryption implementation and integration, removal of ECIES and crypto++ dependencies. 2016-04-28 16:25:12 -06:00
Sean Bowe 6850b45e4d Move incremental merkle tree tests to zcash-gtest. 2016-04-28 16:10:21 -06:00
Sean Bowe 9b92a9d5fb Make appending algorithm more succinct. 2016-04-28 16:07:52 -06:00
Sean Bowe d0c4b0e850 Add more well-formedness checks/tests to tree. 2016-04-28 16:07:52 -06:00
Sean Bowe 01e4ff0f74 Improve well-formedness checks and add additional serialization/deserialization tests. 2016-04-28 16:07:52 -06:00
Sean Bowe 6d71658673 Initialize curve/field parameters in case another test hasn't done so. 2016-04-28 16:07:52 -06:00
Sean Bowe 1760b3cd88 Deprecate the old tree and remove old tree tests from the test suite. 2016-04-28 16:07:52 -06:00
Sean Bowe 482aefbd0d Test old tree along with new tree as much as possible. 2016-04-28 16:07:52 -06:00
Sean Bowe 434f328446 Integrate new incremental merkle tree implementation into consensus. 2016-04-28 16:07:52 -06:00
Sean Bowe e1ff849d8d New implementation of incremental merkle tree
This is a new implementation of the incremental merkle tree used by our
scheme to witness commitments to spendable value. It serves as a fixed-sized
accumulator.

This new construction has a much simpler API surface area, avoids memory
safety issues, remains pruned at all times, avoids serialization edge cases,
has more efficient insertion, and is abstract over the depth and hash
function used at the type level.

Further, it lays the groundwork for efficient "fast-forwarding" of witnesses
into the tree as the treestate is updated.
2016-04-28 16:07:52 -06:00
Sean Bowe 291b191bd7 Add serialization for primitive boost::optional<T>. 2016-04-28 16:07:52 -06:00
Sean Bowe 62fdd8d094 Change pchMessageStart for new testnet. 2016-04-11 12:46:46 -06:00
Sean Bowe 6ca317e1cc Fix remaining RPC tests. 2016-04-11 12:46:46 -06:00
Sean Bowe f3ffa3d27f Implementation of Founders' Reward.
All blocks before the first subsidy halving block, with the exception of
the genesis block, must contain an output which sends 20% of the block
subsidy value to a scriptPubKey `FOUNDERS_REWARD_SCRIPT`.
2016-04-08 14:40:28 -06:00
Sean Bowe abc1c352c9 Add missing synchronization that causes race condition in test. 2016-04-08 13:54:44 -06:00
Sean Bowe e22df48519 Fix miner_tests to work with equihash 2016-04-08 22:16:29 +12:00
Sean Bowe fd5007c126 Create new hasher for sha256() utility. 2016-03-31 16:19:29 -06:00
Sean Bowe 27a109af01 Improve testing and API of CSHA256 compression. 2016-03-31 16:15:07 -06:00
Sean Bowe d3612b1c94 Remove zerocash's SHA256 implementation 2016-03-31 15:59:06 -06:00
Sean Bowe 8466467a35 Added SHA256Compress to Bitcoin's SHA256 implementation. 2016-03-31 14:23:56 -06:00
Sean Bowe 6806256b80 Initialize libsodium and remove openssl headers from util.cpp 2016-03-23 16:26:57 -06:00
Sean Bowe a633044b25 Reorder proving key and verifying key arguments. 2016-03-15 15:59:52 -06:00
Sean Bowe 8f8c4c6c0c Lazily load the proving key at time of first pour. 2016-03-15 14:16:05 -06:00
ebfull b947af52f3 Merge pull request #741 from zcash/zc.v0.11.2.update-repo-url.0
Update repo URL in README.md
2016-03-03 15:38:49 -07:00
ebfull b08894066a Fix typo 2016-02-18 17:16:28 -07:00
ebfull 2d1d3b2bf5 Merge pull request #726 from Electric-Coin-Company/import-libzerocash
Bring libzerocash in tree
2016-02-18 09:12:22 -07:00
Sean Bowe 57220d0320 Fix test_pour return type. 2016-02-18 00:04:55 -07:00
Sean Bowe 25f0e1072e Fix test paths. 2016-02-17 14:54:48 -07:00
Sean Bowe 0b43e787e0 Add merkleTest and utilTest to test suite. 2016-02-17 13:35:40 -07:00
Sean Bowe 6e96cf089b Add zerocash tests and utilities. 2016-02-15 22:57:55 -07:00
Sean Bowe cf5f4f679d Remove unnecessary comments. 2016-02-15 19:10:15 -07:00
Sean Bowe e463edc122 Build and link libzerocash. 2016-02-15 15:28:20 -07:00
Sean Bowe a897db652f Reorganizing the zerocash tree. 2016-02-15 15:28:20 -07:00
Sean Bowe 1e62bba762 Remove ate-pairing, xbyak and libzerocash dependencies from the depends tree.
The ALT_BN128 curve does not need ate-pairing or xbyak.

Also, remove crypto++ dependency from libsnark.
2016-02-15 15:27:59 -07:00
Sean Bowe 523bc77f64 Move libzerocash (dd5db5815be70f0e4895784cc905df6f1c73cb17) into the src tree. 2016-02-11 13:44:25 -07:00
ebfull 0294f34d15 Merge pull request #698 from Electric-Coin-Company/fix-pour-rpc-tests
Fixed RPC tests for Pours.
2016-02-03 13:07:53 -07:00
Sean Bowe a5cbd56a3a Fixed RPC tests for Pours. 2016-01-29 19:40:05 -07:00
ebfull 2553facbf7 Merge pull request #683 from nathan-at-least/t681.remove-python-fetch-params
Remove fetch-params.py.
2016-01-27 20:14:20 -07:00
ebfull 32e370c38f Merge pull request #667 from Electric-Coin-Company/change-decoderawtx
Add decoding support for vpour in the `decoderawtransaction` RPC.
2016-01-27 15:19:16 -07:00
ebfull 405dd80aeb Merge pull request #670 from mattherman/patch-1
Fixed spelling error in README.md
2016-01-25 12:39:49 -07:00
Sean Bowe 63ea9b75bb Add decoding support for vpour in the decoderawtransaction RPC. 2016-01-23 18:07:18 -07:00
ebfull e9ae5d2221 Merge pull request #664 from jzbz/patch-1
Update INSTALL
2016-01-23 16:47:12 -07:00
ebfull 23c0154a66 Merge pull request #665 from jzbz/patch-2
Update README.md
2016-01-23 16:47:07 -07:00
ebfull 5d0b0129f5 Merge pull request #660 from nathan-at-least/t654.fetch-params-resume-downloads
Add feature to resume downloads of params files.
2016-01-22 13:03:39 -07:00
ebfull b204f7cd1e Merge pull request #657 from eliteraspberries/fetch-params-py
Implement the fetch-params.sh script in Python
2016-01-22 12:09:37 -07:00
ebfull 7f689b0a42 Merge pull request #642 from nathan-at-least/t641.fetch-params-ignore-cert-errors
Ignore certificate errors when fetching params.
2016-01-21 02:31:17 -07:00
ebfull fc0ae34c58 Merge pull request #640 from ebfull/remove-type-ck
Remove type check on zcrawpour which is not necessary and causes errors with the RPC.
2016-01-20 15:05:48 -07:00
Sean Bowe 9ce86bec59 Remove type check on zcrawpour which is not necessary and causes errors with the RPC. 2016-01-20 14:53:27 -07:00
Sean Bowe 559ab22589 Added link to alpha guide in the README. 2016-01-20 09:15:36 -07:00
Sean Bowe 293e4f015b Updated README and COPYING. 2016-01-20 00:38:40 -07:00
Sean Bowe d488e75ea8 Fix comment. 2016-01-19 16:29:44 -07:00
Sean Bowe cf47198370 Fixed a couple incremental merkle tree bugs breaking consistency checks. 2016-01-19 14:36:10 -07:00