Commit Graph

1346 Commits

Author SHA1 Message Date
Duke Leto
31fc4099df HUSH NSPV 2020-12-09 19:22:51 -05:00
Duke Leto
54d3293db5 I Got The (Pub)Keys - https://www.youtube.com/watch?v=WjBQ7v6i4O4 2020-12-06 17:04:20 -05:00
Duke Leto
c737c0dfaf We call them Hush Smart Chains around here 2020-11-15 11:54:06 -05:00
Duke Leto
ebf0df633b Define a new season of anon Hush DPoW notaries 2020-11-15 11:13:15 -05:00
Duke Leto
a23b0e8388 Remove the unsupported concept of staked notaries 2020-11-15 10:28:53 -05:00
Duke Leto
d02fdd4fe5 I originally wrote this function and we call it Hush DPoW around here 2020-11-15 07:34:43 -05:00
Duke Leto
52240c64b1 Tweak test suite and rename to HUSH_INSYNC 2020-11-14 20:00:23 -05:00
Duke Leto
7524c64024 Our intrepid warrior gazed at his Dragon and both knew what was needed 2020-10-25 19:06:09 -04:00
DenioD
84eb65c7bb add memo as hex and str to z_listreceivedaddress 2020-10-21 15:52:43 +02:00
Duke Leto
be16f80abc Hush Full Node is now GPLv3
Any projects which want to use Hush code from now on will need to be licensed as
GPLv3 or we will send the lawyers: https://www.softwarefreedom.org/

Notably, Komodo (KMD) is licensed as GPLv2 and is no longer compatible to receive
code changes, without causing legal issues. MIT projects, such as Zcash, also cannot pull
in changes from the Hush Full Node without permission from The Hush Developers,
which may in some circumstances grant an MIT license on a case-by-case basis.
2020-10-21 07:28:10 -04:00
Duke Leto
a7f88a87aa Update copyright URL to be https 2020-09-20 13:17:38 -04:00
Duke Leto
5c5e545e75 HUSH has no JoinSplits 2020-09-13 19:12:21 -04:00
Duke Leto
b22a73fc29 Run-time randomly generated Sietch zdust addresses
This commit drastically improves the privacy of the HUSH anonymity set
under attacks which ingest wallet.dat's which have been obtained by
seizure, i.e. stealing someones HUSH wallet.dat and putting it into
chain analysis software. Ciphertrace is known to do this to ZEC and XMR
and we can assume all chain analysis companies are implementing new
ways to de-anonymize privacy coins with any data they can obtain.

Instead of randomly sending to a randomly chosen static address,
hushd Sietch zdust addresses are now randomly generated at run-time. These
addresses are not stored in wallet.dat in any way and their private keys
are not known except by the internal memory of hushd for a few milliseconds.
This data is not stored in long-lived data structures of hushd, only as long
as the RPC z_getnewaddress is running or the equivalent function for internals
code paths. The seeds or private keys of these addresses are never stored on disk.

This now brings hushd on par with SDL, which already does this via a
different but equivalent seed phrase technique.

