Bitcoin Forum
November 04, 2024, 12:59:12 PM *
News: Latest Bitcoin Core release: 28.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1] 2  All
  Print  
Author Topic: Double Mixer: Mix your Bitcoin with two mixers in series  (Read 1519 times)
sega01 (OP)
Sr. Member
****
Offline Offline

Activity: 391
Merit: 333



View Profile
April 13, 2019, 09:29:41 PM
Last edit: January 30, 2020, 05:24:42 PM by sega01
Merited by ABCbits (11), squatz1 (10), RHavar (4), TryNinja (2), malevolent (1), BitMaxz (1), uray (1), Salmen (1)
 #1

Update: This is now available in your browser. Double Bitcoin Mixer or http://doublemixwcfx4wadeuvuygpxej5jpu7uleesh3yptopnbj5kshnlrid.onion/



--

Use of any one mixer comes down to trust. Trust that the mixing is sound, that the mixer is not compromised, and that it's not a honeypot to begin with.

Using two chained mixers mitigates most of this risk. Odds of having two bad mixers is far lower than just one.

To this end, I've written a Python 3 library and CLI for Privcoin and Bitmix. They can both be used separately, like
Code:
privcoin mix --currency bitcoin --output_address 1aaaa...
or
Code:
bitmix mix --currency bitcoin --output_address 1aaaa...
.

The improvement is using both, together.

Code:
pip3 install doublemixer
Code:
doublemixer mix --currency bitcoin --output_address 1aaaa...

You may wish to run it with torsocks to route the traffic over Tor.

This is completely client side, so no need to trust a third party. Just be sure to review the code of privcoin-python, bitmix-python, and doublemixer-python before use. Absolutely no warranties expressed or implied, no liability on the author's behalf, etc.

Source code for doublemixer on Github

In action:



Affiliate / Referrals:

You can make money linking to Double Mixer.
Code:
https://doublemixer.github.io/#ref=(your bitcoin address)
, or
Code:
http://doublemixwcfx4wadeuvuygpxej5jpu7uleesh3yptopnbj5kshnlrid.onion/#ref=(your bitcoin address)
. For more information, see here.
AlexIsNice
Newbie
*
Offline Offline

Activity: 12
Merit: 0


View Profile
April 22, 2019, 07:26:37 AM
 #2

More mixers should make python libraries,it would be awesome if you could add Chipmixer and bestmixer.
Salmen
Legendary
*
Offline Offline

Activity: 1059
Merit: 1020


View Profile WWW
April 22, 2019, 08:54:22 AM
 #3

Interesting project but there is still a little risk to lose funds if one of the mixing services turns out as a scam. Perhaps, it is a good idea to connect your project with a decentralized mixer like CoinJoin to reinforce the security. All in all, good job. I hope to see more projects.

Young Developer amidst Europe. Specialized in Web Programming and Creating Telegram Bots. Looking for a developer? Feel free to drop a mail to me.
Running JaguarBitcoin - Your Place For Scripts
TryNinja
Legendary
*
Offline Offline

Activity: 3010
Merit: 7428


Top Crypto Casino


View Profile WWW
April 22, 2019, 02:45:11 PM
Merited by ABCbits (1), Salmen (1)
 #4

More mixers should make python libraries,it would be awesome if you could add Chipmixer and bestmixer.
Also for @OP: ChipMixer actually has an API. They never publicized this everywhere but they had an Electrum plugin to make the mixing work natively in the wallet.

This is the base URL: https://chipmixer.com/api/v1/

AFAIK, there is no API Doc, but you should be able to get everything you need from their Electrum plugin source code: https://github.com/chipmixer/electrum/tree/plugin/plugins/chipmixer

For example: https://chipmixer.com/api/v1/new_session
This creates a new session and returns a JSON with the token and the deposit address;

Looks like it's still working.

███████████████████████
████▐██▄█████████████████
████▐██████▄▄▄███████████
████▐████▄█████▄▄████████
████▐█████▀▀▀▀▀███▄██████
████▐███▀████████████████
████▐█████████▄█████▌████
████▐██▌█████▀██████▌████
████▐██████████▀████▌████
█████▀███▄█████▄███▀█████
███████▀█████████▀███████
██████████▀███▀██████████

