Bitcoin Forum

Bitcoin => Project Development => Topic started by: 2weiX on January 22, 2013, 11:38:38 AM



Title: [Idea] Selfmade BTC Mixer using MtGox?
Post by: 2weiX on January 22, 2013, 11:38:38 AM
So Say I have 1000 BTC on MtGox.

I write a script that arbitrarily takes an amount of these coins and cycles them back into the account via green adress.

like this:
Code:
once every n minutes, roll Z-sided dice
 if random number/range between A and Z
  request deposit address
  take some amount of coinage
  withdraw that coinage to the deposit adress using green address feature

after a number of iterations, the coins should be sufficiently mixed, non?
thinking about offering this service to a couple of people for a smallish fee (invite-only).

could/would this work?
i could also incorporate a small bot that just sits there on the bid/ask for ~20BTC for added mixage, or would that be superfluous?

input appreciated.
if this is stupid, say so, but nicely.


Title: Re: [Idea] Selfmade BTC Mixer using MtGox?
Post by: notme on January 22, 2013, 10:15:02 PM
So Say I have 1000 BTC on MtGox.

I write a script that arbitrarily takes an amount of these coins and cycles them back into the account via green adress.

like this:
Code:
once every n minutes, roll Z-sided dice
 if random number/range between A and Z
  request deposit address
  take some amount of coinage
  withdraw that coinage to the deposit adress using green address feature

after a number of iterations, the coins should be sufficiently mixed, non?
thinking about offering this service to a couple of people for a smallish fee (invite-only).

could/would this work?
i could also incorporate a small bot that just sits there on the bid/ask for ~20BTC for added mixage, or would that be superfluous?

input appreciated.
if this is stupid, say so, but nicely.

Pointless.  MtGox still knows which account each address belongs to.


Title: Re: [Idea] Selfmade BTC Mixer using MtGox?
Post by: 2weiX on January 23, 2013, 06:45:54 AM
So Say I have 1000 BTC on MtGox.

I write a script that arbitrarily takes an amount of these coins and cycles them back into the account via green adress.

like this:
Code:
once every n minutes, roll Z-sided dice
 if random number/range between A and Z
  request deposit address
  take some amount of coinage
  withdraw that coinage to the deposit adress using green address feature

after a number of iterations, the coins should be sufficiently mixed, non?
thinking about offering this service to a couple of people for a smallish fee (invite-only).

could/would this work?
i could also incorporate a small bot that just sits there on the bid/ask for ~20BTC for added mixage, or would that be superfluous?

input appreciated.
if this is stupid, say so, but nicely.

Pointless.  MtGox still knows which account each address belongs to.

okay, that's one weakness - if whoever finds out that this is done via mtgox, it's pointless.
but as long as this is disguised (put another way - how can anyone find out?), could this help to seperate inputs from outputs?


Title: Re: [Idea] Selfmade BTC Mixer using MtGox?
Post by: shad on January 23, 2013, 07:35:35 PM
why use an external service?

some pseudo code:


Quote
numberofrounds=100
numberofwalletsperround=100
maxtimeperround=60

for (i=1;i<=numberofrounds;i++)
(
 for (j=1;j<=numberofwalletsperround;j++)
 (
   array(i,j)=rpc.getnewaddress
 )
)

for (i=1;i<=numberofrounds;i++)
(
 for (j=1;j<=numberofwalletsperround/2;j++)
 (
   amountosend=rpc.getbalance(*,10)/(numberofwalletsperround-2*(j-1));
 
    rand=random(max=amountosend/(numberofwalletsperround-2*(j-1)+1))
    rpc.sendmany array(i,(j*2)-1) amounttosend-rand array(i,j*2) amounttosend+rand
    wait(random(max=maxtimeperround/(numberofwalletsperround/2)))
  )
 )
 while(rpc.getbalance(*,10)!=rpc.getbalance(*,0))
 (
   wait(10)
 )
)

fee= 0.005*numberofrounds*numberofwalletsperround/2


Title: Re: [Idea] Selfmade BTC Mixer using MtGox?
Post by: shad on January 23, 2013, 09:27:51 PM
V2 even more secure because of knowleg of outgoing address and fee integration


Quote
numberoftransactions=100
maxwaitpertransaction=60
fee=0.0005

rpc.setaccount(rpc.getnewadress(),'account0')
rpc.sendtoaddress(getaccountaddress('account'+0),rpc.getbalance(*,10))

while(rpc.getbalance('account0',10)!=rpc.getbalance('account0',0))
 (
   wait(10)
 )

numberofaccounts=0

for (i=0;i<numberoftransactions;i++)
(
  while(rpc.getbalance('account'+i,10)!=rpc.getbalance('account'+i,0))
  (
    wait(10)
    print('.')
  )
  tosend=(rpc.getbalance(('account'+i,10)-fee)/2)
  rand=random(max=tosend/3)
  rpc.setaccount(rpc.getnewadress(),'account'+i)
  rpc.setaccount(rpc.getnewadress(),'account'+(i+1))
  rpc.sendmany<'account'+i>(getaccountaddress('account'+(numberofaccounts+1), tosend+rand,getaccountaddress('account'+(numberofaccounts+2),amounttosend-rand)
  numberofaccounts= numberofaccounts+2
  wait(random(max= maxwaitpertransaction))
)

i hope getaccountaddress gives the last adress we set to that account, you should check that if you really want to use that code
maybe sending all btc to one adress in first place is not so genius...