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

Use same script type for change when sending. #12249

Closed
nostitos opened this issue Jan 14, 2024 · 6 comments
Closed

Use same script type for change when sending. #12249

nostitos opened this issue Jan 14, 2024 · 6 comments

Comments

@nostitos
Copy link

The wallet tracks both segwit and taproot so when sending to a segwit or taproot address the change should go to the same address type.

Sending to a taproot address should send the change to a taproot too
Sending from segwit sends change to a segwit

It should either be random or be the same, not always taproot.

@molnard
Copy link
Contributor

molnard commented Jan 25, 2024

The concept makes sense. First, let's see how it should work now. According to this test, it should alternate.

https://github.com/zkSNACKs/WalletWasabi/blob/master/WalletWasabi.Tests/UnitTests/KeyManagementTests.cs#L215

We could say it is quasi-random. So either it is or there is a bug in Wasabi.

Is it alternating for you?

@molnard
Copy link
Contributor

molnard commented Jan 25, 2024

Which version of Wasabi are you using?

@kristapsk
Copy link
Contributor

Always using the same script type for change might have minor benefits, as, if change is later spent again, not going into WabiSabi coinjoin, but receiver of first tx is not a wallet supporting WabiSabi, it's harder to distinguish which was recipient address and which was change.

@nostitos
Copy link
Author

nostitos commented Jan 25, 2024

The drawback is that one can't sync the same seed with another segwit or taproot only wallet. For example, spending on mobile.

Usually there's a privacy benefit to fuzzing the change but in the case of CJ spending it's easy to tell one get remixed and the other doesn't (unless sending to another WW). In the meantime there's a privacy gain if random or same script but there isn't if it's sending change always to taproot.

@nostitos
Copy link
Author

The concept makes sense. First, let's see how it should work now. According to this test, it should alternate.

https://github.com/zkSNACKs/WalletWasabi/blob/master/WalletWasabi.Tests/UnitTests/KeyManagementTests.cs#L215

We could say it is quasi-random. So either it is or there is a bug in Wasabi.

Is it alternating for you?

Latest, I only checked 3 transfer as a sample all change went to taproot.

@lontivero
Copy link
Collaborator

No, change scripts are not always taproot and even if that were the case 3 observations are not enough to assert anything.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants