Wasabi Wallet

Wasabi Wallet's avatar
Wasabi Wallet
npub167hm...schc
Open-source, non-custodial Bitcoin Wallet with built-in coinjoin for desktop.
Bitcoin transactions reveal the origin and destination addresses of every unit spent. Bitcoin’s privacy problem can be solved by a special type of transaction called a “coinjoin” which includes coins from multiple users that are reorganized into matching amounts. All Bitcoin transactions show where the coins that are being spent came from (known as inputs) and where the coins are being sent to (known as outputs). Each input and output has an address, and an amount. When a payment creates two outputs, the receiver can track the leftover change that belongs to the sender when it is spent in a future transaction. When a payment consumes more than one input, an observer can link multiple payment addresses used by the sender together. These kinds of transactions are easy to trace, revealing a chain of information about a wallet’s balance and transaction history to anyone who looks for it. Coinjoin transactions are different: There are more than two outputs and the inputs are consumed by multiple senders. Coinjoins allow you to privately shift your coins from the original addresses known by previous senders or receivers into new addresses that are not deterministically linked to your previous transactions, even if you are not making an immediate payment. In order to organize all the inputs and outputs into a coinjoin transaction, a central coordinator is used to relay all the transaction information to participants. This process is non custodial, so the coordinator and the other participants cannot steal your funds. A minimum of 150 inputs is required for the coinjoin to proceed, but up to 400 inputs are allowed in a single round. Once enough inputs are ready, users choose outputs that are the exact same size as other users, creating a crowd of identical matches to hide in. A new unique Tor identity is used any time an input is registered or an output is claimed by a client so that the coordinator is not able to link any coins together by matching the IP address to the same owner. Each consecutive coinjoin your coins participate in increases the size of the crowd they are hiding in, allowing users to boost their privacy as much as they want before sending or storing their coins.
Bitcoin 101: What is fungibility? Fungibility is a desirable property of anything used for trade such as a commodity or currency. Items can be considered fungible if any single unit has the same value as any other unit without further inquiry about its origin, destination, or unique attributes. Several variables have the potential to affect the fungibility of bitcoin units despite there being a commonly discovered price displayed across many exchanges. Privacy and divisibility greatly contribute to the fungibility of bitcoin, but unique differences still exist. A factor that makes a certain amount of bitcoin have a different value than the same amount in another wallet is the number of UTXOs the balance is split into. Since transaction fees are required to spend each additional input, low value inputs are disproportionally economically penalized compared to high value inputs. Another factor that makes satoshis worth ever so slightly more or less is their position within lightning network channels. Every lightning channel has a fee rate set by each peer, effectively assigning certain bitcoin units a positive or negative cost to move. Subjective value assigned by the market may also affect the fungibility of bitcoin units. Much like a guitar signed by Elvis has a premium market value in the eyes of some fanatics, a coin that was “signed” when spent by a Bitcoin celebrity may have sentimental appeal.
Primitive coinjoin designs isolate change, creating a definite trail. Efficient coinjoin designs include change, creating probable links. Both strategies fall short of user expectations, so there’s only one option left: getting rid of toxic change in coinjoins. Since we cannot spend toxic change from coinjoins privately, we must eliminate it. No more change. Having one standard denomination per pool seems inflexible since inputs under the denomination require consolidation and inputs over the denomination create change. With single-value coinjoins in Wasabi 1.0, JoinMarket & Whirlpool, the problem of toxic change cannot be eradicated. The ZeroLink protocol developed by cryptographers such as #[0] , founder of Wasabi Wallet, was not made for multiple values: a redesign was required. Enter the WabiSabi protocol with arbitrary-amount coinjoins, allowing multiple denominations, which successfully gets rid of the problematic change outputs in single denomination coinjoins. After almost three years of research, the Wasabi team invented a novel way of doing coinjoins by using key-verified anonymous credentials (KVACs) and a specific type of amount organization; maximizing privacy and efficiency while eliminating change outputs. The new cryptographic protocol was named WabiSabi, which is a Japanese word for finding beauty in imperfection. The complete redesign of the Wasabi Wallet that utilizes WabiSabi was named Wasabi 2.0. With WabiSabi, instead of having to consolidate inputs to meet a minimum denomination, each input gets registered separately, resulting in no connection between different inputs registered in a coinjoin round. The minimum denomination in the WabiSabi protocol that Wasabi 2.0 uses is only 0.00005000 BTC (5,000 sats), which means that now everyone is able to reclaim their privacy and participate in coinjoins. The user can register up to 10 inputs and get up to 8 outputs, with randomization. Inputs may be broken down into multiple smaller outputs or consolidated into fewer large outputs, or both. A large list of 79 predetermined output amounts enables having multiple equal amount outputs of different denominations, without creating a change output. Even if there is an unequal amount output whose value is close to the other outputs, it is practically impossible to know which input or output it is linked to due to the vast number of possibilities. Try it yourself: A user may decide to coinjoin multiple times to get better plausible deniability, but one tx can already provide good privacy. No matter how much bitcoin a Wasabi 2.0 user has, they may coinjoin all of their UTXOs into one single tx, often without creating toxic change. With Wasabi 2.0 coinjoins, there are no deterministic links between input and outputs with the exception of whales, who have much larger inputs than all the other participants’. Additional rounds of coinjoins will easily and entirely reclaim their privacy. With the WabiSabi coinjoin protocol used in Wasabi Wallet 2.0 a new era of digital privacy has begun. A major design tradeoff of the Bitcoin UTXO model was fixed and fungibility is finally here with interchangeable bitcoin transaction histories. Change outputs can now be eliminated from coinjoin transactions, which has huge implications for bitcoin wallets in terms of privacy and usability. Bitcoiners using coinjoins don't need to worry about change outputs being a privacy leak or outright liability anymore. “Toxic change?” you ask. What toxic change? There is no toxic change. Bitcoin is finally fungible and you can reclaim your privacy today with state of the art coinjoins.