Wasabi Wallet

From Bitcoin Wiki
Revision as of 14:20, 3 July 2023 by Kristapsk (talk | contribs) (Fix GitHub link)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Wasabi Wallet is an open-source, non-custodial, privacy-focused Bitcoin wallet for Desktop that implements trustless CoinJoin. The code is on GitHub at zkSNACKs/WalletWasabi where anyone can see, verify, and contribute to the project. Wasabi Wallet is trustless by design, meaning neither the public nor the developers can breach your privacy. This is accomplished via client-side block filtering(BIP158), communication over the Tor anonymity network, and the WabiSabi protocol: an anonymous credential scheme for centrally coordinated coinjoin transactions. The coinjoin coordinator is run by zkSNACKS Ltd., the company that sponsors the development of Wasabi Wallet. The developers have gone to great lengths to ensure that the coordinator cannot steal nor breach the privacy of any participant. This can all be verified by examining the open-source code.

Wasabi Wallet strives toward establishing solid industry best practices and standards. It implements Hierarchical Deterministic walletsaddress reuse avoidance, as well as mandatory coin labeling. The wallet uses BIP-158 client-side block filtering to obtain its own transaction history in a private way and it has a one-click partial full node integration as it ships with Bitcoin Knots. If the user already has a Bitcoin full node on a local or remote device, then it is possible to specify the IP address and port, or the Tor onion service, and Wasabi will use it to verify and enforce the rules of Bitcoin.

In addition to this, Wasabi has advanced cutting-edge features like Opt-in PayJoin and Dust attack protections. You can find a full list of supported BIPs in the wallet documentation. This is part of Wasabi Wallet’s complete and detailed documentation containing descriptions about the architecture and functionality of the wallet, as well as helpful tutorials on how to use it. There is also a tutorials playlist on YouTube with short videos on how to use and interact with Wasabi Wallet.

Wasabi Wallet installation

WasabiWallet.io homepage

Wasabi Wallet is easy to install. First, you have to go to https://wasabiwallet.io or http://wasabiukrxmkdgve5kynjztuovbg43uxcbcxn6y2okcrsg7gb6jdmbad.onion (for the onion service) and download the version for your own operating system. Wasabi is available in most operating systems with 64-bit architecture.

Linux, Windows and macOS (intel & M1) are the officially supported operating systems. For the complete compatibility list check the Wasabi Compatibility document. It is also possible to manually verify the PGP signatures and the deterministic builds.

For a step-by-step tutorial on the installation and PGP verification, you can follow the relevant chapter in the documentation.

Once the software is installed, icons will be created on the desktop and on the menu, you can click on them to open the program. If you have downloaded the .tar.gz version, then first extract it and then run the ./wassabee command.

Run Wasabi Wallet

When you run Wasabi for the first time, you will be prompted to generate a wallet. You have the option to create a new wallet, connect to a hardware wallet, import a wallet from a file, or recover a wallet with a 12 word seed. When you generate the wallet, you will then be prompted to choose a unique name for it; choose a name that reflects the purpose of the wallet. If you create a new wallet you will be presented with 12 recovery words to record (BIP39), followed by the option to encrypt your wallet with a secure password (BIP38). You will always need the password in order to login to your wallet and whenever you spend your bitcoins, so remember to properly backup both the password and the 12 recovery words.

Send and Receive bitcoin via Wasabi Wallet

As explained above, Wasabi has mandatory coin labeling. This means that in order to send or receive bitcoin we have to specify custom labels for the address. These labels should be the name of any entities who know that this address is yours. Properly annotated labels is one of the most important features in Wasabi Wallet because it helps you better manage your privacy. A simple example of labeling is as follows: Alice pays you back for last night's pizza, so you label your receive address as Alice. Now you have a record of the specific UTXO that Alice is aware of and can trace on the Block chain.


Receiving Bitcoin

  1. Click Receive button
  2. Add Labels
  3. Scan or copy the unused bitcoin address.

Sending Bitcoin

  1. Click Send button
  2. Paste bitcoin address
  3. Enter amount in BTC or USD
  4. Add Labels
  5. Preview Transaction (option to specify custom transaction fee rate)
  6. Enter password.

Coinjoin via Wasabi Wallet

Wasabi Wallet 2.0


Coinjoins are the most important feature of Wasabi Wallet. Schnorr blind signatures, (which is similar to the cryptography used in chaumian blind signatures and blinded bearer certificates) make it possible to run trustless (meaning nobody can steal) and private (meaning even the coordinator cannot spy) coinjoins where nobody learns the linkage between the mixed transaction inputs and outputs.

Wasabi Wallet implements the WabiSabi protocol, which is an anonymous credential scheme for central coordinated coinjoin transactions. The zkSNACKs Ltd. company is who coordinates the coinjoin transactions for Wasabi Wallet. They take a fee for coordinating the coinjoin and use these funds to sponsors the Wasabi developers. The fee structure is as follows: coins with a value above 0.01 BTC costs 0.3% as a coordinator fee + mining fees. Inputs of 0.01 BTC or below do not pay coordinator fees, nor remixes, even after one transaction. Thus, a payment made with coinjoined funds allows the sender and the recipient to remix their coins without paying coordinator fees.


> 0.01 BTC 0.01 BTC and less
Fresh input 0.3% coordination fee + mining fees mining fees
Remix* mining fees mining fees

*Remix includes a 1 hop transaction


WabiSabi was introduced in Wasabi Wallet 2.0 and improves upon the original ZeroLink protocol of Wasabi Wallet 1.0. WabiSabi is a novel communication protocol for creating bitcoin coinjoin transactions with arbitrary amounts, which provides more privacy at less cost for the user. This new protocol utilizes keyed verification anonymous credentials and homomorphic value commitments to enable novel use cases and reduced overhead. WabiSabi enables the emergence of much larger coinjoins rounds with hundreds of inputs and outputs (e.g., 4f0436e9406e5930f9cdaaf94144de72b2b204690e7b19fe5f80067545440a7c).

Controversies

On March 13 2022, Wasabi announced that its zkSNACKs coordinator had plans for blacklisting tainted coins, which would prevent them from participating in CoinJoins.[1] This was met with backlash from some parts of the Bitcoin community who did not like the concept of taint.[2]. Wasabi has stated that they do not have access to any information that can link user identities, and acknowledged that the decision to blacklist tainted outputs was done proactively, with no legislation requiring them to do so.[3]

References