CashFusion on Bitcoin.com wallet (or any other mobile wallet) with compromises + feature requests

7 254
Avatar for architect
3 years ago (Last updated: 2 years ago)

This is my first read.cash article with the same text posted at /r/btc/comments/jznkaz/cashfusion_on_bitcoincom_wallet_or_any_other as I am not too happy with Reddit overall. I would like the discussion to happen here on read.cash but I understand if some prefer to comment on Reddit instead.

  1. 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.

  2. Goal: More privacy on mobile wallets.

  3. Idea: Run Electron Cash's desktop CashFusion in the background while using a mobile wallet of choice on a phone.

  4. 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).

  5. 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

  6. Process:

    1. Have and/or create a mobile wallet (e.g. Bitcoin.com in this setup).

    2. 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)

    3. Back it up, preferably by writing down the seed list somewhere entirely offline:

      1. Either: Select Wallet > Menu (3 dots, top right) > Show my recovery phrase > PIN

      2. Or: Settings (gear icon, main menu bottom right) > Security Center > Manual Backup > Select Wallet > PIN

    4. 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

    5. 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.

    6. Optional but recommended: Right click to change the fusion behavior in “Wallet Fusion Settings” and switch between modes as desired:

      1. Normal = Consolidate or Fan-Out whatever is more appropriate for the fusion math with other fusion users (How about “fusers”?),

      2. Consolidate = to have fewer coins (i.e. addresses with balances on them) in your wallet,

      3. Fan-Out = to have more coins (i.e. addresses with balances on them) in your wallet,

      4. Custom = to specify e.g. target output size or target coin number

  7. Risks:

    1. An infected desktop (e.g. with a keylogger) could reveal the mobile wallet's seed when typing it into Electron Cash.

    2. 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).

    3. 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.

    4. Unknowns.

    5. If you know of any other risks, please share the knowledge.

  8. Compromises:

    1. 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)

    2. 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. ¯\_(ツ)_/¯

    3. 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.

  9. Feature requests for Electron Cash (@jonald_fyookball and/or /u/jonald_fyookball have a look):

    1. 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.

    2. 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

    3. 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<X. Knowing that CashFusion pauses after satisfying both X and Y conditions would allow for nearly non-stop running without a worry that the wallet will end up with too many fusions and too many transactions (and hence marginally higher than necessary transaction costs for future transactions). Add a setting to “Rerun the conditional custom fusion after” checkbox “Any incoming transaction” and/or checkbox “Any outgoing transaction” for further automatic behavior. This would incentivize fusers to let such conditional custom fusion on pretty much non-stop, not only during Fusion Fridays. This should resolve the Compromise #3.

    4. If ABC’s BCHA~TAX somehow survives and becomes a legitimate chain, consider adding the “ --taxcoin” version of Electron Cash 4.2.2 to your official repository. I understand if you do not want to formally promote this chain and do not wish to support it with official wallet software that works without any modifications. If not a direct BCHA~TAX download, your downloads at https://electroncash.org/#download could at least include instructions for common users how to run the “ --taxcoin” argument as they tend to get confused now (e.g. /r/btc/comments/jxgpyv/with_electron_cashs_422_i_realized_we_have_a/gcxq6kx by a regular user who likely never run a terminal command).

  10. Feature requests for Bitcoin.com mobile wallet (@RogerVer and/or /u/MemoryDealers and/or @maplesyrupsucker and/or /u/maplesyrupsucker have a look):

    1. Allow to hide / filter transactions just like you allow for “Verified” SLP tokens under “Assets”. This could be manual (click on the transaction > select hide) with a toggle option to select “All transactions shown”. This should resolve the Compromise #2.

    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.

    3. 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.

    4. 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.

  11. Courtesy of: ABC's/Amaury's Split that forced me to look into replay protection via Electron Cash on an existing Bitcoin.com mobile wallet.

    1. I had a chance to introduce a relative to BCH shortly after the split. 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.

    2. 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.

    3. 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!

21
$ 12.21
$ 11.99 from @TheRandomRewarder
$ 0.10 from @tula_s
$ 0.10 from @RowanSkie
+ 2
Avatar for architect
3 years ago (Last updated: 2 years ago)

Comments

What's the best way to secure your Bitcoin wallet

$ 0.00
3 years ago

