Bitcoin Forum
March 19, 2024, 07:08:30 AM *
News: Latest Bitcoin Core release: 26.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: Electrum - Mixer Plugin for blockchain.info  (Read 3531 times)
BkkCoins (OP)
Hero Member
*****
Offline Offline

Activity: 784
Merit: 1009


firstbits:1MinerQ


View Profile WWW
November 22, 2013, 05:54:11 AM
Last edit: November 23, 2013, 10:14:04 AM by BkkCoins
 #1

I've created a mixer plugin for Electrum to support in-client use of the blockchain.info mixer. It's not quite standalone as Electrum doesn't really support dynamic loading plugins (which would be a nice thing to work on someday), but the changes to the main program are very minimal to hook it in, and the plugin itself is very simple.

It gives you two new features. A button to request a forwarding address when you send coins, with mixer fee estimate, and a right-click menu option for a forwarding address when showing a QR code for a receive address. These simply make an API call and present the address for the user to confirm.

This plugin will not be integrated into Electrum main line because the devs feel it maybe endangers the project by having a mixer associated with it. I feel it improves usability for those who want more privacy and may be a useful stop gap until the Dark Wallet guys finish up their work.

The plugin is available to anyone who wants to use it in a fork I created just for this purpose, in a branch called "mixer" based off the current master,

https://github.com/tkhaew/electrum/tree/mixer see below


Have a look if you're inclined and comments are welcome.

1710832110
Hero Member
*
Offline Offline

Posts: 1710832110

View Profile Personal Message (Offline)

Ignore
1710832110
Reply with quote  #2

1710832110
Report to moderator
1710832110
Hero Member
*
Offline Offline

Posts: 1710832110

View Profile Personal Message (Offline)

Ignore
1710832110
Reply with quote  #2

1710832110
Report to moderator
1710832110
Hero Member
*
Offline Offline

Posts: 1710832110

View Profile Personal Message (Offline)

Ignore
1710832110
Reply with quote  #2

1710832110
Report to moderator
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
1710832110
Hero Member
*
Offline Offline

Posts: 1710832110

View Profile Personal Message (Offline)

Ignore
1710832110
Reply with quote  #2

1710832110
Report to moderator
1710832110
Hero Member
*
Offline Offline

Posts: 1710832110

View Profile Personal Message (Offline)

Ignore
1710832110
Reply with quote  #2

1710832110
Report to moderator
BkkCoins (OP)
Hero Member
*****
Offline Offline

Activity: 784
Merit: 1009


firstbits:1MinerQ


View Profile WWW
November 23, 2013, 10:13:29 AM
 #2

I've updated the mixer to work independently of Electrum mainline now. As long as you have the latest version you can now simply drop the mixer.py file into your plugins folder and it will be available and can be enabled. It no longer needs a separate fork or Electrum version.

The standalone mixer plugin file is now:

https://github.com/tkhaew/electrum/blob/mixer_plugin/plugins/mixer.py

The default folder where this is can be dropped (on my Ubuntu system anyway) is:

/usr/local/lib/python2.7/dist-packages/Electrum-1.9.5-py2.7.egg/electrum_plugins/

( though the version number could be different )

Peter Todd
Legendary
*
Offline Offline

Activity: 1120
Merit: 1147


View Profile
November 26, 2013, 04:41:13 PM
 #3

That's seriously cool, tipped.

xephyr
Sr. Member
****
Offline Offline

Activity: 285
Merit: 250


View Profile
November 27, 2013, 01:24:20 AM
 #4

Will your plugin work with 1.9.5 portable version for Windows?
BkkCoins (OP)
Hero Member
*****
Offline Offline

Activity: 784
Merit: 1009


firstbits:1MinerQ


View Profile WWW
November 27, 2013, 10:23:43 AM
 #5

Will your plugin work with 1.9.5 portable version for Windows?
I haven't tried that but I think it should work.

That's seriously cool, tipped.
Thanks! But how or where tipped?

dserrano5
Legendary
*
Offline Offline

Activity: 1974
Merit: 1029



View Profile
November 27, 2013, 10:29:10 AM
 #6

Thanks! But how or where tipped?

There's a firstbits address under you avatar Wink.
flatfly
Legendary
*
Offline Offline

