Simon
47db75426f
Closes #3301 . Non-void function should not have empty definition.
2018-05-23 21:04:51 -07:00
Sean Bowe
b7a6c32178
Integrate Groth16 verification and proving.
2018-05-14 16:26:23 -06:00
Jack Grigg
e5eab182b5
Use boost::variant to represent shielded addresses and keys
...
libzcash::PaymentAddress has been renamed to libzcash::SproutPaymentAddress,
and a new typedef boost::variant is now libzcash::PaymentAddress. Similarly
for ViewingKey and SpendingKey.
A new class InvalidEncoding is introduced as the default boost::variant
option for each address and key type; it is used during decoding instead
of boost::optional.
All address and key storage functions in the wallet have been modified to
refer specifically to the Sprout types, as they are used very precisely.
In most other cases, the more general type is leveraged as much as possible,
and we convert to the Sprout type when necessary. This will be subsequently
wrapped in, or replaced with, context-specific functions once Sapling
types are implemented.
2018-05-11 17:14:49 -04:00
Homu
73f5cb1213
Auto merge of #3257 - bitcartel:3250_fix_segfault_memo, r=ebfull
...
Closes #3250 . Memo getter should return by reference, not by value.
2018-05-10 08:47:06 -07:00
Simon
67f3577239
Closes #3250 . Memo getter should return by reference, not by value.
2018-05-09 21:52:33 -07:00
Homu
08f74ed026
Auto merge of #3240 - str4d:remove-obsolete-binaries, r=str4d
...
Remove obsolete CreateJoinSplit and GenerateParams binaries
2018-05-09 13:50:25 -07:00
Sean Bowe
2b002a7e60
Add implementation of Sapling merkle tree
2018-05-07 13:46:06 -06:00
Sean Bowe
a7cbb8475f
Abstract uncommitted and depth personalization for IncrementalMerkleTree.
2018-05-07 13:46:06 -06:00
Homu
8ef1d333b5
Auto merge of #2894 - per-gron:dont-export-unless-needed, r=str4d
...
Make some globals static that can be
I wrote this patch as part of making a Bazel build system but it really is independent from that so I'm putting this as a separate PR.
External linkage does not help and just encourages sloppy dependencies (ie using symbols only declared in a cpp file in some other cpp file) and can lead to weird issues when there are name collisions.
2018-05-04 15:05:43 -07:00
Jack Grigg
11aa594440
Remove obsolete CreateJoinSplit and GenerateParams binaries
2018-05-03 13:18:03 +01:00
Simon
debf6af9f8
Move memo member varible from SproutNotePlaintext to BaseNotePlaintext.
...
Add memo() accessor to BaseNotePlaintext.
2018-04-26 15:05:30 -07:00
Simon
d266f40393
Create class hierarchy for SproutNotePlaintext.
...
BaseNotePlaintext contains member variable for common attribute, value.
2018-04-26 15:05:30 -07:00
Simon
5020a93631
Refactoring: rename NotePlaintext --> SproutNotePlaintext
...
Also renames:
CNotePlaintextEntry --> CSproutNotePlaintextEntry
CUnspentNotePlaintextEntry --> CUnspentSproutNotePlaintextEntry
2018-04-26 15:05:30 -07:00
Simon
5f4fa1a954
Add virtual destructor to SproutNote and BaseNote
...
Also add test to make sure default copy constructors are okay.
2018-04-26 15:05:30 -07:00
Simon
5d99e3e92f
Refactoring: SproutNote member variable value moved to BaseNote.
...
All notes have a value, so the member variable has been moved to the
base class, and direct member access has been replaced with a getter.
2018-04-26 15:05:19 -07:00
Simon
b230fe6836
Refactoring: Rename class libzcash::Note to libzcash::SproutNote.
2018-04-25 11:33:24 -07:00
Simon
bef33bbc73
Refactoring: libzcash::Note is now a subclass of libzcash::BaseNote.
2018-04-25 11:33:16 -07:00
Jack Grigg
68a1a592ca
Remove nType and nVersion from Zcash-specific code
2018-04-17 13:09:47 +01:00
Jack Grigg
4fe053e6e8
Move explicit instantiation of IncrementalMerkleTree::emptyroots into header
...
Fixes a -Wundefined-var-template warning with clang.
2018-03-28 18:29:19 +02:00
Jack Grigg
d58ed91af0
Optimise serialization of MerklePath, avoiding ambiguity of std::vector<bool>
...
The serialization enforces a maximum supported Merkle tree depth of 64.
Closes #2831 .
2018-03-28 18:26:08 +02:00
Per Grön
39d2e9e0cb
Make some globals static that can be
...
External linkage does not help and just encourages sloppy dependencies
and can lead to weird issues when there are name collisions.
2018-01-22 18:20:47 +01:00
Jack Grigg
49cf707d2c
Add Base58 encoding of viewing keys
2017-12-20 00:46:33 +00:00
Jack Grigg
aa666c9673
Implement viewing key storage in the keystore
2017-12-04 17:17:18 +00:00
Jack Grigg
642a1caf93
ViewingKey -> ReceivingKey per zcash/zips#117
2017-12-04 17:17:18 +00:00
syd
4e4aa5b6ec
Get rid of underscore prefixes for include guards.
...
This is because they may conflict with reserved names. Also took
this opportunity to make the guards in the zcash subdir a bit
more uniform by having them all conform to ZC_<...>_H_
This closes #1272
2017-11-28 14:57:58 -05:00
Jack Grigg
fee8835388
Mark libsnark includes as library includes
2017-11-15 16:49:10 +00:00
Homu
c8ecd49574
Auto merge of #2159 - bitcartel:1.0.7_payment_disclosure, r=str4d
...
Payment disclosure (experimental feature)
2017-11-14 14:06:22 -08:00
Simon
45232b1961
Add payment disclosure as experimental feature.
2017-11-14 13:29:05 -08:00
Ariel Gabizon
4305a56221
boost::format -> tinyformat
2017-11-01 02:11:49 +13:00
Sean Bowe
394f41853b
Integrate low memory prover.
2017-11-01 02:11:49 +13:00
Sean Bowe
1a9543d064
Remove crusty old "loadVerifyingKey"/"loadProvingKey" APIs and associated invariants.
2017-10-21 15:42:41 +03:00
Jack Grigg
51fde9ea08
Use a more specific exception class for note decryption failure
...
Closes #1545 .
2017-01-31 23:05:19 +01:00
Eran Tromer
894a0b3295
CreateJoinSplit: add start_profiling() call
...
This solves the problem of profiling output displaying nonsensical large time values.
2017-01-05 11:30:23 -05:00
zkbot
57a0725ae1
Auto merge of #1946 - str4d:blockchain-stats-num-commitments, r=ebfull
...
Add total number of commitments to getblockchaininfo
2016-12-16 21:47:53 +00:00
Jack Grigg
d0ce704abe
Add a tool for profiling the creation of JoinSplits
2016-12-17 02:43:43 +13:00
Jack Grigg
5d6e1aa60f
Add total number of commitments to getblockchaininfo
2016-12-15 15:50:26 +13:00
Sean Bowe
c4fce3fc81
Check that E' points are actually in G2 by ensuring they are of order r.
2016-12-12 19:14:42 -07:00
Sean Bowe
eb82238dd0
Rename Dummy to Disabled.
2016-12-08 12:32:39 -07:00
Sean Bowe
53dc6a41eb
Ensure ProofVerifier cannot be accidentally copied.
2016-12-06 18:42:31 -07:00
Sean Bowe
bc59f53722
Isolate verification to a ProofVerifier context object that allows verification behavior to be tuned by the caller.
2016-12-05 12:40:06 -07:00
Simon
13e9a639b7
Fix threading issue when initializing public params.
2016-11-17 15:36:26 -07:00
zkbot
54218ea05c
Auto merge of #1797 - ebfull:improve-joinsplit-diagnostics, r=bitcartel
...
Improve joinsplit diagnostics
I don't advocate merging this for the hotfix release (to fix #1779 ) but this PR can be used to diagnose the real issue and should be merged ASAP afterward.
~I still need to add tests for `last()` and `element()` though.~ Done.
2016-11-16 01:06:37 +00:00
Sean Bowe
78df9f0211
Process verification keys to perform online verification.
2016-11-14 10:24:07 -07:00
Sean Bowe
5f0a73ce11
Improve accuracy of constraint system violation diagnostics.
2016-11-05 11:27:23 -06:00
zkbot
c73122db7b
Auto merge of #1399 - ebfull:write-r1cs, r=ebfull
...
Write R1CS output to file in GenerateParams.
Not urgent. This is how the constraint system is communicated to the MPC.
2016-11-04 16:57:43 +00:00
Sean Bowe
c4643bd949
Throw more descriptive exceptions when the constraint system is violated.
2016-11-01 14:52:03 -06:00
Simon
19bec4d9bb
Fixes CID 1352715 uninitialized scalar field.
2016-10-20 11:25:36 -07:00
Simon
b7727d8b3b
Fixes CID 1352687 uninitialized scalar field.
2016-10-20 11:19:36 -07:00
Sean Bowe
0a958ae7f6
Write R1CS output to file in GenerateParams.
2016-09-14 15:57:54 -06:00
Jack Grigg
3a15b1637e
Move serialized Zcash address length constants into zcash/Address.hpp
2016-09-13 14:21:49 +12:00