draft proposal: change forwarding (improved fungibility through wallet interoperability)



Summary:

The idea behind this proposal is to allow users who are privacy conscious to utilize a specialized wallet automatically, to isolate the activity of wallets which don't provide a sufficient degree of control in order to achieve that manually, and reducing the possibility of operator error. The proposal suggests that most mobile wallets have no coin control features and some special purpose wallets have additional privacy concerns and also lack coin control. Fungibility focused wallets are highly specialized and limited in scope with JoinMarket and Wasabi being the only maintained implementations of mixing wallets available today, both are desktop apps, with no hardware wallet integration. The goal then is to allow people who are privacy conscious to utilize a specialized wallet automatically, to isolate the activity of wallets which don't provide a sufficient degree of control in order to achieve that manually, and reducing the possibility of operator error.The UX would be such that from a payment standpoint the main difference is that change outputs would not be usable, so the spendable balance would drop. For setup, the fungibility wallet would need to add functionality to export xpub variants, perhaps with a way of annotating what each account is for. In the forwarding wallet, derivation of addresses is again already implemented in any BIP32 capable wallet (i.e. checking for the next free address), with the main change in the spending path being dependency injection required to change the address chain parameters. If the user is privacy-conscious and has chosen the non-private wallet to begin with due to platform limitations or application specific use cases, they can now choose an option that slowly siphons their funds into a different app and sends them back in a controlled manner. On the other hand, if the user is not privacy-conscious, they would never choose to enable this option, so wallet developers would implement this to allow users more reliable access to privacy features implemented by other wallets.The reason for documenting it in this way is because if deemed desirable functionality, different implementations would need to agree on the details. The main weakness is the assumptions that fungibility wallets handle arbitrary amounts allowing those funds to be tumbled and recycled/consolidated, which realistically only applies to Join Market and even then only if used correctly.


Updated on: 2023-06-13T15:11:28.657244+00:00