With this technique, if a HUSH wallet.dat is seized, it's impossible to tell
if any of the shielded outputs are random Sietch zdust with random data payload
or a one-time-use zaddr with encrypted payload.
2020-09-13 12:35:41 -04:00
Duke Leto
4f70252524 Increase max --sietch-min-zouts to 50 2020-09-13 11:24:47 -04:00
Duke Leto
032c7cbb9f Add transaction time to z_listreceivedbyaddress which drastically speeds up SD operations 2020-09-09 12:58:53 -04:00
Duke Leto
0614f51f28 Fix more docs bugs 2020-09-09 11:51:59 -04:00
Duke Leto
fc9725ca44 Fix docs 2020-09-09 11:45:23 -04:00
Jonathan "Duke" Leto
eae956cde9 Update docs 2020-07-30 09:01:29 -07:00
Duke Leto
31983a9655 Correctly choose between dynamic or random sietch zdust addresses 2020-07-25 01:41:48 -04:00
Duke Leto
7e0c41977f Revert "Use dynamically generated zaddrs in sietch, which are not stored in wallet.dat"
This reverts commit 89532c4d7b.
2020-07-23 22:53:12 -04:00
Duke Leto
cf83dc135a Merge branch 'danger' into sietch_dynamic 2020-07-22 09:39:48 -04:00
Duke Leto
d4883bce7c More timedate changes from KMD 0.6 2020-07-09 10:31:12 -04:00
Duke Leto
83be5195e9 Revert "Randomize sietch memos and increase min zouts to 3"
This reverts commit a053d212b8.
2020-06-17 20:44:54 -04:00
Duke Leto
a053d212b8 Randomize sietch memos and increase min zouts to 3 2020-06-13 21:34:20 -04:00
Duke Leto
2fbcca4167 add rescan rpc 2020-06-13 10:14:51 -04:00
Duke Leto
5a601d1431 desprout 2020-06-08 11:13:17 -04:00
Duke Leto
f13171efc6 desprout 2020-06-06 05:14:21 -04:00
Duke Leto
22d4d1a06e desprout 2020-06-06 04:34:30 -04:00
Duke Leto
3cb215e39a more desprout, ugh 2020-06-05 12:17:41 -04:00
Duke Leto
86a98587a1 desprout 2020-06-05 10:14:52 -04:00
Duke Leto
ed2c9450f9 desprout 2020-06-05 01:20:37 -04:00
Duke Leto
b32bf1f82c Revert "desprout"
This reverts commit 7c6c7150c6.
2020-06-04 21:51:21 -04:00
Duke Leto
7c6c7150c6 desprout 2020-06-03 22:20:10 -04:00
Duke Leto
dd5d932f87 Only print these when -zdebug is turned on 2020-05-11 06:34:48 -04:00
DenioD
b3c7e048ab add z_getnotescount as rpc call ported for Hush from https://github.com/zcash/zcash/pull/4465 2020-04-25 00:30:06 +02:00
Duke Leto
c271fb8cbd Locks and docs 2020-03-10 09:10:12 -04:00
Duke Leto
41662dc370 Remove sprout-related RPC docs 2020-03-10 07:22:14 -04:00
Duke Leto
744ef34438 Add zindex to z_getinfo 2020-03-09 21:04:53 -04:00
Duke Leto
67f666d5ff Tweak z_getinfo data slightly 2020-03-09 18:42:13 -04:00
Duke Leto
2aa376d286 Add z_getinfo, a place for various shielded details that do not fit other places 2020-03-09 16:31:54 -04:00
Duke Leto
fad66953fb Cleanup 2020-03-06 15:22:50 -05:00
Duke Leto
dc7525f12e Untested sapling consolidation plus sietch outputs to reduce metadata leakage 2020-03-04 09:17:05 -05:00
Duke Leto
a7250280d0 Remove deprecated Sprout benchmarking RPCs 2020-02-27 11:06:58 -05:00
Duke Leto
2152f4df6d Port getalldata from ZER sans sproutness 2020-02-26 09:51:09 -05:00
Duke Leto
b06bd5720a Add z_listreceivedbyaddress from ZER and refactor some stuff 2020-02-26 00:20:02 -05:00
Duke Leto
a338a974c7 Add z_listreceivedbyaddress from ZER 2020-02-25 23:49:49 -05:00
Duke Leto
89bbd48eae More libsnark removal changes to various internals 2020-01-24 12:30:58 -05:00
Duke Leto
dc6d7dc0b2 Merge branch 'duke' into sietch_dynamic 2020-01-21 23:35:59 -05:00
Duke Leto
8eef38f94c Fix broken sendmany RPC
The sendmany RPC was broken in the 3.3.0 release due to a bad merge of upstream KMD code,
resulting in this kind of error:

./src/hush-cli sendmany "" "{\"$TADDR1\": 0.0001, \"$TADDR2\": 0.0002, \"$TADDR3\": 0.0004}"
error code: -3
error message:
Amount is not a number or string

No matter how many recipients you give, it will always "fall off the end" of the array, because it increments i twice per loop.
That means AmountFromValue(sendTo[i]) is given an invalid amount and the RPC errors out, with no loss of funds.

This is not a consensus bug and only nodes who want to use the sendmany RPC need to upgrade.
Since GUI wallets do not use this RPC, it's most likely pools and exchanges that would want this.
2020-01-18 08:42:12 -05:00
Duke Leto
d58e2473fc Add sapling account counter to getwalletinfo 2020-01-10 07:29:58 -05:00