Ricochet is a feature that allows users to put a form of "distance" between two UTXOs. It is a very simple procedure, developed to respond to a type of equally very simple heuristic that is sometimes used by chain analysis tools.
Know your Samourai is a series of articles diving head first into Samourai, a bitcoin wallet focused on privacy. The articles are aimed at chewing through one by one the set of features the wallet offers from a curious user perspective. We do things like following UTXOs through a Ricochet transaction, for example, in order to gain deep intuition as to what is happening every time we use the wallet. Check out the introduction article for an overview of the series' goals and the tools recommended to get the most out of it.
A good example of where a ricochet transaction might be useful is how certain exchanges have been known to refuse accepting a payment made with a utxo that has proximity to a coinjoin. The term proximity here is meant to be interpreted as "the number of transactions done between the payment transaction and the coinjoin transaction". Because going back into UTXO histories is computationally costly, chain analysis tools only go so far back. The goal of ricochet is to put just a few more transactions between the payor and the payee than would be investigated by most chain analysis tools.
Take for example the situation where a chain analysis tool would flag a payment as being troublesome if it was 1 step removed from a known address it considered tainted for whatever reason. If you had recieved payment from that address and send that UTXO to an exchange, the chain analysis tool they use would (1) ensure your UTXO is not tainted, and (2) look at the UTXO it came from and see if that UTXO is tainted. In this case it would be, and your payment would be flagged as non valid.
tainted_utxo -> your_utxo -> exchange
But again, going back into every UTXO history is resource intensive; understanding this, samourai plays on that weakness and allows you to simply send your payment from one address to another a few times in a row, in effect creating hops between your initial utxo and the one that the exchange will recieve.
tainted_utxo -> your_utxo -> hop1 -> hop2 -> hop3 -> hop4 -> exchange
Now a chain analysis tool going back only, say, 3 hops, will not find anything tainted about any of the utxos on the chain leading up to your payment.
Let us follow a whole ricochet set of transactions (should we call them ricochets?) from top to bottom using blockchain exploration tools. Note that all blocks , transactions , and addresses are clickable links; use them to follow along.
We see that the transaction is part of block 625,193 , with 1 input that spends to 3 outputs: the change address 0dd0 , the Samourai fee (0.002 btc) for Ricochet 3lfz (notice the 386 transactions to that address), and the first hop lsya . 1,478 satoshis are paid in miner fees.
We follow the lsya utxo to see where it goes. It is unlocked in transaction 7a65 , which is part of the same block (625,193), and has a single output spent to address pq7h . 1,114 satoshis are paid in miner fees.
Hop 4 is the final hop; it will spend to our initial target address (the payee we ultimately wanted to send bitcoin to). Transaction 7d1f unlocks utxo hll0 and spends it to utxo 3qk9 , always in the same block (625,193). 1,114 satoshis are paid in miner fees.
Once in your Send screen, use the ricochet toggle button to turn your regular send into a ricochet send.
Notice that the transactions we explored above were all broadcasted at the same time and included in the same block. Samourai offers the option to stagger each transaction into their own block by waiting for the first hop to be mined before broadasting the second hop, and so on. This increases privacy protection one step further by working against tools that would incorporate time correlations in their analysis. It is offered at no extra cost, and should be your default ricochet type unless you are in a time crunch.