Walletwasabi: Export watch only child xpub

Created on 20 Nov 2019  路  4Comments  路  Source: zkSNACKs/WalletWasabi

Problem

A user cannot add a watch only wallet, if it is not a hardware wallet. This excludes many use cases like offline electrum wallets, or paper wallets etc. The user must switch to watch only wallet software that is far less private than Wasabi.

Solution

In the Load Wallet section of the Wallet Manager tab, add a button with Import xpub that opens a tab with user input text boxes for extended public key, derivation path, gap limit and maybe birthday for faster sync. Give a notice that Wasabi can only do native segwit.

With this information, build a proper Wasabi wallet file, save it in the Wallets and WalletBackup folders, and display it on the next wallet start.

Disable the CoinJoin tab, like with hardware wallets.

Reduce the Send tab, so that it only shows the coin list.

So the two main functionalities of this watch only mode are:

  • Generate a new receiving address in a well labeled form.
  • See how many coins were sent to that wallet without leaking the public keys to a third party server.

This is especially useful for the upcoming multi wallet support.

featurenhancement

All 4 comments

ACK.

Reduce the Send tab, so that it only shows the coin list.

Since this is watch only we should disable send tab and open the Build transaction tab by default where the user can see the utxos.

I would like to bring this topic up again, as I think this is a phenomenal feature. Let me explain the functionality and a possible use case to BOTH export a child xpub and import a xpub. [although zpub might be more accurate, I will simply speak of master, and child xpub, as Wasabi will continue to be segwit only]

Labeling and exporting child xpub

Right now, a user can only export the master xpub, from this all possible child xpubs could be derived. This means that he would have to create a complete new wallet for every case when he wants to export the xpub without compromising the privacy of the other transaction in this wallet. However, it could be possible, that in the Advanced section in the Wallet Info, a user can generate and label several child xpubs. If a coin is received to any one of the addresses, then it will be labeled with the observer that was specified. Wasabi uses m/84'/0'/0' for the the master xpub, so children would be m/84'/1'/0', m/84'/2'/0', m/84'/3'/0', ...

Use Case

If the user receives bitcoin regularly from one specific entity, like his employer, or an exchange [getbittr recommends and uses Wasabi for this already], or a friend, then instead of needing to communicate a new address every time, one time he labels a child xpub with employer, and gives this child xpub to him for future use. This is not a privacy leak, as the employer will not have the master xpub or the child xpub of the exchange, and thus cannot know the total wallet balance of the user. The employer has the exact same amount of information, all the coins that he has previously send.

Importing [master or child] xpub

In the Wallet Manager, add a new tab [as Hardwarewallet is the same watch only feature, but different specifics] with Import Watch Only Wallet, where the user can specify any xpub, master or child and labels it accordingly. This Wallet behaves exactly the same as a hardware wallet does, it can generate new receiving addresses, and shows a list of all the coins in the wallet, also building partially signed transactions [though not sure for what use case]. This gets especially interesting with the upcoming multi wallet support and CoinJoin into another wallet.

Use Case

To pick up the previous example, now the employer has the child xpub of the employee, and he imports this into Wasabi. When ever he wants to send the salary, he uses the upcoming multi wallet feature, to send coins from his hot wallet directly into the wallet of the employee, without needing to request a new address, this might be as simple as selecting the destination from a drop down menu of all available wallets [watch only and with private keys]. Even better, in some cases it might even be useful to directly CoinJoin into this child xpub - so to save a transaction, AND that the receiver does not know the input of the sender - a huge privacy win!

Big Picture

So, the employee has a hot wallet called Income and labeled a child xpub with employer, another xpub with exchange and a third with friend. He distributes the xpubs to the relevant persons. The employer imports the xpub into his Wasabi, and he will not see any transactions from the exchange or friend, only the transactions that he sent to this wallet, thus no privacy leak. When ever the payday is due, the employer clicks the drop down menu and selects the employee as receiver, automagically generating a new unused address [thus further preventing address reuse]. Even better, the friend can pay back a whole coin in a CoinJoin for extra privacy! For the receiving user, all the coins that are received on the child, will be labeled the same [another big win for smart coin selection], so after a while, he has 5 coins from employer, 3 coins from exchange and 1 coin from friend, or whatever. Now, when he does a CoinJoin with these coins, the output address will NOT be from the child xpub, but from the master xpub [arguably all mixed coins should go to a separate dedicated child xpub, but that's another topic and not necessary]. Thus, after only one round of CoinJoin, the employer does no longer see what the employee does with his money, as it is in a different xpub, that the employer does not have!

To pick up the previous example, now the employer has the child xpub of the employee, and he imports this into Wasabi

What if the employer doesn't use Wasabi? Do you know of any wallet that imports child xpubs?

Do you know of any wallet that imports child xpubs?

Any wallet that supports watch only wallets, Bitcoin Core, Electrum, Sentinal, ...

Was this page helpful?
0 / 5 - 0 ratings

Related issues

RiccardoMasutti picture RiccardoMasutti  路  3Comments

UkolovaOlga picture UkolovaOlga  路  3Comments

nopara73 picture nopara73  路  3Comments

kenny47 picture kenny47  路  3Comments

yahiheb picture yahiheb  路  3Comments