███████████████████████
.
BC.GAME
▄▄▀▀▀▀▀▀▀▄▄
▄▀▀░▄██▀░▀██▄░▀▀▄
▄▀░▐▀▄░▀░░▀░░▀░▄▀▌░▀▄
▄▀▄█▐░▀▄▀▀▀▀▀▄▀░▌█▄▀▄
▄▀░▀░░█░▄███████▄░█░░▀░▀▄
█░█░▀░█████████████░▀░█░█
█░██░▀█▀▀█▄▄█▀▀█▀░██░█
█░█▀██░█▀▀██▀▀█░██▀█░█
▀▄▀██░░░▀▀▄▌▐▄▀▀░░░██▀▄▀
▀▄▀██░░▄░▀▄█▄▀░▄░░██▀▄▀
▀▄░▀█░▄▄▄░▀░▄▄▄░█▀░▄▀
▀▄▄▀▀███▄███▀▀▄▄▀
██████▄▄▄▄▄▄▄██████
.
..CASINO....SPORTS....RACING..


▄▄████▄▄
▄███▀▀███▄
██████████
▀███▄░▄██▀
▄▄████▄▄░▀█▀▄██▀▄▄████▄▄
▄███▀▀▀████▄▄██▀▄███▀▀███▄
███████▄▄▀▀████▄▄▀▀███████
▀███▄▄███▀░░░▀▀████▄▄▄███▀
▀▀████▀▀████████▀▀████▀▀
sega01 (OP)
Sr. Member
****
Offline Offline

Activity: 391
Merit: 333



View Profile
April 24, 2019, 09:25:50 PM
 #5

Thank you all for your feedback!

More mixers should make python libraries,it would be awesome if you could add Chipmixer and bestmixer.

Bestmixer requires an API key per user. I contacted them about this and they didn't seem interested in opening up the API.

I haven't looked as much into Chipmixer. I think it would not fit as easily in the double mixing model, given the sizing of the chips.

I will most likely add some of the more "traditional" ones if I see any traction with what I've already written.
TryNinja
Legendary
*
Offline Offline

Activity: 3010
Merit: 7428


Top Crypto Casino


View Profile WWW
April 24, 2019, 09:33:06 PM
 #6

I haven't looked as much into Chipmixer. I think it would not fit as easily in the double mixing model, given the sizing of the chips.

I will most likely add some of the more "traditional" ones if I see any traction with what I've already written.
Maybe it could be the final destination.

Your Address -> Some mixer -> ChipMixer.
Or Your Adress -> Some mixer -> Some other mixer -> ChipMixer.

███████████████████████
████▐██▄█████████████████
████▐██████▄▄▄███████████
████▐████▄█████▄▄████████
████▐█████▀▀▀▀▀███▄██████
████▐███▀████████████████
████▐█████████▄█████▌████
████▐██▌█████▀██████▌████
████▐██████████▀████▌████
█████▀███▄█████▄███▀█████
███████▀█████████▀███████
██████████▀███▀██████████

███████████████████████
.
BC.GAME
▄▄▀▀▀▀▀▀▀▄▄
▄▀▀░▄██▀░▀██▄░▀▀▄
▄▀░▐▀▄░▀░░▀░░▀░▄▀▌░▀▄
▄▀▄█▐░▀▄▀▀▀▀▀▄▀░▌█▄▀▄
▄▀░▀░░█░▄███████▄░█░░▀░▀▄
█░█░▀░█████████████░▀░█░█
█░██░▀█▀▀█▄▄█▀▀█▀░██░█
█░█▀██░█▀▀██▀▀█░██▀█░█
▀▄▀██░░░▀▀▄▌▐▄▀▀░░░██▀▄▀
▀▄▀██░░▄░▀▄█▄▀░▄░░██▀▄▀
▀▄░▀█░▄▄▄░▀░▄▄▄░█▀░▄▀
▀▄▄▀▀███▄███▀▀▄▄▀
██████▄▄▄▄▄▄▄██████
.
..CASINO....SPORTS....RACING..


▄▄████▄▄
▄███▀▀███▄
██████████
▀███▄░▄██▀
▄▄████▄▄░▀█▀▄██▀▄▄████▄▄
▄███▀▀▀████▄▄██▀▄███▀▀███▄
███████▄▄▀▀████▄▄▀▀███████
▀███▄▄███▀░░░▀▀████▄▄▄███▀
▀▀████▀▀████████▀▀████▀▀
TryNinja
Legendary
*
Offline Offline

