Subject: [bitcoin-dev] Wasabi Wallet 2.0 Testnet Release

From: Max Hillebrand <[email-masked]>
Date: Tue, 1 Mar 2022 21:48:20 +0100

Hello list,

tl;dr: we have been working on a little something, and Wasabi 2.0 is now 
ready for your review and feedback.

Wasabi Wallet 2.0 is a Bitcoin wallet providing effortless privacy for 
its users. Just like Wasabi 1.0, this is achieved by default on the 
network layer with a deep Tor integration, and on the synchronization 
layer with BIP158 block filters or the packaged Bitcoin full node. 
However, 2.0 upgrades the privacy on the blockchain layer with a new 
Wabisabi coinjoin implementation, running by default in the background.

Wabisabi is a drop-in replacement for the ZeroLink coinjoin coordination 
protocol. Instead of Chaumian [or Schnorr] blind signatures, it uses 
keyed verified anonymous credentials and Pedersen commitments. This 
enables anonymous DoS protection for centrally coordinated coinjoins 
without relying on equal amount outputs. This flexibility in the 
coordination enables a more sophisticated amount decomposition, 
specifically with standard denominations of low Hamming weight, in our 
case powers of two, powers of three, and the preferred value series [1, 
2, 5]. In our simulations, this results often in "changeless" coinjoins 
[all outputs at least two anonymity set, aka count of equal value 
outputs] for transactions with more than 50 inputs. Whereas in Wasabi 
1.0 each user had to participate in the smallest standard denomination 
of 0.1 btc, now there is no mandatory output decomposition, and the 
minimum amount is 5000 sats. This is **substantial** block space 
savings, reducing the amount of mining fees paid, and the time until the 
user's utxo set is private.

Thanks to these efficiency improvements, we are now comformaking 
coinjoin transactions the default in Wasabi's UX. As soon as bitcoin is 
received in the wallet, the client will register the confirmed coin as 
input for the PSBT with the backend coordinator. Within a couple hours, 
the user has numerous utxos which can be spent privately without 
revealing their pre-mix transaction history. The resulting UX is simple: 
receive, wait, spend. Privately. Effortless. For everyone.

Whenever the user wants to spend bitcoin to an address, the wallet 
automatically selects those private coins with sufficient sats, coin 
control is displayed to the user. However, when the private balance is 
insufficient to make the payment, the user has the option to adjust the 
coin selection with the help of the previously provided contact labels. 
Since labeling is mandatory in Wasabi, we can abstract away the utxo 
concept and display only the contact labels for the users to choose 
from. Wasabi also suggests the user to slightly adjust the payment 
amount so as to avoid the creation of a change utxo, decreasing fees and 
improving future privacy.

Today, we are proud to finally reveal our work in progress in a public 
preview release with coinjoin on testnet. We kindly ask for your help 
testing the completely new UI/UX, reviewing the cryptography and 
coordination protocol, and especially coinjoining to analyze the 
resulting transaction graph in the wild.

Thank you to all contributors past and present!

Skol
Max Hillebrand

Download the testnet release: 
https://github.com/zkSNACKs/WalletWasabi/releases/tag/v1.98.0.0

Website: https://wasabiwallet.io
Onion: http://wasabiukrxmkdgve5kynjztuovbg43uxcbcxn6y2okcrsg7gb6jdmbad.onion
Testnet coordinator: 
http://testwnp3fugjln6vh5vpj7mvq3lkqqwjj3c2aafyu7laxz42kgwh2rad.onion