"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 http://reddit.com/r/btc/comments/juk9f5/the_developers_of_bitcoincoms_mobile_wallets_want/gcdxwea detailed comment)"

Thanks for bringing light into the darkness! Now I understand why I lost my BSV when I wanted to transfer them to an exchange that would supposedly split them correctly. After that I did a succesful test tx, the main tx did not go trough and only the BCH arrived

WTF, Bitcoin.com wallet has changed to closed source? Since when? uninstalling and not ever going to promote them again

$ 0.00
3 years ago

I am sorry to hear about your bad experience and BSV loss. There could have been something else that went wrong and was not the wallet's fault.

But yes, for about a year or two (since their big UI update a while back), Bitcoin.com mobile wallets have been closed source (https://read.cash/@RogerVer and/or https://read.cash/@maplesyrupsucker likely know more about the call). I would not mind that if they were closed source and regularly peer reviewed by a trusted third party (e.g. https://read.cash/@jonald_fyookball as I do trust his judgement and expertise), the "and" argument being imperative. In the meantime, I understand your choice of looking somewhere else.

$ 0.50
3 years ago

Oh hey, those are some of my requests too! Haha. My tone wasn't nice, however, so you get the proper explanation of things.

$ 0.00
3 years ago

Hey, awesome findings you got indeed! Great minds think alike...

I was curious to see if anyone else was fusing Bitcoin.com mobile wallet balance and running into the described issues (or "compromises" as I prefer describing them) and was glad to find out your precedence. It made me feel safer that I was not messing things up and that it was indeed the wallet's indexing. I too have a few reservations but understand their perspective as without the legacy derivation path they would not be able to generate both BCH and BTC wallets with the same seed. I have yet to find out such a user-friendly wallet with intuitive UI and that is why I prefer it for introductions. Anyways, let's hope they will add features to make advanced users (and especially fusers on the go) happy and incentivized to keep using them.

How long have you been using CashFusion in combination with the Bitcoin.com wallet? Do you know of anyone else using that setup? Have you or someone else tried any other mobile wallets to see if the behaviour is the same, the missing addresses and the extra intermediary transactions in particular?

At this stage of CashFusion integration to mobile wallets, I would only recommend wallets that allow for user-prompted blockchain scan for missing addresses, just in case some balances do not show up. Without that feature, the mobile wallet with incomplete balances would be quite useless as one could find themselves sometimes unable to spend their BCH on the mobile wallet. It would still be possible using Electron Cash desktop but that defeats the purpose of the mobile setup.

$ 0.00
3 years ago

I've been Fusing before the live release was set, and even then, the problems I'd faced with it are mostly BCH not appearing in the mobile wallet, requiring a rescan of the wallet itself a few times.

Some people that I do know that use EC+Bitcoin.com are some of the devs that stick around CashFusion's Telegram channel, that's how I know how to move around more.

To be fair, I haven't really tried other wallets besides Bitcoin.com, it's just that easy to use, even though it's becoming a bit more uneasy to use when you start to learn more of the Bitcoin Cash ecosystem. I do have Electron Cash and Electron Cash SLP ready just in case.

Knowing the hardness of coding, since I'm studying Computer Science to write games someday, we'll have to hope someone can do something close to at least fix the compromises an experienced BCHer will learn when they start to move deeper to the crypto-space.

$ 0.00
3 years ago

Thank you for your insights! I joined the channel and will keep an eye on it. I am not an active Telegram user and only peak in occasionally. But at least I will stay on top of relevant tips and tricks.

And yeah, let's hope that some wallet will look into the compromise. Rather than having a mobile wallet actively performing CashFusion, have the mobile wallet as a mirror of your desktop wallet that can run CashFusion automatically in the background (non-stop or as instructed based on desired thresholds). It looks to me as an easier immediate route for privacy on the go as all that is needed is to have a mobile wallet that can identify and filter out intermediary transactions during the fusion and properly index BCH blockchain to find all associated addresses and balances within a wallet.

Since you are into games and BCH, keep an eye on the recently funded https://flipstarter.enter-the-sphere.com by https://read.cash/@Joey_B_Wong (see https://read.cash/@Joey_B_Wong/what-is-enter-the-sphere-a-game-built-for-slp-now-with-video-825dd2d9 for more details if you have not seen it yet).

$ 0.00
3 years ago