Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Revaulting: UTXO consolidation issue #5745

Open
Parsh opened this issue Dec 13, 2024 · 0 comments
Open

Revaulting: UTXO consolidation issue #5745

Parsh opened this issue Dec 13, 2024 · 0 comments
Assignees
Labels
Status: to-do 📋 Items not yet picked up vaults🔐 All about the Vaults Home Screen
Milestone

Comments

@Parsh
Copy link
Member

Parsh commented Dec 13, 2024

Task Description
Users can create multisig wallets, which we refer to as Vaults. These can be either a standard m-of-n multisig or a miniscript-based multisig configuration.

The Problem: When users perform re-vaulting (i.e., updating the m-of-n scheme, modifying the set of signers, or changing the timelock in a miniscript-based vault), a new vault is created, triggering a migration process. This involves transferring funds from the old vault to the new one. During this migration, all UTXOs from the old vault are consolidated into a single UTXO in the transaction used for the transfer. This creates a significant privacy issue, especially when UTXOs are tagged and selectively used (via UTXO selection) to preserve privacy.

Potential Solutions:
To address the privacy concerns associated with migrating funds from an old multisig vault to a new one, several strategies can be implemented to maintain UTXO privacy:

  • Separate Transactions for Each UTXO
    Instead of consolidating all UTXOs into a single transaction, we can create separate transactions for each UTXO. This approach prevents linking all the UTXOs in a single transaction, thereby preserving privacy. However, this method may increase the number of transactions and associated fees.

  • Grouping UTXOs with the Same Label
    We can group UTXOs that have the same label or origin into separate transactions. For example, if we have UTXOs tagged as KYC and non-KYC, we can transfer them in separate transactions to avoid mixing these different types of UTXOs. This method helps maintain the separation of funds based on their source and reduces the risk of linking them.

  • Broadcasting Transactions at Different Intervals
    To further minimize linkage, we can broadcast these transactions at different intervals. Spacing out the transactions over time makes it harder for observers to associate them with a single migration event. This can be combined with using different IP addresses or VPNs/Tor for each transaction to enhance privacy.

  • Silent Notifications(?)

@Parsh Parsh added vaults🔐 All about the Vaults Home Screen Status: to-do 📋 Items not yet picked up labels Dec 13, 2024
@Parsh Parsh added this to the Sprint 42 milestone Dec 13, 2024
@ben-kaufman ben-kaufman modified the milestones: Sprint 42, Sprint 44 Dec 16, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Status: to-do 📋 Items not yet picked up vaults🔐 All about the Vaults Home Screen
Projects
None yet
Development

No branches or pull requests

3 participants