samourai-wallet-android
samourai-wallet-android copied to clipboard
Improvements in Ricochet
First, thanks for the great work you're doing Samourai team. I really like the Ricochet functionality, although it is not a functionality that guarantees anonymity, but it does provide a layer of protection against prying eyes.
I think there are some points that could be improved:
-
Don't use static addresses for the samourai fee. Now, by always using the same address, all Ricochet transactions are being tagged/tainting. Maybe you could use PayNym here. https://github.com/Samourai-Wallet/samourai-wallet-android/blob/develop/app/src/main/java/com/samourai/wallet/ricochet/RicochetMeta.java#L60
-
Ricochet's fee is currently 0.002 BTC, I think a random value between 0.015 and 0.002 BTC (or any other range) would help against statistical attacks. https://github.com/Samourai-Wallet/samourai-wallet-android/blob/develop/app/src/main/java/com/samourai/wallet/ricochet/RicochetMeta.java#L67-L68
-
A Ricochet transaction is constructed with three outputs, the amount sent, the samurai fee and the change,. Followed by four 1-to-1 transactions in a row. If the change were sent in the first or second hop and the samurai fee in the second or third, some more privacy would be gained.
-
Have you studied the possibility of reusing intermediate addresses more than once over time?
Thank you for your comments. Just a few things to note:
- static fee addresses are being phased out.
- fees are paid via PayNym if the user has a claimed PayNym connected to our own PayNym. The individual amounts are randomised.
- Ricochet txs w/ fee paid via PayNym have different footprints than the 1-1 txs.
We will be using the Orchestrator for further Ricochet improvements.
I think it still doesn't work as expected.
I have repeated the test with PayNym using the latest version of Play store (v0.99.86). First of all I added the samurai wallet to my PayNyms contacts.
Now, the Ricochet function results in a normal transaction from origin to destination without Ricochet or any intermediate transaction, just a common transaction.