Activity: 3010
Merit: 7428


Top Crypto Casino


View Profile WWW
April 24, 2019, 09:47:13 PM
 #7

Hmm, interesting.

Tried https://chipmixer.com/api/v1/new_session and it says it's in maintenance mode at the moment.
Looks like the whole service is in maintenance (not just the API). I just visited the website (ChipMixer.com) and tried to create a new session. The same message appeared for me.

Just wait a few hours. Tongue

███████████████████████
████▐██▄█████████████████
████▐██████▄▄▄███████████
████▐████▄█████▄▄████████
████▐█████▀▀▀▀▀███▄██████
████▐███▀████████████████
████▐█████████▄█████▌████
████▐██▌█████▀██████▌████
████▐██████████▀████▌████
█████▀███▄█████▄███▀█████
███████▀█████████▀███████
██████████▀███▀██████████

███████████████████████
.
BC.GAME
▄▄▀▀▀▀▀▀▀▄▄
▄▀▀░▄██▀░▀██▄░▀▀▄
▄▀░▐▀▄░▀░░▀░░▀░▄▀▌░▀▄
▄▀▄█▐░▀▄▀▀▀▀▀▄▀░▌█▄▀▄
▄▀░▀░░█░▄███████▄░█░░▀░▀▄
█░█░▀░█████████████░▀░█░█
█░██░▀█▀▀█▄▄█▀▀█▀░██░█
█░█▀██░█▀▀██▀▀█░██▀█░█
▀▄▀██░░░▀▀▄▌▐▄▀▀░░░██▀▄▀
▀▄▀██░░▄░▀▄█▄▀░▄░░██▀▄▀
▀▄░▀█░▄▄▄░▀░▄▄▄░█▀░▄▀
▀▄▄▀▀███▄███▀▀▄▄▀
██████▄▄▄▄▄▄▄██████
.
..CASINO....SPORTS....RACING..


▄▄████▄▄
▄███▀▀███▄
██████████
▀███▄░▄██▀
▄▄████▄▄░▀█▀▄██▀▄▄████▄▄
▄███▀▀▀████▄▄██▀▄███▀▀███▄
███████▄▄▀▀████▄▄▀▀███████
▀███▄▄███▀░░░▀▀████▄▄▄███▀
▀▀████▀▀████████▀▀████▀▀
sega01 (OP)
Sr. Member
****
Offline Offline

Activity: 391
Merit: 333



View Profile
April 25, 2019, 03:15:41 AM
 #8

Looks like the whole service is in maintenance (not just the API). I just visited the website (ChipMixer.com) and tried to create a new session. The same message appeared for me.

Just wait a few hours. Tongue

Ok Smiley

------

New version, 0.0.3. Now randomly selects two of Bitmix, Privcoin, and Foxmixer. Both the mixer selection and ordering is random.

To upgrade:
Code:
pip3 install -U doublemixer
white_rabbit_
Newbie
*
Offline Offline

Activity: 20
Merit: 0


View Profile
April 26, 2019, 09:58:31 AM
 #9

Hello, you could also add BitCloak mixer to the list as it has a very good api.
https://bitcloak43blmhmn.com/api
sega01 (OP)
Sr. Member
****
Offline Offline

Activity: 391
Merit: 333



View Profile
April 28, 2019, 03:21:17 AM
 #10

Hello, you could also add BitCloak mixer to the list as it has a very good api.
https://bitcloak43blmhmn.com/api

Ah, thank you. Did not know they had an API. I think that will be the next one on the list.
TryNinja
Legendary
*
Offline Offline

Activity: 3010
Merit: 7428


Top Crypto Casino


View Profile WWW
April 28, 2019, 09:31:07 PM
 #11

Looks like ChipMixer's maintenance is over.

Quick update for those who encountered maintenance mode

1. Maintenance is over and everything works except
2. Sweeping is still broken and maintenance did not help. Please use private keys yourself (as we always encourage) instead of sweeping with website for now.


The API is returning the right results now.

███████████████████████
████▐██▄█████████████████
████▐██████▄▄▄███████████
████▐████▄█████▄▄████████
████▐█████▀▀▀▀▀███▄██████
████▐███▀████████████████
████▐█████████▄█████▌████
████▐██▌█████▀██████▌████
████▐██████████▀████▌████
█████▀███▄█████▄███▀█████
███████▀█████████▀███████
██████████▀███▀██████████