Activity: 1064
Merit: 1011


View Profile
November 28, 2013, 10:02:32 PM
 #7

I confirm it's working fine for me under Windows (tested on XP SP3 & 7).
Screenshot:


I'm thinking about including it in my next builds, if you don't mind.
Nice job!

My main address: 1337sfeChyyzZLzdHLewXzcaAaJSNTM893.
xephyr
Sr. Member
****
Offline Offline

Activity: 285
Merit: 250


View Profile
November 29, 2013, 12:44:23 AM
 #8

I confirm it's working fine for me under Windows (tested on XP SP3 & 7).
Screenshot:


I'm thinking about including it in my next builds, if you don't mind.
Nice job!


Have you considered making your build available native for Android? An easy to install Electrum wallet for Android phones with mixing built in would be very cool.
BkkCoins (OP)
Hero Member
*****
Offline Offline

Activity: 784
Merit: 1009


firstbits:1MinerQ


View Profile WWW
November 29, 2013, 01:01:39 AM
 #9

I'm thinking about including it in my next builds, if you don't mind.
Nice job!

Don't mind at all.
It hasn't had a lot of testing. I've tried to make it safe with prompt info but users should be careful.

Also, it may need some attention regarding a security audit. It uses HTTPS to access the API but I wonder if a MITM is possible. In theory it should as safe as using the web site. One thing I can think of off hand is DNS poisoning on local net. Users should be aware that using anything that provides an address on a insecure network has potential to spoof them.

ABISprotocol
Sr. Member
****
Offline Offline

Activity: 278
Merit: 251

ABISprotocol on Gist


View Profile WWW
October 10, 2014, 03:16:14 AM
 #10

I've updated the mixer to work independently of Electrum mainline now. As long as you have the latest version you can now simply drop the mixer.py file into your plugins folder and it will be available and can be enabled. It no longer needs a separate fork or Electrum version.

The standalone mixer plugin file is now:

https://github.com/tkhaew/electrum/blob/mixer_plugin/plugins/mixer.py

The default folder where this is can be dropped (on my Ubuntu system anyway) is:

/usr/local/lib/python2.7/dist-packages/Electrum-1.9.5-py2.7.egg/electrum_plugins/

( though the version number could be different )


This is great, but if you get a moment, a readme would be good to add to help people manage getting this coinjoin (mixer) approach up and running ~ perhaps pop it into a distinct repository with its own readme, and a note that you are seeking security audit for it too, which may get it some more attention.

ABISprotocol (Github/Gist)
http://abis.io
xephyr
Sr. Member
****
Offline Offline

Activity: 285
Merit: 250


View Profile
October 10, 2014, 03:46:11 AM
 #11

Kristov Atlas has already demonstrated this past summer that the conjoin mixer operated by blockchain.info is compromised and no longer anonymous see http://www.coinjoinsudoku.com/advisory/
ABISprotocol
Sr. Member
****
Offline Offline

Activity: 278
Merit: 251

ABISprotocol on Gist


View Profile WWW
October 10, 2014, 10:27:23 AM
 #12

Kristov Atlas has already demonstrated this past summer that the conjoin mixer operated by blockchain.info is compromised and no longer anonymous see http://www.coinjoinsudoku.com/advisory/

It would be more accurate to say that the functionality offered by SharedCoin could be compromised by determined actors with time and money, as it was never intended to provide anonymity as implemented by blockchain.info. ~ a story on it ran some time ago (June of 2014) and was widely circulated based on the coindesk article below which is accurate in its summary:
http://www.coindesk.com/blockchains-sharedcoin-users-can-identified-says-security-expert/

A few important points to note, though:

1) blockchain.info began its SharedCoin implementation (as announced to the public) November 17 of 2013,
2) the Kristov Atlas advisory detailing how a vulnerability could occur was released about it on June 9, 2014,
3) the coindesk article which further increased awareness of it was released on June 10, 2014.
4) the company (blockchain.info) never claimed the implementation would provide anonymity (it was offered as a privacy measure), but as part of the coindesk article, stated that "anyone with sufficient time, money, motivation and computing power could correlate transaction outputs and inputs"
5) Finally, let's assume someone is using a stealth send as described below,
https://github.com/spesmilo/electrum/pull/817
and also using the plugin described in this thread as shown below to do a mix which connects to blockchain.info
https://github.com/tkhaew/electrum/blob/mixer_plugin/plugins/mixer.py
then it would be safe to say that in such a case the logical thing to request would be exactly what the author of the plugin has already suggested:  a security audit.
(I've also suggested adding a readme for ease of use as per my prior comment.)
6) Finally it may be good to add in notes for the plugin that it is a privacy measure and not an anonymity measure by itself, but I suspect that there would be always some debate as to the wording no matter how it would be written.


