Wasabi Wallet users need to upgrade to the latest version if they want to continue using the CoinJoin feature to keep their Bitcoin transaction histories private.
That’s because those running older iterations of the wallet can no longer use this feature to mix their coins with users who have the newest version.
The Wasabi Wallet team hard-forked the wallet Thursday to address a vulnerability discovered by a team member at Trezor, a leading maker of hardware wallets. A hard fork is a code change that makes older versions of a software incompatible with newer ones.
The flaw’s discovery is another example of the open-source community's camaraderie and cooperation. Developers are constantly tinkering to improve their peers’ software, and many vulnerabilities have been responsibly disclosed during these processes to patch flaws before they can be exploited by bad actors. (Sometimes, however, the disclosures by rival teams are less-than-cordial, as evidenced by the long-running tensions between Wasabi and rival Samourai Wallet.)
According to a Wasabi Wallet blog post, Trezor hardware wallet developer Ondřej Vejpustek responsibly disclosed the potential denial-of-service (DoS) attack to the Wasabi team on May 10 (a DoS attack entails an attacker spamming a network or protocol with the hopes of stymying its operations, hence “denial of service”).
“Vejpustek has been very cooperative since the beginning and left us total freedom on how to manage the disclosure, both in terms of time and communication. This demonstrates the importance of proper communication between security researchers and dev teams. This is how a responsible disclosure should be,” Wasabi Wallet contributor and marketing strategist Riccardo Masutti told CoinDesk, adding that Vejpustek was paid a bitcoin bounty for his efforts.
This hypothetical DoS attack, which Wasabi Wallet assumes has never been carried out, would have interfered with the wallet’s implementation of CoinJoin, a privacy protocol that allows users to mix their bitcoin with others’ to obscure the coins’ transaction histories.
Wasabi Wallet’s CoinJoin implementation requires each participant to take out as much as they put in. If, for instance, 10 participants join a mix for 0.1 BTC, then each user must send exactly that amount (plus a miner fee) and must receive that exact amount for the mix to be successful and to retain CoinJoin’s privacy protections. Mixing coins makes it harder for blockchain snoops and nosy parkers to pin bitcoin transactions to known addresses and their owners' identities.
The disclosed DoS vulnerability would have halted the mixing process. The attacker would register bitcoin for a mix without that bitcoin being signed (verified) by the mix’s coordinator, while at the same time submitting a real, verified transaction to the mix.
The result would be an incongruity between the total value of inputs made to the CoinJoin and the value of expected outputs. As a result, the coordinator would unwittingly “build a transaction that can't be valid, since the sum of all inputs is less than the sum of all outputs,” according to Vejpustek's analysis.
If the attack were pulled off, it would foil the CoinJoin, though it would not have given the attacker the ability to steal any coins nor could they deanonymize any peers in the mix.
Wasabi Wallet patched the fix with the hard fork deployed Thursday. This upgrade was applied to v.1.1.12 of the wallet, which was released on Aug. 5.
The leader in news and information on cryptocurrency, digital assets and the future of money, CoinDesk is a media outlet that strives for the highest journalistic standards and abides by a strict set of editorial policies. CoinDesk is an independent operating subsidiary of Digital Currency Group, which invests in cryptocurrencies and blockchain startups. As part of their compensation, certain CoinDesk employees, including editorial employees, may receive exposure to DCG equity in the form of stock appreciation rights, which vest over a multi-year period. CoinDesk journalists are not allowed to purchase stock outright in DCG.