███████████████████████
.
BC.GAME
▄▄▀▀▀▀▀▀▀▄▄
▄▀▀░▄██▀░▀██▄░▀▀▄
▄▀░▐▀▄░▀░░▀░░▀░▄▀▌░▀▄
▄▀▄█▐░▀▄▀▀▀▀▀▄▀░▌█▄▀▄
▄▀░▀░░█░▄███████▄░█░░▀░▀▄
█░█░▀░█████████████░▀░█░█
█░██░▀█▀▀█▄▄█▀▀█▀░██░█
█░█▀██░█▀▀██▀▀█░██▀█░█
▀▄▀██░░░▀▀▄▌▐▄▀▀░░░██▀▄▀
▀▄▀██░░▄░▀▄█▄▀░▄░░██▀▄▀
▀▄░▀█░▄▄▄░▀░▄▄▄░█▀░▄▀
▀▄▄▀▀███▄███▀▀▄▄▀
██████▄▄▄▄▄▄▄██████
.
..CASINO....SPORTS....RACING..


▄▄████▄▄
▄███▀▀███▄
██████████
▀███▄░▄██▀
▄▄████▄▄░▀█▀▄██▀▄▄████▄▄
▄███▀▀▀████▄▄██▀▄███▀▀███▄
███████▄▄▀▀████▄▄▀▀███████
▀███▄▄███▀░░░▀▀████▄▄▄███▀
▀▀████▀▀████████▀▀████▀▀
BitMaximum
Copper Member
Newbie
*
Offline Offline

Activity: 322
Merit: 0


View Profile
May 02, 2019, 12:15:58 PM
 #12

Hello, you could also add BitCloak mixer to the list as it has a very good api.
https://bitcloak43blmhmn.com/api

Ah, thank you. Did not know they had an API. I think that will be the next one on the list.

Please add our service as well. Here is a link to our API http://www.bitmaximumgnmsaf.onion/en/api Our service will secure your chain.

sega01 (OP)
Sr. Member
****
Offline Offline

Activity: 391
Merit: 333



View Profile
May 09, 2019, 06:52:36 PM
Merited by ABCbits (2)
 #13

Nice idea, now we only need to worry if either mixer steal our coins or both mixer system completely de-anonymized.

While i doubt i'll use 2 mixers, any thoughts to add parameter/argument for time delay (since i only saw currency and output_address param on your code)?

Absolutely no warranties expressed or implied, no liability on the author's behalf, etc.

Then you might want use MIT License (or any license where user cannot hold liable to author) on your GitHub repository.

The different APIs take pretty different arguments with time delay. Some are in minutes, some hours, some hours but only allow integer and not float. I could maybe normalize them and use hours, but making it int if they don't support float. The values I selected are trying to be sane defaults.

Unlicense has a liability clause:
Quote
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
OTHER DEALINGS IN THE SOFTWARE.
sega01 (OP)
Sr. Member
****
Offline Offline

Activity: 391
Merit: 333



View Profile
May 10, 2019, 01:03:43 AM
 #14

Just wanting to do a feeler. How many of you would use this if it were done all client side in a browser? Clearnet site and hidden .onion. Javascript, of course.
sega01 (OP)
Sr. Member
****
Offline Offline

Activity: 391
Merit: 333



View Profile
May 17, 2019, 05:58:04 PM
 #15

Bump.
rocketdev
Newbie
*
Offline Offline

Activity: 6
Merit: 4


View Profile
May 25, 2019, 09:40:44 AM
 #16

Thumbs up for the idea of a client-side only version.
That would open the plugin to the world of web developers.
Is there already some work on this that you can showcase?

Just had the same concerns as quickseller mentioned in his post:

I would advise against doing this.

Both mixing services are only guaranteeing the address will be valid for a limited amount of time. If there is a problem/delay with the 1st mixing service that causes the transaction to confirm after the cutoff time for the 2nd mixing service, or if multiple transactions are sent from the first mixing service with the last one being after the cutoff, then the second mixing service may not send you your money. This would be a real problem because some mixing services periodically delete their private keys associated with zero balance addresses in order to protect privacy of their users in case a government agency finds their servers.

The following idea to resolve this just came to mind:

Would it be possible to have the intermediate payout of the first mixer that should go into the second mixer go to an intermediate address that is owned by me (client-side) instead?
Only if the payment arrives at this intermediate address the second mixer is triggered and the payment is redirected to it.
Of course, this mode of mixing only works if the client stays alive and watches the intermediate address throughout the process.

