# Introduction to Wasabi
# The Basics
Who can use Wasabi?
Every single line of code in Wasabi, the wallet, the backend server, the tests, the packager, the library, the daemon, the api, the documentation - has always been and will always be libre and open-source under the MIT license. This means that anyone, yes, ANYONE can use Wasabi without permission, for any use case, free of charge.
Wasabi is used by individuals to receive and spend every day payments, to manage their hardware wallet long term hodlings, and to CoinJoin their sats for added privacy. There are also entrepreneurs who use Wasabi to defend their customers from spies and to ensure a private business relationship. Young kids have Wasabi to stack the sats gifted by grandma, and they learn the importance of hodling.
Wasabi is a tool for everyone.
What is a CoinJoin?
A mechanism by which multiple participants combine their coins (or UTXOs, to be more precise) into one large transaction with multiple inputs and multiple outputs. An observer cannot determine which output belongs to which input, and neither can the participants themselves. This makes it difficult for outside parties to trace where a particular coin originated from and where it was sent to (as opposed to regular bitcoin transactions, where there is usually one sender and one receiver).
This can be done with non-custodial software like Wasabi that eliminates the risk of funds disappearing or being stolen. Each of the signatures are created on the participants’ computers after thorough verification, so nobody can alter the transaction or redirect the funds. The funds will always be in a Bitcoin address that you control.
In very simple terms, CoinJoin means: “when you want to make a transaction, find someone else who also wants to make a transaction and make a joint transaction together”.
See also the Bitcoin Wiki on CoinJoins
Do I need to trust Wasabi with my coins?
No, Wasabi's CoinJoin implementation is trustless by design. The participants do not need to trust each other or any third party. Both the sending address (the CoinJoin input) and the receiving address (the CoinJoin output) are controlled by your own private keys. The Wasabi server merely coordinates the process of combining the inputs of the participants into one single transaction, but the Wasabi Wallet can neither steal your coins, nor figure out which outputs belong to which inputs (look up “Chaumian CoinJoin” if you want to know more).
What is the privacy I get after mixing with Wasabi?
This depends on how you handle your outputs after the CoinJoin. There are some ways how you can unintentionally undo the mixing by being careless. For example, if you send a mixed coin to an already used address, then anyone can see that both coins are controlled by the same entity and more importantly anyone who know that the address is yours know that you own that mixed coin. Address reuse is very bad for your privacy. Another deanonymizing scenario happens when you combine mixed outputs with unmixed ones when sending: a third party will be able to make the connection between them as belonging to the same sender. This is why you need to be careful with change coins.
The practice of being careful with your post-mix outputs is commonly facilitated through coin control, which is the default way of interacting with the wallet. Find out more about coin control in here.
Can I hurt my privacy using Wasabi?
No. The worst thing that can happen (through user’s negligence post-mix) is that the level of your privacy stays the same as before the CoinJoin. It is crucial to understand that Wasabi is not a fool-proof solution if you neglect to practice coin control after the mixing process.
Why is Wasabi Bitcoin-only?
There are countless reasons why it is the only logical choice to be bitcoin-only. With Bitcoin we have a once in a lifetime opportunity to manifest libre sound money. If we succeed, then this might emerge an utmost beautiful agora of sovereign individuals. If we fail, then this will conjure up the most horrific Orwellian nightmare. There is no room for wasted time and energy, this Great Work requires our full attention. Any line of code written to support a random shitcoin takes away scarce developer time to work on real problems.
Why is the anonymity set 100?
Sufficient anonymity set is a hard question, that not yet enough research done to answer it definitively. The rough consensus among many privacy researchers is that an anonymity set above 50 could be considered sufficient. Furthermore our calculations have shown that with the liquidity of today’s mixers our mixing rounds would take 1 to 5 minutes with 100 anonymity set and 0.1 BTC fixed denomination.
Is there a way to check Wasabi uptime status?
Yes, you can check the status of Wasabi-related services and websites (like APIs, Backend, etc.) via UptimeRobot Wasabi Status Page.
What software supplies the block filters that Wasabi uses?
The zkSNACKs coordinator supplies the same set of filters to every client. This means you rely on the Wasabi backend providing you valid filters. But because you download the blocks from a random Bitcoin peer-to-peer node - or your own node - the coordinator cannot spy on which blocks you are interested in. Furthermore, the random node will only know which block is needed but it won't have any clue which transaction(s) belongs to the wallet.
Is the Backend's (Coordinator) code open-source?
Yes, you can verify the code on GitHub.
Is there an Android/iOs version?
No, Wasabi and CoinJoin features require considerable computational power, not currently replicable on a smartphone.
# For advanced Wasabikas
Can the coordinator attack me?
The nature of Wasabi is that you should not need to trust the developers or the Wasabi coordinating server, as you can verify that the code does not leak information to anyone. The developers have gone to great lengths in an attempt to ensure that the coordinator cannot steal funds nor link inputs to outputs.
The only known possible 'malicious' actions that the server could perform are two sides of the same coin;
- Blacklisted UTXO's: Though this would not affect the users who are able to successfully mix with other 'honest/real' peers.
- Targeted Sybil Attack: The follow-up concern is the inverse of the above. It is possible that the server could only include one 'honest/real' coin in the mix and supply the other coins themselves. This would give a false sense of security, but it would not worsen the existing privacy of the coin. It would also be noticeable to all users excluding the user being targeted as their coins would not be mixed. It has been argued that this 'attack' would be very costly in terms of fees because the number of coins being mixed is verifiable. Though it is true that fees would have to be paid to zkSNACKs every round, this does not matter if it is zkSNACKs that is acting maliciously (as they get the funds back). Typical rounds currently have <100 people per mix, with the minimum input being ~0.1 BTC with a fee of 0.003% per anonymity set. Taking the 'worst case' (100 people, each mixing 0.1 BTC) gives 0.03 BTC per round. This is not prohibitive and is thus a valid concern. That said, if multiple chain-analysis companies attempt to flood the zkSNACKs mix (to decrease the true anonymity set) they will hinder each other's efforts (unless they are cooperating). See here for more info.
What is the history of Wasabi?
Ádám Ficsor worked with several others on a privacy-focused Bitcoin wallet called Hidden Wallet all the way back in December 2015. Wasabi was unveiled in 2018 at the Building on Bitcoin conference by Ádám. At the time, Wasabi was essentially HiddenWallet rebranded and rewritten from scratch with some new features. Key dates:
- The Beta release was on August 1 (on the first anniversary of UASF.)
- The 1.0 release was on October 31 (on the tenth anniversary of the Bitcoin Whitepaper.)
Why is Wasabi libre and open-source software?
Wasabi follows the philosophy behind Bitcoin by making the software open-source and by publishing it under MIT License. Bitcoin users prefer open-source software to proprietary software for a number of reasons, including:
Many people prefer open-source software because they have more control over the software they run.
They can examine the code to make sure it's not doing anything they don't want it to do, and they can change parts of it they don't like. Users who aren't programmers also benefit from open-source software, because they can use this software for any purpose they wish, not merely the way someone else thinks they should.
Other people like open-source software because it helps them become better programmers.
Because open-source code is publicly accessible, students can easily study it as they learn to make better software. Students can also share their work with others, inviting comment and critique, as they develop their skills. When people discover mistakes in programs' source code, they can share those mistakes with others to help them avoid making those same mistakes themselves.
Some people prefer open-source software because they consider it more secure and stable than proprietary software.
Because anyone can view and modify open-source software, someone might spot and correct errors or omissions that a program's original authors might have missed. And because so many programmers can work on a piece of open-source software without asking for permission from original authors, they can fix, update, and upgrade open-source software more quickly than they can proprietary software.
Many users prefer open-source software to proprietary software for important, long-term projects.
Because programmers publicly distribute the source code for open-source software, users relying on that software for critical tasks can be sure their tools won't disappear or fall into disrepair if their original creators stop working on them. Additionally, open-source software tends to both incorporate and operate according to open standards.
What are the minimal requirements to run Wasabi?
- 64-bit architecture
- Windows 10+
- macOS 10.13+
- Debian 9+
- Ubuntu 16.04+
- For other Linux distributions, it depends on the specific OS.
Click here to check if .NET Core 3.1 supports your OS.