CashFusion on Bitcoin.com wallet (or any other mobile wallet) with compromises + feature requests
This is a copy of my first read.cash article at @architect/cashfusion-on-bitcoincom-wallet-or-any-other-mobile-wallet-with-compromises-feature-requests-a9528a58 as I am not too happy with Reddit overall. Compare the two and see how Reddit removed indentation at the end of this post and replaced the numbered points with letters despite me seeing it in Reddit editor the same way as on read.cash.
I would like the discussion to happen on read.cash but I understand if some prefer to comment here on Reddit instead.
- Status: Experimental. If others (especially @jonald_fyookball and/or /u/jonald_fyookball of Electron Cash & Cash Fusion + @RogerVer and/or /u/MemoryDealers and/or @maplesyrupsucker and/or /u/maplesyrupsucker of Bitcoin.com mobile wallet) can comment on the below, I can update this status when appropriate.
- Goal: More privacy on mobile wallets.
- Idea: Run Electron Cash's desktop CashFusion in the background while using a mobile wallet of choice on a phone.
- Precedence: As found out after my tests when searching to see if others have run into the same issues (“compromises” as I call them), at least one other user has tested this setup (see /r/btc/comments/juk9f5/the_developers_of_bitcoincoms_mobile_wallets_want point 4).
- Test setup: Bitcoin.com mobile wallet due to its preferred UI suitable to introduce others to BCH (with a grain of salt for being closed source, reusing change addresses, and older m/44'/0'/0' derivation path that is grandfathered so that it generates both BCH and BTC wallets with the same seed, suitable to reduce risks of losing funds for crypto newcomers and/or users not realizing differences between BCH and BTC, see /r/btc/comments/juk9f5/the_developers_of_bitcoincoms_mobile_wallets_want/gcdxwea detailed comment) + Electron Cash 4.2.2 with CashFusion due to its privacy features
- Process:
- Have and/or create a mobile wallet (e.g. Bitcoin.com in this setup).
- Optional but recommended: Allow PIN app lock. Settings (gear icon, main menu bottom right) > Preferences + App Lock (while in the Settings, you may also want to update your local currency and/or turn off sharing anonymous data)
- Back it up, preferably by writing down the seed list somewhere entirely offline:
- Either: Select Wallet > Menu (3 dots, top right) > Show my recovery phrase > PIN
- Or: Settings (gear icon, main menu bottom right) > Security Center > Manual Backup > Select Wallet > PIN
- Create a new Electron Cash desktop wallet with your existing seed from a mobile wallet: File > New/Restore > create_name + Next > Standard wallet > I already have a seed > manually_write_your_seed + Options + BIP39 (for some, e.g. Bitcoin.com) + Next > m/44'/145'/0' OR m/44'/0'/0' derivation path (m/44'/0'/0' for some, e.g. Bitcoin.com) + Next > Password + Next
- Turn on CashFusion to run in the background (green nodes icon, second icon bottom right corner), and leave your Electron Cash on as long as desired.
- Optional but recommended: Right click to change the fusion behavior in “Wallet Fusion Settings” and switch between modes as desired:
- Normal = Consolidate or Fan-Out whatever is more appropriate for the fusion math with other fusion users (How about “fusers”?),
- Consolidate = to have fewer coins (i.e. addresses with balances on them) in your wallet,
- Fan-Out = to have more coins (i.e. addresses with balances on them) in your wallet,
- Custom = to specify e.g. target output size or target coin number
- Risks:
- An infected desktop (e.g. with a keylogger) could reveal the mobile wallet's seed when typing it into Electron Cash.
- An impatient fuser does not wait for a CashFusion transaction to happen and uses their mobile wallet too soon, possibly compromising their privacy. Turning CashFusion on does not mean it will happen instantaneously as it first queues your preferred fusion (see the queue under Right click CashFusion > Fusions).
- An eager fuser uses the background fusion without understanding the compromises below and how they may affect their mobile wallet provider. For instance, if there is a wallet that does not allow manual scan for missing transactions, then the fuser’s mobile wallet balance might be temporarily incorrect.
- Unknowns.
- If you know of any other risks, please share the knowledge.
- Compromises:
- Bitcoin.com wallet might not automatically recognize your entire balance after using CashFusion in the background. If that happens, do not panic, it is an indexing hiccup. Simply prompt Bitcoin.com wallet to scan the BCH blockchain for missing addresses not yet associated with your wallet. Select Wallet > Menu (3 dots, top right) > Wallet information > Scan for missing transactions > Scan for transactions > Wait (and repeat if necessary, I once had to do this scan twice with ample time in between)
- Bitcoin.com wallet might list CashFusion intermediary transactions as yours with large balances newer owned. If that happens, appreciate this under the hood blockchain magic and move on. You can see these transactions as having a fee nearly identical to the transacted amount. ¯\_(ツ)_/¯
- CashFusion might keep running even after several fusions, with a mystery as to when it would pause and restart (if at all). A bit more understanding about its Normal fusion behavior and/or custom mode for pausing and restarting would be appreciated.
- Feature requests for Electron Cash (@jonald_fyookball and/or /u/jonald_fyookball have a look):
- Update the UI to make it clearer where the seed list import is. The seed recovery is under “Standard wallet” menu, not “Import...” which is specifically and only for “Import Bitcoin Cash addresses and private keys” (addresses and private keys are different from the seed list). When quickly skimming through options, users tend to default to “Import...” as that is the action they are after (see /r/Bitcoincash/comments/jwi6cz/help_with_splitting_from_the_badger_wallet/gcqohaw for example). Stating “Standard wallet, new or seed list import” and restating “BCH addresses and private keys import” should clear this up.
- Allow for QR code camera input for the seed list import (just like it is for a private key import). This will make it quicker to input the seed list with its specific details if automatically recognized (e.g. BIP39 and legacy m/44'/0'/0' derivation path for Bitcoin.com). Then the Risk #1 is diminished and the Process #4 becomes simpler: File > New/Restore > create_name + Next > Standard wallet, new or seed list import > I already have a seed > QR input + Next > Password + Next
- Add a conditional custom fusion setting for automatic switching between fan-out and consolidation. This is possible manually but would be nice for those who desire to first fan-out to min.X coins and then consolidate to max.Y coins where, obviously, Y select hide) with a toggle option to select “All transactions shown”. This should resolve the Compromise #2.
- Implement better indexing logic to automatically hide CashFusion transactions. The above filter request could be fully automatic (if transaction fee is 99% of transaction amount, then hide and/or scan for op_return to identify CashFusion) and fusers would not have to do much manually. This should resolve the Compromise #2.
- If hiding a transaction occurs (manually and/or automatically), scan blockchain for missing transactions in regular intervals. The assumption is that such a user is a fuser and will want to see their entire balance. The automatic scan intervals could be after each balance change just to make sure that the wallet recognized all outputs from each new fusion. This should resolve the Compromise #1.
- Add manual CashFusion option in wallet settings (e.g. under “Wallet information”) to know which wallets use CashFusion. This will allow for automatic hiding / filtering of transactions and more frequent blockchain scanning. This should resolve the Compromise #1 and #2, as described in the feature requests above.
- Courtesy of: ASS (ABC's/Amaury's Siphoning Split) move that forced me to look into replay protection via Electron Cash on an existing Bitcoin.com mobile wallet.
- I had a chance to introduce a relative to BCH shortly after the ASS move. My relative wanted to buy VoIP (Voice over Internet Protocol) credits at https://www.freecall.com/payment_methods and I suggested sending them plenty of BCH to use for several such purchases. Though I first wanted to make sure that their newly downloaded Bitcoin.com wallet was to receive properly replay-protected BCH from me.
- Thank you Amaury (@deadalnix and/or /u/deadalnix account) for stubbornly forking off without a replay protection. Your hostile roadblock sparked this minor innovation of assembling widely available tools for something relatively novel that is almost ready for a common user.
- I did not want to wait for all this to be solved on its own so I went ahead and experimentally imported my Bitcoin.com seed to Electron Cash, split my BCH and used CashFusion for more privacy, and used the BCHA~TAX “ --taxcoin” version of Electron Cash to secure my funds there. Adversity indeed instills creativity!
[link] [comments]