This way of handling it would defeat the risk of a mixer taking longer than expected resulting in the payment not arriving at the second mixer in time.
rocketdev
Newbie
*
Offline Offline

Activity: 6
Merit: 4


View Profile
June 04, 2019, 07:47:23 PM
 #17


Thanks for your reply!

Both the CLI and browser versions are client side only and don't rely on anything other than the existing mixing services.

Very rudimentary, only one backend is working. Most mixers don't add CORS headers and I haven't pursued having them add it a whole lot let yet.

https://github.com/teran-mckinney/doublemixer-js

Yeah, definitely possible to go to an intermediate address. I've used this setup a few times and never had an issue but have been aware of it as well. IMO: the mixer needs to honor their guarantees and if they don't, you can go after them with that. But you're right, if a payment is way too late, it doesn't work out. I've tried to set the delays to be pretty conservative to help with that.

What I like is that how it is, it's one shot. No polling, etc. Super simple, little to break on the client's side. No actual coin handling there. Intermediate step could be done with WalkingLiberty. It would add another "interaction" that might help track users at a network level, but if using Tor, should be fine.

If you really wanted to do that now, after installing doublemixer you'll get `foxmixer`, `bitmix`, and `privcoin`. You can mix with one of those into a `walkingliberty` wallet, then mix out to where you really want to go. Personally, as I've yet to have a problem I'm not too concerned yet. If moving a lot of money it would be more of a concern but again, haven't seen any issues yet.

Ok, I see. A multi-address approach is possibly too complicated and error prone for daily use.

I'm in a team operating a browser-based bitcoin wallet focused on privacy and I'm currently thinking about integrating your implementation of the client-side part of foxmixer into this wallet. Basically, the idea would be that whenever a user wants to withdraw funds from his wallet, he gets to choose whether to withdraw directly or using the foxmixer browser-based mixing.
By doing all of this client-side, it is more transparent to the users what is happening and it is not hidden behind secret server calls of the wallet.

Do you have any experience on how well your client works in different browsers?
sega01 (OP)
Sr. Member
****
Offline Offline

Activity: 391
Merit: 333



View Profile
June 05, 2019, 07:53:14 PM
 #18

Ok, I see. A multi-address approach is possibly too complicated and error prone for daily use.

I'm in a team operating a browser-based bitcoin wallet focused on privacy and I'm currently thinking about integrating your implementation of the client-side part of foxmixer into this wallet. Basically, the idea would be that whenever a user wants to withdraw funds from his wallet, he gets to choose whether to withdraw directly or using the foxmixer browser-based mixing.
By doing all of this client-side, it is more transparent to the users what is happening and it is not hidden behind secret server calls of the wallet.

Do you have any experience on how well your client works in different browsers?

That's pretty cool. I honestly haven't tested it, it's just prototype code. I can work on it and bit more and see.

Generally, my JS is geared towards the latest browsers. I don't bother writing anything for IE 7 compatibility, etc. But honestly if you have an in-browser Bitcoin wallet, they probably should be running latest versions anyways.

I think this is a great idea, let me know if you implement it.
rocketdev
Newbie
*
Offline Offline

Activity: 6
Merit: 4


View Profile
June 08, 2019, 04:20:28 PM
 #19

That's pretty cool. I honestly haven't tested it, it's just prototype code. I can work on it and bit more and see.

Generally, my JS is geared towards the latest browsers. I don't bother writing anything for IE 7 compatibility, etc. But honestly if you have an in-browser Bitcoin wallet, they probably should be running latest versions anyways.

I think this is a great idea, let me know if you implement it.

I'm not asking about legacy support here, that's something we're handling by "Update your browser" anyway.
The question was more about recent platforms. Let me know if you continue on the implementation, it's definitely a cool project.

Even if it only supports one mixer, it still provides more transparency to third-party services than the server-side implementations you find almost everywhere.
The JS language and modern browsers are so powerful and capable. Nice to see more projects leverage this.
sega01 (OP)
Sr. Member
****
Offline Offline

Activity: 391
Merit: 333



View Profile
June 12, 2019, 05:13:33 PM
 #20

Ok, will have to continue work there on the JS version Smiley.

Bump!
Pages: [1] 2  All
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!