ABISprotocol (Github/Gist)
http://abis.io
Elliander
Member
**
Offline Offline

Activity: 67
Merit: 13


View Profile
December 16, 2014, 08:10:12 PM
 #13

Hi, this looks really good, but I can't seem to get it to work. I am using Electrum 1.9.8 on Windows 7 and put the mixer.py file in the plugins folder. After restarting Electrum it still does not appear in the Plugin list and under "send" the "via mixer" button isn't there. Is there some special steps I need to follow to get this to work? And should this work on Android as well?

Oh, and I made sure to download the one from your second link that says it doesn't require a special fork and I made sure I have the most recent version.

Immortal until proven otherwise.
ABISprotocol
Sr. Member
****
Offline Offline

Activity: 278
Merit: 251

ABISprotocol on Gist


View Profile WWW
December 17, 2014, 02:57:56 AM
 #14

Hi, this looks really good, but I can't seem to get it to work. I am using Electrum 1.9.8 on Windows 7 and put the mixer.py file in the plugins folder. After restarting Electrum it still does not appear in the Plugin list and under "send" the "via mixer" button isn't there. Is there some special steps I need to follow to get this to work? And should this work on Android as well?

Oh, and I made sure to download the one from your second link that says it doesn't require a special fork and I made sure I have the most recent version.

hmm, well this needs to be looked at again.  I am not the code author but I like most all of what it presents.

I will be looking at it close to the end of this year again.

ABISprotocol (Github/Gist)
http://abis.io
ABISprotocol
Sr. Member
****
Offline Offline

Activity: 278
Merit: 251

ABISprotocol on Gist


View Profile WWW
January 24, 2016, 12:56:09 AM
Last edit: January 25, 2016, 06:27:25 AM by ABISprotocol
 #15

I've updated the mixer to work independently of Electrum mainline now. As long as you have the latest version you can now simply drop the mixer.py file into your plugins folder and it will be available and can be enabled. It no longer needs a separate fork or Electrum version.

The standalone mixer plugin file is now:

https://github.com/tkhaew/electrum/blob/mixer_plugin/plugins/mixer.py

The default folder where this is can be dropped (on my Ubuntu system anyway) is:

/usr/local/lib/python2.7/dist-packages/Electrum-1.9.5-py2.7.egg/electrum_plugins/

( though the version number could be different )


Since this (https://github.com/tkhaew/electrum/blob/mixer_plugin/plugins/mixer.py) is now apparently gone from where it was on github (and the version originally published had security issues), has a new version been planned or is one in the works?  As I understood it, the SharedCoin mixer operated by blockchain.info was compromised and could no longer be relied upon, and any new or similar implementations by blockchain.info would have needed a security audit, I think.  The problems of SharedCoin were described in more detail here: http://www.coinjoinsudoku.com/advisory/ (by K. Atlas)

Currently, there are working CoinJoin implementations:  one is currently being actively used and is known as JoinMarket -- https://github.com/JoinMarket-Org/joinmarket/ | http://joinmarket.io/ with regularly updated code,
and Javascript module with CoinJoin implementation at https://github.com/darkwallet/coinjoin.js last updated Oct. 2014.
(DW utilizes a CoinJoin but is currently in alpha and has last been updated Feb. 2015) https://github.com/darkwallet/darkwallet
Of these, the JoinMarket is the one that appears to be in most active use.

I am curious you have any plans to redo the mixer.py utilizing joinmarket or dw's coinjoin.js?

Note / edit:  Please see also the post on the electrum plugin in development similar to what you did, at:
https://bitcointalk.org/index.php?topic=279249.msg13668822#msg13668822

ABISprotocol (Github/Gist)
http://abis.io
Pages: [1]
  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!