TLDR
- Blockchain transactions are traceable.
- CoinJoin is one of the techniques that adopts a decentralized approach to achieve privacy on the Unspent Transaction Output (UTXO) based blockchains.
- This paper provides a comprehensive usability study of three main Bitcoin wallets that integrate the CoinJoin technique, i.e., Joinmarket, Wasabi, and Samourai
Core Research Question
- How do current implementations of CoinJoin technique satisfy the usability criteria such as learnability and errors?
- How do current implementations of CoinJoin technique satisfy fundamental design criteria such as visibility, feedback, constraints, mapping, and consistency?
Citation
Ghesmati, Simin, Walid Fdhila, and Edgar Weippl. “Usability of Cryptocurrency Wallets Providing CoinJoin Transactions.” Proceedings of Usable Security and Privacy (USEC’22). Internet Society, 2022.
Background
- CoinJoin: A joint transaction involving multiple users intending to hide the relationships between the sender and recipient addresses. In Bitcoin, each input should be signed by the corresponding key independently from other inputs. This property makes a novel form of transactions in Bitcoin in which users can provide a set of inputs (A, B, and C) and outputs (A’, B’, and C’) to create a transaction. All the users should spend the same amount of coins; otherwise, the values in inputs and outputs can reveal the relationships.
- JoinMarket wallet: A desktop wallet that applies a taker-maker model to create CoinJoin transactions. A taker broadcasts her willingness to create a CoinJoin transaction on IRC. The makers listening to the IRC send their participation confirmations to the taker, including fees. The taker creates the transaction with the desired CoinJoin amount and sends it to the makers to sign.
- Wasabi wallet: A desktop wallet that uses a coordinator to create CoinJoin transactions. By Chaumian CoinJoin the outputs are blindly signed such that the coordinator can not map inputs to outputs. In Wasabi, CoinJoin is created in three main phases: (i) input registration, (ii) output registration, and (iii) signing.
- Samourai wallet: A mobile wallet currently released as an Android application. It also creates CoinJoin by a coordinator using Chaumian CoinJoin under the name “Whirlpool”. At the time of writing, there exist four pools (0.001 BTC, 0.01 BTC, 0.05 BTC, and 0.5 BTC) to create CoinJoin transactions with a flat fee rate. Users register their coins to one of the pools and wait for the required peers to create a CoinJoin transaction.
Summary
-
Objective
- Our study uses a cognitive walkthrough. The experts evaluated each wallet’s learnability by measuring how novice users may pass or fail the tasks and identifying possible errors or issues they may face.
-
Tasks definition
- T.1 Installing the application.
- T.2 Generating a wallet.
- T.3 Funding the wallet.
- T.4 Performing a CoinJoin transaction.
- T.5 Transferring CoinJoin coins to the destination address.
Method
-
Test Planning
- Problem statement
- Wallet selection
-
Tasks & Criteria Definition
- Tasks elaboration & review
- Evaluation criteria
-
Recruit Participants
- For cognitive walkthrough
- For small-size user study
-
Conduct Test
- Performing tasks
- Identifying issues
- Capturing the results
-
Analysis & Report
- Results categorization
- Improvement proposal
Results
-
Wasabi Pros:
- Easy installation & well documented
- Large anonymity set up to 100
- CoinJoin transaction in a one-hour time frame at the latest
-
Wasabi Cons:
- Creates too many small coins
- If the change is less than the minimum pool amount, it is left in the wallet
-
JoinMakert Pros:
- Modification of the fees and the number of counterparties
- Specifying the amount by user
- CoinJoin for a large amount
- Directly send the mixed coins to the destination address, therefore needs 1 transaction less
-
JoinMarket Cons:
- Configuration is not easy for non-technical users
- Creating CoinJoin cannot be easily done without reading the documentation
- Some errors do not give a clear indication of what should be done
-
Samourai Pros:
- Simple installation
- Simple steps to generate a wallet
-
Samourai Cons:
- Only released for Android
- The interface lacks visibility of the functions
- The function names differ from the commonly used terms
- No information, if the CoinJoin is stuck
- If the change is less than the minimum pool amount, it is left in the wallet
Discussion and Key Takeaways
- Understanding of the techniques’ concepts by users is required
- Intuitive and user-friendly design is required
- Performing CoinJoin transactions by users is still difficult
- Dealing with error messages is difficult
- Merging previously mixed coins with other UTXOs should be prevented
Implications and Follow-Ups
-
Limitations: Using Bitcoin testnet, because of the high fees in mainnet. So:
- It had impact on the time on tasks.
- We were not able to perform CoinJoin on the Samourai testnet.
-
Future work:
- Extending the user study to include more technical and non-technical users.
- Contact the first author if you can help us in the user study.
Applicability
The study findings will enable privacy wallet developers to gain valuable insights into a better user experience.