<p>This mixing service seems solid overall.</p>

<p>You could improve it in several ways:</p>

<ol>
<li><p>Don't shapeshift your mixed BTC into Zcash. Shapeshift uses "transparent addresses" - which means the Zcash transaction is exactly as transparent as a regular bitcoin transaction. This is because Zcash requires upwards of <a href="https://monero.stackexchange.com/questions/1112/monero-ram-requirements-compared-with-zcash">8GB of ram</a> and approximately a minute of processing time to generate the private transaction - which Shapeshift is obviously unwilling to commit to for every transaction.</p></li>
<li><p>Why mix your bitcoin received via xmr.to before mixing it with joinmarket? One additional mix (using joinmarket) should be enough to obfuscate xmr.to's snooping should they attempt to track the Bitcoin that was exchanged for your Monero  (although there are questions about the long-term viability of bitcoin mixers in general). </p></li>
</ol>

<p>You could also argue that the initial mix before you hit shapeshift is unnecessary  if you do not care that Shapeshift knows how you obtained the Bitcoin that you are trading them for Monero. </p>

<p>Best of luck with your school project!</p>

CC BY-SA 3.0
2016-12-23T02:59:27.703Z
Thanks  ! 
2 : as mentioned, I'm not totally sure about how reliable joinmarket is so I wanted to mix it beforehand "just in case"

I wish to totally break the link between the input address and output address.

And if an attacker traces the transactions back to shapeshift, as they specify in their privacy policy, they don't want to be used as mixing service. So they can probably tell who shapeshifted the bitcoin to xmr
drov
CC BY-SA 3.0
2016-12-22T18:36:06.467Z
2016-12-22T19:02:00.890Z
2017-04-13T12:53:03.900Z
Daniel Ternyak
<p>As part of a school project we are asked to create a mixing service. Most of the services right now use coinjoin implemented with more or less privacy. </p>

<p>So a single mixing service wouldn't be enough so here is the mixing routine we thought of :</p>

<p>bitcoin(in) -> mix -> shapeshift( -> Zcash -> monero) -> xmr.to ( btc) -> mix -> joinmarket (not sure though we haven't dug a lot into it) -> bitcoin (out)</p>

<p>Of course everything would be automated via various api offered by the services.</p>

<p>Do you have any remarks about it ? Is it good/bad ? </p>

<p>We are kind of afraid about the fees induced by so many external services but implementing our own mixer would require a user base to mix the coin with in the first place which we don't have. </p>

<api><mixing>
Is this mixing routine secure ?
drov
# Is this mixing routine secure ?

(Asked by: username_0 on 2016-12-22)

As part of a school project we are asked to create a mixing service. Most of the services right now use coinjoin implemented with more or less privacy.

So a single mixing service wouldn't be enough so here is the mixing routine we thought of :

bitcoin(in) -> mix -> shapeshift( -> Zcash -> monero) -> xmr.to ( btc) -> mix -> joinmarket (not sure though we haven't dug a lot into it) -> bitcoin (out)

Of course everything would be automated via various api offered by the services.

Do you have any remarks about it ? Is it good/bad ?

We are kind of afraid about the fees induced by so many external services but implementing our own mixer would require a user base to mix the coin with in the first place which we don't have.

**Tags:** api, mixing


---

## 1 answers

### Answer by username_1 on 2016-12-22. Score: 2 | Accepted answer

This mixing service seems solid overall.

You could improve it in several ways:

1. Don't shapeshift your mixed BTC into Zcash. Shapeshift uses "transparent addresses" - which means the Zcash transaction is exactly as transparent as a regular bitcoin transaction. This is because Zcash requires upwards of [8GB of ram](https://monero.stackexchange.com/questions/1112/monero-ram-requirements-compared-with-zcash) and approximately a minute of processing time to generate the private transaction - which Shapeshift is obviously unwilling to commit to for every transaction.
2. Why mix your bitcoin received via xmr.to before mixing it with joinmarket? One additional mix (using joinmarket) should be enough to obfuscate xmr.to's snooping should they attempt to track the Bitcoin that was exchanged for your Monero (although there are questions about the long-term viability of bitcoin mixers in general).

You could also argue that the initial mix before you hit shapeshift is unnecessary if you do not care that Shapeshift knows how you obtained the Bitcoin that you are trading them for Monero.

Best of luck with your school project!

> **Comments:**
> **username_0**: Thanks  !  2 : as mentioned, I'm not totally sure about how reliable joinmarket is so I wanted to mix it beforehand "just in case"  I wish to totally break the link between the input address and output address.  And if an attacker traces the transactions back to shapeshift, as they specify in their privacy policy, they don't want to be used as mixing service. So they can probably tell who shapeshifted the bitcoin to xmr  

---

