Commit Graph
24 Commits
Author SHA1 Message Date
Duke 9befa3450f Try another server if current is down when saving wallet via a rescan 2023-03-26 08:41:52 -07:00
Duke c7e0f0fae6 Initialize a new server connection from seedphrase when restoring from seed 2023-03-26 08:26:11 -07:00
Duke ad5b294d95 Make sure to init from phrase when trying a new server during restore in first time wizard 2023-03-26 08:18:19 -07:00
Duke 89bf5b0f7c Make sure to init from phrase when trying a new server during restore 2023-03-26 08:15:53 -07:00
Duke 51483843ac Report down server in errors of first time wizard 2023-03-26 08:12:23 -07:00
Duke 17fcb84a89 Report server in error when saving wallet as part of rescan 2023-03-26 08:10:43 -07:00
Duke f22f97463b derp 2023-03-26 08:08:30 -07:00
Duke f7787fe9e9 Try another server if current is down when restoring during a rescan; report down server in error 2023-03-26 08:08:01 -07:00
Duke 0b72d01f4a Add DEBUG macro for less typing 2023-03-26 07:55:34 -07:00
Duke 557e10e5e8 Try another server if current is down when restoring a wallet from seed or saving a wallet 2023-03-26 07:43:35 -07:00
Duke 3f8ae1f9d7 Try another server if current is down when creating new seed 2023-03-25 22:11:22 -07:00
Duke 3b6da338c9 Delete mobile app connector 2023-03-04 12:27:02 -05:00
Duke 430a7ab474 Delete websuckets 2023-03-04 12:20:06 -05:00
Duke 5d5447aced Improve error handling when restoring from seedphrase
We now catch exceptions in litelib_initialize_new_from_phrase and no longer save an empty/invalid wallet
if there were errors.
2023-03-04 12:02:32 -05:00
Duke 1e6e77055b Catch exceptions from litelib_initialize_existing 2023-03-03 00:16:25 -05:00
Duke 6165733e03 Ignore exceptions in litelib_initialize_existing() in a few places 2023-03-02 20:34:42 -08:00
Duke a8fc12e0e2 Change lite server after sending a tx for improved privacy
Assume Alice is using SDL for 1 hour and makes many transactions, perhaps using HushChat with Bob.
The lite server she is connected to will know know that IP address A has created transaction id B,
i.e. linkability of IP addresses to all the transaction ids that are created while she is connected.
If Bob is connected to the same lite server for some or all of those transactions, the complete
transaction graph is known : IP address A created txid B sending to IP address C which is the receiver
of txid B. This is not good.

One improvement could be that we change lite servers on an interval, such as every 5 minutes. That would
be better than nothing, but what seems to be even better is to change the lite server after every tx.
This means that every time Alice (or Bob) makes a new transaction, they are potentially talking to a
different lite server. It is potentially because it is possible that our randomly chosen new lite server
is the same as our previous lite server. We could try to ensure that the new random server is different
than our previous, but in edge case of only one server being up, the code gets annoying.

This commit implements changing to a likely different lite server after every transaction. In the worst
case scenario, it reduces to the privacy of the old behavior, which is to leak all data to the current
lite server. In the best case, we spread out metadata leakage to every lite server that is currently up.
The average case is to spread out our metadata to more than just one lite server, which is a privacy win.

If stickyServer=1, this code is disabled, since it's better for somebody to connect to their own lite server
and not leak any metadata to 3rd parties.

This algorithm should also be implemented in SDA.

As an aside, Zcash has ignored this problem for 2.5 years and only supports talking to a single lite wallet
at a time (no random selection on startup) which provides further evidence that ZEC mainnet is a honeypot.
2022-12-11 10:20:39 -05:00
Duke 6cab5f68f9 remove sprout code 2022-12-11 09:39:01 -05:00
Duke 9d4cbd64b8 unfuck the server list 2022-12-10 23:27:44 -05:00
Duke 1a7af9682c update lightwalletd server list 2022-12-10 20:50:16 -05:00
Duke 25fab30e1d Document where headerbytes and publickey come from 2022-12-08 21:47:09 -05:00
Duke 31cdbc5f9e More details about header memo fields 2022-12-08 21:41:01 -05:00
Duke fc3f4ce99b Add datatypes to createHeaderMemo comments 2022-12-08 21:31:12 -05:00
Duke 15ec7e3bf5 Improve createHeaderMemo comments 2022-12-08 21:17:48 -05:00