Bitcoin Forum

Economy => Service Announcements => Topic started by: belcher on January 09, 2015, 09:21:36 PM



Title: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: belcher on January 09, 2015, 09:21:36 PM
JoinMarket is built for those who:
1. Want to use coinjoin to improve the privacy of their bitcoin transactions or reduce the miner fees they pay.
2. Want to earn an income from their investment bitcoins

Coinjoin is a kind of bitcoin transaction which combines multiple people's transactions together in an effort to improve privacy, especially as a way to regain privacy after it's been degraded by bad practices. It can also reduce the size of transactions and so require less miner fees. The concept has enormous potential, but it has not seen widespread usage so far despite the multiple projects that implement it. I believe this is because the incentive structure was not right.

A coinjoin transaction requires other people to take part. The right resources (coins) have to be in the right place, at the right time, in the right quantity. This isn't a software or tech problem, its an economic problem. I propose a new kind of market is created that would allocate these resources in the best way.

In practice this would work by allowing coinjoin transactions to be paid-for. On one side there will be time-rich coinjoiners who will wait around and be willing to coinjoin at any time. On the other side will be time-stressed coinjoiners who can coinjoin instantly for a price.

This will naturally attract investors, holders of bitcoin who don't want to transact but just want to earn the coinjoin fee. They would be taking on only a very small amount of risk; Their private keys would never leave their computer, the software would only sign transactions that are valid and pay the correct amount of coins. So it's safe to say that investors would pour in, resulting in the coinjoin fees being very low.

Elevator Pitch for Coinjoin Users / People who desire privacy.

With Joinmarket nobody can steal your coins, you would mix them on your own computer. The software will never sign a transaction unless your coins are going to exactly the right address in the right amount.

Other mixing services mix your coins with other users, resulting in you getting back coins possibly related to drugs, stolen money or other illegal or immoral practices. This is highly undesirable if you just don't want your employer knowing which non-profits you support from your salary. Because of the incentives of JoinMarket, you have access to a huge amount of clean, untainted bitcoins to mix with at a very low price. Many of the bitcoins you're mixing with will be bought from regulated exchanges, owned by legitimate holders of bitcoin.

Not to mention you'd likely be paying lower fees for mixing than other services, because of the competition between willing-to-wait coinjoiners. Indeed if you don't mind waiting, you can wait around with a low offer fee and maybe another impatient coinjoiner will join with you.

Elevator Pitch for Investors

Firstly I'd like to clarify what I mean by investing. I don't want you to give your bitcoins to me. I dont want you to give your bitcoins to anybody. The private keys would be safely held on your own computer, known only by you and your wallet.

Features:
1. Earn an income from your investment bitcoins.
2. Very low risk. Your coins have to be on an online computer, but the software would only sign transactions that are valid and pay you the correct amount.
3. No commitment, withdraw your bitcoins at any time.
4. Improves the privacy of the bitcoin transactions, which makes bitcoin as a currency more useful and thus increases its value.
5. Improves the fungibility of bitcoin, since the distinction between 'clean' and 'dirty' bitcoins will be meaningless. Eliminates this particular systemic risk to bitcoin.

Downside:
1. Your return is likely to be quite low. Low risk = low reward.
2. You don't get paid unless people who desire privacy actually use this. If you're an investor you have an incentive to tell people about JoinMarket and contribute to it.

The Software

I've been writing an implementation of the idea. Right now the coinjoiner bots meet in an IRC channel. The bots announce their orders in an open-outcry trading pit style. Transaction data is sent between users as IRC private messages. Authenticated encryption is used to stop the IRC server eavesdropping. I have plans one day to move away from IRC entirely and have the users meet in some kind of peer to peer network.

How to try
Download the repository from https://github.com/JoinMarket-Org/joinmarket-clientserver and read the README file
There is an internal HD wallet. It is generated from a wallet encrypted on your hard drive.

There's also plenty of information on the github docs: https://github.com/JoinMarket-Org/joinmarket-clientserver/tree/master/docs

Code:
$python wallet-tool.py generate
   Generates a new wallet. Asks for your encryption passphrase and gives you a 12-word recover seed to write down on paper, a la Electrum or Mycelium.

$ python wallet-tool.py [wallet file name]
  This will print out addresses from the HD wallet, send some coins to the first receive address

$ python yield-generator.py [wallet file]
  Becomes an investor bot, being online indefinitely and doing coinjoin for the purpose of profit

$ python sendpayment.py -N 4 [wallet file] [amount-in-satoshi] [destination address]
  Chooses the cheapest offer to do a 5-party coinjoin to send money to a destination address

If you're a frugal user and don't feel like paying to coinjoin if you dont have to, use this command
$ python patientsendpayments.py -N 1 -w 2 [wallet file] [amount in satoshi] [destination address]
  Announces orders and waits to coinjoin for a maximum of 2 hours. Once that time it up cancels the
  orders and pays to do a 2-party coinjoin.

$ python ob-watcher.py
  Starts a local http server which you can connect to and will display the orderbook as well as some graphs

$ python wallet-tool.py recover
  Will prompt for the 12 word recover seed and create a new encrypted wallet file

$ python wallet-tool.py -p [wallet file]
  Will print out addresses along with private keys which can be used to sweep the coins away

Example coinjoins transactions made with JoinMarket:
14 parties, amount 0.01btc https://blockchain.info/tx/55eac9d4a4159d4ba355122c6c18f85293c19ae358306a3773ec3a5d053e2f1b
11 parties, amount 0.57960945btc https://blockchain.info/tx/402d3e1df685d1fdf82f36b220079c1bf44db227df2d676625ebcbee3f6cb22a
8 parties, amount 2.6btc https://blockchain.info/tx/722bb2662cb2ef9b4a2693e52ba82c44cea1042349f1aa6e71e28a3947aa4144
7 parties, amount 0.02btc https://blockchain.info/tx/e38e45d004ef913ee4e952d1f185dbea91cc8cc56e22aa7f767a3edec952a4a9
3 parties, amount 25btc https://blockchain.info/tx/da1a2259be752dd6b5162221989181b7334bd0acbbc1bca31596e5bc32375770
4 parties, amount 40btc https://blockchain.info/tx/3b97544488cac0271a80b20822597342648d19ed02ac25041bd8d35e624d8e6b
3 parties, amount 12btc https://blockchain.info/tx/d91278e125673f5b9201456b0c36efac3b2b6700fdd04fc2227352a63f941170
4 parties, amount 0.84btc (~$200 at contemporary exchange rate) https://blockchain.info/tx/7d588d52d1cece7a18d663c977d6143016b5b326404bbf286bc024d5d54fcecb
4 parties, amount 0.1btc https://blockchain.info/tx/b85a3b563474ca98ba1809460e61a50053899c21f9869afb6a3a6d4b4cb00b7c
3 parties, amount 0.19btc https://blockchain.info/tx/2e2cd9204f97a2260ba5b1fd446f394eeff79daa973e37dd29794a9ee667bf64

Further Development
Github: https://github.com/chris-belcher/joinmarket
IRC: irc.freenode.net #joinmarket
Twitter: https://www.twitter.com/joinmarket
Reddit: http://www.reddit.com/r/joinmarket

If you can program, contribute code. The project needs development works more than anything else right now. A list of suggested projects are here https://github.com/chris-belcher/joinmarket/wiki/What-can-I-do-for-JoinMarket%3F

If you require privacy, JoinMarket can be used right now on the mainnet, albeit with a command-line interface. Many people are already using it.

Bitcoin Core wallet could be integrated by using the -walletbroadcast=0. Integration on the command line using json-rpc calls is already done, use the --rpcwallet flag on sendpayment.py

I have plans to create an Electrum plugin which does this, it would be a simple checkbox and thereafter all transactions would be coinjoined.

If you run your own yield generator bot, you can earn an income from your bitcoin savings and increase the privacy and anonymous set of others.

People trust systems more if they think they know how it works. If you're good with graphics, you can help the project by creating an infographic for how it all works. For example how coinjoin transactions in the joinmarket software are communicated, created, checked and signed.

Snazzy websites are better for getting the word out than big walls of text on a forum.

Further Reading
gmaxwell's original coinjoin post. https://bitcointalk.org/index.php?topic=279249.0
my original Joinmarket suggestion / writeup. https://bitcointalk.org/index.php?topic=279249.msg9384411#msg9384411
Mike Hearn's blog post about privacy and coinjoin https://medium.com/@octskyward/merge-avoidance-7f95a386692f


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: belcher on January 09, 2015, 09:27:37 PM
Reserved


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: onemorebtc on January 09, 2015, 09:30:47 PM
aradesh@aradesh:~/src/joinmarket$ python yield-generator.py blahhh
downloading wallet history
no tx used
Traceback (most recent call last):
  File "yield-generator.py", line 95, in <module>
    main()
  File "yield-generator.py", line 90, in main
    maker = YieldGenerator(wallet)
  File "yield-generator.py", line 26, in __init__
    Maker.__init__(self, wallet)
  File "/home/aradesh/src/joinmarket/maker.py", line 129, in __init__
    self.orderlist = self.create_my_orders()
  File "yield-generator.py", line 42, in create_my_orders
    max_mix = max(mix_balance, key=mix_balance.get)
ValueError: max() arg is an empty sequence

i guess i should start mining ;)


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: belcher on January 09, 2015, 09:35:04 PM
aradesh@aradesh:~/src/joinmarket$ python yield-generator.py blahhh
downloading wallet history
no tx used
Traceback (most recent call last):
  File "yield-generator.py", line 95, in <module>
    main()
  File "yield-generator.py", line 90, in main
    maker = YieldGenerator(wallet)
  File "yield-generator.py", line 26, in __init__
    Maker.__init__(self, wallet)
  File "/home/aradesh/src/joinmarket/maker.py", line 129, in __init__
    self.orderlist = self.create_my_orders()
  File "yield-generator.py", line 42, in create_my_orders
    max_mix = max(mix_balance, key=mix_balance.get)
ValueError: max() arg is an empty sequence

i guess i should start mining ;)

yield-generator's way of telling you you've got no money.

You can also get testnet coins from various faucets. Look at the links at the bottom of this. https://en.bitcoin.it/wiki/Testnet


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: onemorebtc on January 09, 2015, 09:36:40 PM

You can also get testnet coins from various faucets. Look at the links at the bottom of this. https://en.bitcoin.it/wiki/Testnet

already searching, but the only testnet-ewallet which gives me a seed instead of an address does not work currently.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: belcher on January 09, 2015, 09:43:30 PM

You can also get testnet coins from various faucets. Look at the links at the bottom of this. https://en.bitcoin.it/wiki/Testnet

already searching, but the only testnet-ewallet which gives me a seed instead of an address does not work currently.

You're misunderstanding.
The seed that you pass to scripts like wallet-tool.py and yield-generator.py are like brainwallets, they can be anything. For real bitcoins you would generate them from a 12-word mnemonic like Electrum does.

Come up with any seed and store it somewhere safe. Pass it as a command line argument to wallet-tool.py, which will print out a bunch of addresses. Copypaste the first of those addresses into a testnet faucet.

Aside: Because I'm a newbie the forum is rate limiting my posts to 5 minutes apart. It's quite annoying, any chance a mod can bump me up? given I've already demonstrated I'm not a spammer.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: onemorebtc on January 09, 2015, 09:46:20 PM
thanks.

i've contacted mods through the report link... maybe they'll change it.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: jt byte on January 10, 2015, 03:00:06 AM
good luck with your project


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: molecular on January 11, 2015, 12:22:21 PM
I think this is a great idea.

Question: is there usually a backend bot managing the orderbook on #joinmarket-pit-test? Is it dead or am I misunderstanding?

"!orderbook" doesn't return anything.

EDIT: ah, got it: it's sent via pm


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: belcher on January 12, 2015, 10:06:36 PM
I think this is a great idea.

Question: is there usually a backend bot managing the orderbook on #joinmarket-pit-test? Is it dead or am I misunderstanding?

The only central point of failure right now is the IRC server itself. It's not a centralized orderbook like gribble on #bitcoin-otc but more like an open-outcry trading pit. Bots announce their orders when they first join, and will repeat their orders in PM to whoever says !orderbook in channel.

By the way, I saw someone was doing coinjoins with a very small amount, like 666 or 3333 satoshi. Since my bot asks for a 1% fee, it earns not enough to cover the 1000 satoshi contribution to the miner fee. I didn't think of this attack, it's never good to look at your terminal and see "earned fee" being a negative number. ;) Fixed now (https://github.com/chris-belcher/joinmarket/commit/e14e60d0b4313b87b4357589182687f7ae1ed0ef)


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: molecular on January 13, 2015, 08:20:00 AM
I think this is a great idea.

Question: is there usually a backend bot managing the orderbook on #joinmarket-pit-test? Is it dead or am I misunderstanding?

The only central point of failure right now is the IRC server itself. It's not a centralized orderbook like gribble on #bitcoin-otc but more like an open-outcry trading pit. Bots announce their orders when they first join, and will repeat their orders in PM to whoever says !orderbook in channel.

I see.

By the way, I saw someone was doing coinjoins with a very small amount, like 666 or 3333 satoshi. Since my bot asks for a 1% fee, it earns not enough to cover the 1000 satoshi contribution to the miner fee. I didn't think of this attack, it's never good to look at your terminal and see "earned fee" being a negative number. ;) Fixed now (https://github.com/chris-belcher/joinmarket/commit/e14e60d0b4313b87b4357589182687f7ae1ed0ef)

That was me ;).


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: melwinder on January 13, 2015, 08:30:52 AM
This sounds like a good idea, I am not much of a techy to be able to put together this kind of project, but I will be looking forward to see what other people will do with it :)


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: marcus_of_augustus on January 13, 2015, 09:34:41 AM
promising


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: dserrano5 on January 13, 2015, 10:42:52 AM
I just set up a maker with 0.0999 btc. Let's see if someone bites!


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: belcher on January 13, 2015, 09:23:14 PM
Merged waxwing's encryption pull request.
Now a taker and maker(s) will send their output addresses through an encrypted channel so an eavesdropping IRC server cannot unmix the coinjoin.

Though that means the pre- and post-encryption bots cannot understand each other. Please pull the latest commits if you're trying it out. You also need to install libsodium cryptographic library.

Read about the protocol here: https://github.com/chris-belcher/joinmarket/blob/master/encryption_protocol.txt


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: dserrano5 on January 14, 2015, 09:33:15 AM
Quote
Though that means the pre- and post-encryption bots cannot understand each other. Please pull the latest commits if you're trying it out. You also need to install libsodium cryptographic library.

Done. My maker process disappeared somehow at some point, no clues about that. I just brought it up again using the new updates.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: phelix on January 16, 2015, 05:17:35 PM
Interesting!


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: goregrind on January 20, 2015, 12:01:38 PM
If you're trying to run this on debian systems you might run into problems regarding nacl and libsodium
Since theres no pre-packaged libsodium you will have to install this manually as per:
http://askubuntu.com/questions/330589/how-to-compile-and-install-dnscrypt
and then run: pip install libnacl


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: waxwing on January 20, 2015, 06:47:37 PM
If you're trying to run this on debian systems you might run into problems regarding nacl and libsodium
Since theres no pre-packaged libsodium you will have to install this manually as per:
http://askubuntu.com/questions/330589/how-to-compile-and-install-dnscrypt
and then run: pip install libnacl

Thanks for this. Indeed, you have to install it manually; the latest version is 1.02 as at https://download.libsodium.org/libsodium/releases/. And follow the simple instructions at http://doc.libsodium.org/installation/README.html

Sorry that things are not at all well documented yet. Things are still very much in flux :)

As for packaging, it seems likely that binaries will be packaged with signatures at some point.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: belcher on January 21, 2015, 01:15:18 AM
I noticed tonight there were four yield-generators in the pit. So I went ahead and did a five-party coinjoin.

The command was
Code:
python sendpayment.py -N 4 [seed] 50000000 [dest addr]

Four times the bot sent out the fill command, four times it did the encryption handshake, four times it received a list of UTXOs and destination addresses. It made those into a transaction along with its own inputs and outputs. Then it sent the transaction out four times and waited for four signatures to return. Each of the signatures was valid so the bot added them to the transaction and pushed it to the network. All without crashing, I was amazed. The whole thing took barely any longer than a two-party coinjoin since it all runs in parallel.

https://tbtc.blockr.io/tx/info/095a75f189cb7bd95fc57fb309d5010e09771971243847b5d3ea232ac2518333


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: molecular on January 21, 2015, 09:04:45 AM
^ @belcher: awesome.

I failed on a 3 party coinjoin a week or so ago. Not sure why, it just hung waiting for communication from one of the parties, I think.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: belcher on January 21, 2015, 11:04:00 AM
Got a pastebin of the terminal in that case molecular?


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: phelix on January 21, 2015, 01:13:24 PM
I think this is a great idea.

Question: is there usually a backend bot managing the orderbook on #joinmarket-pit-test? Is it dead or am I misunderstanding?

The only central point of failure right now is the IRC server itself. It's not a centralized orderbook like gribble on #bitcoin-otc but more like an open-outcry trading pit. Bots announce their orders when they first join, and will repeat their orders in PM to whoever says !orderbook in channel.

By the way, I saw someone was doing coinjoins with a very small amount, like 666 or 3333 satoshi. Since my bot asks for a 1% fee, it earns not enough to cover the 1000 satoshi contribution to the miner fee. I didn't think of this attack, it's never good to look at your terminal and see "earned fee" being a negative number. ;) Fixed now (https://github.com/chris-belcher/joinmarket/commit/e14e60d0b4313b87b4357589182687f7ae1ed0ef)

You could also do it via a Bitmessage channel...


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: marzo on January 23, 2015, 04:25:12 PM
Very nice project.

Can someone please help with errors I am getting? (I am able to run the gui/web tool and the yield generator through which someone already traded, but can never run the send myself).

python sendpayment.py -N 1 "MY SUPER SECRET PASSWORD" 10000000 mXXXXXXXXXXaddress

Exception in thread Thread-2:
Traceback (most recent call last):
  File "/usr/lib/python2.7/threading.py", line 810, in __bootstrap_inner
    self.run()
  File "sendpayment.py", line 85, in run
    utxos = self.taker.wallet.select_utxos(self.taker.mixdepth, self.taker.amount)
  File "/tmp/joinmarket-master/common.py", line 130, in select_utxos
    utxo_list = self.get_mix_utxo_list()[mixdepth]
KeyError: 0

Which packages are needed? I compiled & installed libsodioum, dnscrypt, "pip install libnacl" but may be missing something still.
Thanks in advance


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: belcher on January 23, 2015, 05:12:08 PM
marzo, looks like you might not have money in your wallet, in that particular mixing depth.
Did you wait for confirmations?
Otherwise control which mix depth you spend from with the -m command line flag.
If you can run yield generator fine, you've got all the dependencies installed.

phelix yes BitMessage would work. It would be an easy way to break the link between IP address and coinjoiner, also nobody could censor orders and thus control who you coinjoin with. It would be quite slow though, one advantage of IRC is the coinjoin takes barely any longer than a regular bitcoin transaction.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: waxwing on January 23, 2015, 07:09:56 PM
Just a heads up for anyone trying it out - don't expect it be stable atm.
Update bots from github regularly :)


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: belcher on January 23, 2015, 08:46:56 PM
To whom does the bot with 122tbtc belong?  ;)

https://i.imgur.com/9NtdiUs.png


It's quite interesting, I would think a large order size like that would be an opportunity to raise fees. Since if someone comes along who wants to join 50tbtc they only have one person who can do it.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: marzo on January 23, 2015, 10:00:07 PM
marzo, looks like you might not have money in your wallet, in that particular mixing depth.
yes BitMessage would work. It would be an easy way to break the link between IP address and coinjoiner, also nobody could censor orders and thus control who you coinjoin with. It would be quite slow though, one advantage of IRC is the coinjoin takes barely any longer than a regular bitcoin transaction.
thanks! I got it to work once I funded more addresses/depths. Not 100% sure what they mean yet. :)
I vote for maximum privacy & anonymity (once the core tumbling code is all debugged, not urgent) -- that's the point of this project, not speed ;)


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: dillpicklechips on January 23, 2015, 11:49:24 PM
Can it use coinshuffle for the mix?


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: waxwing on January 24, 2015, 02:36:30 PM
Can it use coinshuffle for the mix?

I think it's a very interesting protocol, and it's theoretically possible, however:

Coinshuffle is a way of creating unlinkability without the hassle and problems of (a) a centralised server and (b) requirement of anonymity networks (that model also needs blind signatures, but that's a well known tech). There's a payoff with the amount of counterparty interaction/messaging, which presumably blows up for large N, but that wouldn't be a big deal in practice (apart from code complexity and a little time cost). As for the blame part of the protocol, I haven't looked into it yet.

Anyway, to get to my point, it seems to me that in a weird kind of way JoinMarket might be argued not to need it: if the only person's coin privacy that counts is the taker (reminder that the basic transaction model here is 1 taker and N-1 makers), then the simple fact that the taker assembles the transaction and is the only one privileged to know output ordering means that, from the taker's point of view, the problem is addressed.

Of course we never forget that none of these protocols ever addresses N-1 colluders. You just want it to hold up with < N-1.

This is a bit of a weird way of looking at it and I may be wrong ... I'll think about it a bit more, would be interested to hear other opinions.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: dillpicklechips on February 01, 2015, 08:43:28 AM
This would work perfect as a marketplace for when someone wants to use coinjoin for payments. Apps that have Coinjoin Payments enabled would find a useful maker in the market and create a suitable coinjoin to pay for the goods or services.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: waxwing on February 01, 2015, 07:00:10 PM
This would work perfect as a marketplace for when someone wants to use coinjoin for payments. Apps that have Coinjoin Payments enabled would find a useful maker in the market and create a suitable coinjoin to pay for the goods or services.

Yes, this is one of the intended use cases. For example, an Electrum plugin. One could envisage some nominal extra amount added to the transaction fee (based on the market rate for a join). See under "Further Development" in the first post.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: belcher on February 01, 2015, 07:18:42 PM
Would like input/ideas from the community
From https://github.com/chris-belcher/joinmarket/issues/28

If you were designing a tumbler that's hard to unmix using joinmarket, how would you do it?


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: dillpicklechips on February 01, 2015, 08:09:26 PM
Would like input/ideas from the community
From https://github.com/chris-belcher/joinmarket/issues/28

If you were designing a tumbler that's hard to unmix using joinmarket, how would you do it?
What about CoinShuffle (research paper on it) where the outputs are all the same amount as determined by what the taker needs for payments. Each person can have multiple outputs that are all the same and the addresses are hidden in layers almost like TOR.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: belcher on February 01, 2015, 09:42:13 PM
Would like input/ideas from the community
From https://github.com/chris-belcher/joinmarket/issues/28

If you were designing a tumbler that's hard to unmix using joinmarket, how would you do it?
What about CoinShuffle (research paper on it) where the outputs are all the same amount as determined by what the taker needs for payments. Each person can have multiple outputs that are all the same and the addresses are hidden in layers almost like TOR.

It could be implemented I'm sure. It would involve a few more messages sent between taker and maker(s) and some more computation but thats all.

On the other hand, part of the problem that CoinShuffle solves is already solved in the JoinMarket model. The taker is the only entity who knows the mapping between inputs and outputs and the taker has an incentive to keep that mapping secret, because he's just paid money for it.

As for the tumbler issue, I'm more asking for suggestions about the output amounts, timings, number of participants and so on. And the tradeoffs involved in using these parameters and how they can be best be explained to users.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: riplin on February 20, 2015, 08:54:28 PM
You guys might be interested in this:

https://www.reddit.com/r/Bitcoin/comments/2wfpzk/subspace_a_new_messaging_protocol_for_bitcoin/

It's still in early development, but it seems to be more scalable and more secure than BitMessage.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: belcher on February 20, 2015, 09:31:31 PM
You guys might be interested in this:

https://www.reddit.com/r/Bitcoin/comments/2wfpzk/subspace_a_new_messaging_protocol_for_bitcoin/

It's still in early development, but it seems to be more scalable and more secure than BitMessage.

Thank you.
I heard about this just yesterday in fact. I've starred it on my github.

So a short update. I've been doing a fair amount of work to separate the IRC specific code, so that later another messaging channel can be easily slotted in. I've finished that now. And now Subspace is being talked about so of course I'll be watching it closely.

I did a coinjoin with 7 parties the other day. http://tbtc.blockr.io/tx/info/e8ea04db956b3726f580f758df7e99fbadfcaa81d61e18f0d5980773fa0f0ddd At first these transactions were very interesting, but now I essentially make them all the time and they have become mundane.

waxwing is working on separating the blockchain querying code, so bitcoind's json_rpc can be easily slotted in. This is quite important because right now we're querying blockr.io which is owned by coinbase.com

I will work on some stuff involving dust amounts and other details, then I'll finish a first simple version of tumbler.py. After that I plan to write an automated script that does lots and lots of coinjoins in an effort to find bugs. Soon after it should be good to try coinjoin with mainnet.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: phelix on March 09, 2015, 08:45:39 AM
Any updates? :)


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: waxwing on March 09, 2015, 10:37:24 AM
Any updates? :)

Small update:
I've put in some code to create the ability to run a bot using your own bitcoind instance rather than reading from blockr.io . (See blockchaininterface.py).
There's also now a config file, joinmarket.cfg.

I also made an initial stab at creating test code - see regtesttest.py . This was motivated by the obvious limitations of testing against the real testnet blockchain in terms of delays and in terms of limited funds, participants. At some point I'd like to flesh that out by putting in tons of tests with multiple agents, weird balance sizes, weird wallet distributions etc. I already ran an 8 party join on it OK, which was interesting in as much as IRC didn't seem to complain.
Probably there's other kinds of testing worth looking at. Personally I think this aspect is more important than developing more functionality at this stage (except perhaps more UI).

None of that impacts anyone who's testing much, except I would appeal to anyone who's willing, to try running their bots using a local bitcoind -port=xx -rpcport=xy -testnet -daemon, and then setting the appropriate values in the config. Note that you *must* use bitcoin 0.10.
The code as it stands would need you to add bitcoin-cli to your $PATH.
You will also have to pay attention to the flags -txindex=1 (I *believe* you should set this on starting bitcoind), -reindex and also -rescan but I am not sure of the details. The reason this comes up is because of performance issues related to importing addresses into the wallet (this needs to be done so that we can see the history of a specific address). Either way, my experience has been that you will see some CPU load and maybe a few minutes delay when you start using a new joinmarket wallet because of this issue, but it goes away after that. It may be that future work will reduce this considerably, not sure. Belcher has started to look into that aspect.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: belcher on March 14, 2015, 04:34:47 PM
Regarding the Chainalysis deanonymizing sybil attacker (https://www.reddit.com/r/Bitcoin/comments/2yvy6b/a_regulatory_compliance_service_is_sybil/).

CoinJoin doesn't directly deal with IP-address based attacks.

However, because CoinJoin has multiple people, the final fully-signed transaction could be broadcast by any of them. This passive-monitoring sybil does not know that the different IP addresses are co-operating to create a CoinJoin.

For JoinMarket right now, it is always the taker who broadcasts the tx from their IP or through a blockchain explorer. This could be improved by having taker be able to send the fully-signed tx hex to one of the makers who will then broadcast it. The taker would choose to broadcast the txhex himself, or send it to one randomly chosen maker to broadcast. In this way the coinjoin tx could come from many IPs instead of just the taker's.
It could work quite well. The makers are already incentivized to allow their bitcoins to be coinjoined with, now they can be incentivized to allow their IP address to broadcast coinjoins. They don't earn their coinjoin fee unless they broadcast.


If you're interested in this project, you should follow the issue tracker on github. I write a lot of stuff there.
https://github.com/chris-belcher/joinmarket/issues


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: belcher on March 31, 2015, 11:14:59 PM
FWIW I made a subreddit for the project. https://www.reddit.com/r/joinmarket

I came up with the idea of having the takers come up with a rating for each maker they trade with. Market makers are rated on response time, whether the maker's connection dropped halfway through or whether the maker sent a UTXO that had already been spent. This should provide market pressure that drives out flaky slow makers or those makers that DOS their counterparties. https://github.com/chris-belcher/joinmarket/issues/57

The very first version of tumbler.py was created. https://github.com/chris-belcher/joinmarket/blob/master/tumbler.py
Meaning you could get bitcoins from a very unprivate source like bitstamp, your employer or some guy off #bitcoin-otc, then use tumbler.py to almost completely break the link between addresses and regain you your privacy. This will probably be more important in the early stages when coinjoin still isn't common.
Then you could spend them on Magic: The Gathering cards, horse-imitation dildos, mental-health medicine or other embarrassing and taboo uses without worrying about anyone knowing.

Configuring JoinMarket to use the Bitcoin Core json-rpc interface now works. I've written a short guide here. https://github.com/chris-belcher/joinmarket/wiki/Running-JoinMarket-with-Bitcoin-Core-full-node


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: TheButterZone on May 07, 2015, 09:45:21 PM
Looking forward to this being pulled into all major clients.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: belcher on May 08, 2015, 12:07:02 AM
I'm pleased to announce the mainnet version of JoinMarket.

Expect glitches and a command line interface. But it works.

Here's some CoinJoins people have already done
https://blockchain.info/tx/601d9c15bc1edd2fe3e5c853ed111d11e9c0a5fb66c75571c7f10fa0d8ab23bb 5-party coinjoin
https://blockchain.info/tx/b85a3b563474ca98ba1809460e61a50053899c21f9869afb6a3a6d4b4cb00b7c 4-party coinjoin
https://blockchain.info/tx/e8b793b3464641df9404993c3101f81208b2d774f51a1ec748a608fbc9e22629 3-party coinjoin
https://blockchain.info/tx/665a9d7848cc0d28869ef866ca9a1117f20358e1e372dbbb01f1b75054584e70 3-party coinjoin

Only pocket change amounts for now, if anyone found an exploit bug they could theoretically clean out your wallet. My yield generator bot is running happily right now, I've already earned about 25000 satoshi.

I will be working on an Electrum plugin to make it easy to use. Electrum doesn't have a testnet version which is one reason we've moved to the mainnet now.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: K1773R on May 08, 2015, 05:53:42 AM
This is a great project, thanks!

Do you/we need more testnet3 or/and mainnet yield bots?
Mainnet would be set as following?
Code:
network = mainnet


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: HostFat on May 08, 2015, 11:38:29 AM
If you have a project and you are receving donations, then this is a good place where putting them to get more income.

This is the new mining ;D


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: domob on May 08, 2015, 11:45:42 AM
Very cool project, I'll be setting up my own yield generator soon to provide some liquidity.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: jdebunt on May 08, 2015, 11:48:04 AM
Looking into this project for journalistic purposes :)


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: waxwing on May 08, 2015, 04:36:49 PM
This is a great project, thanks!

Do you/we need more testnet3 or/and mainnet yield bots?
Mainnet would be set as following?
Code:
network = mainnet

Correct. Be sure to read the README and the guides in the wiki on github carefully. That's just to start :)


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: domob on May 11, 2015, 06:03:39 AM
Two questions:

1) Is there a way for potential "takers" to find out which UTXO entries the makers are offering?  (E. g., by starting a join?)  If there is, isn't that a huge privacy problem, since you can determine which UTXO's are from makers and thus deanonymise past transactions they were part of?  If not, I must have misunderstood how the system works (since in my understanding, the taker builds the tx and thus needs a way to get maker UTXO's).

2) If I want to run a yield generator (i. e., maker bot), do I need to accept incoming connections or is it also possible behind a firewall / NAT?


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: K1773R on May 11, 2015, 08:18:28 AM
Two questions:

1) Is there a way for potential "takers" to find out which UTXO entries the makers are offering?  (E. g., by starting a join?)  If there is, isn't that a huge privacy problem, since you can determine which UTXO's are from makers and thus deanonymise past transactions they were part of?  If not, I must have misunderstood how the system works (since in my understanding, the taker builds the tx and thus needs a way to get maker UTXO's).

2) If I want to run a yield generator (i. e., maker bot), do I need to accept incoming transactions or is it also possible behind a firewall / NAT?
2) You mean incoming connections not transactions, right? No you dont, the communication is done with IRC, which works behind NAT/firewalled. you only need to be able to connect to snookernet IRC.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: domob on May 11, 2015, 09:12:01 AM
Two questions:

1) Is there a way for potential "takers" to find out which UTXO entries the makers are offering?  (E. g., by starting a join?)  If there is, isn't that a huge privacy problem, since you can determine which UTXO's are from makers and thus deanonymise past transactions they were part of?  If not, I must have misunderstood how the system works (since in my understanding, the taker builds the tx and thus needs a way to get maker UTXO's).

2) If I want to run a yield generator (i. e., maker bot), do I need to accept incoming transactions or is it also possible behind a firewall / NAT?
2) You mean incoming connections not transactions, right? No you dont, the communication is done with IRC, which works behind NAT/firewalled. you only need to be able to connect to snookernet IRC.
Yes, of course.  Fixed it, thanks for the answer!  That's great.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: waxwing on May 11, 2015, 12:06:19 PM
They're trickling through. Just saw another join; 7 party: e38e45d004ef913ee4e952d1f185dbea91cc8cc56e22aa7f767a3edec952a4a9

Amounts small so far, which is to be expected. But all the same.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: belcher on May 11, 2015, 03:45:07 PM
Two questions:

1) Is there a way for potential "takers" to find out which UTXO entries the makers are offering?  (E. g., by starting a join?)  If there is, isn't that a huge privacy problem, since you can determine which UTXO's are from makers and thus deanonymise past transactions they were part of?  If not, I must have misunderstood how the system works (since in my understanding, the taker builds the tx and thus needs a way to get maker UTXO's).

How does knowing the maker's UTXOs become a huge privacy problem?
UTXOs are the inputs, coinjoins improve privacy because the outputs cannot be distinguished. One use of coinjoin is to regain privacy after it's been lost by bad practices, when your enemy already knows your UTXOs.

They're trickling through. Just saw another join; 7 party: e38e45d004ef913ee4e952d1f185dbea91cc8cc56e22aa7f767a3edec952a4a9

Amounts small so far, which is to be expected. But all the same.

Yes it's great. It's good people are using it despite the current command line interface.

My other coinjoin project I wrote, CoinJumble, had a nice GUI but it was probably never used more than once or twice. Incentives uber alles.

Here is an paragraph influential to me, from Mike Hearn's blog on coinjoin linked from the OP of this thread.

Quote
Perhaps the least discussed issue is user experience. A CoinJoin transaction requires other people to take part. The more people who take part, the better. But Bitcoin only peaks at about one transaction per second currently. Even if all transactions were CoinJoined, and all rendezvoused at a single point (ack, centralisation!), you would still have to wait 10-15 seconds to get a good set of participants to mix with. That’s just to start the protocol. Then those participants would all have to retrieve the candidate transaction and sign. If any time out, the whole thing has to start again. In poor conditions it could easily take a minute or more to complete this process, especially if some participants have flaky networks (i.e. phones) and are using Tor. Given that we’re trying to improve performance rather than reduce it, that seems like a big problem all by itself.

Whilst increasing traffic and usage would help reduce this issue, even if traffic doubled, splitting the single central rendezvous point would immediately put waiting times back to square one.

It's seems obvious now, but the GUI of CoinJumble provides a far worse user experience than the CLI of JoinMarket. And eventually I'll be done with the electrum plugin to allow easy point-and-click coinjoin.

Another use has been found for CoinJumble, it is excellent for debugging bitcoin raw transactions. It gives more detail than the bitcoind decoderawtransaction.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: domob on May 11, 2015, 06:50:16 PM
Two questions:

1) Is there a way for potential "takers" to find out which UTXO entries the makers are offering?  (E. g., by starting a join?)  If there is, isn't that a huge privacy problem, since you can determine which UTXO's are from makers and thus deanonymise past transactions they were part of?  If not, I must have misunderstood how the system works (since in my understanding, the taker builds the tx and thus needs a way to get maker UTXO's).

How does knowing the maker's UTXOs become a huge privacy problem?
UTXOs are the inputs, coinjoins improve privacy because the outputs cannot be distinguished. One use of coinjoin is to regain privacy after it's been lost by bad practices, when your enemy already knows your UTXOs.

But the outputs of previous joins might be UTXO's that makers offer again, no?  So if I query the market and find the current UTXO's of the makers, then I can "assume" that these specific outputs in the join transactions that produced them are, probably, not the mixing user's outputs.  Even further, if I determine the maker's UTXO's constantly over time, this could allow me to associate a single maker's input and output and thus (partially) deanonymise transactions.  Or is there something in JoinMarket that prevents this type of attack?


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: belcher on May 11, 2015, 07:16:49 PM
Two questions:

1) Is there a way for potential "takers" to find out which UTXO entries the makers are offering?  (E. g., by starting a join?)  If there is, isn't that a huge privacy problem, since you can determine which UTXO's are from makers and thus deanonymise past transactions they were part of?  If not, I must have misunderstood how the system works (since in my understanding, the taker builds the tx and thus needs a way to get maker UTXO's).

How does knowing the maker's UTXOs become a huge privacy problem?
UTXOs are the inputs, coinjoins improve privacy because the outputs cannot be distinguished. One use of coinjoin is to regain privacy after it's been lost by bad practices, when your enemy already knows your UTXOs.

But the outputs of previous joins might be UTXO's that makers offer again, no?  So if I query the market and find the current UTXO's of the makers, then I can "assume" that these specific outputs in the join transactions that produced them are, probably, not the mixing user's outputs.  Even further, if I determine the maker's UTXO's constantly over time, this could allow me to associate a single maker's input and output and thus (partially) deanonymise transactions.  Or is there something in JoinMarket that prevents this type of attack?

Eventually this attack will probably be prevented by anti-DOS code, since what you're suggesting would mean partially creating a coinjoin and then never completing it, many many times on a long-term basis.

It's not trivial to obtain all the maker's UTXOs because of the way the different identities in the internal HD wallet work.

You would not be able to deanonymize past transactions, only future transactions made with those UTXOs. i.e. you would have to get all the maker's UTXOs, wait for a coinjoin to happen, then gets all the UTXOs again and compare.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: Anduck on May 12, 2015, 01:14:29 AM
Joinmarket used to make this: https://blockchain.info/tx/dc5b6d3f1fe45cd944fe30e2c28554267d7fb4c1d1a5ea199933be30205b5611
Not very easy job to unmix...


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: domob on May 12, 2015, 05:07:53 AM
But the outputs of previous joins might be UTXO's that makers offer again, no?  So if I query the market and find the current UTXO's of the makers, then I can "assume" that these specific outputs in the join transactions that produced them are, probably, not the mixing user's outputs.  Even further, if I determine the maker's UTXO's constantly over time, this could allow me to associate a single maker's input and output and thus (partially) deanonymise transactions.  Or is there something in JoinMarket that prevents this type of attack?

Eventually this attack will probably be prevented by anti-DOS code, since what you're suggesting would mean partially creating a coinjoin and then never completing it, many many times on a long-term basis.

It's not trivial to obtain all the maker's UTXOs because of the way the different identities in the internal HD wallet work.

You would not be able to deanonymize past transactions, only future transactions made with those UTXOs. i.e. you would have to get all the maker's UTXOs, wait for a coinjoin to happen, then gets all the UTXOs again and compare.

Yes, that's true.  I did not claim it was easy, just wanted to point this out - although I'm sure you thought about it already!  And I fully agree that it requires an attacker to be quite sophisticated and "active".  Even if this was possible easily, the joins would still prevent leakage of information through the chain alone - which is already a really great thing.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: belcher on May 12, 2015, 06:35:22 PM
It's good to think about possible attacks so we can look out for them.

Privacy is a multi-faceted idea. I don't think CoinJoin or JoinMarket entirely solve the problem. A single CoinJoin does nothing to help with time-based or amount-based privacy invading, because the deals happen apparently instantly, and if you send in an amount of bitcoin you'll get back out that amount minus fees.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: domob on May 13, 2015, 05:44:56 AM
It's good to think about possible attacks so we can look out for them.

Privacy is a multi-faceted idea. I don't think CoinJoin or JoinMarket entirely solve the problem. A single CoinJoin does nothing to help with time-based or amount-based privacy invading, because the deals happen apparently instantly, and if you send in an amount of bitcoin you'll get back out that amount minus fees.
Yes.  Nevertheless, I really think that JoinMarket could be "the" CoinJoin solution that actually takes off - due to the inherent profit incentives.  This would make it at least one important tool for privacy.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: Itskok on May 16, 2015, 05:17:53 PM
This is really a nice idea!
I think that every attempt to promote coinjoin/mix or stealth addresses is welcome,we are just at the beginning of the study and i believe that in the future all of those "extra" security/privacy features will be default in every payment or wallet systems.
Regarding to your "market" idea,i think that it can be nice only as a feature at this point of time when bitcoin is not so popular, it cannot really be an enterprise solution,i think that mix/join solutions will be transparent for the users and embedded in their wallets,i dont think that users need to handle the question of 'who wanna mix me?",we need to find an automated way to mix transaction without dropping it on the users,same thing with the fees,systems must locate easily where is the cheapest mixers and works with them, but still the ideas just starting out and we can develop a lot of improvements for the future.
Good luck ,i am gonna follow it..  8)

 


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: theymos on May 16, 2015, 06:02:46 PM
Good to see that some progress is being made on usable CoinJoin. This seems like the best CoinJoin project around currently.

Some possible ideas/improvements come to mind:
- Tor should be easier to use. Probably the default configuration should be to use Tor.
- Only Tor-friendly IRC servers should be used, and only over TLS.
- To reduce centralization, multiple IRC servers could be used. Makers would idle on all of the servers, and takers would find partners using multiple randomly-selected IRC servers. If any servers are down, Joinmarket should issue a warning, as this may be a DoS attack on the IRC server designed to funnel people to attacker-controlled servers.
- Instead of requiring NickServ registration, makers could generate an identity separately (maybe just a Bitcoin address) and communicate it on the IRC channel using public-key crypto. This is more convenient and will work across multiple IRC servers.
- In exchange for a (comparatively large) extra fee, takers could require that the unspent-outputs provided by makers be x blocks deep (I'm thinking ~1500). This reduces the Sybil risk because an attacker will only have so many bitcoins, and this requirement ties up a lot of their bitcoins for a while if a lot of takers are routinely requiring that at least some of their partners provide old bitcoins.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: domob on May 16, 2015, 06:32:16 PM
Market pressure seems to be rising ... I just lowered my fees a bit.  That's good, as the ultimate goal should be to have almost-zero fees due to competition.  I've still not seen many joins happen, though, and only for tiny amounts.  But this is expected since the project is quite new.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: waxwing on May 16, 2015, 07:10:42 PM
- Instead of requiring NickServ registration, makers could generate an identity separately (maybe just a Bitcoin address) and communicate it on the IRC channel using public-key crypto. This is more convenient and will work across multiple IRC servers.
This is already in place, but only in one sense. We decided that the appropriate idea here is a kind of 'functional identity' - the participants identify themselves with btc signatures *of their encryption pubkey* corresponding to the utxo they use in the tx construction.
I originally coded it so that the public key crypto keypair (what I called 'encryption pubkey' in the above sentence) was persistent for that participant, however we decided that the more elegant model was to dynamically create keypairs on the fly on a per-tx basis (it keeps the model much simpler and more transparent to the user).
It does lose the persistent identity doing it that way; but there's nothing stopping us adding another layer on top for that. The whole DOS resistance angle is being discussed very actively.




Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: belcher on May 16, 2015, 09:25:13 PM
Good to see that some progress is being made on usable CoinJoin. This seems like the best CoinJoin project around currently.

Some possible ideas/improvements come to mind:
- Tor should be easier to use. Probably the default configuration should be to use Tor.
- Only Tor-friendly IRC servers should be used, and only over TLS.
- To reduce centralization, multiple IRC servers could be used. Makers would idle on all of the servers, and takers would find partners using multiple randomly-selected IRC servers. If any servers are down, Joinmarket should issue a warning, as this may be a DoS attack on the IRC server designed to funnel people to attacker-controlled servers.
- Instead of requiring NickServ registration, makers could generate an identity separately (maybe just a Bitcoin address) and communicate it on the IRC channel using public-key crypto. This is more convenient and will work across multiple IRC servers.
- In exchange for a (comparatively large) extra fee, takers could require that the unspent-outputs provided by makers be x blocks deep (I'm thinking ~1500). This reduces the Sybil risk because an attacker will only have so many bitcoins, and this requirement ties up a lot of their bitcoins for a while if a lot of takers are routinely requiring that at least some of their partners provide old bitcoins.

Thanks for the post.

IRC was only ever intended as a starting point, eventually another messaging channel will be found because ultimately IRC will always been inferior. There are a few ideas for which p2p network to use, the most promising being https://github.com/cpacia/Subspace still in development which is explicitly designed for coinjoin. That will surely allow Tor too.

Adding the UTXOs x blocks deep as a parameter to be agreed upon in the market is a good idea. Transactions using deeper txouts as input will get higher priority and potentially confirm faster as well.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: laurentmt on May 17, 2015, 05:20:04 PM
Just a question regarding the fees. Relative fees announced by the maker are paid by the taker to the maker. On which amount is the ratio applied: the coinjoined output ? All inputs from the taker ? ...

Thanks in advance !


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: belcher on May 17, 2015, 11:00:42 PM
Just a question regarding the fees. Relative fees announced by the maker are paid by the taker to the maker. On which amount is the ratio applied: the coinjoined output ? All inputs from the taker ? ...

Thanks in advance !

Relative fees are a percentage of the coinjoin amount


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: justusranvier on May 19, 2015, 06:45:05 AM
IRC was only ever intended as a starting point, eventually another messaging channel will be found because ultimately IRC will always been inferior. There are a few ideas for which p2p network to use, the most promising being https://github.com/cpacia/Subspace still in development which is explicitly designed for coinjoin. That will surely allow Tor too.
It would be great to have an open standard messaging protocol and get it implemented in many wallets.

Until all wallets that use mixing are accessing the same pool of participants, it's never going to work very well.

See Darkwallet for an example. They have an excellent GUI for mixing, but since they can only mix with other Darkwallet users, in practise their mixing capability is useless.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: domob on May 27, 2015, 06:11:26 AM
It seems that the maximum order size my yield-generator provides is limited by the maximum balance in any one mix depth level.  Is this correct?  I. e., if I have 1 BTC in the wallet and use the default mix levels setting of 5, it may happen (in the worst case) that only 0.2 BTC are available for any one order.  Is there a way to get around that restriction?  If I do not care too much about my own privacy (as a market maker) and want to increase the provided liquidity of my bot, can I somehow specify that I want certain mix levels to be used together in orders?  I tried lowering the mix depth setting in yield-generator.py, but it only had the effect that coins in lower levels of my wallet were not seen at all.

Also, what happens if coins on level 4 (the lowest configured level) are used in an order?  Will they drop to level 5 and be completely useless for the bot, or will they stay at the minimum level forever?


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: belcher on May 27, 2015, 06:03:52 PM
It seems that the maximum order size my yield-generator provides is limited by the maximum balance in any one mix depth level.  Is this correct?  I. e., if I have 1 BTC in the wallet and use the default mix levels setting of 5, it may happen (in the worst case) that only 0.2 BTC are available for any one order.  Is there a way to get around that restriction?  If I do not care too much about my own privacy (as a market maker) and want to increase the provided liquidity of my bot, can I somehow specify that I want certain mix levels to be used together in orders?  I tried lowering the mix depth setting in yield-generator.py, but it only had the effect that coins in lower levels of my wallet were not seen at all.

Also, what happens if coins on level 4 (the lowest configured level) are used in an order?  Will they drop to level 5 and be completely useless for the bot, or will they stay at the minimum level forever?

Perhaps a reminder of the point of mixing depths. Merged transaction inputs are damaging to privacy because they provide evidence of common ownership. Each mixing depth is a different identity, coins are never merged in the same transaction across mixing depths, but may be merged within mixing depths. Coins move between mixing depths through coinjoins. A change output stays in the same mixing depth. This prevents the situation where a change output is merged with a coinjoin output in a later transaction, which would render the coinjoin easily unmixable.

If you wanted to make maximum profit above all else, you could recode the bot to not bother with mixing depths. However when you come to do deals with taker bots, they look back in the blockchain to see if there's evidence of you ruining privacy like that. You may find they are unwilling to trade with you, after all they're paying money to you to improve their privacy and there's no point if you'll just undo the mixing.
I haven't yet coded this feature of the taker looking backwards in the blockchain, but it shouldn't be too difficult. If somebody recoded their bot it would motivate me to move that feature up my to-do list.

If your coins are coinjoined from the lowest level, they will wrap around and end up in the highest level. So they will always be available.

If you want to increase your max amount you could move all your coins back to level zero (use sendpayment.py with amount=0 to sweep) and set the max mixing depth to 2 or 3 instead of 5.

Another thing you could do is recode the algorithm. A market maker can announce many orders (thats what the order ID parameter is for), you could write it to make mixing levels with smaller amounts still be announced, possibly with slightly smaller fees to incentivize takers to coinjoin them and move the coins into the larger mixing depth to make it even larger. In other words, make taker's incentivized to keep your coins clumped together in one mixing depth.

Lastly, to increase liquidity you could simply buy more bitcoins and deposit them into the bot. After all, they're quite useful now, you can earn an income with them with very low risk.

In the future there will be coinjoins with many output sizes, for making the sendmany command with coinjoin. In those transactions a market maker could spend from many mixing depths at once as long as the amounts do not lead to trivial unmixing.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: domob on May 27, 2015, 07:33:05 PM
Thanks for the detailed reply!  I'm of course aware that merging outputs is damaging to privacy.  My main concern is not to make the most profit, but to fully understand how the system works - in particular what the worst case is.  If coins are wrapped around from lowest to highest level, this makes it clear that always at least 1/5 of the deposited coins are available for an order - which is good to know.  After all, these orders provide liquidity to the market (and not just opportunity to make profit for me).

Regarding your other ideas:  Improving the taker algorithm to analyse how well the makers handle privacy seems like a very interesting project!  And it proves you are really serious about the future of JoinMarket.  (Although I think it will be a challenge to implement an algorithm that is really intelligent about estimating the privacy afforded by specific behaviour.)  This makes me very positive (more than already :D) about this project!


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: dserrano5 on May 28, 2015, 09:50:54 PM
Sharing domob's concern and trying to consolidate one of my lesser mixing depths into a wealthier one, I'm in a situation where ironically you @domob (well, your yieldgen), are preventing me from doing it :).

I'm sweeping mixing depth 4 onto 0. According to sendpayment.py's usage, when sweeping, I can't choose my partners. sendpayment.py consistently offers me the chance with domob-foo, probably due to the low fees. However, reproducibly, domob-foo QUITs in the middle of the transaction, only to JOIN a few seconds after. I suspect it crashes for some reason.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: belcher on May 28, 2015, 11:26:44 PM
Sharing domob's concern and trying to consolidate one of my lesser mixing depths into a wealthier one, I'm in a situation where ironically you @domob (well, your yieldgen), are preventing me from doing it :).

I'm sweeping mixing depth 4 onto 0. According to sendpayment.py's usage, when sweeping, I can't choose my partners. sendpayment.py consistently offers me the chance with domob-foo, probably due to the low fees. However, reproducibly, domob-foo QUITs in the middle of the transaction, only to JOIN a few seconds after. I suspect it crashes for some reason.

You can pick the makers yourself using the -P flag in sendpayment.py, eventually I'll change the format of those command line flags because they're a bit rubbish.

Eventually they'll be a reviewing system which will end up with market makers who have flaky slow internet connections like domob being avoided for coinjoins. For now you just have to work around known dodgy makers.

It's odd that domob has named his market maker in a way everyone know's its associated with him.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: domob on May 29, 2015, 05:32:03 AM
Eventually they'll be a reviewing system which will end up with market makers who have flaky slow internet connections like domob being avoided for coinjoins. For now you just have to work around known dodgy makers.
The joins worked fine before, it seems that the IRC server was changed to require SASL authentication.  The SASL authentication did not work before, however, for some bug in the code - it has nothing to do with the internet connection.  I've updated to latest HEAD and now it apparently works.

It's odd that domob has named his market maker in a way everyone know's its associated with him.
For now I do not really need privacy myself.  Is there any other reason why I wouldn't want to do that?

EDIT: At least that's how I interpret the situation.  The log shows this:
Quote
[2015/05/29 07:18:18] sendraw PRIVMSG XYZ :!relorder 0 3000000 61404193 500 0.0002 ~
[2015/05/29 07:18:18] << :cgan.onion.garlic 477 domob-foo XYZ :You need to be identified to a registered account to message this user


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: dserrano5 on May 29, 2015, 06:40:11 AM
I'm sweeping mixing depth 4 onto 0. According to sendpayment.py's usage, when sweeping, I can't choose my partners.

You can pick the makers yourself using the -P flag in sendpayment.py

Code:
$ python sendpayment.py --help

Setting amount to zero will do a sweep, where the entire mix depth is emptied

  -P, --pick-orders     manually pick which orders to take. doesn't work while sweeping.

So no, I can't -P. Well I must admit I didn't try… I'm a well behaved citizen :P


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: domob on May 29, 2015, 07:32:24 AM
It seems the IRC server went down a few minutes ago - or is it just for me?  Note, though, that I can neither connect from JoinMarket with nor without Tor, and also not from my ordinary IRC client (with Tor) anymore.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: K1773R on May 29, 2015, 07:52:14 AM
It seems the IRC server went down a few minutes ago - or is it just for me?  Note, though, that I can neither connect from JoinMarket with nor without Tor, and also not from my ordinary IRC client (with Tor) anymore.
Its down, clearnet + I2P unreachable.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: inaltoasinistra on June 06, 2015, 12:50:22 PM
It seems the IRC server went down a few minutes ago - or is it just for me?  Note, though, that I can neither connect from JoinMarket with nor without Tor, and also not from my ordinary IRC client (with Tor) anymore.
Is cyberguerrilla IRC network composed by only one IRC server?


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: K1773R on June 07, 2015, 02:07:08 PM
It seems the IRC server went down a few minutes ago - or is it just for me?  Note, though, that I can neither connect from JoinMarket with nor without Tor, and also not from my ordinary IRC client (with Tor) anymore.
Is cyberguerrilla IRC network composed by only one IRC server?
Code:
:irc.cgan 251 foo :There are 2 users and 116 invisible on 4 servers
:irc.cgan 252 foo 28 :operator(s) online
:irc.cgan 254 foo 61 :channels formed
:irc.cgan 255 foo :I have 65 clients and 2 servers
:irc.cgan 265 foo :Current Local Users: 65  Max: 202
:irc.cgan 266 foo :Current Global Users: 118  Max: 253


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: BitDreams on June 07, 2015, 04:50:48 PM
One piece of the puzzle towards individual transactional data ownership.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: coinchip on June 09, 2015, 06:54:14 PM
I installed this and looked at the order book.

Code:
Type            Counterparty    Order ID        Fee     Miner Fee Contribution  Minimum Size    Maximum Size
...
Relative Fee    prodigiosbot    0               0.06%   0.00001                 0.01833333      5.67423214
Relative Fee    Engystomo       0               0.067%  0.00001                 0.01791044      3.53394155
...
Relative Fee    Constanti       0               0.3%    0.00001                 0.1             5.7824916
...

I guess these are all makers? The takers don't show up in the order book or maybe there were no takers when I looked?

So if I made 100 BTC available and set a fee of 0.3%, then I would make:

Taker uses 1 BTC: 1 * 0.3% = I make 0.003 BTC
Taker uses 10 BTC: 10 * 0.3% = I make 0.03 BTC
Taker uses 100 BTC: 100 * 0.3% = I make 0.3 BTC

?

But if I put 100 BTC in the wallet the maximum size would actually be 20 BTC after a while due to the different mix levels?

Just trying to gauge the practical potential earnings.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: inaltoasinistra on June 11, 2015, 09:26:43 AM
But if I put 100 BTC in the wallet the maximum size would actually be 20 BTC after a while due to the different mix levels?

20 BTC for account is the minimum, but JM tries to increase the maximum balance at every transaction, so the average should be quite over 20BTC.
In future may be possible to charge less if a transaction increase the maximum balance [feature request?]


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: waxwing on June 11, 2015, 11:32:15 AM
I guess these are all makers? The takers don't show up in the order book or maybe there were no takers when I looked?

The idea is that the "makers" are "offering liquidity" with their orders (offers is probably a better word than orders here). They are publishing these offers. The takers then come along and ... take these offers :) They do that by private messaging to the makers to request the initiation of a coinjoin transaction. After an initial "handshake", this communication is E2E encrypted. The intended result is that the taker (who's paying the fee) is getting maximal privacy. No one else (including the makers) knows which output corresponds to the taker's input, assuming more than one maker is involved (notice: in a 2 party coinjoin, there is *no* cryptographic magic trick that can prevent your counterparty from knowing your output - it's the one that isn't his!).


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: inaltoasinistra on June 25, 2015, 01:16:57 PM
Proposal:

JM uses the Electrum seed management (seeds are compatible to Electrum wallet) but a different addresses derivation (the same seed generates different addresses into Electrum and into JM).
Since JM is multiaccount and Electrum not this behaviour is normal.

An interesting alternative could be mapping the first JM identity (included change addresses) to the Electrum one. In this manner would be possible to receive and send coins from Electrum, and automatically share on JM received coins, without move them manually between wallets.

This would require a little modification to the JM tx creation policy: when it is possible a coinjoin tx will move coins to the Electrum identity.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: ThePiGuy on June 26, 2015, 01:00:13 AM
Has anyone created a definitive guide on setting up to make money with this system by using Bitcoin Core?  I'm really interested in becoming an investor, but need more information!


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: belcher on June 26, 2015, 11:33:34 AM
ThePiGuy https://github.com/chris-belcher/joinmarket/wiki/Running-a-Yield-Generator

inaltoasinistra Yeah that could be done I guess.
Bare in mind JoinMarket uses the old mnemonic seeds but Electrum bip32 wallets use the new seeds. Anyone updating it would have to keep the code for old seeds in the codebase forever.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: coinchip on June 28, 2015, 04:56:59 PM
Has anyone created a definitive guide on setting up to make money with this system by using Bitcoin Core?  I'm really interested in becoming an investor, but need more information!

You read my mind. I've been keeping an eye on this project for a month waiting for the literature to improve to a place where I feel comfortable investing. It's not just a simpler setup or clearer instructions, it's providing information on the benefits and risks to an investor.

ThePiGuy https://github.com/chris-belcher/joinmarket/wiki/Running-a-Yield-Generator

I know you're a tech guy but take a step back and look at the title of that page: Running-a-Yield-Generator. The page you need is "Guide for Investors". It should have:

  • What is Joinmarket?

    A short (1-2 sentence) overview of what Joinmarket is and what it does.

  • What is the role of investors in Joinmarket?

    A short (1-2 sentence) overview of the role of investors.

  • What benefits can I expect as an investor?

    This section should be very specific and as long as it needs to be. Sure you can talk about market rates etc, but give concrete examples with reasonable rates. If I invest 100 BTC and set a rate of 0.03%, what will my profit be? At 0.1%? At 0.5%? A table listing various amounts and rates and transactions per day would work well here. You also need to talk about the volume of transactions, both currently and in the future. I know privacy is a part of the system so maybe you don't know precisely how much volume there is now but the bid/ask type messages are sent through IRC so you must have an estimate. 2 transactions a day? 20? 50? 1 BTC a day? 10? 100? And you can talk a little about the future potential to entice investors.

  • What risks are there to investors?

    You said something about risks from bugs in the software. That and any other risks need to be detailed here in very specific form. Which software having bugs will cause a loss? Just Joinmarket's local python app or other parts of the system? How could malicious participants affect the system? And what would the loss be: all of the BTC in Bitcoin Core, or just those in the Joinmarket wallet, or full system compromise? What can investors do to mitigate the risks?

  • What is the yield generator and how does it work?

    Explain the role of the yield generator and very specifically how it works. How is it funded? [not command lines just an overview of the process] What funds does it have access to? How and why does it communicate with Bitcoin Core? How does it communicate with other participants? What kind of "offers" does it put out to the marketplace? How does that relate to the total BTC the investor makes available? What exactly happens when an "offer" is "accepted"? [what are the actual steps involved in the coinjoin, from the perspective of the investor and their yield generator. Not technical details like pubscripts or anything, just the high level steps.] What happens when the coinjoin is done? What is the state of the wallet? Explain how the investor receives their profit. What about when the next offer is accepted? Is that different from the first one? How are coins moved through the different wallet levels? How does that affect the max amount the investor can offer? In essence an explanation of the life cycle of the yield generator through time. Also an explanation of how the investor monitors what the yield generator is doing. What offers is it making? Which did it accept? How can I see what my volume and profit have been so far? [not command lines just explain what information can be seen]

  • What options can I configure for the yield generator?

    Talk about whatever the options are: rate, min/max amounts, transaction fees. What if I want to make multiple offers with different amounts and rates? [not command lines or names of variables just a high level explanation]

  • How do I become an investor?

    This has two parts. First an overview of the process: requirements, an explanation of how the yield generator will communicate with Bitcoin Core, any other high level explanations. Second the steps to get it up and running. This is the first place command lines or variable names should be used. This should include step by step every action needed to become an investor. It's not ok to say "You also have to understand and follow all the steps on these two other pages" like the yield generator page does now. All the necessary steps should be right here. Obviously you don't need to explain how to install Bitcoin Core or anything super basic that any investor would know but it's better to be on the side of listing too much instead of too little. For example if Bitcoin Core needs to be set up for RPC, the steps for that should be explained. If I follow all of the steps here I should be able to go from an empty user account to being an investor in Joinmarket and (hopefully) making a profit.

  • How do I monitor my activity and profits?

    Command lines of everything an investor needs to know to view and understand their activity over time. What offers is the yield generator making? Which did it accept? How can I see what my volume and profit have been so far? How can I see other offers in the market? How can I see what "counteroffers" takers made? How can I see which were accepted? This type of transparency is necessary not only for the investor but for the network too. How can an investor adjust their offers if they don't know what the other side has been "counteroffering" and which offers have been accepted? Also include instructions for how to update to the latest version of the software on a regular basis.



Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: coinchip on June 28, 2015, 05:17:28 PM
On other topics

  • The rates in the orderbook are really low now. Maybe this is where the market will end up but I also suspect some people are offering really low rates because they believe in Joinmarket and want to provide early-on liquidity. This is counterproductive though because it discourages investors from joining. When a prospective investor sees that there is 140 BTC at 0.03% there is no reason for them to offer 100 BTC at a higher (normal?) rate.

  • In order to have a functioning marketplace there needs to be more transparency in the offers from makers and takers. This includes a list of accepted/processed offers. If it isn't possible now to tell which offers were accepted then the software should be changed to broadcast whenever it is involved in a transaction. To prevent fake reports maybe all of the participants can sign a "receipt" that verifies that the transaction took place and what the amount and rate were. If privacy is a concern the amount could be rounded off or put into a range. And if all of the participants signing creates privacy issues then only have a few randomly selected ones do the signing. Whatever the details are there needs to be some type of reporting of transactions or otherwise the market participants are just guessing at what the rates should be.

  • TOR support needs to be completely built in. The target audience of takers are using Joinmarket for privacy after all.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: CohibAA on June 28, 2015, 08:23:33 PM
Anybody can edit the wiki.  ;)

I see lots of documentation improvement opportunities, and eventually I will probably help update some of it, but currently I feel like the focus needs to be on getting more takers, and improving code.  The fees are probably so low because there are not a lot of requests for orders, yet, and makers want their coins to be doing some work.  I'm personally spending my time related to JoinMarket on educating potential takers on use cases and process.

When dev is able to release an electrum plugin and other application uses that bring more takers, we can focus more on adding liquidity and maker ease-of-use, imho.

For privacy reasons, I do not agree with forcing a list of accepted/processed orders history to be kept anywhere, as this may make it easier for someone to monitor coin flow.  It a maker wants to keep and somehow publish their logs in a raw or formatted version, I don't know if that can be stopped (other than to remove logging of transaction info for makers, but that is a dangerous step at this time), but I think to include it with JoinMarket would violate it's privacy intents.  If I paid for a coinjoin action and saw that the transaction IDs, amounts, or any other specific information about my action was published from a log, I would probably not use that order maker ever again.

I agree TOR needs to be a priority, for many reasons.  If I knew of a solution, I would put in a request, but I am not knowledgeable about those protocols, unfortunately.  I know the relevant lines of coding have been pointed on on the git repo, but it's beyond my ability to fix... maybe someone reading this will have the skills and time.



Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: belcher on June 28, 2015, 11:28:06 PM
Thank you for the very detailed post coinchip.

Eventually there will be a document like that.

This project has run away from me somewhat, become more popular more quickly than the code justifies. The project probably needs software development more than anything else right now.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: belcher on June 29, 2015, 12:15:37 AM
For eager joinmarketeers, read this list for ways to contribute.

https://github.com/chris-belcher/joinmarket/wiki/What-can-I-do-for-JoinMarket%3F


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: noel57 on June 29, 2015, 05:09:25 AM
This concept seems great especially the investment part of it  ;D, can this also serve as multi signature for safe escrow dealing when transacting with people you yet to be trusted?


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: CohibAA on June 29, 2015, 05:20:51 AM
This concept seems great especially the investment part of it  ;D, can this also serve as multi signature for safe escrow dealing when transacting with people you yet to be trusted?

You can send a deposit to your joinmarket wallet from a multi-sig, or you can send from your joinmarket wallet to a multi-sig (afaik), but there is no mechanism for using a multi-sig account for running the yield generator.  You don't need escrow, as your transactions interact and verify from bitcoin core (or a block explorer if you don't run core, but that is not recommended) at time of signing.  No trust required for sending with coinjoins or running yield generation.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: noel57 on June 29, 2015, 08:32:13 AM
This concept seems great especially the investment part of it  ;D, can this also serve as multi signature for safe escrow dealing when transacting with people you yet to be trusted?

You can send a deposit to your joinmarket wallet from a multi-sig, or you can send from your joinmarket wallet to a multi-sig (afaik), but there is no mechanism for using a multi-sig account for running the yield generator.  You don't need escrow, as your transactions interact and verify from bitcoin core (or a block explorer if you don't run core, but that is not recommended) at time of signing.  No trust required for sending with coinjoins or running yield generation.
If I understand you clearly, you are saying it can not serve as a PGP or Multi signature wallet but it have their features and can receive transactions or deposits from them but operates differently.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: waxwing on June 29, 2015, 09:46:27 AM
This concept seems great especially the investment part of it  ;D, can this also serve as multi signature for safe escrow dealing when transacting with people you yet to be trusted?

Coinjoin does not require you to trust anyone when it comes to the monetary aspect; you are not putting money at risk.

It works like this: one person creates the transaction and then sends it out to everyone else, including you, let's say. Then you look at the transaction and check that it pays you the correct amount. If it doesn't,  you don't sign it. There is no possibility of a transaction happening if you didn't agree to it.

Note - this is *not* multisignature, it's intrinsic to any Bitcoin transaction. Every input to a transaction must be signed by the private key corresponding to the public key referred to in that input. In other words, Coinjoin is just how Bitcoin works, it's just that usually we don't pay attention to it because all the inputs are from the same person.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: noel57 on June 30, 2015, 08:46:05 AM
This concept seems great especially the investment part of it  ;D, can this also serve as multi signature for safe escrow dealing when transacting with people you yet to be trusted?

Coinjoin does not require you to trust anyone when it comes to the monetary aspect; you are not putting money at risk.

It works like this: one person creates the transaction and then sends it out to everyone else, including you, let's say. Then you look at the transaction and check that it pays you the correct amount. If it doesn't,  you don't sign it. There is no possibility of a transaction happening if you didn't agree to it.

Note - this is *not* multisignature, it's intrinsic to any Bitcoin transaction. Every input to a transaction must be signed by the private key corresponding to the public key referred to in that input. In other words, Coinjoin is just how Bitcoin works, it's just that usually we don't pay attention to it because all the inputs are from the same person.
I understand it better now, that means for example if I order for a product and offer to pay the person via bitcoin I might not sign it if the person does not provide proof of shipment or DHL tracking number and if I fail to sign it the money will not be credited into the person account.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: waxwing on July 01, 2015, 11:26:10 AM
This concept seems great especially the investment part of it  ;D, can this also serve as multi signature for safe escrow dealing when transacting with people you yet to be trusted?

Coinjoin does not require you to trust anyone when it comes to the monetary aspect; you are not putting money at risk.

It works like this: one person creates the transaction and then sends it out to everyone else, including you, let's say. Then you look at the transaction and check that it pays you the correct amount. If it doesn't,  you don't sign it. There is no possibility of a transaction happening if you didn't agree to it.

Note - this is *not* multisignature, it's intrinsic to any Bitcoin transaction. Every input to a transaction must be signed by the private key corresponding to the public key referred to in that input. In other words, Coinjoin is just how Bitcoin works, it's just that usually we don't pay attention to it because all the inputs are from the same person.
I understand it better now, that means for example if I order for a product and offer to pay the person via bitcoin I might not sign it if the person does not provide proof of shipment or DHL tracking number and if I fail to sign it the money will not be credited into the person account.

Well, not *literally* - coinjoin has nothing to do with buying products for bitcoin. But as an analogy, yes, you're in a position just like that - you don't have to sign off on a transaction until you know exactly what you'll be getting back.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: inaltoasinistra on July 02, 2015, 07:10:57 AM
From: https://github.com/chris-belcher/joinmarket/wiki/Running-JoinMarket-with-Bitcoin-Core-full-node
Quote
You will need:
  • Bitcoin Core version 0.10 or above. The import watch-only address feature is required.
  • Fully downloaded and verified blockchain

Is/will be possible use a pruned blockchain?


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: belcher on July 02, 2015, 10:47:05 AM
From: https://github.com/chris-belcher/joinmarket/wiki/Running-JoinMarket-with-Bitcoin-Core-full-node
Quote
You will need:
  • Bitcoin Core version 0.10 or above. The import watch-only address feature is required.
  • Fully downloaded and verified blockchain

Is/will be possible use a pruned blockchain?

Yes, although right now the wallet code is disabled for pruning so itcan't be used for JoinMarket.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: domob on July 02, 2015, 10:53:33 AM
From: https://github.com/chris-belcher/joinmarket/wiki/Running-JoinMarket-with-Bitcoin-Core-full-node
Quote
You will need:
  • Bitcoin Core version 0.10 or above. The import watch-only address feature is required.
  • Fully downloaded and verified blockchain

Is/will be possible use a pruned blockchain?

Yes, although right now the wallet code is disabled for pruning so itcan't be used for JoinMarket.

I should add that the current development code enables the wallet in pruned mode.  I've already tried out using such a node with JoinMarket, and it seemed to work fine.  So you can already do it if you feel risky to run the development code, or else after the next version is released.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: Adlai on July 03, 2015, 02:39:56 AM
On other topics

  • The rates in the orderbook are really low now. Maybe this is where the market will end up but I also suspect some people are offering really low rates because they believe in Joinmarket and want to provide early-on liquidity. This is counterproductive though because it discourages investors from joining. When a prospective investor sees that there is 140 BTC at 0.03% there is no reason for them to offer 100 BTC at a higher (normal?) rate.


Bear in mind that the advertised rates are per transaction. If you average one transaction per day at 0.03%, that's a monthly return closer to 1%. It's not yet clear what frequency individual investors can expect, but we've started working on a tool for detecting likely Joinmarket activity in the blockchain, and guessing the earned fees.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: inaltoasinistra on July 03, 2015, 06:24:39 AM
On other topics

  • The rates in the orderbook are really low now. Maybe this is where the market will end up but I also suspect some people are offering really low rates because they believe in Joinmarket and want to provide early-on liquidity. This is counterproductive though because it discourages investors from joining. When a prospective investor sees that there is 140 BTC at 0.03% there is no reason for them to offer 100 BTC at a higher (normal?) rate.


Bear in mind that the advertised rates are per transaction. If you average one transaction per day at 0.03%, that's a monthly return closer to 1%. It's not yet clear what frequency individual investors can expect, but we've started working on a tool for detecting likely Joinmarket activity in the blockchain, and guessing the earned fees.
After 2 days without transactions the makers lower the fees, thats it. A good integration to some client could increase the bid


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: domob on July 07, 2015, 06:05:19 AM
Which license is the code actually under?  I assume it is a "free" one, but it seems to be not specified (unless I miss it).  I think it would be good to have it in the README or to have a COPYING file in the repository.  Also a short header notice for the source files.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: waxwing on July 07, 2015, 06:21:32 AM
On other topics

  • The rates in the orderbook are really low now. Maybe this is where the market will end up but I also suspect some people are offering really low rates because they believe in Joinmarket and want to provide early-on liquidity. This is counterproductive though because it discourages investors from joining. When a prospective investor sees that there is 140 BTC at 0.03% there is no reason for them to offer 100 BTC at a higher (normal?) rate.


Bear in mind that the advertised rates are per transaction. If you average one transaction per day at 0.03%, that's a monthly return closer to 1%. It's not yet clear what frequency individual investors can expect, but we've started working on a tool for detecting likely Joinmarket activity in the blockchain, and guessing the earned fees.
After 2 days without transactions the makers lower the fees, thats it. A good integration to some client could increase the bid

I agree; after the first few weeks, it was clear that this was the dynamic. A significant steady flow of 'users' (liquidity takers) is almost certainly going to require some kind of wallet integration, and that's a big project. Meanwhile, tech savvy people try it out by setting up yieldgenerator bots and are surprised when there isn't a constant flow of free money :) And they reduce fees presumably out of impatience.

There are users, even today; but the number is small (and to be honest I may not have a realistic picture, since I am not constantly reducing my fees like it seems others are, so I am probably not seeing almost any of the activity. This is one of the curious things about thinking of JoinMarket as a "service" - it is difficult to see it happening (although with some effort you can get a good idea)).

What "should" the fees be? It has been discussed but I'm of the opinion it's impossible to come up with a model that isn't dominated by its assumptions, so it's probably not worth bothering with.



Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: domob on July 07, 2015, 07:03:22 AM
On other topics

  • The rates in the orderbook are really low now. Maybe this is where the market will end up but I also suspect some people are offering really low rates because they believe in Joinmarket and want to provide early-on liquidity. This is counterproductive though because it discourages investors from joining. When a prospective investor sees that there is 140 BTC at 0.03% there is no reason for them to offer 100 BTC at a higher (normal?) rate.


Bear in mind that the advertised rates are per transaction. If you average one transaction per day at 0.03%, that's a monthly return closer to 1%. It's not yet clear what frequency individual investors can expect, but we've started working on a tool for detecting likely Joinmarket activity in the blockchain, and guessing the earned fees.
After 2 days without transactions the makers lower the fees, thats it. A good integration to some client could increase the bid

I agree; after the first few weeks, it was clear that this was the dynamic. A significant steady flow of 'users' (liquidity takers) is almost certainly going to require some kind of wallet integration, and that's a big project. Meanwhile, tech savvy people try it out by setting up yieldgenerator bots and are surprised when there isn't a constant flow of free money :) And they reduce fees presumably out of impatience.

There are users, even today; but the number is small (and to be honest I may not have a realistic picture, since I am not constantly reducing my fees like it seems others are, so I am probably not seeing almost any of the activity. This is one of the curious things about thinking of JoinMarket as a "service" - it is difficult to see it happening (although with some effort you can get a good idea)).

What "should" the fees be? It has been discussed but I'm of the opinion it's impossible to come up with a model that isn't dominated by its assumptions, so it's probably not worth bothering with.



I think almost zero fees are unavoidable.  Since this project is, by definition, a market, there will be competition.  And since the cost involved for makers is not very high (a little risk for putting your coins on a server, but not too much since you don't have to trust anyone), I believe that the eventual fee you can earn as investor is tiny.  (Even an inflow of more takers when the project is more mature won't help here, since there will also be an inflow of makers.)  But I don't think this is a problem.  It will help make coinjoins more used in the ecosystem, which is a good thing.  And if too small fees turn out to be a problem (i. e., not enough makers willing to provide liquidity), the fees will increase themselves due to market pressure until an equilibrium is reached again.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: waxwing on July 07, 2015, 11:01:37 AM
I believe that the eventual fee you can earn as investor is tiny.  (Even an inflow of more takers when the project is more mature won't help here, since there will also be an inflow of makers.) 

This is exactly what we hypothesized at the initiation of the project - tiny, close to zero fees. But in a way that dodges the question - how tiny is tiny? :)

It's a market, so it's not as if we're trying to "fix" the price. But we're all curious where it will settle. My statement above was that I don't think any economic modelling is worthwhile for now, the unknowns are too big.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: LDA on July 08, 2015, 04:48:55 PM
I found it by accident and it's super cool. I would be thankful if you could answer a few questions.

1) I saw a chart with name of wallets of investors and values. Where is it available?

2) Is there a way to see how many coins are happening per day or hour and average value?

3) The script generates a "HD wallet". However on the commands there is no output. What is the output? How many address it generate? For both send and receive or they should be exclusive?

4) Really idiot question, but I see the transactions are with internal wallet, what is the benefit? I mean, internal transactions are not public, right?

5) If we could recover the whole wallet and money with the key, it means that my coins are not with me, instead they are on a third-party server, right? What means if someone hack this system? I mean, what security do we have?

6) In practice, have someone tried to track the coins joined? How hard was it? Was possible?

Thanks.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: belcher on July 10, 2015, 11:53:02 AM
I found it by accident and it's super cool. I would be thankful if you could answer a few questions.

1) I saw a chart with name of wallets of investors and values. Where is it available?

2) Is there a way to see how many coins are happening per day or hour and average value?

3) The script generates a "HD wallet". However on the commands there is no output. What is the output? How many address it generate? For both send and receive or they should be exclusive?

4) Really idiot question, but I see the transactions are with internal wallet, what is the benefit? I mean, internal transactions are not public, right?

5) If we could recover the whole wallet and money with the key, it means that my coins are not with me, instead they are on a third-party server, right? What means if someone hack this system? I mean, what security do we have?

6) In practice, have someone tried to track the coins joined? How hard was it? Was possible?

Thanks.

1) It can be seen by ob-watcher.py script, the same thing can be seen on pages run by volunteers. e.g. http://joinmarket.io/

2) Not right now, this will probably be written in the future. See https://github.com/chris-belcher/joinmarket/issues/19

3) Read this https://github.com/chris-belcher/joinmarket/wiki/Using-the-JoinMarket-internal-wallet

4)
I think you're talking about tumbler.py
Those are coinjoin transactions back to your internal wallet. They increase the anonymity set.

5) No they are not on a third party server. Your security is your ability to keep your seed secret and computer free from malware.

6) The CoinJoin transactions used by JoinMarket would make that difficult.

7) Is there a way to sign message with JoinMarket?

No, that's not what its for.

8) What about the spv mining fork?

If you use JoinMarket with Bitcoin Core you are not vulnerable, because it only works with 0.10 or above which will follow the correct fork if it happens.
If you don't use Bitcoin Core then JoinMarket will use blockr.io and you'll have to ask them if they run 0.10 nodes or above as recommended.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: LDA on July 11, 2015, 07:21:46 AM
Hi belcher,

Thanks for answer and congrats for nice project. :)

1) Weird, my ob-watcher.py crash under python. Is the reason that my wallet is without any BTC? :)

Very cool this site, good to have an idea, I would love to see more people adopting it.

2) If someone is allowed to search blockchain and find tx id of transactions with JoinMarket he/she could follow all transactions and break the anonymity, not?

3) As you see I'm new on this. I looked at your example:

Quote
$ python wallet-tool.py wallet.json
Enter wallet decryption passphrase:
[2015/04/23 02:04:13] downloading wallet history
[2015/04/23 02:04:26] blockr sync_unspent took 2.70895719528sec
mixing depth 0 m/0/0/
 receive addresses m/0/0/0/
  m/0/0/0/000 1JPFmg1RSa2gtzcsow9fBjwdvWPsxcP3eX  new 0.00000000 btc
  m/0/0/0/001 1AaCpeMit59ExfSvP3M3bTnMkhXgecSPeY  new 0.00000000 btc
  m/0/0/0/002 1NmDrVbtk6kfAYbBVo7Miv8eCYHHefZkjs  new 0.00000000 btc
  m/0/0/0/003 1NKitLXm7FdgbHuENvFXRCxVH32N5XXMQ5  new 0.00000000 btc
  m/0/0/0/004 1EwkvF8SrHLh17LKCNQ9w4u4HY2akuzhx3  new 0.00000000 btc
  m/0/0/0/005 1HkHyB8DbZBNvZYwyAutgedaBSsrNUDt7G  new 0.00000000 btc
 change addresses m/0/0/1/
for mixdepth=0 balance=0.00000000btc
mixing depth 1 m/0/1/
 receive addresses m/0/1/0/
  m/0/1/0/000 1LQw8K7V2KQePFVscLKiiH1NU2v6KzwdhW  new 0.00000000 btc
  m/0/1/0/001 1EcZ7w1EEb1UK1qWYT6FMLsbRoizFCfAZ7  new 0.00000000 btc
  m/0/1/0/002 1CV7L2b23sEYNhnu35MP9gbzPAD3j3ofgc  new 0.00000000 btc
  m/0/1/0/003 1DMYRugQNJZRQPcAPAYBcE1p9u15VFTkD9  new 0.00000000 btc
  m/0/1/0/004 1CCnPgGhecXmFz8DrB3Wew9kHT1En53Lq   new 0.00000000 btc
  m/0/1/0/005 1LuwwyEv86BV4miaKVScsFxE4rrKngVt8F  new 0.00000000 btc
 change addresses m/0/1/1/
for mixdepth=1 balance=0.00000000btc
$

My output is a bit different, I have mixing depth 1 to 4 and each has 5 address if I remember well. Is mine wrong?

My understanding is that I should use each of these addresses for both send and receive BTC, right? So, why so many addresses? Use as random as possible increase my anonymity?

Recover a wallet from a bitcoin is a feature that exist on all BTC wallet programs? I'm asking because it's strange to me, if BTC is not centralized and there is no server, suppose that I delete my wallet.json, how can I recover everything again from the 12 words seed? And how do they know that my password mismatch (it should not be stored just locally on my computer)?

4) You are correct. Sorry for dumb question, but what is difference of a internal and real wallet? A wallet is composed of several addresses, right? And an internal wallet? Exist transactions for internal wallets?

5) Got it, thanks. This is the point that I don't understand, to be hones it's the reason of my question of how anyone could recover my wallet with 12 seed words since all is decentralized.

6) Please, don't take me wrong, but difficult is relative. For example, you master the process and understand a lot of BTC. If you are determined, are you able to track someone transactions?

7) I understand. So can I (or should I) use JoinMarket with an wallet software such as Electrum? On my mind it was supposed to be a wallet too. If I need to use both, how do I know when use each?

When I send money to someone via JoinMarket does it display the TX id on the command output?

8 ) Understood. I assume that Bitcoin core is the default, correct? However, if I remember well there is a part of the software that says that use one of them affect privacy / anonymity, right?

On the worst case, suppose that someone was using blockr.io and they are not running 0.10, what happens? Can this person loose his money? Or it will just take more time?

Again, thanks so much and sorry for too much big and dumb questions. I hope they could help other users.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: belcher on July 11, 2015, 12:43:34 PM
Hi belcher,

Thanks for answer and congrats for nice project. :)

1) Weird, my ob-watcher.py crash under python. Is the reason that my wallet is without any BTC? :)

Very cool this site, good to have an idea, I would love to see more people adopting it.

2) If someone is allowed to search blockchain and find tx id of transactions with JoinMarket he/she could follow all transactions and break the anonymity, not?

3) As you see I'm new on this. I looked at your example:

Quote
$ python wallet-tool.py wallet.json
Enter wallet decryption passphrase:
[2015/04/23 02:04:13] downloading wallet history
[2015/04/23 02:04:26] blockr sync_unspent took 2.70895719528sec
mixing depth 0 m/0/0/
 receive addresses m/0/0/0/
  m/0/0/0/000 1JPFmg1RSa2gtzcsow9fBjwdvWPsxcP3eX  new 0.00000000 btc
  m/0/0/0/001 1AaCpeMit59ExfSvP3M3bTnMkhXgecSPeY  new 0.00000000 btc
  m/0/0/0/002 1NmDrVbtk6kfAYbBVo7Miv8eCYHHefZkjs  new 0.00000000 btc
  m/0/0/0/003 1NKitLXm7FdgbHuENvFXRCxVH32N5XXMQ5  new 0.00000000 btc
  m/0/0/0/004 1EwkvF8SrHLh17LKCNQ9w4u4HY2akuzhx3  new 0.00000000 btc
  m/0/0/0/005 1HkHyB8DbZBNvZYwyAutgedaBSsrNUDt7G  new 0.00000000 btc
 change addresses m/0/0/1/
for mixdepth=0 balance=0.00000000btc
mixing depth 1 m/0/1/
 receive addresses m/0/1/0/
  m/0/1/0/000 1LQw8K7V2KQePFVscLKiiH1NU2v6KzwdhW  new 0.00000000 btc
  m/0/1/0/001 1EcZ7w1EEb1UK1qWYT6FMLsbRoizFCfAZ7  new 0.00000000 btc
  m/0/1/0/002 1CV7L2b23sEYNhnu35MP9gbzPAD3j3ofgc  new 0.00000000 btc
  m/0/1/0/003 1DMYRugQNJZRQPcAPAYBcE1p9u15VFTkD9  new 0.00000000 btc
  m/0/1/0/004 1CCnPgGhecXmFz8DrB3Wew9kHT1En53Lq   new 0.00000000 btc
  m/0/1/0/005 1LuwwyEv86BV4miaKVScsFxE4rrKngVt8F  new 0.00000000 btc
 change addresses m/0/1/1/
for mixdepth=1 balance=0.00000000btc
$

My output is a bit different, I have mixing depth 1 to 4 and each has 5 address if I remember well. Is mine wrong?

My understanding is that I should use each of these addresses for both send and receive BTC, right? So, why so many addresses? Use as random as possible increase my anonymity?

Recover a wallet from a bitcoin is a feature that exist on all BTC wallet programs? I'm asking because it's strange to me, if BTC is not centralized and there is no server, suppose that I delete my wallet.json, how can I recover everything again from the 12 words seed? And how do they know that my password mismatch (it should not be stored just locally on my computer)?

4) You are correct. Sorry for dumb question, but what is difference of a internal and real wallet? A wallet is composed of several addresses, right? And an internal wallet? Exist transactions for internal wallets?

5) Got it, thanks. This is the point that I don't understand, to be hones it's the reason of my question of how anyone could recover my wallet with 12 seed words since all is decentralized.

6) Please, don't take me wrong, but difficult is relative. For example, you master the process and understand a lot of BTC. If you are determined, are you able to track someone transactions?

7) I understand. So can I (or should I) use JoinMarket with an wallet software such as Electrum? On my mind it was supposed to be a wallet too. If I need to use both, how do I know when use each?

When I send money to someone via JoinMarket does it display the TX id on the command output?

8 ) Understood. I assume that Bitcoin core is the default, correct? However, if I remember well there is a part of the software that says that use one of them affect privacy / anonymity, right?

On the worst case, suppose that someone was using blockr.io and they are not running 0.10, what happens? Can this person loose his money? Or it will just take more time?

Again, thanks so much and sorry for too much big and dumb questions. I hope they could help other users.

1) No, ob-watcher.py does not require you to have btc in your wallet. In fact it doesnt even require a wallet at all.

2) No, CoinJoins discard unnecessary information which is what improves the privacy. Read this: https://en.bitcoin.it/wiki/CoinJoin

3)

Quote
My output is a bit different, I have mixing depth 1 to 4 and each has 5 address if I remember well. Is mine wrong?

No, thats right.

Quote
My understanding is that I should use each of these addresses for both send and receive BTC, right? So, why so many addresses? Use as random as possible increase my anonymity?

Read this to understand why there are different so-called "mixing levels" https://github.com/chris-belcher/joinmarket/wiki/Using-the-JoinMarket-internal-wallet#structure

By default the script outputs 5 addresses, although it can output more. It means you could receive 5 different payments at once. Alternatively you could give several addresses to a single person so that your payment cant be tracked by correlating amounts.

Quote
Recover a wallet from a bitcoin is a feature that exist on all BTC wallet programs? I'm asking because it's strange to me, if BTC is not centralized and there is no server, suppose that I delete my wallet.json, how can I recover everything again from the 12 words seed? And how do they know that my password mismatch (it should not be stored just locally on my computer)?

Yes, recovery from mnemonic seed exists in most wallets.
In practice you recover it with the instructions here https://github.com/chris-belcher/joinmarket/wiki/Using-the-JoinMarket-internal-wallet#recover
The password is only used for encrypting the wallet file on your hard disk. You don't need it to recover (this also implies somebody with only your seed can steal your coins)

4) A JoinMarket internal wallet is a kind of real wallet. There is no such thing as fake wallets.

5) It does not rely on a central server, the conversion from mnemonic seed to addresses is a mathematical algorithm. To massively simplify, each word is converted into a number and all the numbers are put together to give a master seed. From that you can generated an unlimited number of private key/address pairs that are always the same if you used the same master seed.

6) Mastery and understanding of bitcoin is not enough to deanonymize JoinMarket transactions. Privacy in bitcoin is a complex topic which I won't go into here, try reading this article to understand more why CoinJoin transactions used by JoinMarket improve privacy https://en.bitcoin.it/wiki/CoinJoin

7) JoinMarket is not really meant to be a bitcoin wallet used for receiving and spending like Electrum, Bitcoin Core or Armory. It can be used that way and many people do but it's not optimized for easy usage. In the future there should be an Electrum plugin and Bitcoin Core script which allows you to create private JoinMarket transactions from the GUI of those wallets.

Quote
When I send money to someone via JoinMarket does it display the TX id on the command output?

Yes it does.

8) If someone uses blockr.io then that website will know their IP address as well as which addresses belong to them. Obviously this is harmful to privacy, especially as blockr.io is owned by the coinbase.com company which is legally required to collect financial information.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: Cryptoman on July 13, 2015, 07:17:21 PM
I'm having a little trouble getting joinmarket working with bitcoind (to be honest, I haven't tried it yet with blockr.io).  Here's a dump of what happens:

Code:
$ python wallet-tool.py wallet.json
Enter wallet decryption passphrase:
[2015/07/13 13:35:20] requesting wallet history
[2015/07/13 13:35:34] rpc: ['~/bitcoin-cli', '-datadir=~/.bitcoin', 'getaddressesbyaccount', 'joinmarket-wallet-85993a']
Traceback (most recent call last):
  File "wallet-tool.py", line 54, in <module>
    common.bc_interface.sync_wallet(wallet)
  File "/home/cryptoman/joinmarket/lib/blockchaininterface.py", line 31, in sync_wallet
    self.sync_addresses(wallet)
  File "/home/cryptoman/joinmarket/lib/blockchaininterface.py", line 388, in sync_addresses
    imported_addr_list = json.loads(self.rpc(['getaddressesbyaccount', wallet_name]))
  File "/home/cryptoman/joinmarket/lib/blockchaininterface.py", line 365, in rpc
    res = subprocess.check_output(self.command_params + args)
  File "/usr/lib/python2.7/subprocess.py", line 566, in check_output
    process = Popen(stdout=PIPE, *popenargs, **kwargs)
  File "/usr/lib/python2.7/subprocess.py", line 710, in __init__
    errread, errwrite)
  File "/usr/lib/python2.7/subprocess.py", line 1327, in _execute_child
    raise child_exception
OSError: [Errno 2] No such file or directory
$

What file is it looking for?  It's obviously finding and decrypting the wallet file OK.  I tried creating an account with the name "joinmarket-wallet-85993a" in bitcoind, but that didn't help.  RPC is set up properly as far as I can tell.

Thanks.

EDIT: Found the problem.  It didn't like the "~/" path.  Used the full path "/home/cryptoman/" and it worked fine.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: Cryptoman on July 15, 2015, 10:03:39 PM
How long should it take to send a payment? I tried sending a payment of about 1 BTC, and it just sat there for an hour.  Nothing changed in the wallet; all amounts at m/0/0/0/ are unchanged. I did get one interesting message shortly after initiating the payment: nonrespondants = [u'SiegeOfJa'].  Did it hang because one of the participants dropped out?


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: CohibAA on July 15, 2015, 10:27:20 PM
Did it hang because one of the participants dropped out?

Exactly.  Their bot may have hung, or their bitcoind hung if they are using rpc, but it means the transaction won't be happening.  You can use the -P option with sendpayment.py to pick your maker, allowing you to avoid non-responding makers.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: windpath on July 18, 2015, 06:49:11 PM
Great project!

Got JoinMarket up and running last night using bitcoin 0.11.0 on ubuntu 14.04, couple snags with dependencies (libsodium needs to be manually installed) but other then that it went smoothly.

Ran the Tumbler with defaults, total fees ended up at BTC0.00196169 or ~$0.54 to tumble 1BTC, not to shabby.

Ran a taint analysis on the final addresses I provided, 1 was totally severed from the original sending address, 2 had some minor taint, but nothing that jumped out.

There was still a connection to the innitial JoinMarket wallet deposit address on all of them.

I ran with the defaults:
Code:
python tumbler.py wallet.json [btc_address]

Id like to run another test and try to sever both the original sending address, and the JoinMarket wallet deposit address completely, found this in the source:

Code:
	#a couple of modes
#im-running-from-the-nsa, takes about 80 hours, costs a lot
#python tumbler.py -a 10 -N 10 5 -c 10 5 -l 50 -M 10 seed 1xxx
#
#quick and cheap, takes about 90 minutes
#python tumbler.py -N 2 1 -c 3 0.001 -l 10 -M 3 -a 1 seed 1xxx
#
#default, good enough for most, takes about 5 hours
#python tumbler.py seed 1xxx
#
#for quick testing
#python tumbler.py -N 2 1 -c 3 0.001 -l 0.1 -M 3 -a 0 seed 1xxx 1yyy

What is "seed"?

I was thinking of trying:
Code:
python tumbler.py -a 4 -N 5 3 -C 5 -M 5 wallet.json [btc_address]

Thoughts?

Also would be awesome to be able to provide all the addresses on the command line at once. Edit: looks like you can, I just provided to many on first run.

Again great and important project, excited to follow and contribute if I can...


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: Adlai on July 18, 2015, 11:39:22 PM
What is "seed"?

Judging by your previous snippet, you'll want to put wallet.json as the "seed". The name is a leftover from the testnet days when you could directly give a wallet seed on the command line, which doesn't work on mainnet anymore.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: belcher on July 18, 2015, 11:51:04 PM
Great project!

Got JoinMarket up and running last night using bitcoin 0.11.0 on ubuntu 14.04, couple snags with dependencies (libsodium needs to be manually installed) but other then that it went smoothly.

Ran the Tumbler with defaults, total fees ended up at BTC0.00196169 or ~$0.54 to tumble 1BTC, not to shabby.

Ran a taint analysis on the final addresses I provided, 1 was totally severed from the original sending address, 2 had some minor taint, but nothing that jumped out.

There was still a connection to the innitial JoinMarket wallet deposit address on all of them.

I ran with the defaults:
Code:
python tumbler.py wallet.json [btc_address]

Sounds good. Glad it worked.

Id like to run another test and try to sever both the original sending address, and the JoinMarket wallet deposit address completely, found this in the source:

Code:
	#a couple of modes
#im-running-from-the-nsa, takes about 80 hours, costs a lot
#python tumbler.py -a 10 -N 10 5 -c 10 5 -l 50 -M 10 seed 1xxx
#
#quick and cheap, takes about 90 minutes
#python tumbler.py -N 2 1 -c 3 0.001 -l 10 -M 3 -a 1 seed 1xxx
#
#default, good enough for most, takes about 5 hours
#python tumbler.py seed 1xxx
#
#for quick testing
#python tumbler.py -N 2 1 -c 3 0.001 -l 0.1 -M 3 -a 0 seed 1xxx 1yyy

What is "seed"?[

Those comments are possibly out of date.

Seed is a kind of brainwallet that was used before wallet files were made. They don't work anymore for mainnet.

I was thinking of trying:
Code:
python tumbler.py -a 4 -N 5 3 -C 5 -M 5 [btc_address]

Thoughts?

Also would be awesome to be able to provide all the addresses on the command line at once. Edit: looks like you can, I just provided to many on first run.

Again great and important project, excited to follow and contribute if I can...

It will probably work. It's likely that tumbling with coinjoin works but nobody really knows.
I assume you've run
Code:
python tumbler.py --help
so you know what the options mean

For contributions, this page has some useful small projects
https://github.com/chris-belcher/joinmarket/wiki/What-can-I-do-for-JoinMarket%3F

There is also a donation address found on the readme of the github
https://github.com/chris-belcher/joinmarket


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: mktx on July 19, 2015, 10:11:44 PM
I think this project is amazing as well, and I really enjoy using it as my preferred method for coinjoin txs. However I do have one complaint. The other day I was using the sendpayment.py script. The command was exactly:

Code:
python sendpayment.py -C -N 4 <wallet> 0 <address>

The script put the transaction together, and presented me with the options and a "y/n" prompt. I pressed "y" without paying too much attention and ended up paying some asshole 2.8 BTC to send a little over 5. Which is more than half of the bitcoin controlled by my privkeys. :(

A couple suggestions:

1. Kick those people from the IRC with 50%+ fees.

2. Present the cjfee in something other than satoshis or have an alert that says you're about to pay an insane amount.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: marcus_of_augustus on July 19, 2015, 11:29:22 PM
I think this project is amazing as well, and I really enjoy using it as my preferred method for coinjoin txs. However I do have one complaint. The other day I was using the sendpayment.py script. The command was exactly:

Code:
python sendpayment.py -C -N 4 <wallet> 0 <address>

The script put the transaction together, and presented me with the options and a "y/n" prompt. I pressed "y" without paying too much attention and ended up paying some asshole 2.8 BTC to send a little over 5. Which is more than half of the bitcoin controlled by my privkeys. :(

A couple suggestions:

1. Kick those people from the IRC with 50%+ fees.

2. Present the cjfee in something other than satoshis or have an alert that says you're about to pay an insane amount.

Ouch, that sounds like you got the rawhide treatment.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: belcher on July 20, 2015, 01:57:49 AM
I think this project is amazing as well, and I really enjoy using it as my preferred method for coinjoin txs. However I do have one complaint. The other day I was using the sendpayment.py script. The command was exactly:

Code:
python sendpayment.py -C -N 4 <wallet> 0 <address>

The script put the transaction together, and presented me with the options and a "y/n" prompt. I pressed "y" without paying too much attention and ended up paying some asshole 2.8 BTC to send a little over 5. Which is more than half of the bitcoin controlled by my privkeys. :(

A couple suggestions:

1. Kick those people from the IRC with 50%+ fees.

2. Present the cjfee in something other than satoshis or have an alert that says you're about to pay an insane amount.

Thanks for the feedback. Sorry for you loss.

I made this commit https://github.com/chris-belcher/joinmarket/commit/be8b63fa332d18a4ba71d68e3894d29d4c9db7c8
It displays the coinjoin fee as a percentage and prints out a huge warning banner if its above 2%

Code:
[2015/07/20 02:45:10] total coinjoin fee = 2.1%
============================================================
============================================================
============================================================
WARNING   WARNING   WARNING   WARNING   WARNING   WARNING  
============================================================
OFFERED FEE IS INSANELY LARGE.OFFERED FEE IS INSANELY LARGE.
============================================================
WARNING   WARNING   WARNING   WARNING   WARNING   WARNING  
============================================================
============================================================
============================================================
send with these orders? (y/n):


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: Sukrim on July 21, 2015, 01:59:28 PM
2% is not "insane"...


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: ThePiGuy on July 21, 2015, 02:39:10 PM
2% is not "insane"...

In the current system, it kind of is.  The average is significantly lower, and as such is pretty crazy compared to best options.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: btcspry on July 21, 2015, 02:41:44 PM
I'm a little curious as to how the program picks the person to do the CoinJoin with.  Shouldn't it be the percent with the lowest percentage that can handle the join?  Or am I missing something?  It seems like these 2.8 BTC mistakes shouldn't happen.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: inaltoasinistra on July 21, 2015, 02:45:51 PM
I'm a little curious as to how the program picks the person to do the CoinJoin with.  Shouldn't it be the percent with the lowest percentage that can handle the join?  Or am I missing something?  It seems like these 2.8 BTC mistakes shouldn't happen.

The order book is not so big now, so a cj tx with 10 parties and 5btc could consume all the order book and reach the 200% fee.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: belcher on July 21, 2015, 05:43:29 PM
2% is not "insane"...

It's two orders of magnitude above most of the market right now.

The highest obviously-not-in-bad-faith offer is 0.5% per transaction and that guy offers up to 124.01382647 BTC(!)

There's an open issue to display fees in basis points and parts-per-million because the percent unit is too large.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: Sukrim on July 21, 2015, 09:29:22 PM
The market is still tiny and while early adopters might be happy to offer their coin for nearly free for mixing, this might not be the case in the future. A 2% fee for achieving anonymity is still quite low, adding built in magic default values is not a very sustainable or helpful thing if you want to establish a free market.

Maybe display fee in relative and absolute values, optionally also with fiat prices?

Anyways, please put this warning value in a configuration file and maybe write your 2% as a default in there... but don't hide this deep in the code.

By the way, how high is traffic and volume actually? If I offer coins at relatively competitive rates, how often do these actually get taken? Daily? Once per hour? Are there historic stats to analyze?


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: justusranvier on July 21, 2015, 09:38:16 PM
The market is still tiny and while early adopters might be happy to offer their coin for nearly free for mixing, this might not be the case in the future. A 2% fee for achieving anonymity is still quite low, adding built in magic default values is not a very sustainable or helpful thing if you want to establish a free market.

Maybe display fee in relative and absolute values, optionally also with fiat prices?

Anyways, please put this warning value in a configuration file and maybe write your 2% as a default in there... but don't hide this deep in the code.

By the way, how high is traffic and volume actually? If I offer coins at relatively competitive rates, how often do these actually get taken? Daily? Once per hour? Are there historic stats to analyze?
Two standard deviations above the average is probably a better sanity check


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: btcspry on July 21, 2015, 09:42:13 PM
Someone seriously needs to make stats on volume and estimated amounts earned.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: dserrano5 on July 21, 2015, 09:49:44 PM
By the way, how high is traffic and volume actually? If I offer coins at relatively competitive rates, how often do these actually get taken? Daily? Once per hour? Are there historic stats to analyze?

My fee is around 0.01% and I'm involved in some 3 or 4 joins a week. FWIW.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: Sukrim on July 22, 2015, 09:17:36 AM
Two standard deviations above the average is probably a better sanity check

I agree, something that is a bit more dynamic towards current market situations would be better.

Oh, and:
2% is not "insane"...
It's two orders of magnitude above most of the market right now.
No, it is not - only if you count individual offers (which could easily be a sybil/collusion attack by a single actor operating several instances with a few BTC each).

By the way, how high is traffic and volume actually? If I offer coins at relatively competitive rates, how often do these actually get taken? Daily? Once per hour? Are there historic stats to analyze?

My fee is around 0.01% and I'm involved in some 3 or 4 joins a week. FWIW.
Ok, so definitely not worth the risk then.

To earn just one single USD per day(!) you'd need to keep about 7 BTC at that rate on a hot wallet while announcing your IP to an IRC server.

Also I am wondering if it is a better strategy to put up several instances with similar configuration and effectively sybil attack the market, hoping you get more volume from people that try to "fan out" to get more counterparties involved or to pool all your funds in one large account, hoping for a "big fish" that wants to launder a lot of money at once.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: belcher on July 22, 2015, 12:13:54 PM
This message is merely a warning to make people more aware of what they're getting into. Clear information is good for market outcomes. People can still go ahead with the deal by typing 'y' same as before. Though maybe the wording should be changed, removing prescriptive words like "insane".

In the event that prices rise above 2% and many people get bored by constantly reading the same warning, the threshold can be easily changed.

Remember that ultimately the point of JoinMarket isn't to give free money to market makers but to provide privacy at a cheap price.
If we look at the interests of coinjoiners not accidentally paying too much vs investors being faced with a warning for high fees, the interests of the customers wanting privacy should come first.

There was already a shill trying to use this incident to ruin the reputation of JoinMarket on reddit (http://imgur.com/caen1Ei) with an editorialized headline, which I reposted sans headline. Opposing that warning won't you more money, it's likely to make you less in the long run.

By the way, almost any investment can look bad if you work out the per-day return. Find the per-annum income and compare, and think about the low risk you take, how little time and effort it takes to run and the fact you're getting paid in a deflationary currency. If you want to raise your earnings the best way is to have more takers as customers. Either contribute to the code or promote the use of JoinMarket to bitcoin users who might be interested.


Someone seriously needs to make stats on volume and estimated amounts earned.

Be the change you wish to see in the world!
https://github.com/adlai/cjhunt
https://github.com/chris-belcher/joinmarket/issues/19


To earn just one single USD per day(!) you'd need to keep about 7 BTC at that rate on a hot wallet while announcing your IP to an IRC server.

Also I am wondering if it is a better strategy to put up several instances with similar configuration and effectively sybil attack the market, hoping you get more volume from people that try to "fan out" to get more counterparties involved or to pool all your funds in one large account, hoping for a "big fish" that wants to launder a lot of money at once.

The IRC server accepts tor.

Higher amounts of bitcoin in one offer command a higher fee (like the high 0.5% fee for the guy who has 124btc) so there is a strong incentive to keep your coins on one bot rather than fanning out.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: belcher on July 22, 2015, 04:38:52 PM
Edited message phrasing

https://github.com/chris-belcher/joinmarket/commit/00eb9cab006897b3f34a5f858600fdc1a0b548d8


sendpayment.py can still be dangerous if people use --yes which skips the yes/no question.
There needs to be an option for a maximum total coinjoin fee, which will have a default value. Such a flag already exists in tumbler.py

BTW, gmaxwell also chose a fixed fee when fixing the equivalent problem for bitcoin raw transactions.

Code:
commit 9d14e689c86a395c11a530767db4ddf895446ba8
Author: Gregory Maxwell <greg@xiph.org>
Date:   Wed Aug 28 15:41:46 2013 -0700

[raw] reject insanely high fees by default in sendrawtransaction

There have been several incidents where mainnet experimentation with
raw transactions  resulted in insane fees.  This is hard to prevent
in the raw transaction api because the inputs may not be known.
Since sending doesn't work if the inputs aren't known, we can catch
it there.

This rejects fees > than 10000 * nMinRelayTxFee or 1 BTC with the
defaults and can be overridden with a bool at the rpc.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: Blawpaw on July 23, 2015, 06:24:33 PM
I guess the ecosystem demands this kind of developments but wonder if this will still work against the new Elliptic tracking software!
This is becoming like the old mouse and cat game... While some companies develop new and improved privacy software, others will keep on cracking it!

We need projects like your to be running!
Good Luck for your project!


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: domob on July 29, 2015, 07:54:17 AM
Just brainstorming a bit.  Let us assume that I'm getting paid in Bitcoin by someone I know (and who knows me).  I would like to spend the bitcoins on something this person should not know about.  Such situations can arise a lot; I could be a government worker for some regime spending the money on "foreign" news sites; it could be a friend or relative splitting a restaurant bill and me buying porn; it could be a face-to-face purchase of bitcoins and me not wanting the seller to find out my net worth via blockchain analysis; and so on.

Furthermore, note that it seems fairly easy to make a good guess about whether or not a particular tx is a JoinMarket coinjoin or not.  (Look for multiple outputs of the exact same size for a start, although such transactions can be "faked" easily, of course.  You could also try to keep track of outputs offered by market makers semi-publicly.)

Couldn't the adversary now follow all outputs from all JoinMarket coinjoins starting with the coin they sent me initially, and try to find the one that first stops to take part in JoinMarket transactions?  Assume that I do a few joins with the coins before spending them, possibly including splitting to various outputs and so on (as the tumbler does).  The market makers, however, will probably continue to do more and more joins with their coins (as that's simply what they do).  It seems plausible that this quite simple strategy could, indeed, be efficient in linking inputs and outputs together even through a series of joins.

What do you think?


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: belcher on July 30, 2015, 03:16:19 PM
Just brainstorming a bit.  Let us assume that I'm getting paid in Bitcoin by someone I know (and who knows me).  I would like to spend the bitcoins on something this person should not know about.  Such situations can arise a lot; I could be a government worker for some regime spending the money on "foreign" news sites; it could be a friend or relative splitting a restaurant bill and me buying porn; it could be a face-to-face purchase of bitcoins and me not wanting the seller to find out my net worth via blockchain analysis; and so on.

Furthermore, note that it seems fairly easy to make a good guess about whether or not a particular tx is a JoinMarket coinjoin or not.  (Look for multiple outputs of the exact same size for a start, although such transactions can be "faked" easily, of course.  You could also try to keep track of outputs offered by market makers semi-publicly.)

Couldn't the adversary now follow all outputs from all JoinMarket coinjoins starting with the coin they sent me initially, and try to find the one that first stops to take part in JoinMarket transactions?  Assume that I do a few joins with the coins before spending them, possibly including splitting to various outputs and so on (as the tumbler does).  The market makers, however, will probably continue to do more and more joins with their coins (as that's simply what they do).  It seems plausible that this quite simple strategy could, indeed, be efficient in linking inputs and outputs together even through a series of joins.

What do you think?

Yes probably.

Privacy would be improved if the person you're trading with also uses CoinJoin, so then the transaction graph will continue with coinjoins after your transaction.

Privacy has the element of hiding among the crowd. The more people use JoinMarket the better. I'm hoping the incentives will work out to make this happen. Yield generators have an incentive to tell everyone about JoinMarket so their own income will rise.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: btc4ever on July 30, 2015, 09:40:55 PM
I'm just learning about joinmarket, so please forgive if this is a dumb suggestion, already implemented, or whatever.

I was just wondering if the weaknesses quoted below could not be overcome by something like:

1) takers provide multiple receive addresses.  say a random number between 5 and 20.
2) total output payment is divided up randomly and sent to these addresses.
3) each payment is time delayed by a random amount between 60 seconds and max secs, where the taker can define max secs.


It's good to think about possible attacks so we can look out for them.

Privacy is a multi-faceted idea. I don't think CoinJoin or JoinMarket entirely solve the problem. A single CoinJoin does nothing to help with time-based or amount-based privacy invading, because the deals happen apparently instantly, and if you send in an amount of bitcoin you'll get back out that amount minus fees.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: Adlai on July 30, 2015, 11:11:18 PM
I'm just learning about joinmarket, so please forgive if this is a dumb suggestion, already implemented, or whatever.
To use git terminology, the plumbing exists, but you've either got to get out a pipe wrench or wait for porcelain to arrive.

I was just wondering if the weaknesses quoted below could not be overcome by something like:

1) takers provide multiple receive addresses.  say a random number between 5 and 20.
2) total output payment is divided up randomly and sent to these addresses.
3) each payment is time delayed by a random amount between 60 seconds and max secs, where the taker can define max secs.

Code:
python tumbler.py --help


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: CohibAA on August 06, 2015, 12:07:05 AM
I'm just learning about joinmarket, so please forgive if this is a dumb suggestion, already implemented, or whatever.

I was just wondering if the weaknesses quoted below could not be overcome by something like:

1) takers provide multiple receive addresses.  say a random number between 5 and 20.
2) total output payment is divided up randomly and sent to these addresses.
3) each payment is time delayed by a random amount between 60 seconds and max secs, where the taker can define max secs.


It's good to think about possible attacks so we can look out for them.

Privacy is a multi-faceted idea. I don't think CoinJoin or JoinMarket entirely solve the problem. A single CoinJoin does nothing to help with time-based or amount-based privacy invading, because the deals happen apparently instantly, and if you send in an amount of bitcoin you'll get back out that amount minus fees.

I may not be fully understanding your suggestion, but I believe the tumbler.py already does something like this.  Here is the (current) info from the help file, as pointed out by Adlai:

Quote
Usage: tumbler.py [options] [wallet file] [destaddr(s)...]

Sends bitcoins to many different addresses using coinjoin in an attempt to
break the link between them. Sending to multiple  addresses is highly
recommended for privacy. This tumbler can be configured to ask for more
address mid-run, giving the user a chance to click `Generate New Deposit
Address` on whatever service they are using.

I didn't post all the parameters the help covers, but multiple receive addresses, and random timing of transactions are some of the options available.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: CohibAA on August 07, 2015, 09:59:30 PM
Has everyone updated for BIP66?

JoinMarket Alert Message: Please update from the latest github to fix the bip66 bug (https://github.com/chris-belcher/joinmarket/pull/167)

What, if any, repurcussions would takers and makers see if trying to create a coinjoin with someone that has not yet upgraded?  More frequent signature errors?



Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: belcher on August 07, 2015, 10:37:39 PM
Has everyone updated for BIP66?

JoinMarket Alert Message: Please update from the latest github to fix the bip66 bug (https://github.com/chris-belcher/joinmarket/pull/167)

What, if any, repurcussions would takers and makers see if trying to create a coinjoin with someone that has not yet upgraded?  More frequent signature errors?


Yep, just more frequent signature errors. Then the transaction fails to broadcast.
Nobody loses any money, at worst they fail to gain money.
That was the situation we had up until now and there were not even that many bug reports about it. I'm guessing most people used sendpayment.py and just tried it again then it would work.

It would be a mild inconvenience to people using sendpayment.py but would stall a tumbler.py process. Also anyone who doesn't understand the details of the error message might be very put off, especially if they're using some eventual GUI like an Electrum plugin or Bitcoin Core integration.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: tailsjoin on August 10, 2015, 03:29:05 AM
Hidden service orderbook viewer: http://ruc47yiosooolrzw.onion:62601/


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: superresistant on August 10, 2015, 12:23:35 PM
 
This project is really interesting but without a light and very simple wallet it is hard to imagine a lot of transactions going on.

With a lot of transactions, whales would come.

Idiot-proof softwares are the ones that work the best.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: spartacusrex on August 11, 2015, 12:04:26 PM
JoinMarket - love it.

If the joinmarket buy/sell data is completely public, is it not possible by looking at the txn's, which inputs came from the market ? And by reduction what the original inputs are ?

If you wanted to implement this 'on-chain' somehow, for instance.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: CohibAA on August 14, 2015, 02:47:57 AM
JoinMarket - love it.

If the joinmarket buy/sell data is completely public, is it not possible by looking at the txn's, which inputs came from the market ? And by reduction what the original inputs are ?

If you wanted to implement this 'on-chain' somehow, for instance.


Every JoinMarket transaction is done on the blockchain.  The project is live and working, but needs quite a bit more development for widespread adoption and use.  Sorry if you already knew this.

Some work has been done to create tools to hunt coinjoins (https://github.com/adlai/cjhunt) on the blockchain (issue 19 (https://github.com/chris-belcher/joinmarket/issues/19)).  edit: Also this one (https://github.com/anduck/coinjoin.info)

When a transaction is created from JoinMarket, the utxo sources are only known to the taker (sender).  It is currently assumed that takers will want to maintain their privacy and won't share that information.  Something, something, assumptions... The idea of someone creating "fake" coinjoins to farm information about market maker utxos is discussed in issue 156 (https://github.com/chris-belcher/joinmarket/issues/156) a bit, and maybe elsewhere on the repo.

I believe there are some posts in this thread about how the tumbler.py script affects taint analysis as well.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: CohibAA on August 14, 2015, 09:56:41 PM
 :o

Alert: Someone sent coins to, and has been using, a null bip32 seed wallet. I have swept 1.59 btc. (https://www.reddit.com/r/joinmarket/comments/3h0vyy/alert_someone_sent_coins_to_and_has_been_using_a/)

Issue #190 (https://github.com/chris-belcher/joinmarket/issues/190#issuecomment-131243645)

edit: resolved


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: waxwing on August 15, 2015, 06:13:04 PM
When a transaction is created from JoinMarket, the utxo sources are only known to the taker (sender).  It is currently assumed that takers will want to maintain their privacy and won't share that information.  Something, something, assumptions...

There are assumptions, but I think that doesn't state it very well.

The taker pays for the service, and gets the assurance that *as long as not all the makers are colluding together*, then no one else knows the mapping of his outputs. The "as long as not all the makers are colluding" is the assumption. There is no assumption that, as a yield generator, you get the privacy feature that no one apart from you knows your output; the taker *definitely* knows. So your position acting as a maker/yield generator is that you offer a service and get paid; if you also get extra privacy (which in practice you certainly do), that's extra. But not assumed.

Quote
The idea of someone creating "fake" coinjoins to farm information about market maker utxos is discussed in issue 156 (https://github.com/chris-belcher/joinmarket/issues/156) a bit, and maybe elsewhere on the repo.

Yes, true, it's at least related if not exactly the same thing. What we want to avoid is to break the fundamental promise - that as a taker, someone else (any anonymous IRC bot, or any individual maker) is not able to identify your outputs just by "pinging" the makers and finding their utxos. That's (at least to my mind) what the #156 discussion is about.



Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: CohibAA on August 17, 2015, 09:26:28 AM
Quote
There are assumptions, but I think that doesn't state it very well.
...

Fair enough.  Not the same thing, but certainly related, I believe.

I think #156 (https://github.com/chris-belcher/joinmarket/issues/156) could be a serious privacy issue, if an entity were properly motivated.  The cost to find all the utxos on the market would be next to nothing using the method described.  I don't think it would be terribly difficult to follow the coin trails, again with sufficient resources and motivation.

It would be trivial for most state agencies to be currently doing this (although it doesn't seem it's happening based on current activity).  Depending on the situation, a maker could potentially be dragged into being a test case for joinmarket relations to illicit bitcoin sources used in coinjoins.  At least I don't think this has been tested legally.  Maybe maker privacy should also be looked at further, as they go hand-in-hand from what I see.  Maybe I'm just paranoid. Whatever the outcome, this whole bitcoin project is still incredibly interesting to me for lots of reasons, and coinjoins should to be a standardized part of it, imho.

 8)


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: windpath on August 18, 2015, 01:20:15 PM

New issue in Bitcoin Github this morning from Greg Maxwell:

Improve transaction privacy / fungibility in Bitcoin Core and the Bitcoin system [meta tracking issues] #6568

https://github.com/bitcoin/bitcoin/issues/6568



Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: go1111111 on August 23, 2015, 07:23:59 PM
I made this commit https://github.com/chris-belcher/joinmarket/commit/be8b63fa332d18a4ba71d68e3894d29d4c9db7c8
It displays the coinjoin fee as a percentage and prints out a huge warning banner if its above 2%

It might be good to have a second layer of confirmation in this case too, just in case someone accidentally hits 'y' once. Like "The fee is extremely high. Are you sure? (y/n)".


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: Patel on August 25, 2015, 02:06:15 AM
Do you have to create your own joinmarket.cfg file? Or is there one that comes included?


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: CohibAA on August 25, 2015, 05:41:03 AM
Do you have to create your own joinmarket.cfg file? Or is there one that comes included?

You need to create one with a text editor.  There is a sample joinmarket.cfg (https://github.com/chris-belcher/joinmarket/wiki/Configuring-with-joinmarket.cfg) on the wiki.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: belcher on August 25, 2015, 09:45:33 AM
Also a default one is created if one doesn't exist yet.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: CohibAA on August 29, 2015, 05:28:07 AM
The most interesting JoinMarket coinjoin to date.  Very cryptic.

3e1572ca351d743d7bf627bc844da8f3bdc84eab4a9d27934a8dba30a2e05fe1 (https://btc.blockr.io/tx/info/3e1572ca351d743d7bf627bc844da8f3bdc84eab4a9d27934a8dba30a2e05fe1)


 :o  (https://en.wikipedia.org/wiki/Golden_ratio)

 ???  (http://pastebin.com/KLB8LRxC)


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: windpath on August 29, 2015, 02:59:40 PM
The most interesting JoinMarket coinjoin to date.  Very cryptic.

3e1572ca351d743d7bf627bc844da8f3bdc84eab4a9d27934a8dba30a2e05fe1 (https://btc.blockr.io/tx/info/3e1572ca351d743d7bf627bc844da8f3bdc84eab4a9d27934a8dba30a2e05fe1)


 :o  (https://en.wikipedia.org/wiki/Golden_ratio)

 ???  (http://pastebin.com/KLB8LRxC)

Silly, the odds of anyone having a private key for that address are so remote I'd have a better chance of throwing a baseball to the moon...

I researched some of these a while ago (most created by Luke Jr. with bible references): https://www.reddit.com/r/Bitcoin/comments/2mkmoq/til_where_the_bitcoins_at_mysteries_of_the/


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: CohibAA on August 31, 2015, 06:37:36 AM

Silly, the odds of anyone having a private key for that address are so remote I'd have a better chance of throwing a baseball to the moon...


Indeed, it seems to be a burn, for whatever reason(s).


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: belcher on September 14, 2015, 01:05:01 AM
Notes from the Privacy and Fungibility roundtable from the ScalingBitcoin workshop in Montreal.

http://diyhpl.us/wiki/transcripts/scalingbitcoin/privacy-and-fungibility/


I had a few thoughts on fungibility and how JoinMarket could help.

CoinJoin only improves fungibility if it's actually used. I was worried that there might be tragedy-of-the-commons type situation where everyone benefits from fungibility but nobody wants to take the time and money to set up JoinMarket?

The answer is no. Here's why. If fungibility becomes degraded, it would first show up that large bitcoin institutions will reject your coins with the message "Your money is no good here. Those coins were used for illegal or immoral uses 3 transactions ago". When this happens the owner of those coins is going to google the problem. He'll notice that if he uses JoinMarket, he can thwart the analysis of the coins. So I think the fungibility problem solves itself once you have easy access to privacy. Any attempt to enforce non-fungibility of bitcoin will push people to seek out privacy solutions.

This means in all our literature we have to add as a feature unlinking coins from previous owners to our reasons for privacy. Also we should explicitly write a few words about how JoinMarket could help you if you've coins have been rejected. Companies intending to deploy anti-fungibility services might then think twice if they see people can un-taint their coins so easily and cheaply.

Maybe this insight was obvious to others but I just realized now.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: marcus_of_augustus on September 14, 2015, 01:44:53 PM
Notes from the Privacy and Fungibility roundtable from the ScalingBitcoin workshop in Montreal.

http://diyhpl.us/wiki/transcripts/scalingbitcoin/privacy-and-fungibility/


I had a few thoughts on fungibility and how JoinMarket could help.

CoinJoin only improves fungibility if it's actually used. I was worried that there might be tragedy-of-the-commons type situation where everyone benefits from fungibility but nobody wants to take the time and money to set up JoinMarket?

The answer is no. Here's why. If fungibility becomes degraded, it would first show up that large bitcoin institutions will reject your coins with the message "Your money is no good here. Those coins were used for illegal or immoral uses 3 transactions ago". When this happens the owner of those coins is going to google the problem. He'll notice that if he uses JoinMarket, he can thwart the analysis of the coins. So I think the fungibility problem solves itself once you have easy access to privacy. Any attempt to enforce non-fungibility of bitcoin will push people to seek out privacy solutions.

This means in all our literature we have to add as a feature unlinking coins from previous owners to our reasons for privacy. Also we should explicitly write a few words about how JoinMarket could help you if you've coins have been rejected. Companies intending to deploy anti-fungibility services might then think twice if they see people can un-taint their coins so easily and cheaply.

Maybe this insight was obvious to others but I just realized now.

It is a good point and well worth highlighting. There are many valid and legitimate cases why a person might come to possess coins that need to be de-linked from their past, for reasons that have nothing to do with the current holder, coins that have become tainted through no fault of theirs. There are also many valid and legitimate cases in business where there is a legal or contractual requirement for confidentiality of transactions.

It goes against the vast history of monetary markets selecting fungible goods as the best money, and just basic common experience, to expect all money transfers to be completely public knowledge, that's just a simplistic utopian fantasy trap fallen into recently by some poor reasoning. Good money needs to have strong privacy properties.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: killerjoegreece on September 14, 2015, 02:27:49 PM
Joinmarket is an awesome project. thanks for your hard work.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: box0214 on September 14, 2015, 07:22:53 PM
i wonder if this concept can be combined into the Multigateway project?


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: Financisto on September 16, 2015, 02:29:58 AM
This is a nice project.

So interesting that IMO It should even be suggested as a Bitcoin Improvement Proposal - BIP.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: belcher on September 16, 2015, 11:56:34 AM
That's not really what BIPs are for. JoinMarket doesn't need any new consensus.
For advice and ideas I'd already talked to many people before I started coding.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: belcher on September 23, 2015, 03:51:54 PM
I've merged the code which implements a timeout for takers (https://github.com/chris-belcher/joinmarket/commit/ac249751ae0885405914a2f5ec3b9724741b69fb). If a maker doesn't respond for some time (default 30 seconds) the taker will connect to a new maker and try to finish the coinjoin. This means a tumbler.py run will not be stopped by one nonresponding maker. In fact in testing me and others ran very long tumbler.py runs and fixed several other bugs.

JoinMarket can now very robustly improve your privacy.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: windpath on September 23, 2015, 05:41:05 PM
I've merged the code which implements a timeout for takers (https://github.com/chris-belcher/joinmarket/commit/ac249751ae0885405914a2f5ec3b9724741b69fb). If a maker doesn't respond for some time (default 30 seconds) the taker will connect to a new maker and try to finish the coinjoin. This means a tumbler.py run will not be stopped by one nonresponding maker. In fact in testing me and others ran very long tumbler.py runs and fixed several other bugs.

JoinMarket can now very robustly improve your privacy.

This is an important update, great job!


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: CohibAA on September 23, 2015, 06:32:00 PM
Awesome job, this is a great update!


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: Financisto on September 24, 2015, 03:16:46 AM
How about publishing some (weekly/monthly) "traded" volume statistics at Joinmarket in the (near) future?

That would be good to spread the word and to get more attention (and liquidity) to this project too.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: belcher on September 24, 2015, 10:05:24 AM
How about publishing some (weekly/monthly) "traded" volume statistics at Joinmarket in the (near) future?

That would be good to spread the word and to get more attention (and liquidity) to this project too.

There's a project for eventually doing that https://github.com/adlai/cjhunt
Alternatively me and others who run market makers could say how many CoinJoins they participated in last week.

Edit: I'll start, in the past 7 days my bot participated in 23 transactions with 1.94btc in total passing through my coinjoin outputs.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: CohibAA on September 24, 2015, 04:27:48 PM
I usually only keep my logs for 72 hours, and rarely do I even look at them unless there was an issue, or I am bored.  That said, over the past 3 days, my bot has done approximately 25 joins for a total of about 13 BTC transacted.  My bot has earned exactly zero satoshi during that time, which may explain it's higher transaction volume, relative to belcher's stats.   ;)


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: belcher on September 24, 2015, 06:07:29 PM
Don't you keep the yigen-statement.csv file?

I assume your zero-fee market maker is a slower cheaper way of mixing coins than running tumbler.py


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: CohibAA on September 25, 2015, 01:02:36 AM
Don't you keep the yigen-statement.csv file?

I assume your zero-fee market maker is a slower cheaper way of mixing coins than running tumbler.py

I truncate the csv and logs of anything older than 72 hours.  I do it manually each day, though, as I want to make sure to be able to save anything needed for troubleshooting.  The data I gave was from the current csv file.

Honestly, the small returns don't mean as much to me as seeing this project become commonly used, so I don't charge a maker fee to encourage more taker participation.  I buy coins pretty often, if I have extra cash, and I have daily mining income, so those are the coins being used by my bot, for the most part.  Of course, I don't keep my whole stash on the network, even though I feel like it would be relatively safe if I did.  I don't really have a need to tumble them, but I believe strongly in privacy.  Essentially though, yes, it's a slow and low cost way for my coins to be mixed, while also providing additional liquidity to the market.

My hope is that I won't be replacing another maker when my bot is used, but will just be one additional maker available for free to increase the maker count for each transaction.  That, of course, depends on the mindset of the takers however.  If they want to only mix with me as a sole maker due to having no coinjoin cost, I can't prevent that obviously.  Anecdotally, it seems most people are using above the default maker count when my bot is included.  I think most people realize that mixing with only one maker is not very private.

I wonder when and if we will start to see maker bots that pay takers.  I could imagine at entity (think DNM vendors, admins, etc.) with a "dirty" large stash of coins that constantly require tumbling would be willing to pay a fee to takers to encourage people to use their unclean coins in a join.  It's not my game, but I think it's only a matter of time before someone integrates joinmarket into their wallet structure for this purpose.  While I am sure that some people don't desire this (some joinmarket users, gubermints, etc.) , the beauty of an open-source, decentralized project like this is the freedom to do so.  This possibilities of this project are very intriguing and I am quite thankful for the people putting their time into it.

When I get cash, I often wonder how much cocaine and stripper ass the bill has seen, but I am glad I can use it still regardless, and virtually nobody that I pay it to will care about it's past history.  Bitcoin should also be like this, imho.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: Sukrim on September 25, 2015, 08:39:20 AM
If there are people that do this stuff for free, you're disincentivizing makers.

I wouldn't want to be a taker in a market that consists of a handful known enthusiasts instead of a huge amount of anonymous people fighting to find a fair price.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: belcher on September 25, 2015, 09:28:23 AM
I would also suggest that you look out for your own self interest.

Having said that, taker's use a significant amount of randomness in choosing offers to coinjoin with, so somebody offering zero fee in no way means they'll coinjoin with everyone. Of course there's also an upper-limit to how many transaction you can do per time, because of the requirement to wait for a confirm (or even many confirms when that feature is implemented)


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: Janitor on September 27, 2015, 11:37:13 AM
If there are people that do this stuff for free, you're disincentivizing makers.

I wouldn't want to be a taker in a market that consists of a handful known enthusiasts instead of a huge amount of anonymous people fighting to find a fair price.

What you're saying is you'd be happy to see fewer market makers and higher costs, so that you can feel good about it, as opposed to actual users being able to get proper service at a lower price.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: Sukrim on September 27, 2015, 03:28:21 PM
No, I doubt that you'd get takers if a few makers destroy the market with their "charity" and a price race to the bottom early on.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: dooglus on September 27, 2015, 06:31:33 PM
The most interesting JoinMarket coinjoin to date.  Very cryptic.

3e1572ca351d743d7bf627bc844da8f3bdc84eab4a9d27934a8dba30a2e05fe1 (https://btc.blockr.io/tx/info/3e1572ca351d743d7bf627bc844da8f3bdc84eab4a9d27934a8dba30a2e05fe1)

The address which the burned coins were sent to is mentioned in this deed bundle:

    http://deeds.bitcoin-assets.com/bundle-371897.txt

The first deed says:

Code:
In the Kamigata area, they have a sort of tiered lunchbox they
use for a single day when flower viewing. Upon returning, they
          throw them away, trampling them underfoot.

              The end is important in all things

and the second says:

Code:
            CONVICTED OF ACTIONS:
        - BOUNDLESS DISTRACTION
        - TROLLING SOME FACTION
 CE VERGE P'UN LEGAL INFRACTION!!

Time to leave this network.

My brief apology is dwarfed by massive gratitude
towards you, and you, and most of all... YOU TOO

If you have cared far to read this, you've earnd
the trinity (the best things in life... so phree

To reach me again, you doubtless know how
   some email on keyservers, github, and cetrums

The road   to help
           is 1PavedWithGodAndSomeTeensionXudq5X

Both deeds are signed with PGP key ID 7CDA03F9. When I verify the signature, I see:

    gpg: Signature made Fri 28 Aug 2015 05:50:16 AM PDT using RSA key ID 7CDA03F9
    gpg: Good signature from "Adlai Chandrasekhar <adlai.chandrasekhar@gmail.com>"

This was shortly after adlai had a falling-out with MP:

    http://log.bitcoin-assets.com/?date=25-08-2015#1252200, in which adlai dares agree that assbot is too spammy

    http://log.bitcoin-assets.com/?date=26-08-2015#1252289, in which MP asks him why he thinks he belongs in the channel

    http://log.bitcoin-assets.com/?date=27-08-2015#1253642, in which MP unpersons him

So it looks like the 'odd' coinjoin was adlai's parting message to #bitcoin-assets?

How about publishing some (weekly/monthly) "traded" volume statistics at Joinmarket in the (near) future?

That would be good to spread the word and to get more attention (and liquidity) to this project too.

There's a project for eventually doing that https://github.com/adlai/cjhunt
Alternatively me and others who run market makers could say how many CoinJoins they participated in last week.

Edit: I'll start, in the past 7 days my bot participated in 23 transactions with 1.94btc in total passing through my coinjoin outputs.

In the past 7 days my bot participated in 77 transactions for a total of 48.66 BTC.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: dansmith on September 28, 2015, 10:58:34 AM
Is it sensible to require JM makers to do some proof-of-work to disincentivize the destruction of the market by the volunteers?


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: belcher on September 28, 2015, 11:48:02 AM
It's not clear volunteers do much harm. They're giving up an opportunity cost to earn money. Their hardware, electricity and internet costs them too. And eventually they run out of UTXOs and can't coinjoin anymore until they get confirmed.

There's also this idea to quantize the market prices to protect against front running. https://github.com/chris-belcher/joinmarket/issues/14#issuecomment-143509788 It's similar to what happens in stock and futures exchanges to stop someone placing an order one cent below everyone else so they can extract information from the market.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: dooglus on September 29, 2015, 04:32:29 PM
Is it sensible to require JM makers to do some proof-of-work to disincentivize the destruction of the market by the volunteers?

No, I don't think so.

If there is more supply than demand, the price drops. That's normal, healthy, and to be expected.

You seem to be suggesting manipulating the market to force the prices to be higher than the market supports on its own. If we're currently short of "takers" then low prices is what we need to attract more of them, wouldn't you agree?


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: Financisto on October 02, 2015, 09:12:18 PM
There goes the immutable Law of Supply and Demand: https://en.wikipedia.org/wiki/Supply_and_demand (https://en.wikipedia.org/wiki/Supply_and_demand)

...as strong as the Theory of relativity.

Talking about Joinmarket (and also privacy), is it fully compatible with TOR?


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: dooglus on October 03, 2015, 12:26:58 AM
https://blockchain.info/tx/7e6fe504cc3030997e40655af53f06be04ef5fe2ee7df3430d41d571a75af285 is a messy one - one of the parties cleaned up a whole bunch of small outputs to fund it.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: PesiHUN on October 03, 2015, 03:35:05 PM
How much can i earn with this? i have 0.01 btc


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: belcher on October 03, 2015, 07:53:35 PM
Talking about Joinmarket (and also privacy), is it fully compatible with TOR?

Yes

How much can i earn with this? i have 0.01 btc

Not very much probably.



In development news, you can now use JoinMarket to send to p2sh addresses too. This was a simple but overlooked fix.

The ob-watcher.py script web page now has the page /orderbook.json which returns all the current offers by makers.


There is a new script which allows you to create unsigned coinjoin transactions. This can be useful if you want to spend from cold storage without the private key touching an internet-connected computer. It can also be used to spend from a p2sh multisig address where many different people must sign the transaction.

https://github.com/chris-belcher/joinmarket/wiki/Spending-from-cold-storage,-P2SH-or-other-exotic-inputs-with-CoinJoin

On the downside, it requires you to manipulate raw transactions and private keys and is thus quite dangerous. Always carefully check your transactions before signing and broadcasting them. Preferably do it a few times on testnet first.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: PesiHUN on October 04, 2015, 04:08:47 PM
how can i change "nickname = random_nick()" to my nickname? if i simply change it its wont work.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: spiccioli on October 04, 2015, 06:00:26 PM
how can i change "nickname = random_nick()" to my nickname? if i simply change it its wont work.


nickname = 'your-nick'

then restart yield-generator.

regards.

spiccioli


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: belcher on October 05, 2015, 10:19:27 PM
You don't need to do that. It increases privacy if your IRC bot's nickname is generated randomly.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: phelix on October 06, 2015, 12:36:17 PM
Idea: Joinmarket Autonomous Agent

A Joinmarket program living on a server making money all by itself via serving customers. Once it has made enough profit it can replicate by renting another server at a (pre programmed) hosting company and installing a copy of itself. It might even send some share home.

Given the somewhat critical nature of joinmarket/coinjoin regarding money laundering this might be a good match. Please consider whether this is legal first, I have no idea.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: tailsjoin on October 24, 2015, 05:17:38 PM
Code:
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512

I'm looking for someone to take over the maintenance of my Github:
https://github.com/tailsjoin/tailsjoin.
I no longer wish to participate in the development of this project because of this:
https://github.com/chris-belcher/joinmarket/pull/272.

If it's not clear to Chris Belcher that EVERYONE deserves to know where their funds
are going, and how much, then I don't want to have anything to do with it.
Regardless of how this PR goes or what happens with the donation bullshit, I am no
longer working on this.

If you would like to take ownership of the tailsjoin project, please email me at:
tailsjoin@ruggedinbox.com using my GPG key: 44C5398EA821BB41A0C070521B9184DF9E117718.
Unencrypted email will be deleted directly.

- -- tailsjoin Sat Oct 24 17:05:01 UTC 2015 --

-----BEGIN PGP SIGNATURE-----

iQJ8BAEBCgBmBQJWK7x4XxSAAAAAAC4AKGlzc3Vlci1mcHJAbm90YXRpb25zLm9w
ZW5wZ3AuZmlmdGhob3JzZW1hbi5uZXQ0NEM1Mzk4RUE4MjFCQjQxQTBDMDcwNTIx
QjkxODRERjlFMTE3NzE4AAoJEBuRhN+eEXcYdawQAIMK+gexSXRMT0r0YRJGf/h0
CDzdMBa+ML7haDYNCutwlXW+4LTI/gjMwdw/IsWD3GtRUrrtlHQyf/lVMuxPYupz
1yYlxg+8HniqDkW02aT/JXJfeqh8nEtLl0MOyH9/mnFfkQfJX070wUkvc+/E2a8q
GQiJdX2YPOSndt21SoXaf4XeBUuqtk8TRh1FPQ0I4Lvc+UP7/O2VoT57VkNbw2KV
Goopy9Rj0bBPsc3hWGyzrmWLsamN7bf+LY1XXwMIpz78LSltdap7hccF4iFEmjoB
0Z17/7DGte7UFy44KViuUFgCTNSEBOR7QB23imMRqWEfM3FQole7Jge3DaR6LtQc
76EYpuSqw8ULrDShx/Jk/R+3iCTFXbmeeA7pQnuE7Qgm+8AIFRtDKllsVsjlfVMw
BCkgpaDXeOkLH2mclAEavl8aoei3enWic7fx7YfwKDj4raiSssiHaqWgzZThIDKd
7oOPWeqRvtrthyzT4gU0yy5QOj26WFzJUSg9vqXQDN8h9Les9hWfXGX28ixm2X4P
Fj9T0UrPC0DQZRazgLSo2XXv4UwcBI2uHWlLmMsKRXtYmitYMnLJR5jsoVKgSGd3
jWVoQSDgKHRpo/I/lpmi5WWEcB/7KwARAR+v7lDPBkdzIv5r+2r1mEyjHmVy2k21
pLWRshn+yalFgDPPxYm8
=JxVw
-----END PGP SIGNATURE-----


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: waxwing on October 24, 2015, 07:13:42 PM
tailsjoin:

I understand your perspective and hope you'll reconsider. I think it was a mistake not to make more effort to publicise the optional donation feature (specifically because there was a default opt-in rather than opt-out). I only started paying attention to it this week.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: belcher on October 24, 2015, 07:21:42 PM
My view on this matter https://www.reddit.com/r/joinmarket/comments/3q27ys/funding_development_of_joinmarket/

JoinMarket will not exist long term unless development is funded. Chainalysis (https://www.reddit.com/r/Bitcoin/comments/2yvy6b/a_regulatory_compliance_service_is_sybil/) and Elliptic (https://www.reddit.com/r/Bitcoin/comments/3aa9qz/the_bitcoin_big_bang_interesting_new_interactive/) have dozens of full time developers working to destroy bitcoin's fungibility because they have no problem getting VC funding.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: waxwing on October 24, 2015, 07:27:35 PM
My view on this matter https://www.reddit.com/r/joinmarket/comments/3q27ys/funding_development_of_joinmarket/

JoinMarket will not exist long term unless development is funded. Chainalysis (https://www.reddit.com/r/Bitcoin/comments/2yvy6b/a_regulatory_compliance_service_is_sybil/) and Elliptic (https://www.reddit.com/r/Bitcoin/comments/3aa9qz/the_bitcoin_big_bang_interesting_new_interactive/) have dozens of full time developers working to destroy bitcoin's fungibility because they have no problem getting VC funding.

That's understood, but what does 'funding' really mean here? There is no possibility of small donations paying meaningful salaries as VC could do. If funding of that sort is an issue (and sure, it is) then I'm not sure there's any good solution, but skewing the interface so that donations become more likely is not going to solve it (and can result in substantial loss of goodwill).

(I want to repeat to anyone reading, we're talking about *optional* donations here. The only discussion was about how it's presented to the user.)


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: Sukrim on October 25, 2015, 09:41:18 AM
Just FYI: P2Pool has a very similar "revenue" model of default donations and people just switch it off there.

What should this money be used for anyways? Bounties? Salary? Infrastructure? Building a pool of project coins to earn money from?


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: tailsjoin on October 25, 2015, 06:42:11 PM
My view on this matter https://www.reddit.com/r/joinmarket/comments/3q27ys/funding_development_of_joinmarket/

JoinMarket will not exist long term unless development is funded. Chainalysis (https://www.reddit.com/r/Bitcoin/comments/2yvy6b/a_regulatory_compliance_service_is_sybil/) and Elliptic (https://www.reddit.com/r/Bitcoin/comments/3aa9qz/the_bitcoin_big_bang_interesting_new_interactive/) have dozens of full time developers working to destroy bitcoin's fungibility because they have no problem getting VC funding.

My reply: https://www.reddit.com/r/joinmarket/comments/3q27ys/funding_development_of_joinmarket/cwcfpf9


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: Financisto on October 26, 2015, 03:30:30 AM
Hey guys, why don't you set a vote system (with all developers - and maybe investors too) in order to choose where the money is gonna be invested?


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: tailsjoin on October 27, 2015, 02:20:41 PM
Hey guys, why don't you set a vote system (with all developers - and maybe investors too) in order to choose where the money is gonna be invested?

This has nothing to do with where the funds go. My gripe is with the fact that a hidden "idiot/ignorance" tax was added to the tumbler with a default amount of 1.5%. If users weren't paying daily attention to code changes, they knew nothing about this "donation" amount being automatically deducted from their funds and sent to Chris Belcher. This is how things sat for two weeks until I started to make shit about it. Now Chris wants to act superior to everyone (including waxwing who is the only reason JoinMarket is even worth using) by only answering easy questions and intentionally manipulating the conversation.

Even the supposed announcement made to quell us into shutting up was manipulative. It is titled "Funding development of JoinMarket" and it's not even stickied. It should be an announcement that clearly states there has been a forced opt-out policy and it should be stickied at the very least. This just feels like disrespect piled on top of more disrespect and contempt for us, the not Chris Belchers.

For posterity, here's the thread in question: https://www.reddit.com/r/joinmarket/comments/3q27ys/funding_development_of_joinmarket/

Take a look at how to not address a topic head on. This is a wonderful example of an attempt to beat around a bush until everyone forgets it a bush. It's truly infuriating, as a problem solving human being, to have to deal with someone that acts like a religious fanatic, politician, or a used car salesman.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: Financisto on October 29, 2015, 10:09:35 AM
That's a shame. I hope you will overcome that misunderstanding as a team and keep improving this unique project.

BTW Tails + Joinmarket would be very powerful.

Hope to see more development on that...


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: CohibAA on October 29, 2015, 03:43:59 PM
 :-\

JM will be losing users because of this. (https://www.reddit.com/r/joinmarket/comments/3q27ys/funding_development_of_joinmarket/cwh4qx6)

Why isn't this (https://github.com/chris-belcher/joinmarket/pull/272) merged yet?  This is ridiculous to not document properly.  WTF, belcher?



Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: dooglus on October 29, 2015, 09:09:52 PM
Why isn't this (https://github.com/chris-belcher/joinmarket/pull/272) merged yet?

I asked him that on the reddit post:

Quote
dooglus (https://www.reddit.com/r/joinmarket/comments/3q27ys/funding_development_of_joinmarket/cwervvy): I see you still didn't merge pull request #272[1] that does nothing but adds the default to the documentation.

belcher_ (https://www.reddit.com/r/joinmarket/comments/3q27ys/funding_development_of_joinmarket/cwf32cc): What is the actual practical alternative? I don't think the US military has an interest in JoinMarket like they have with tor.

I guess he's avoiding the question.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: belcher on October 30, 2015, 02:07:13 AM
Default donation amount now set to zero.

https://github.com/chris-belcher/joinmarket/commit/0243b7014c1fc0b05451998f9cde476810879dfe


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: uwichii on October 30, 2015, 05:35:18 AM
aradesh@aradesh:~/src/joinmarket$ python yield-generator.py blahhh
downloading wallet history
no tx used
Traceback (most recent call last):
  File "yield-generator.py", line 95, in <module>
    main()
  File "yield-generator.py", line 90, in main
    maker = YieldGenerator(wallet)
  File "yield-generator.py", line 26, in __init__
    Maker.__init__(self, wallet)
  File "/home/aradesh/src/joinmarket/maker.py", line 129, in __init__
    self.orderlist = self.create_my_orders()
  File "yield-generator.py", line 42, in create_my_orders
    max_mix = max(mix_balance, key=mix_balance.get)
ValueError: max() arg is an empty sequence

i guess i should start mining Wink


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: tailsjoin on October 30, 2015, 07:50:20 PM
Code:
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512

I will continue work on tailsjoin, and I will offer pull requests when
possible for JoinMarket. Although this whole thing was a litte much,
I'll be the first to admit that I flew off the handle directly. That
is my way, and I would argue that society needs people that act a bit
irrational in order to draw in the rational.

Thank you to everyone that participated in the conversation regarding
this issue. Thank you Chris for making the appropriate change. Times
like these will only make the project stronger in the long run, and
all of us as people as well.

My site is fixed, my github is fixed. Lets all have a good day.

tailsjoin Fri Oct 30 19:45:48 UTC 2015


-----BEGIN PGP SIGNATURE-----

iQJ8BAEBCgBmBQJWM8kKXxSAAAAAAC4AKGlzc3Vlci1mcHJAbm90YXRpb25zLm9w
ZW5wZ3AuZmlmdGhob3JzZW1hbi5uZXQ0NEM1Mzk4RUE4MjFCQjQxQTBDMDcwNTIx
QjkxODRERjlFMTE3NzE4AAoJEBuRhN+eEXcYzV4P/1JEJdGLiFlbp/aOZhgBsdTI
AQHkL3YTTGSbVYW2wK/mig11wf6tTMQwfHg+WDr6nUBoqFGDzUELMHJ6InttZUFC
vM2vxX8n+E/ZyH3GqU6blVnMlVmsYQvcFZfxcOM3XSfmtLJbaXNwKB8tpUqA3KP1
fY6gFPWlReNC5LuLJNDSDr0a0j3CeEwdruPEbgjKcaYiC6eSZtIxb0e+HIt1P/uR
ufyQmsMPU2qCNHkYJXJS1T0U+GD/1gEjCK8fzpTR4gTGQPWi+HPQNVr66KEfZPTv
SKLczkT7SiAgoNdnW7/QnJ18dZeuLqeGtB3BgCHK0Uhpt/OWJIL2YOo2Q+7/KJSd
qZKBqN8JjGtw56LfZNsfeK66IQDQOK2U2Dt+DZhjZ/irYlvR1I4o7OTd0mjE84Jc
nS+toTjPHecs/KQdv9Dq4AVbdKrdv/Cj6lD3N8O01OdRwnf3I0mqwyZXHuz0/6UE
4pmYAT79vkk5vfzlY37viEObPpDuDkN1mwIqDGt94shTVJU1LsbcnvlJbpmM7uCd
J9TmbHO/iJmwkpuBGdtDMTysnJI1NPaopCoL2qbdsmO0Hz/OZoxwVyDY40qj5cZc
cKf9Ju8FqpJb0Mf7mDof21FJG4sneD6JRLqocxldnERJgvhmqKQWxa1XuUm4HyJy
KdBBwZ2ch2Bcj+ha222R
=DtBR
-----END PGP SIGNATURE-----


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: dooglus on October 30, 2015, 08:13:44 PM
I will continue work on tailsjoin, and I will offer pull requests when
possible for JoinMarket.

Code:
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512

Nice one!
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1

iQEcBAEBCgAGBQJWM881AAoJEEvmoBBJKjWOvPkH/RmNgjY5Z+SMHHcP4Z3Oat1r
AEdVAuGkhtRftCbbBaOP71Uly5CbajjbkWyhIDf+t6Bxpzf4T92MxIQWWQAO1OuJ
hp8J4yD/oLKwxh394norKsqUV029GIawgLziYVrLJCv1PZosJ0l10ZJ3IvpjqLM0
B2DHYS5vnW0sUZdgvUzsKJYS/6b5DeKSwUpsUo+TkbSnI2+YVoVCfcHVSZevhrcq
yPBwUl+UL2jmk/McYseuzDO0SXBOMUNuBTQZxofSEsQC6XfEUg3CgZvGJrHQ6Pz5
7iF9RtqSpvxlDGPY8N2L4Vzwu9ed98toXmd/Pn7NLaeCJzjoQPS5dGOh0+WCKss=
=YpJB
-----END PGP SIGNATURE-----


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: waxwing on October 31, 2015, 06:11:29 PM
aradesh@aradesh:~/src/joinmarket$ python yield-generator.py blahhh
downloading wallet history
no tx used
Traceback (most recent call last):
  File "yield-generator.py", line 95, in <module>
    main()
  File "yield-generator.py", line 90, in main
    maker = YieldGenerator(wallet)
  File "yield-generator.py", line 26, in __init__
    Maker.__init__(self, wallet)
  File "/home/aradesh/src/joinmarket/maker.py", line 129, in __init__
    self.orderlist = self.create_my_orders()
  File "yield-generator.py", line 42, in create_my_orders
    max_mix = max(mix_balance, key=mix_balance.get)
ValueError: max() arg is an empty sequence

i guess i should start mining Wink

You need to fund the wallet. Follow the instructions here: https://github.com/chris-belcher/joinmarket/wiki/Using-the-JoinMarket-internal-wallet#funding-wallet-and-displaying-balance


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: cysive on November 02, 2015, 04:33:57 AM
Does the bitoind rpc option work with an encrypted wallet?


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: dooglus on November 02, 2015, 04:37:24 AM
Does the bitoind rpc option work with an encrypted wallet?

Yes. You don't even need to unlock it. I suspect it would also work with '-disablewallet', since JoinMarket keeps its coins in its own HD wallet.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: tailsjoin on November 02, 2015, 05:25:28 AM
Wallet's needed for importing the addresses as watching only. Otherwise we could be using pruned nodes already. See here: https://bitcointalk.org/index.php?topic=1169146.0;topicseen


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: cysive on November 02, 2015, 05:26:02 AM
Does the bitoind rpc option work with an encrypted wallet?

Yes. You don't even need to unlock it. I suspect it would also work with '-disablewallet', since JoinMarket keeps its coins in its own HD wallet.
 

Okay, I am not getting this message

Code:
Running / Checking it works
$ python wallet-tool.py wallet.json
First time using a new wallet requires several addresses to be imported. JoinMarket will then exit with the following message:

[2015/03/31 21:58:24] importing 80 addresses into account joinmarket-wallet-2734ec
now restart bitcoind with -rescan

I just get this:

Code:
D:\joinmarket>python wallet-tool.py wallet.json
Enter wallet decryption passphrase:
[2015/11/01 19:40:08] downloading wallet history
[2015/11/01 19:40:37] blockr sync_unspent took 10.743999958sec
mixing depth 0 m/0/0/
 receive addresses m/0/0/0/
  m/0/0/0/000 12mrjH24YqZ8XbkeSAhx2fNWktWJnLdt37  new 0.00000000 btc
  m/0/0/0/001 16NuuPVLQSMYKHghdzUPyP9hoJoBGXS6mz  new 0.00000000 btc
  m/0/0/0/002 15ADNaJS8FAbSnZCLMWNhFUkTkqoPQsmcw  new 0.00000000 btc
  m/0/0/0/003 1Gr9ScMHDCypHtm6s4cefJV5X86ZYp6JPY  new 0.00000000 btc
  m/0/0/0/004 1Gondqtjtnr6qnM1B95sTzB8e2bZVCScro  new 0.00000000 btc
  m/0/0/0/005 1Q6WmdbtzUL8WUSfEoQZMajvpqzLEcTLPk  new 0.00000000 btc
 change addresses m/0/0/1/
for mixdepth=0 balance=0.00000000btc
mixing depth 1 m/0/1/
 receive addresses m/0/1/0/
  m/0/1/0/000 1JrVNYKsWQQiJzHC22uTtLWmCCvpUep1yB  new 0.00000000 btc
  m/0/1/0/001 173ZLvNQ9esS7Ddkfo3NtHKGQjTETZzw8P  new 0.00000000 btc
  m/0/1/0/002 15o5Ak3kWcwy28A7NpJtcqJPzJmaibSKaY  new 0.00000000 btc
  m/0/1/0/003 1JGEtau4FUeih8MfVJYG87mA5PJWezEf6Y  new 0.00000000 btc
  m/0/1/0/004 17LyAfi1u6i5XqrFziooWbZeKfaKW4WCy9  new 0.00000000 btc
  m/0/1/0/005 1JBwG8mzSKyfxFz2iTKzTyzH8NzL9wWsir  new 0.00000000 btc
 change addresses m/0/1/1/
for mixdepth=1 balance=0.00000000btc
mixing depth 2 m/0/2/
 receive addresses m/0/2/0/
  m/0/2/0/000 1Q7bSxYrfGBUEbqsbhnvUiYu4o4ZGShxSm  new 0.00000000 btc
  m/0/2/0/001 1DjDQtxRZwRQVKvu5MfTuvoMD6dgYFqBky  new 0.00000000 btc
  m/0/2/0/002 1FUJF3RiBKKxq8AhNXukpJj2YMqWBazuz4  new 0.00000000 btc
  m/0/2/0/003 1JEDRBJDeKEA37cUVX1rdv5WAo8DG2PXoX  new 0.00000000 btc
  m/0/2/0/004 1MVQpC7ETqEXakopPF7otkpEfk26UskS2e  new 0.00000000 btc
  m/0/2/0/005 15ybA3aCJwh585nYZCoCQz9ASgPCJ6W3pk  new 0.00000000 btc
 change addresses m/0/2/1/
for mixdepth=2 balance=0.00000000btc
mixing depth 3 m/0/3/
 receive addresses m/0/3/0/
  m/0/3/0/000 13zGDXvLA7sSZHB5JksaMtbJHBWeyUQ6Qa  new 0.00000000 btc
  m/0/3/0/001 16Gc9TtTDJaY3Y2Mdw6UBjeVkDnNQBfWPc  new 0.00000000 btc
  m/0/3/0/002 1Ggm6LHv64aKmA6qoG58uxFCY4jnXWetEt  new 0.00000000 btc
  m/0/3/0/003 14C3uXaYReii7Fi4qMw4QfQ7iZRDUzEenZ  new 0.00000000 btc
  m/0/3/0/004 1JgSrLXZhDHWH8J4ZeqTdxrGWcVkHyVCdi  new 0.00000000 btc
  m/0/3/0/005 1KrhmczooTNSwai2c75fTFn5nZo9ioLJgv  new 0.00000000 btc
 change addresses m/0/3/1/
for mixdepth=3 balance=0.00000000btc
mixing depth 4 m/0/4/
 receive addresses m/0/4/0/
  m/0/4/0/000 15fKxHNATF2pBNAqZJHvEQjMxctrfWJuKD  new 0.00000000 btc
  m/0/4/0/001 1KBNnotK5EZdRZrbyPeR1xsYFYvvs9Uu1k  new 0.00000000 btc
  m/0/4/0/002 1BpKQb7PB84WmG2U9esyvpLam38SfmU52t  new 0.00000000 btc
  m/0/4/0/003 17xNQyQicwTMKHK8e3E65vy2uUhDnxRZyW  new 0.00000000 btc
  m/0/4/0/004 1DbKHu96ZkjRL4cNfMYuD8m5tgoQy1zSMd  new 0.00000000 btc
  m/0/4/0/005 1KwZYTuTzLoS6n6Z6Uxymfnvm5GpaErmZs  new 0.00000000 btc
 change addresses m/0/4/1/
for mixdepth=4 balance=0.00000000btc
total balance = 0.00000000btc


My bitcoin.conf

Code:

server=1
rpcuser=user
rpcpassword=password

proxy=127.0.0.1:9050


# Joinmarket
walletnotify=curl -sI --connect-timeout 1 http://localhost:62602/walletnotify?%s
alertnotify=curl -sI --connect-timeout 1 http://localhost:62602/alertnotify?%s


My cfg

Code:
#for instructions on bitcoin-rpc read https://github.com/chris-belcher/joinmarket/wiki/Running-JoinMarket-with-Bitcoin-Core-full-node 
network = mainnet
rpc_host = localhost
rpc_port = 8332
rpc_user = user
rpc_password = password

[MESSAGING]
host = irc.cyberguerrilla.org
channel = joinmarket-pit
port = 6697
usessl = true
socks5 = true
socks5_host = localhost
socks5_port = 9050
#for tor
#host = 6dvj6v5imhny3anf.onion
#port = 6697
#usessl = true
#socks5 = true
maker_timeout_sec = 30

[POLICY]
# for dust sweeping, try merge_algorithm = gradual
# for more rapid dust sweeping, try merge_algorithm = greedy
# for most rapid dust sweeping, try merge_algorithm = greediest
# but don't forget to bump your miner fees!
merge_algorithm = default



Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: tailsjoin on November 02, 2015, 05:42:17 AM
You need this at the top of your config:

Code:
[BLOCKCHAIN]
blockchain_source = bitcoin-rpc

Then you need to input your rpc user and pass in the correct spots of the file. Also I see you have "socks5=true", you should comment the line for the clearnet irc channel and uncomment the hidden service.

If you want to spend from your bitcoin core wallet then you need to use "--rpcwallet". Check the "--help" menu.

Here's a sample of my config:

Code:
[BLOCKCHAIN]
blockchain_source = bitcoin-rpc
# blockchain_source options: blockr, bitcoin-rpc, json-rpc, regtest
network = mainnet
rpc_host = 127.0.0.1
rpc_port = 8332
rpc_user = redacted
rpc_password = redacted

[MESSAGING]
#host = irc.cyberguerrilla.org
channel = joinmarket-pit
port = 6697
usessl = true
socks5 = true
socks5_host = 127.0.0.1
socks5_port = 9050
# for tor
host = 6dvj6v5imhny3anf.onion
#host = a2jutl5hpza43yog.onion
maker_timeout_sec = 90

[POLICY]
# merge_algorithm = greediest, greedy, gradual, default
merge_algorithm = default


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: cysive on November 02, 2015, 05:51:16 AM
You need this at the top of your config:

Code:
[BLOCKCHAIN]
blockchain_source = bitcoin-rpc


Ty. I skimmed right over that. I was just looking at the highlighted part after that. (In the wiki)

-C


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: waxwing on November 16, 2015, 09:42:10 PM
As of now, the use of libsecp256k1 has been merged into the latest version of the project.

Some notes:
1/ there's a big speedup of wallet access; it now takes basically no time to generate the list of addresses (there can still be slight delay if you access blockr to get balances, of course)
2/ hopefully this dramatically improves the safety of the code that does elliptic curve operations and generates and verifies bitcoin signatures (that's the main purpose, actually).
3/ A side-issue but very practically important: installing the project now consists mainly in running the script install.sh, if you are working on Ubuntu or Debian (including TAILS). Reports on other distros welcome. If on Windows, it shouldn't be enormously more problematic; I will update the wiki article about it tomorrow. Big thanks to arubi/@fivepiece on github for working on this part.
4/ There are also now binaries that you can run, instead of installing all the code and dependencies. They can be found in https://github.com/AdamISZ/JMBinary . Warning: this is experimental and has only been lightly tested. I highly doubt that there's some loss of funds risk here, but equally I can't promise anything about functionality. All I know is from my testing, it seems to work fine (and gains the same performance speedup as above). Read the notes in the README there. I will put pgp signatures on these files as a priority, although that of course means trusting me; you are most welcome not to use them :)

There are some other minor changes that don't really impact users (testing).

I've been running this code myself in the live pit for a couple of weeks, and it seems to be working well.



Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: waxwing on November 18, 2015, 09:38:03 AM
Due to several reports of either difficulties installing or not liking the install process, this (secp256k1 update, see the immediately previous post) has been removed from the master branch.

Anyone who has already started using it, don't worry, it's not a big deal either way. There is no problem with the code, just the installation. The minimum hassle will be to `git pull` again now, and it will revert back to the previous version.

Edit: branch is at https://github.com/chris-belcher/joinmarket/tree/secp256k1

We'd appreciate any help or suggestions on installation process improvement. I had thought that the installation was basically fully working for Linux and was going to refine it a bit for Windows, but it seems I was wrong.

Sorry!


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: giszmo on November 18, 2015, 05:14:55 PM
I had probelms with secp256k1 but after resolving them and having merged the master with my changes, I'm not happy about the revert, so I'd love to have a branch to follow for my local changes. Any estimates on how likely it will cause problems to base my work (a coinjoin proxy server) on that branch rather than the reverted master?


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: waxwing on November 18, 2015, 11:06:01 PM
I had probelms with secp256k1 but after resolving them and having merged the master with my changes, I'm not happy about the revert, so I'd love to have a branch to follow for my local changes. Any estimates on how likely it will cause problems to base my work (a coinjoin proxy server) on that branch rather than the reverted master?

Sorry for the mess. It's difficult to say, it shouldn't be a huge disaster from your end whether you work off one or the other. Focused on firefighting at the moment (our friendly spammer); would like to help you more.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: waxwing on November 19, 2015, 12:09:17 PM
https://www.reddit.com/r/joinmarket/comments/3tf950/a_tip_for_temporary_spam_blocking_for_yield/

dropping it here in case it helps anyone


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: waxwing on December 13, 2015, 08:40:09 PM
As above :)

https://www.reddit.com/r/joinmarket/comments/3wovqc/fee_handling_new_default_immediately_and_dynamic/


Title: [PSA] Yield Generators should stop using the Hidden Service
Post by: Adlai on December 15, 2015, 11:10:02 AM
It's always been the case that yield generators using Tor should connect to CGAN directly, rather than using the hidden service. Tor hidden services provide privacy for the server, which is irrelevant in our case: yield generators are still IRC clients, connecting to a server with known identity. Using the hidden service also incurs higher latency, as it requires a larger  (https://www.torproject.org/docs/hidden-services.html.en) number of Tor circuits.

There's a PR open (https://github.com/JoinMarket-Org/joinmarket/pull/362) which will ignore multiple liquidity offers from the same hostmask. Roughly speaking, the probability weighing for the hidden service will be shared between all liquidity connecting to it. Please do the profitable thing and move your liquidity to direct connections.

tl;dr: Yield generators can use Tor, but should not use the hidden service.


Title: Re: [PSA] Yield Generators should stop using the Hidden Service
Post by: tailsjoin on December 15, 2015, 05:47:04 PM
It's always been the case that yield generators using Tor should connect to CGAN directly, rather than using the hidden service. Tor hidden services provide privacy for the server, which is irrelevant in our case: yield generators are still IRC clients, connecting to a server with known identity. Using the hidden service also incurs higher latency, as it requires a larger  (https://www.torproject.org/docs/hidden-services.html.en) number of Tor circuits.

There's a PR open (https://github.com/JoinMarket-Org/joinmarket/pull/362) which will ignore multiple liquidity offers from the same hostmask. Roughly speaking, the probability weighing for the hidden service will be shared between all liquidity connecting to it. Please do the profitable thing and move your liquidity to direct connections.

tl;dr: Yield generators can use Tor, but should not use the hidden service.

This is fucking bullshit. Fuck this project, you are all a bunch of idiots without a shred of common sense amongst you. Good fucking bye.


Title: Re: [PSA] Yield Generators should stop using the Hidden Service
Post by: Adlai on December 15, 2015, 06:31:58 PM
It's always been the case that yield generators using Tor should connect to CGAN directly, rather than using the hidden service. Tor hidden services provide privacy for the server, which is irrelevant in our case: yield generators are still IRC clients, connecting to a server with known identity. Using the hidden service also incurs higher latency, as it requires a larger  (https://www.torproject.org/docs/hidden-services.html.en) number of Tor circuits.

This is fucking bullshit. Fuck this project, you are all a bunch of idiots without a shred of common sense amongst you. Good fucking bye.

Please aim your rhetoric at ideas rather than personalities.

Why do you think we should encourage people to use the hidden service?


Title: Re: [PSA] Yield Generators should stop using the Hidden Service
Post by: Anduck on December 20, 2015, 11:36:09 AM
This is fucking bullshit. Fuck this project, you are all a bunch of idiots without a shred of common sense amongst you. Good fucking bye.

I thought you're reasonable. Anyway, what is fucking bullshit? That you can use Tor wisely and someone instructs you how it works?


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: elm on December 21, 2015, 10:41:46 AM
could someone who is using coinjoin maker option explain ELI5 how to do it and how much they can earn? thank you



Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: Adlai on December 21, 2015, 01:32:07 PM
could someone who is using coinjoin maker option explain ELI5 how to do it and how much they can earn? thank you

ELI5: You read the fine wiki (http://"https://github.com/JoinMarket-Org/joinmarket/wiki/Running-a-Yield-Generator") and follow the instructions step by step. You may find the TailsJoin Installation Guide (http://"https://tailsjoin.github.io/guides/install_guide.html") clearer for the first steps, although it doesn't cover the yield generator.

As far as earnings go, the current situation suggests that you'll earn roughly the same amount as you'll spend on transaction fees. If you provide liquidity perpetually without ever initiating transactions yourself, you'll be lucky to net a single percent gain after a year.

Disclaimer: this back-of-the-envelope calculation was performed on a virtual envelope using invisible ink. I suggest you run a yield generator for a couple weeks and extrapolate from your own experience.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: elm on December 21, 2015, 03:03:40 PM
could someone who is using coinjoin maker option explain ELI5 how to do it and how much they can earn? thank you

ELI5: You read the fine wiki (http://"https://github.com/JoinMarket-Org/joinmarket/wiki/Running-a-Yield-Generator") and follow the instructions step by step. You may find the TailsJoin Installation Guide (http://"https://tailsjoin.github.io/guides/install_guide.html") clearer for the first steps, although it doesn't cover the yield generator.

As far as earnings go, the current situation suggests that you'll earn roughly the same amount as you'll spend on transaction fees. If you provide liquidity perpetually without ever initiating transactions yourself, you'll be lucky to net a single percent gain after a year.

Disclaimer: this back-of-the-envelope calculation was performed on a virtual envelope using invisible ink. I suggest you run a yield generator for a couple weeks and extrapolate from your own experience.

thanks a lot for taking the time to give this explanation. 1% after a year does not sound very attractive IMO



Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: Anduck on December 21, 2015, 08:30:14 PM
thanks a lot for taking the time to give this explanation. 1% after a year does not sound very attractive IMO

Well.. Note that you don't have to let others handle your bitcoins. This means you don't risk of some service running away with your money. Top 3 risks I can think of right now with Joinmarket are these, not in any particular order:

1. Yield generators wallet must be kept on online machine, as the bot needs to (or may need to) access it frequently. You could of course have yourself between the bot and the wallet but I guess that's hardly worth for the 1% gains per year. Especially when coinjoiners will not accept too long delays from yield generators.

2. Code errors. There might be a bug which could cause coin loss. After all the program is interacting with the Internet and complete strangers in there.

3. Regulation. Some goverments could rule that running yield generator is illegal as it attempts to hide the traces of the money flow. One could use Tor or such, though.

You don't need to trust some 3rd party service and their wallet management here to gain that 1%. Using some margin etc. services may get you a lot better interest but holding gets you 0%.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: elm on December 22, 2015, 12:03:45 PM
thanks a lot for taking the time to give this explanation. 1% after a year does not sound very attractive IMO

Well.. Note that you don't have to let others handle your bitcoins. This means you don't risk of some service running away with your money. Top 3 risks I can think of right now with Joinmarket are these, not in any particular order:

1. Yield generators wallet must be kept on online machine, as the bot needs to (or may need to) access it frequently. You could of course have yourself between the bot and the wallet but I guess that's hardly worth for the 1% gains per year. Especially when coinjoiners will not accept too long delays from yield generators.

2. Code errors. There might be a bug which could cause coin loss. After all the program is interacting with the Internet and complete strangers in there.

3. Regulation. Some goverments could rule that running yield generator is illegal as it attempts to hide the traces of the money flow. One could use Tor or such, though.

You don't need to trust some 3rd party service and their wallet management here to gain that 1%. Using some margin etc. services may get you a lot better interest but holding gets you 0%.

I like the idea of coinjoin. the top 3 risks you explained  sound very possible and risky to me

thank you for your opinion



Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: CoinBoerse.com on December 23, 2015, 02:14:01 AM
Man this looks great, I am going to give it a try.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: Financisto on December 30, 2015, 03:57:21 AM
A curiosity:

After beta period, Is the code/protocol for JoinMarket (I didn't review it) gonna be ready for scalability and adoption/mixing of ('most liquid') altcoins like Litecoin?


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: Adlai on December 30, 2015, 09:46:04 AM
After beta period, Is the code/protocol for JoinMarket (I didn't review it) gonna be ready for scalability and adoption/mixing of ('most liquid') altcoins like Litecoin?
  • There's no beta, JoinMarket works today.
  • It should work on any blockchain that is supported by libsecp256k1 or pybitcointools, and has a bitcoin-core-like API
  • I didn't review the code either, it's a horrible mess. Maybe you can clean it up while/insteadof porting it to your shitcoin of choice.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: belcher on January 23, 2016, 09:30:59 PM
Fairly serious bug that can crash all bots. Alert issued. Please update to v0.1.2

raedah discovered a bug that causes all bots in the channel to crash. It's quite a serious DOS. Anybody can shut down the market at any time. No money is at risk but we all need to update.

Here is the technical discussion on github. https://github.com/JoinMarket-Org/joinmarket/issues/400

See the release notes here: https://github.com/JoinMarket-Org/joinmarket/blob/master/doc/release-notes.md

Let us know if there are any problems.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: waxwing on January 28, 2016, 01:16:28 PM
New GUI tool, walkthrough at: https://github.com/AdamISZ/JMBinary/#walkthrough

Some extra comments on reddit: https://www.reddit.com/r/joinmarket/comments/4337fc/new_gui_qt_app_for_joinmarket_doing_sendpayment/


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: belcher on February 15, 2016, 10:04:13 PM
Do not make any coinjoin transactions if you're running sendpayment.py or tumbler.py. Your coins are at risk if you do. Please update to the newest release v0.1.3

Malte discovered a bug where a race condition can be used by market makers to take more bitcoins in fees than previously advertised. The maker does not know exactly how much to coins the taker has, so its unlikely that all coins would be lost, but it's still a very serious bug that requires takers to update.

See the release notes here: https://github.com/JoinMarket-Org/joinmarket/blob/master/doc/release-notes.md

Here is the fix commit, it makes the orderbook database only be queried once instead of twice: https://github.com/JoinMarket-Org/joinmarket/commit/508d65f9a9c3f7ad7c542e11d19148c91b89e943

Let us know if there are any problems.

Malte has shown ethical behavior in telling me about this bug in private and giving time for it to be fixed. Ethical behavour should be rewarded, so for that reason I post his donation address here 1Gs6tTFQgWLngps5kfPg6TKoPfGA4GXdXg.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: waxwing on February 16, 2016, 12:56:28 AM
JoinmarketQt updated to reflect the above: https://github.com/JoinMarket-Org/JMBinary/releases/tag/v3-0.1.3


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: belcher on March 08, 2016, 01:04:39 AM
Please complete this questionnaire on how you use JoinMarket. (Should take only 60 seconds)

http://surveynuts.com/surveys/take?id=57841&c=716997053JRPF


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: belcher on March 10, 2016, 08:57:41 PM
If you use the tor hidden service 6dvj6v5imhny3anf.onion then please change to use port 6698.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: ilpirata79 on March 21, 2016, 08:16:07 PM
How does this compare with darkwallet?


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: Adlai on March 22, 2016, 09:09:43 AM
How does this compare with darkwallet?

It's not possible to "invest" in DarkWallet.

JoinMarket lets you invest your held coins in a wallet which performs coinjoins with those who are willing to compensate you for the risk of using a hot wallet.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: King Buzz on March 30, 2016, 07:09:05 PM
looking fine and dandy...   will follow..   :}


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: wormat22 on March 30, 2016, 07:40:59 PM
What's the ROI generally on coins held in this wallet if you use the yield generator?


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: Sukrim on March 31, 2016, 08:56:03 AM
You have to decide on prices and compete with others on the market.

Generally for me it is too low, but higher usage (more people mixing coins) might drive it up enough to be worth considering putting BTC in a hot wallet.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: wormat22 on March 31, 2016, 11:18:20 PM
You have to decide on prices and compete with others on the market.

Generally for me it is too low, but higher usage (more people mixing coins) might drive it up enough to be worth considering putting BTC in a hot wallet.

How low is low?


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: belcher on April 05, 2016, 05:23:36 PM
There is this script I've been working on that works out your historical effective interest rate.
https://github.com/JoinMarket-Org/joinmarket/pull/484

Me and some people who've been running for a long time get a value of about 0.7% per annum, but people who started more recently (presumably when transaction volume rose) report values of 3% or so. Also that script has bugs I can't seem to figure out so the real values might be different.

But yes if you want a get-rich-quick scheme of 100% earned per week guaranteed ;) , then JoinMarket is not for you.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: jod_doj on April 05, 2016, 07:09:01 PM
thats a pretty great service i think but as far as i understood one of your biggest aims in order to help people is to make their transaction fees a bit lower, though i dont think there will be a need to do that if there will be a block size increase, in this way the fees would go down once again to normal rates


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: dooglus on April 05, 2016, 08:08:40 PM
as far as i understood one of your biggest aims in order to help people is to make their transaction fees a bit lower

Joinmarket is not at all about reducing transaction fees.

Take your off-topic big-block propaganda elsewhere please.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: wormat22 on April 06, 2016, 02:13:41 AM
There is this script I've been working on that works out your historical effective interest rate.
https://github.com/JoinMarket-Org/joinmarket/pull/484

Me and some people who've been running for a long time get a value of about 0.7% per annum, but people who started more recently (presumably when transaction volume rose) report values of 3% or so. Also that script has bugs I can't seem to figure out so the real values might be different.

But yes if you want a get-rich-quick scheme of 100% earned per week guaranteed ;) , then JoinMarket is not for you.

3% per year? I could just invest in a S&P mutual fund tracker if I wanted to make that much.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: Financisto on April 08, 2016, 04:21:18 AM
Low risk <--> Low return

No exceptions here...


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: giszmo on April 10, 2016, 11:42:58 PM
3% per year? I could just invest in a S&P mutual fund tracker if I wanted to make that much.

I wonder how you can track bitcoin and S&P at the same time though. For me, selling bitcoins to put them into whatever other economic opportunity feels stupid for me, as I'm so bullish on Bitcoin. Earning 3% on bitcoin savings though sounds great.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: Mythoughts on April 17, 2016, 09:01:52 AM
My patientsendpayments seems to crash every time someone actually tries to initiate a transaction.
First I assumed there might have been some communication problem, but now this has happend two times in a row making that reason unlikely.

Running Debian Jessy, Joinmarket with bitcoind, both over TOR. Start command:
python patientsendpayment.py -f 5000 -w 48 -c 5000 wallet.json 1000000 <targetaddress>

There's >0.1btc in mixing level 0 of the wallet, the payment to be sent was 0.01 btc.

Debug log:

Code:
2016-04-17 10:45:42,171 [MainThread  ] [DEBUG]  new cjorder nick=TakerNickName oid=0 amount=279749
2016-04-17 10:45:42,171 [MainThread  ] [DEBUG]  get_utxos_by_mixdepth =
{0: {u'<removed_for_privacy>:1': {'address': u'<removed_for_privacy>',
                                                                             'value': 12000000}}}
2016-04-17 10:45:42,171 [MainThread  ] [DEBUG]  for mixdepth=0 amount=279749 selected:
2016-04-17 10:45:42,171 [MainThread  ] [DEBUG]  [{'utxo': u'<removed_for_privacy>:1',
  'value': 15000000}]
2016-04-17 10:45:42,196 [MainThread  ] [DEBUG]  maker utxos = {u'<removed_for_privacy>:1': {'address': u'<removed_for_privacy>',
                                                                         'value': 12000000}}
2016-04-17 10:45:42,362 [MainThread  ] [DEBUG]  >>privmsg nick=TakerNickName cmd=pubkey msg=<removed_for_privacy>
2016-04-17 10:45:45,301 [MainThread  ] [DEBUG]  <<privmsg nick=TakerNickName message=!auth 03bc3d29583d621e16a56c13992d52fe1635e09e51bd525feac71c5c00344eb740 GztJJT/Hvp5qHqN2uEgrIgP5vsa1JR6THbN/uN94V8Zh/r7DzETP0kgVA5QXGwlIoejTzvgzegT5JT1AEhQ9+XI=
2016-04-17 10:45:45,317 [MainThread  ] [DEBUG]  CRASHING, DUMPING EVERYTHING
2016-04-17 10:45:45,317 [MainThread  ] [DEBUG]  Class debug dump, name:Wallet
2016-04-17 10:45:45,317 [MainThread  ] [DEBUG]  key=unspent
2016-04-17 10:45:45,317 [MainThread  ] [DEBUG]  {u'<removed_for_privacy>:1': {'address': u'<removed_for_privacy>',
                                                                         'value': 12000000}}
2016-04-17 10:45:45,317 [MainThread  ] [DEBUG]  key=gaplimit
2016-04-17 10:45:45,318 [MainThread  ] [DEBUG]  6
2016-04-17 10:45:45,318 [MainThread  ] [DEBUG]  key=index
2016-04-17 10:45:45,318 [MainThread  ] [DEBUG]  [[2, 1]]
2016-04-17 10:45:45,318 [MainThread  ] [DEBUG]  key=index_cache
2016-04-17 10:45:45,318 [MainThread  ] [DEBUG]  [[2, 1]]
2016-04-17 10:45:45,318 [MainThread  ] [DEBUG]  key=spent_utxos
2016-04-17 10:45:45,318 [MainThread  ] [DEBUG]  []
2016-04-17 10:45:45,318 [MainThread  ] [DEBUG]  key=utxo_selector
2016-04-17 10:45:45,318 [MainThread  ] [DEBUG]  <function select at 0x7f88a56b0b18>
2016-04-17 10:45:45,318 [MainThread  ] [DEBUG]  key=path
2016-04-17 10:45:45,318 [MainThread  ] [DEBUG]  string: len:19
2016-04-17 10:45:45,318 [MainThread  ] [DEBUG]  wallets/wallet.json
2016-04-17 10:45:45,319 [MainThread  ] [DEBUG]  key=storepassword
2016-04-17 10:45:45,319 [MainThread  ] [DEBUG]  False
2016-04-17 10:45:45,319 [MainThread  ] [DEBUG]  key=max_mix_depth
2016-04-17 10:45:45,319 [MainThread  ] [DEBUG]  1
2016-04-17 10:45:45,319 [MainThread  ] [DEBUG]  key=imported_privkeys
2016-04-17 10:45:45,319 [MainThread  ] [DEBUG]  {}
Traceback (most recent call last):
  File "patientsendpayment.py", line 241, in main
    irc.run()
  File "/home/username/joinmarket-develop/joinmarket/irc.py", line 657, in run
    self.__handle_line(line)
  File "/home/username/joinmarket-develop/joinmarket/irc.py", line 540, in __handle_line
    self.__handle_privmsg(_chunks[0], _chunks[2], get_irc_text(line))
  File "/home/username/joinmarket-develop/joinmarket/irc.py", line 491, in __handle_privmsg
    self.__on_privmsg(nick, parsed)
  File "/home/username/joinmarket-develop/joinmarket/irc.py", line 377, in __on_privmsg
    self.on_seen_auth(nick, i_utxo_pubkey, btc_sig)
  File "/home/username/joinmarket-develop/joinmarket/maker.py", line 253, in on_seen_auth
    self.active_orders[nick].auth_counterparty(nick, pubkey, sig)
  File "/home/username/joinmarket-develop/joinmarket/maker.py", line 96, in auth_counterparty
    btc_pub = btc.privtopub(btc_key)
  File "/home/username/joinmarket-develop/bitcoin/main.py", line 280, in privkey_to_pubkey
    f = get_privkey_format(privkey)
  File "/home/username/joinmarket-develop/bitcoin/main.py", line 191, in get_privkey_format
    elif len(priv) == 32: return 'bin'
TypeError: object of type 'NoneType' has no len()
done


Edit:
New entries in the bitcoind-debug.log as well. This I've also not seen before I I started using Joinmarkt... google didnt help with that error message:
Code:
2016-04-17 11:41:45 AddToWallet <removed_for_privacy>  update
2016-04-17 11:41:45 runCommand error: system(curl -sI --connect-timeout 1 http://localhost:62602/walletnotify?<removed_for_privacy>) returned 1792


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: domob on April 17, 2016, 12:30:54 PM
My patientsendpayments seems to crash every time someone actually tries to initiate a transaction.
First I assumed there might have been some communication problem, but now this has happend two times in a row making that reason unlikely.

I had the same issue some time ago - the short answer is that the JoinMarket protocol requires you to have the target address of a join in your wallet.  I. e., patientsendpayment only works if you send to yourself, and then only if you import the target address into your JoinMarket wallet.  I think there is some incentive to change the protocol to make it work as originally envisioned, but I don't think that actual work is already done on that.

In my case, this was not much of an issue, since I wanted to use that for internal wallet restructuring and sent to myself.  Importing the target address' private key into JoinMarket made it work.  Not sure if that is an option for you, though.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: Mythoughts on April 18, 2016, 07:28:52 PM

I had the same issue some time ago - the short answer is that the JoinMarket protocol requires you to have the target address of a join in your wallet.  I. e., patientsendpayment only works if you send to yourself, and then only if you import the target address into your JoinMarket wallet.  I think there is some incentive to change the protocol to make it work as originally envisioned, but I don't think that actual work is already done on that.

Thanks, that's good to know.

I've also talked to belcher about this error from bitcoind's debug.log:

Quote
2016-04-17 11:41:45 AddToWallet <removed_for_privacy>  update
2016-04-17 11:41:45 runCommand error: system(curl -sI --connect-timeout 1 http://localhost:62602/walletnotify?<removed_for_privacy>) returned 1792

This occurs when a new transaction is detected, which was sent externally (e.g. not part of a joinmarket-transaction) to the joinmarket-wallet. This error can safely be ignored. If a yield-generator is running, he won't see the funds though until restarted.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: belcher on April 27, 2016, 11:22:53 AM
Please complete this questionnaire on how you use JoinMarket. (Should take only 60 seconds)

http://surveynuts.com/surveys/take?id=57841&c=716997053JRPF

The results are here:

https://surveynuts.com/surveys/admin?id=57841&stoken=8933114612517&section=results

Thanks to everyone who answered!


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: belcher on May 04, 2016, 01:24:35 AM
JoinMarket v0.1.4 released!

https://github.com/JoinMarket-Org/joinmarket/blob/master/doc/release-notes-0.1.4.md


We will be signing our git commits.

You can check them like this link (https://www.mail-archive.com/bitcoin-development@lists.sourceforge.net/msg05467.html)

Import my GPG public key (https://www.reddit.com/r/publickeyexchange/comments/3ti8vp/ubelcher_s_public_key/) (do the same for other developers like waxwing)

Clone the repository and verify

Code:
    $ git clone https://github.com/JoinMarket-Org/joinmarket.git my-joinmarket-folder
    $ cd my-joinmarket-folder
    $ git log --show-signature

It should show

Code:
    commit f169351c1dc8e9b485f4b00366fc8f94b1773e0a
    gpg: Signature made Wed 04 May 2016 01:50:53 BST using RSA key ID 77F31129
    gpg: Good signature from "Chris Belcher <false@email.com>"
    Merge: d1092f5 809b654
    Author: chris-belcher <chris-belcher@users.noreply.github.com>
    Date:   Wed May 4 01:50:45 2016 +0100

git commits are a chain of hashes, so one signed commit at the top is enough to verify all the ones below it.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: superresistant on May 04, 2016, 06:51:45 PM
 
Congrats for the new version.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: 2c0de on May 04, 2016, 08:22:43 PM
Maker broadcast, Bitcoin crypto, will surely join some join.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: waxwing on May 05, 2016, 06:45:09 PM
Joinmarket-Qt update to the new version: https://github.com/JoinMarket-Org/JMBinary/releases

, plus some bits and pieces mentioned in the reddit comment here:

https://www.reddit.com/r/joinmarket/comments/4hsaz9/joinmarket_v014_released/d2u4xv8


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: belcher on May 20, 2016, 08:24:39 PM
JoinMarket v0.1.4 has a new feature that calculates your effective interest rate from running a yield generator, as though it was a bank account.

https://github.com/JoinMarket-Org/joinmarket/blob/master/doc/release-notes-0.1.4.md#wallet-history

To use, configure JoinMarket to use a Bitcoin node as a method of accessing the blockchain and run:

Code:
python wallet-tool.py wallet.json history

It takes into account all your deposits and withdrawals, so it should calculate the rate even if you were adding to your wallet or spending from it.

For my own yield generator wallet the figure is 0.67% per annum. I've been running it since the very start including when very few people used JoinMarket, so you can expect my yield to be on the low end.

grubles tried this and got 3.2% as an effective interest rate. I assume he's been running it for less time.

Whats your yield ?



https://www.reddit.com/r/joinmarket/comments/4hwwa0/calculate_your_yield_generators_perannum_return/

I'm aiming to get more people running yield generators.

Riding the pump-and-dump rollercoaster of Eth/TheDAO and similar is ultra high risk/reward, JoinMarket is more aiming for the slow and steady winning the race.

Earning about 1% per annum in a deflationary currency with basically zero risk where you can withdraw your money at any time must be unique in the cryptocurrency space.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: danda on May 28, 2016, 12:19:14 AM
Hi, I found the output of wallet-tool.py hard to read so I made a patch that formats the output into text tables with borders.

Here's a very basic example:

Code:
+-----------+---------------+
| Mix Depth | Balance       |
+-----------+---------------+
|         0 | 0.34898343btc |
|         1 | 0.23468934btc |
|         2 | 0.23123434btc |
|         3 | 0.82397493btc |
|         4 | 0.22356223btc |
+-----------+---------------+
| total:    | 1.84839232btc |
+-----------+---------------+

Wallet addrs and history are also in tables.

Pull request is here:  
https://github.com/JoinMarket-Org/joinmarket/pull/539

If anyone wishes to try it before the pull request is approved, you could clone from my repo at:
https://github.com/dan-da/joinmarket


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: belcher on May 29, 2016, 02:33:56 PM
The JoinMarket IRC channel so far was hosted on freenode, which is very unfriendly to tor users.

So I've set up an IRC relaying bot between the freenode channel and a channel on cyberguerrilla which is far more friendly to tor.

Tor Details:

Code:
channel = #joinmarket
host = 6dvj6v5imhny3anf.onion
port = 6697
ssl enabled


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: twinkletoes007 on June 06, 2016, 03:14:28 AM
Looks like  alot of the bumps are getting smoothed out along with more volume. Steep learning curve but im catching on.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: danda on June 07, 2016, 05:12:39 PM
In the spirit of "Coinjoin that people will actually use", I'm wondering if any of the regular bitcoin wallets have integrated joinmarket, or have announced any plans to do so?

Along these lines...

Is there a joinmarket API that would make it straightforward for a wallet to integrate?

Has any effort been made to approach wallet makers?

If not, perhaps we should open issues requesting joinmarket support on their respective github pages.



Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: belcher on June 09, 2016, 10:44:58 PM
In the spirit of "Coinjoin that people will actually use", I'm wondering if any of the regular bitcoin wallets have integrated joinmarket, or have announced any plans to do so?

Along these lines...

Is there a joinmarket API that would make it straightforward for a wallet to integrate?

Has any effort been made to approach wallet makers?

If not, perhaps we should open issues requesting joinmarket support on their respective github pages.



IMO joinmarket is at too early of a stage for this, there are still a few problems that would be nice to fix before anything happens.
Right now it seems most of the adoption comes from people using the tumbler script.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: waxwing on June 10, 2016, 07:25:12 AM
The JoinMarket IRC channel so far was hosted on freenode, which is very unfriendly to tor users.

So I've set up an IRC relaying bot between the freenode channel and a channel on cyberguerrilla which is far more friendly to tor.

Tor Details:

Code:
channel = #joinmarket
host = 6dvj6v5imhny3anf.onion
port = 6697
ssl enabled

Just for clarification: this is referring to the IRC channel we use to *chat*, not the IRC channel(s) we use for joinmarket orders/joining activity (what we call the "pit" like trading pit).


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: waxwing on June 10, 2016, 07:47:10 AM
In the spirit of "Coinjoin that people will actually use", I'm wondering if any of the regular bitcoin wallets have integrated joinmarket, or have announced any plans to do so?

Along these lines...

Is there a joinmarket API that would make it straightforward for a wallet to integrate?

Has any effort been made to approach wallet makers?

If not, perhaps we should open issues requesting joinmarket support on their respective github pages.



IMO joinmarket is at too early of a stage for this, there are still a few problems that would be nice to fix before anything happens.
Right now it seems most of the adoption comes from people using the tumbler script.

First, for danda, it's worth noting that this has been very extensively investigated/discussed for more than a year. Also worth noting is that, to the surprise of no one, when Joinmarket was first widely announced in public, the most common response was "please make this appear in my wallet, or at least in some wallet". Again, I emphasize: to the surprise of no one, we know that that's what people prefer.

Second, w.r.t belcher's "too early a stage": it's difficult to make a general statement. It's true that there are aspects of how joinmarket works that can make it awkward to integrate it into a wallet; things like, HD structure (mixdepths, see below), approach to E2E encryption of messages, code language, packaging etc. But I don't think there's some fundamental problem making it impossible, especially if you restrict the scope, and especially if the wallet code has its own model for integration.

Which brings me to:

For those reading who are interested in such things (wallet integrations), let me point you at: https://www.reddit.com/r/joinmarket/comments/4m1b7r/requesting_linux_testers_for_an_experimental/ which links to an Electrum plugin for testing. Install is multi-step (but not complex) for reasons described in the post, but if anyone here's willing to give it a test would appreciate it. It allows the creation of coinjoins (sendpayments) directly from your Electrum wallet (only "Standard" type).

I've gotten only 1 person so far after more than a week who even installed it, which is disappointing after *so* many requests in the early days to do an Electrum plugin.

Electrum accounts within a standard BIP32 HD wallet are exactly like Joinmarket mixdepths, so a natural extension to that plugin (which for now just does sendpayment) is to implement that, and eventually I'd hope, something like tumbler could be programmed (mixdepths->accounts). Obviating the need for any separate wallet management for *users* of Joinmarket (takers). Providers, i.e. makers, should be using Core and joinmarket's own wallet and script set up probably (although there is the dream of passively acting as maker from your own wallet, maybe that's possible too).


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: dserrano5 on June 15, 2016, 03:50:20 PM
For those reading who are interested in such things (wallet integrations), let me point you at: https://www.reddit.com/r/joinmarket/comments/4m1b7r/requesting_linux_testers_for_an_experimental/ which links to an Electrum plugin for testing. Install is multi-step (but not complex) for reasons described in the post, but if anyone here's willing to give it a test would appreciate it. It allows the creation of coinjoins (sendpayments) directly from your Electrum wallet (only "Standard" type).

I've gotten only 1 person so far after more than a week who even installed it, which is disappointing after *so* many requests in the early days to do an Electrum plugin.

I keep a tab in my browser for this thread and refresh it from time to time. I just read this.

The installation is easy. I applied the patch with vim instead of patch :), there was some offset (line 1194 instead of 1212). Now I guess I should fund any of the addresses that was written to stdout upon electrum startup and then, just make any payment? (I'll play with it nevertheless later today but I thought I could post anything to show interest, and then I thought I could put a dumb question at the end :)).


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: dserrano5 on June 15, 2016, 08:05:58 PM
and then, just make any payment?

Hmm, there must be something else. In the preferences I ticked "View transaction before signing" and it's a regular tx, no CJ apparently involved. I can't tell whether the plugin was loaded or not.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: waxwing on June 16, 2016, 01:46:53 AM
and then, just make any payment?

Hmm, there must be something else. In the preferences I ticked "View transaction before signing" and it's a regular tx, no CJ apparently involved. I can't tell whether the plugin was loaded or not.

Go to Tools->Plugins, if Joinmarket isn't there it hasn't installed properly, if it is, check the checkbox and it should create a Joinmarket tab.

Thanks for taking a look!


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: dserrano5 on June 16, 2016, 07:34:33 PM
Go to Tools->Plugins, if Joinmarket isn't there it hasn't installed properly, if it is, check the checkbox and it should create a Joinmarket tab.

Yes, that was already done but no tab. I just restarted electrum just in case and still no tab. Python is not my native language but I can easily tinker with it. Any file/function that is worthwhile to take a look or insert debug stmts into?

Thanks for giving support :)


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: waxwing on June 17, 2016, 12:45:41 PM
dserrano:

Thanks, here's the list of instructions, I guess you followed these? Which OS? If you did, did all the steps seem to work correctly?

https://github.com/AdamISZ/electrum-joinmarket-plugin


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: mattrk on June 17, 2016, 08:06:29 PM
Quick question: Was the IRC server down or have trouble yesterday? If so, what happened?

I had my first experience with JoinMarket yesterday morning. I decided to tumble some coins using the tumbler.py script. I started it and went to bed. When i woke up, the script was just trying to reconnect to the IRC server over and over getting a connection timed out error 110. I tried a lot of stuff but nothing worked. I could connect to the IRC server manually with HexChat but none of the scripts would. I checked again this morning and it's back up and running. I'm just curious what happened. I joined the #JoinMarket channel on FreeNode and saw 3 or 4 other people ask if the server was down but no one responded.

Thanks!


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: dserrano5 on June 18, 2016, 10:11:31 AM
dserrano:

Thanks, here's the list of instructions, I guess you followed these? Which OS? If you did, did all the steps seem to work correctly?

https://github.com/AdamISZ/electrum-joinmarket-plugin

Thanks for your help on IRC. For the record, I just created a new wallet in electrum (new window) and the joinmarket tab was visible there. Tx 2fb75d6714c81e1f133cbc458bd149aa9cf655002b9438ff9f6ea0d379f26db1 was done with this plugin. Yay!


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: CohibAA on June 19, 2016, 04:56:17 PM
Quick question: Was the IRC server down or have trouble yesterday? If so, what happened?

I had my first experience with JoinMarket yesterday morning. I decided to tumble some coins using the tumbler.py script. I started it and went to bed. When i woke up, the script was just trying to reconnect to the IRC server over and over getting a connection timed out error 110. I tried a lot of stuff but nothing worked. I could connect to the IRC server manually with HexChat but none of the scripts would. I checked again this morning and it's back up and running. I'm just curious what happened. I joined the #JoinMarket channel on FreeNode and saw 3 or 4 other people ask if the server was down but no one responded.

Thanks!

The IRC pit was down for 8 hours or so yesterday.  Seems to be back up and working now.

There are some solutions being work on, such as this PR (https://github.com/JoinMarket-Org/joinmarket/pull/568).



Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: ABISprotocol on June 19, 2016, 08:50:22 PM
In the spirit of "Coinjoin that people will actually use", I'm wondering if any of the regular bitcoin wallets have integrated joinmarket, or have announced any plans to do so?

Along these lines...

Is there a joinmarket API that would make it straightforward for a wallet to integrate?

Has any effort been made to approach wallet makers?

If not, perhaps we should open issues requesting joinmarket support on their respective github pages.



IMO joinmarket is at too early of a stage for this, there are still a few problems that would be nice to fix before anything happens.
Right now it seems most of the adoption comes from people using the tumbler script.

First, for danda, it's worth noting that this has been very extensively investigated/discussed for more than a year. Also worth noting is that, to the surprise of no one, when Joinmarket was first widely announced in public, the most common response was "please make this appear in my wallet, or at least in some wallet". Again, I emphasize: to the surprise of no one, we know that that's what people prefer.

Second, w.r.t belcher's "too early a stage": it's difficult to make a general statement. It's true that there are aspects of how joinmarket works that can make it awkward to integrate it into a wallet; things like, HD structure (mixdepths, see below), approach to E2E encryption of messages, code language, packaging etc. But I don't think there's some fundamental problem making it impossible, especially if you restrict the scope, and especially if the wallet code has its own model for integration.

Which brings me to:

For those reading who are interested in such things (wallet integrations), let me point you at: https://www.reddit.com/r/joinmarket/comments/4m1b7r/requesting_linux_testers_for_an_experimental/ which links to an Electrum plugin for testing. Install is multi-step (but not complex) for reasons described in the post, but if anyone here's willing to give it a test would appreciate it. It allows the creation of coinjoins (sendpayments) directly from your Electrum wallet (only "Standard" type).

I've gotten only 1 person so far after more than a week who even installed it, which is disappointing after *so* many requests in the early days to do an Electrum plugin.

Electrum accounts within a standard BIP32 HD wallet are exactly like Joinmarket mixdepths, so a natural extension to that plugin (which for now just does sendpayment) is to implement that, and eventually I'd hope, something like tumbler could be programmed (mixdepths->accounts). Obviating the need for any separate wallet management for *users* of Joinmarket (takers). Providers, i.e. makers, should be using Core and joinmarket's own wallet and script set up probably (although there is the dream of passively acting as maker from your own wallet, maybe that's possible too).


So... I just heard about this (the electrum joinmarket plugin to help people do the CoinJoin (JoinMarket) more easily):

https://github.com/AdamISZ/electrum-joinmarket-plugin (https://github.com/AdamISZ/electrum-joinmarket-plugin)

Thank you, and I'm going to try this very soon (within the next few days).

I've also just posted it to my diaspora:  https://diasp.org/posts/5743008 (https://diasp.org/posts/5743008)

-ABISprotocol



Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: number222222222222 on June 25, 2016, 03:43:50 PM
Okay I have installed conjoin. I got the tumbler to work. I am running the basic-yield generator. Can someone please tell me why my Nickname, the random generated one does not appear on the order page https://joinmarket.me/ob/?btcunit=satoshi&relunit=%25

This is really driving me nuts, it says its running but I never appear on the order board?


 python yield-generator-basic.py wallet.json
2016-06-25 17:16:18,915 [MainThread  ] [DEBUG]  hello joinmarket
Generated random nickname: Nickname
Enter wallet decryption passphrase:
2016-06-25 17:16:28,691 [MainThread  ] [DEBUG]  requesting wallet history
2016-06-25 17:16:28,896 [MainThread  ] [DEBUG]  rpc: getaddressesbyaccount ['joinmarket-wallet-69032d']
2016-06-25 17:16:28,898 [MainThread  ] [DEBUG]  rpc: listtransactions ['joinmarket-wallet-69032d', 1000, 0, True]
2016-06-25 17:16:29,112 [MainThread  ] [DEBUG]  rpc: listunspent []
2016-06-25 17:16:29,113 [MainThread  ] [DEBUG]  bitcoind sync_unspent took 0.00168013572693sec
2016-06-25 17:16:29,113 [MainThread  ] [DEBUG]  starting yield generator
2016-06-25 17:16:29,114 [MainThread  ] [DEBUG]  get_utxos_by_mixdepth =
{0: {},
 1: {u'': {'address': u'',
                                                                             'value': 942906},
     u':3': {'address': u'',
                                                                             'value': 1279559},
     u':1': {'address': u'',
                                                                             'value': 1299660},
     u':4': {'address': u'',
                                                                             'value': 2479570},
     u':8': {'address': u'',
                                                                             'value': 760543}},
 2: {u'0:4': {'address': u'',
                                                                             'value': 2881651}},
 3: {},
 4: {}}
2016-06-25 17:16:29,115 [MainThread  ] [DEBUG]  connecting to irc
2016-06-25 17:16:29,116 [PingThread  ] [DEBUG]  starting ping thread
2016-06-25 17:16:29,116 [MainThread  ] [DEBUG]  connecting
2016-06-25 17:16:29,117 [ThrottleThre] [DEBUG]  starting throttle thread
2016-06-25 17:16:31,995 [MainThread  ] [DEBUG]  Connected to IRC and joined channel
2016-06-25 17:16:44,420 [MainThread  ] [DEBUG]  <<pubmsg nick=Pilaqobuf message=!orderbook
2016-06-25 17:17:08,168 [MainThread  ] [DEBUG]  <<pubmsg nick=Gijavivet message=!relorder 1 416666 16002770 0 4.8e-06!relorder 2 16002770 31760615 0 1.59e-05!relorder 3 31760615 47518461 0 2.7e-05!relorder 4 47518461 79034152 0 3.81e-05!relorder 5 79034152 126307690 0 6.03e-05!relorder 6 126307690 205096918 0 9.36e-05 ~
2016-06-25 17:17:52,093 [MainThread  ] [DEBUG]  <<pubmsg nick=Gijavivet message=!relorder 1 416666 21516964 0 4.8e-06!relorder 2 21516964 42789003 0 1.59e-05!relorder 3 42789003 64061043 0 2.7e-05!relorder 4 64061043 106605122 0 3.81e-05!relorder 5 106605122 170421241 0 6.03e-05!relorder 6 170421241 276781439 0 9.36e-05 ~
2016-06-25 17:18:19,579 [MainThread  ] [DEBUG]  <<pubmsg nick=Babucozoj message=!absorder 0 296143 444443 0 1!relorder 1 444444 6061708 0 4.5e-06!relorder 2 6061708 11827273 0 7.5e-06!relorder 3 11827273 17592838 0 1.05e-05!relorder 4 17592838 29123967 0 1.34e-05!relorder 5 29123967 46420662 0 1.94e-05!relorder 6 46420662 75248486 0 2.84e-05 ~
2016-06-25 17:20:58,181 [MainThread  ] [DEBUG]  <<pubmsg nick=Zinucezur message=!orderbook
2016-06-25 17:20:59,379 [MainThread  ] [DEBUG]  <<pubmsg nick=Higipiweg message=!cancel 2
2016-06-25 17:21:02,370 [MainThread  ] [DEBUG]  <<pubmsg nick=Higipiweg message=!absorder 1 2730 6390 0 1473!relorder 3 6391 8410 0 0.2009067469!absorder 4 8411 12134 0 1473!relorder 5 12135 17149 0 0.1021058897!absorder 6 17150 39693 0 1474!relorder 8 39694 62618 0 0.0296024038!relorder 9 62619 91333 0 0.0195171794!relorder 10 91334 139496 0 0.0130852439!absorder 11 139497 218783 0 1478!relorder 12 218784 323955 0 0.0055622594!relorder 13 323956 462405 0 0.0038359988 ~
2016-06-25 17:21:02,376 [MainThread  ] [DEBUG]  <<pubmsg nick=Higipiweg message=!relorder 14 462406 662579 0 0.0026907166!absorder 15 662580 859067 0 1490!absorder 16 859068 1259426 0 1497!relorder 17 1259427 1956707 0 0.0009618045!absorder 18 1956708 2840999 0 1513!absorder 19 2841000 3820020 0 1522!absorder 20 3820021 5005549 0 1531!relorder 21 5005550 7712623 0 0.0002491914!relorder 22 7712624 11842021 0 0.0001649509!absorder 23 11842022 15070195 0 1606!absorder 24 15070196 20000623 0 1629 ~
2016-06-25 17:21:02,557 [MainThread  ] [DEBUG]  <<pubmsg nick=Higipiweg message=!absorder 25 20000624 27041810 0 1667!relorder 26 27041811 40498278 0 5.2098e-05!absorder 27 40498279 54944228 0 1813!absorder 28 54944229 80225141 0 2076!absorder 29 80225142 119976688 0 2023!relorder 30 119976689 152662768 0 1.60826e-05!absorder 31 152662769 236102437 0 2382!relorder 32 236102438 366476052 0 9.1479e-06!relorder 33 366476053 505212637 0 7.0513e-06!absorder 34 505212638 781748833 0 3590 ~
2016-06-25 17:21:02,558 [MainThread  ] [DEBUG]  <<pubmsg nick=Higipiweg message=!relorder 35 781748834 1166047271 0 4.5465e-06!absorder 36 1166047272 1687411139 0 5114!relorder 37 1687411140 2308567595 0 3.0713e-06!relorder 38 2308567596 3417586312 0 2.6409e-06!absorder 39 3417586313 4373571233 0 8868!relorder 40 4373571234 5642314089 0 2.0845e-06!absorder 41 5642314090 8326481367 0 12612!absorder 42 8326481368 11934076929 0 16103!absorder 43 11934076930 17145836577 0 20277 ~
2016-06-25 17:21:02,558 [MainThread  ] [DEBUG]  <<pubmsg nick=Higipiweg message=!absorder 44 17145836578 24277464656 0 25716!relorder 45 24277464657 27525019344 0 1.1173e-06 ~
2016-06-25 17:22:24,129 [MainThread  ] [DEBUG]  <<pubmsg nick=Cusunonaf message=!orderbook
2016-06-25 17:23:47,777 [MainThread  ] [DEBUG]  <<pubmsg nick=Harenuzef message=!orderbook
2016-06-25 17:24:59,527 [MainThread  ] [DEBUG]  <<pubmsg nick=Yamanidid message=!orderbook
2016-06-25 17:39:55,070 [MainThread  ] [DEBUG]  <<pubmsg nick=Vukaseyir message=!absorder 1 2730 99999999 0 1950 ~
2016-06-25 17:39:55,304 [MainThread  ] [DEBUG]  <<pubmsg nick=Higipiweg message=!cancel 3!cancel 4!cancel 6
2016-06-25 17:39:55,313 [MainThread  ] [DEBUG]  <<pubmsg nick=Higipiweg message=!relorder 1 2730 4135 0 0.4383602422!absorder 2 4136 14875 0 1473!absorder 5 14876 43387 0 1474!relorder 8 43388 66142 0 0.0275948256!relorder 9 66143 95299 0 0.0185959296!absorder 10 95300 125508 0 1479!relorder 11 125509 170586 0 0.0101034926!relorder 12 170587 276010 0 0.0068198824!relorder 13 276011 372811 0 0.0046279153!absorder 14 372812 527717 0 1495!relorder 15 527718 671574 0 0.0025018634 ~
2016-06-25 17:39:55,313 [MainThread  ] [DEBUG]  <<pubmsg nick=Higipiweg message=!absorder 16 671575 991131 0 1494!absorder 17 991132 1441691 0 1499!absorder 18 1441692 1965115 0 1503!relorder 19 1965116 2651116 0 0.0006793477!relorder 20 2651117 3857818 0 0.0004761241!relorder 21 3857819 5512272 0 0.0003327514!relorder 22 5512273 7088343 0 0.0002479741!absorder 23 7088344 11264496 0 1626!relorder 24 11264497 15481033 0 0.0001228988!absorder 25 15481034 22895711 0 1642 ~
2016-06-25 17:39:55,489 [MainThread  ] [DEBUG]  <<pubmsg nick=Higipiweg message=!absorder 26 22895712 34777681 0 1721!relorder 27 34777682 53072265 0 4.17546e-05!relorder 28 53072266 82922579 0 2.91696e-05!absorder 29 82922580 107247862 0 2015!absorder 30 107247863 148505344 0 2137!absorder 31 148505345 213333711 0 2314!relorder 32 213333712 271753506 0 1.04562e-05!relorder 33 271753507 351967753 0 8.8193e-06!absorder 34 351967754 468421563 0 2992!absorder 35 468421564 678376121 0 3414 ~
2016-06-25 17:39:55,490 [MainThread  ] [DEBUG]  <<pubmsg nick=Higipiweg message=!absorder 36 678376122 869895040 0 3842!absorder 37 869895041 1387937912 0 4606!relorder 38 1387937913 1824493668 0 3.4394e-06!relorder 39 1824493669 2663760241 0 2.9639e-06!absorder 40 2663760242 3517866649 0 7824!relorder 41 3517866650 5375885845 0 2.2181e-06!absorder 42 5375885846 7702545768 0 12404!relorder 43 7702545769 11251432325 0 1.6669e-06!absorder 44 11251432326 15113637089 0 19253 ~
2016-06-25 17:39:55,490 [MainThread  ] [DEBUG]  <<pubmsg nick=Higipiweg message=!relorder 45 15113637090 20299159608 0 1.3462e-06!relorder 46 20299159609 26867420365 0 1.2164e-06!relorder 47 26867420366 27525019344 0 1.1019e-06 ~

I have edited the addresses and nickname, am I doing something wrong?


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: belcher on June 26, 2016, 12:40:46 PM
number222222222222, try running a ob-watcher.py script on your own computer. As the orders arrive from your yield generator, there will be an error message saying what's wrong with your own offers.

BTW you can use a script called scrub-log.py which is found in the logs/ directory, it's a better way to remove private information from your logs.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: number222222222222 on June 26, 2016, 03:00:10 PM
Okay thanks it says


<<privmsg nick=Nickname message=!relorder 0 59999 6759508 1  0.00002
Got invalid cjfee: from:Nickname

Okay I am confused, I used the standard yield-generator-basic.py file. I tried making the fees smaller because I thought that would solve problem.
Also why is it a Pvt msg?

And again thanks for the help.

Okay I had a close look at the yield.py file I had ' 0.00002' not '0.00002' so there was an extra space! Just in case any one else has a similar problem.
Its appearing on the oder book now.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: mattrk on June 27, 2016, 04:25:33 AM
I just ran about $100 in bitcoin through the joinmarket tumbler script. I used all default settings. (No extra switches) When the script finished, i added up the coins the script sent back and have discovered that i only received 84% of my coins back. I expected to pay some fees and such. But 16%????? I mean... people on the internet complain to the end of the earth about the 3% fees they pay to Helix and/or other well known tumbling services.

Did i do something wrong? Or is 16% in fees par for the course?


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: mattrk on June 27, 2016, 05:55:49 AM
I just ran about $100 in bitcoin through the joinmarket tumbler script. I used all default settings. (No extra switches) When the script finished, i added up the coins the script sent back and have discovered that i only received 84% of my coins back. I expected to pay some fees and such. But 16%????? I mean... people on the internet complain to the end of the earth about the 3% fees they pay to Helix and/or other well known tumbling services.

Did i do something wrong? Or is 16% in fees par for the course?

After carefully going through the logs, i have concluded that i did indeed pay 15% in fees. There were 20 transactions and each transaction cost me between .0003btc and .0016btc in fees. Since i only tumbled .15btc, i paid about .0225btc in fees. So, no glitches. Moral of the story is that you apparently shouldn't use the tumbler on small amounts. I feel like this should be stated in bold on the github wiki page. I know the software means well but it really just leaves a really bad first impression.

It would be very helpful if the script would try to calculate all of the fees up front. I'm not sure how easy that would be to do since i'm not exactly sure how the script works. But it seems like it might be possible. I'm just very hesitant to even touch the software again for fear of losing money. In my estimation, the tumbler script isn't worth touching unless you're tumbling .5 or .75 btc. Maybe i'm wrong.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: waxwing on June 29, 2016, 08:09:38 PM
I just ran about $100 in bitcoin through the joinmarket tumbler script. I used all default settings. (No extra switches) When the script finished, i added up the coins the script sent back and have discovered that i only received 84% of my coins back. I expected to pay some fees and such. But 16%????? I mean... people on the internet complain to the end of the earth about the 3% fees they pay to Helix and/or other well known tumbling services.

Did i do something wrong? Or is 16% in fees par for the course?

After carefully going through the logs, i have concluded that i did indeed pay 15% in fees. There were 20 transactions and each transaction cost me between .0003btc and .0016btc in fees. Since i only tumbled .15btc, i paid about .0225btc in fees. So, no glitches. Moral of the story is that you apparently shouldn't use the tumbler on small amounts. I feel like this should be stated in bold on the github wiki page. I know the software means well but it really just leaves a really bad first impression.

It would be very helpful if the script would try to calculate all of the fees up front. I'm not sure how easy that would be to do since i'm not exactly sure how the script works. But it seems like it might be possible. I'm just very hesitant to even touch the software again for fear of losing money. In my estimation, the tumbler script isn't worth touching unless you're tumbling .5 or .75 btc. Maybe i'm wrong.

Cross posting answer: https://www.reddit.com/r/joinmarket/comments/4q1ito/i_just_ran_my_coins_through_the_tumbler_and_all/d4psmzh


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: jerry508 on July 01, 2016, 09:57:00 PM
Going to do beta testing on the electrum plugin.  Is the github repo the best place to start with latest version, etc?  Is there an irc contact who could help if i get stuck during installation?

How much donation wise might it take to fund the finalization of an electrum plugin for both sending and yield generating?  I really hope to see this approach succeed and be maintained.  I would guess theres many others who are not too eager to run a more complicated method beyond a plugin..

Thanks!


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: jerry508 on July 02, 2016, 02:58:45 AM
Does anybody know how to fix an error with electrum where the plugins popup window shows a blank list?  Debug indicates its a problem with qt with a line of code referwncing griddisplay.

I think I've managed to get my setup working with the electrum plugin if i can get past this one last issue..



Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: belcher on July 04, 2016, 02:27:02 PM
IRC is the best place jerry508

irc.freenode.net:6667 #joinmarket
6dvj6v5imhny3anf.onion:6697 #joinmarket ssl-enabled


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: belcher on July 05, 2016, 01:04:39 AM
READ THIS - JoinMarket's privacy is degraded until further notice

https://gist.github.com/chris-belcher/00255ecfe1bc4984fcf7c65e25aa8b4b


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: ABISprotocol on August 03, 2016, 10:01:22 PM
In the spirit of "Coinjoin that people will actually use", I'm wondering if any of the regular bitcoin wallets have integrated joinmarket, or have announced any plans to do so?

Along these lines...

Is there a joinmarket API that would make it straightforward for a wallet to integrate?

Has any effort been made to approach wallet makers?

If not, perhaps we should open issues requesting joinmarket support on their respective github pages.



IMO joinmarket is at too early of a stage for this, there are still a few problems that would be nice to fix before anything happens.
Right now it seems most of the adoption comes from people using the tumbler script.

First, for danda, it's worth noting that this has been very extensively investigated/discussed for more than a year. Also worth noting is that, to the surprise of no one, when Joinmarket was first widely announced in public, the most common response was "please make this appear in my wallet, or at least in some wallet". Again, I emphasize: to the surprise of no one, we know that that's what people prefer.

Second, w.r.t belcher's "too early a stage": it's difficult to make a general statement. It's true that there are aspects of how joinmarket works that can make it awkward to integrate it into a wallet; things like, HD structure (mixdepths, see below), approach to E2E encryption of messages, code language, packaging etc. But I don't think there's some fundamental problem making it impossible, especially if you restrict the scope, and especially if the wallet code has its own model for integration.

Which brings me to:

For those reading who are interested in such things (wallet integrations), let me point you at: https://www.reddit.com/r/joinmarket/comments/4m1b7r/requesting_linux_testers_for_an_experimental/ which links to an Electrum plugin for testing. Install is multi-step (but not complex) for reasons described in the post, but if anyone here's willing to give it a test would appreciate it. It allows the creation of coinjoins (sendpayments) directly from your Electrum wallet (only "Standard" type).

I've gotten only 1 person so far after more than a week who even installed it, which is disappointing after *so* many requests in the early days to do an Electrum plugin.

Electrum accounts within a standard BIP32 HD wallet are exactly like Joinmarket mixdepths, so a natural extension to that plugin (which for now just does sendpayment) is to implement that, and eventually I'd hope, something like tumbler could be programmed (mixdepths->accounts). Obviating the need for any separate wallet management for *users* of Joinmarket (takers). Providers, i.e. makers, should be using Core and joinmarket's own wallet and script set up probably (although there is the dream of passively acting as maker from your own wallet, maybe that's possible too).


So... I just heard about this (the electrum joinmarket plugin to help people do the CoinJoin (JoinMarket) more easily):

https://github.com/AdamISZ/electrum-joinmarket-plugin (https://github.com/AdamISZ/electrum-joinmarket-plugin)

Thank you, and I'm going to try this very soon (within the next few days).

I've also just posted it to my diaspora:  https://diasp.org/posts/5743008 (https://diasp.org/posts/5743008)

-ABISprotocol



Just saw this -- https://www.reddit.com/r/joinmarket/comments/4vm2h9/volunteers_for_testnet_testing_of_020_version/ which appears to be a way to test the new version to fix the privacy concerns and issues that have been recently raised!  I definitely encourage people to participate in this testing, and am posting this to my diaspora..

https://diasp.org/posts/5743008


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: waxwing on August 05, 2016, 04:23:40 PM
ABISprotocol, thanks.

Some links:

https://joinmarket.me/blog/blog/racing-against-snoopers-in-joinmarket-02/ this is to help people to understand the complicated situation re: the privacy attack and what we're trying to do to defend it. There are two previous posts on the blog (https://joinmarket.me/blog/blog/poodle/ and https://joinmarket.me/blog/blog/joinmarket-020-changes/) but bear in mind they dive into nitty gritty which most people probably won't want to read all of.

Testnet pit orderbook at: https://joinmarket.me/obtest/ .. I'm hoping that some more people with join so we can get more realistic tests. Things seem to be working OK for now but that's just basic functionality, to test the defence requires more bots.

For those more development oriented, progress is being logged here: https://github.com/JoinMarket-Org/joinmarket/issues/171 on the branch https://github.com/JoinMarket-Org/joinmarket/tree/0.2.0 . It seems like the protocol updates are basically finished now, there is a protocol description here https://gist.github.com/AdamISZ/baf93ce2589854a7992383b3c69fae13


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: waxwing on August 11, 2016, 11:37:37 AM
https://www.reddit.com/r/joinmarket/comments/4x7jqp/who_is_not_using_the_secp256k1_binding/ (response there rather than here is preferred, I visit there more often).


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: VTC on August 22, 2016, 05:54:36 PM

Using create-unsigned-tx.py I get a
"TypeError: Non-hexadecimal digit found"
after I input the corresponding private key for the auth UTXO.

Code:
Traceback (most recent call last):
  File "create-unsigned-tx.py", line 300, in <module>
    main()
  File "create-unsigned-tx.py", line 262, in main
    magicbyte=get_p2pk_vbyte()):
  File "/home/mint/Desktop/joinmarket-0.1.4/bitcoin/secp256k1_main.py", line 18, in privkey_to_address
    return pubkey_to_address(privkey_to_pubkey(priv, from_hex), magicbyte)
  File "/home/mint/Desktop/joinmarket-0.1.4/bitcoin/secp256k1_main.py", line 269, in privkey_to_pubkey
    return privkey_to_pubkey_inner(priv, usehex)
  File "/home/mint/Desktop/joinmarket-0.1.4/bitcoin/secp256k1_main.py", line 228, in func_wrapper
    newargs += [arg.decode('hex')]
  File "/usr/lib/python2.7/encodings/hex_codec.py", line 42, in hex_decode
    output = binascii.a2b_hex(input)
TypeError: Non-hexadecimal digit found

Also tried using the testnet example from the github wiki and got the same error.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: waxwing on September 11, 2016, 12:10:43 PM
New release version 0.2.0
================

Best place to start is the release notes (https://github.com/JoinMarket-Org/joinmarket/blob/master/doc/release-notes-0.2.0.md) - in particular for existing users, please read up to and including "Notable changes".

Then follow the installation/upgrade guide on the frontpage/readme (https://github.com/JoinMarket-Org/joinmarket)which has of course changed a bit. The most notable change is that the libsecp256k1 binding is now required, not optional.

In terms of how the experience of Joinmarket changes, this (https://github.com/JoinMarket-Org/joinmarket/blob/develop/doc/release-notes-0.2.0.md#commitments-podle-required-to-request-coinjoins) section is the most important, giving a short summary of what changes for Makers and Takers, and the wiki article (https://github.com/JoinMarket-Org/joinmarket/wiki/Sourcing-commitments-for-joins) linked inside gives more details, for Takers (that's sendpayment or tumbler basically). In short, they will have to change their wallet funding behaviour a bit, and in some cases be more patient (or use more expert tools).

There are some superficial changes (like nicknames) that are there to support using multiple IRC servers. Currently CgAn is kept as the default, but you can add other IRC servers if you like. If the community of users can come up with another fully Tor-supporting and stable IRC server that will allow Joinmarket usage, we could come to a general agreement on that. The code now happily supports at least 3 different servers simultaneously, probably more although I haven't tried. The idea of this is to improve censorship-resistance and reliability, but for now we just have the one default still.

This is a breaking change in the protocol, unlike previous releases - that means, while old and new bots can happily live on the same channel, they will ignore each other. So please upgrade as soon as you can, and don't be surprised if there is some disruption in the meanwhile.

Lastly, there are now only two yield generator bots offered within the codebase - yield-generator-basic.py and yg-pe.py (short for privacy enhancement). The rationale for removing the others I've mentioned elsewhere, but will repeat here:

"it's a combination of 3 things i guess; 1/it's too much work trying to support them 2/there is nothing wrong with them being used and maintained separately 3/i'd quite like to prod people towards running just the simple two versions mentioned for the new version, as those simpler ones are giving away less info to snoopers; but that last point is up for discussion"

A final overall point - this is a substantial, disruptive change and not one that makes usage easier. But, let's not forget that the existing Joinmarket is fundamentally broken in as much as there is no realistic privacy guarantee in any mode of usage. While this change intends to ameliorate this problem, it most likely will not remove it entirely, and its best benefits will only be seen if the level of usage increases considerably, which is likely a way off. So I hope people can be patient!

Please feel free to ask questions here or preferably on reddit (it's easier to keep track of one location). Or IRC of course.



Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: waxwing on September 14, 2016, 04:59:36 PM
New release version 0.2.1
================

This is a bugfix release. See the release notes: https://github.com/JoinMarket-Org/joinmarket/blob/master/doc/release-notes-0.2.1.md

Latest version is always at https://github.com/JoinMarket-Org/joinmarket/releases/

The most important fixes are for Windows; the secp256k1 binding was broken for obscure reasons and didn't allow bots to run correctly. But there are a couple of other fixes that are important dependent on your exact use-case, so update ASAP.

Most important: if you haven't yet updated from pre-0.2, follow the upgrading instructions in the 0.2.0 (see previous post). If you are already on 0.2.0, you just need to git pull or download the new zip.

Thanks!


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: belcher on October 10, 2016, 10:56:48 AM
JoinMarket talk at Scaling Bitcoin 2016: https://www.youtube.com/watch?v=8BLWUUPfh2Q&feature=youtu.be&t=2196

transcript: https://scalingbitcoin.org/transcript/milan2016/joinmarket


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: jjacob on October 12, 2016, 01:58:16 PM
Question on the electrum plugin....
https://github.com/AdamISZ/electrum-joinmarket-plugin

Are there any changes to this (including bugfix mentioned in step 4)?
The plugin talks about Electrum 2.6.4
The wallet file format has changed with Electrum 2.7......


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: waxwing on October 18, 2016, 08:19:34 AM
Question on the electrum plugin....
https://github.com/AdamISZ/electrum-joinmarket-plugin

Are there any changes to this (including bugfix mentioned in step 4)?
The plugin talks about Electrum 2.6.4
The wallet file format has changed with Electrum 2.7......

1. The plugin has not been updated for the new version of JM, so is not usable right now.
2. The new version of Electrum fixes the bug that had to be manually fixed in those install instructions, but for now this is irrelevant because of 1.
3. I am overwhelmed with working on Joinmarket itself, so I have no time to update this, I expect it will be a couple of months before this is re-addressed, and when it is, I'm not sure in what way. If someone else wants to do more work on it I'd be happy to answer questions.
4. I don't know about wallet file format changes; the plugin as-was was only supporting "Standard" wallets fwiw.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: waxwing on October 28, 2016, 07:49:12 PM
New release version 0.2.2
================

This is a minor release, but highly recommended with new features and bugfixes. See the release notes: https://github.com/JoinMarket-Org/joinmarket/blob/master/doc/release-notes-0.2.2.md

Latest version is always at https://github.com/JoinMarket-Org/joinmarket/releases/

Biggest thing is providing a feature that makes failure-to-complete transactions less likely, but there are other useful things, release notes summarizes these.

Thanks!


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: pitham1 on November 19, 2016, 11:23:59 AM
When I run wallet-tool.py, it takes an insanely long time to give me the results.
This wasn't the case a week back. Has something changed at blockr.io's end in the past 1 week?
Or is it a problem just with my internet connection?
How does the speed vary with increase in number of addresses in your wallet?


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: waxwing on November 19, 2016, 02:16:19 PM
When I run wallet-tool.py, it takes an insanely long time to give me the results.
This wasn't the case a week back. Has something changed at blockr.io's end in the past 1 week?
Or is it a problem just with my internet connection?
How does the speed vary with increase in number of addresses in your wallet?

In the case of Core, there is --fast to speed it up, but in the case of blockr.io it may indeed be some kind of connection problem to them. The only other possibility is if you've done a large number of transactions, which will slow it down for sure, but hopefully not "insane"-ly.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: pitham1 on November 20, 2016, 04:34:04 AM
When I run wallet-tool.py, it takes an insanely long time to give me the results.
This wasn't the case a week back. Has something changed at blockr.io's end in the past 1 week?
Or is it a problem just with my internet connection?
How does the speed vary with increase in number of addresses in your wallet?

In the case of Core, there is --fast to speed it up, but in the case of blockr.io it may indeed be some kind of connection problem to them. The only other possibility is if you've done a large number of transactions, which will slow it down for sure, but hopefully not "insane"-ly.

I am not using core. I have done a large number of transactions (the address count is in the 1000s - mostly used).
It takes me ~half an hour to get the output. This was not the case last week....


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: belcher on November 21, 2016, 02:40:34 PM
I have noticed blockr.io being slow lately too because I was using them for testnet.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: jjacob on November 28, 2016, 02:56:45 PM
An article on JoinMarket, although I would have preferred it if the final article mentioned joinmarket in the title

https://cointelegraph.com/news/mixing-your-bitcoin-with-other-peoples-btc-brings-risks-and-possibilities

Feedback / criticism welcome. :)


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: bitcoin talk on December 02, 2016, 07:06:29 AM
I have noticed blockr.io being slow lately too because I was using them for testnet.
Can u still use it (Coinjoin) without downloading anything to your HD?
Is the IRC room still working? How do we access the irc chat? I've never used irc before.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: Herbet Fry on December 03, 2016, 03:41:19 AM
It is an interesting concept and one I have not heard of yet before. I am glad I read about this. I see there are some devs that dont just copy another Dev. :) Good to know and also nice that you can make an investment here.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: Emerge on December 03, 2016, 03:54:14 AM
Hmmm very interesting. Is there any simpler guide to using CoinJoin or something? I'd very much like to use this


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: belcher on December 05, 2016, 01:10:54 PM
I have noticed blockr.io being slow lately too because I was using them for testnet.
Can u still use it (Coinjoin) without downloading anything to your HD?
Is the IRC room still working? How do we access the irc chat? I've never used irc before.


You have to download joinmarket itself but its only a few kb. You need to download and install some dependencies like libsecp256k1 and libsodium, they're not too large either.

If you're talking about downloading the blockchain, you get much better privacy if you run a full node. If you enable blockchain pruning you don't need to store it on your hard disk so your disk usage is much lower.


Hmmm very interesting. Is there any simpler guide to using CoinJoin or something? I'd very much like to use this

All the user tutorials are on the wiki

https://github.com/joinmarket-org/joinmarket/wiki


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: Diana Clark on December 07, 2016, 01:05:02 AM
Wonder how Zcash will affect these types of services.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: belcher on December 07, 2016, 01:15:48 PM
Zcash is a scam (as are most altcoins) so probably not by much. It's not the first anonymous altcoin hype we've seen come and go.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: jkminkov on December 14, 2016, 12:50:31 PM
only one type of price order can exist per instance?

can you run it multiple times with same wallet?


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: belcher on December 16, 2016, 12:11:55 PM
The joinmarket repository contains two simple yield-generator algorithms, yield-generator-basic.py and yg-pe.py (or privacy-enhancing)

There's also the custom scripts repository which contains other https://github.com/JoinMarket-Org/custom-scripts

Running multiple times on the same wallet is not supported.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: jjacob on December 22, 2016, 11:53:17 PM
Has anything changed in the past week or so? Joinmarket was working normally previously, but I get the following error now when I use the wallet-tool

Code:
Traceback (most recent call last):
  File "wallet-tool.py", line 121, in <module>
    sync_wallet(wallet, fast=options.fastsync)
  File "*/Joinmarket/joinmarket-0.2.2/joinmarket/blockchaininterface.py", line 79, in sync_wallet
    jm_single().bc_interface.sync_wallet(wallet)
  File "*/Joinmarket/joinmarket-0.2.2/joinmarket/blockchaininterface.py", line 88, in sync_wallet
    self.sync_addresses(wallet)
  File "*/Joinmarket/joinmarket-0.2.2/joinmarket/blockchaininterface.py", line 168, in sync_addresses
    data = btc.make_request_blockr(blockr_url + ','.join(addrs))['data']
  File "*/Joinmarket/joinmarket-0.2.2/bitcoin/bci.py", line 41, in make_request_blockr
    data = json.loads(make_request(*args))
  File "*/Joinmarket/joinmarket-0.2.2/bitcoin/bci.py", line 36, in make_request
    raise Exception(p)
Exception: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:590)>

I run Joinmarket on Ubuntu 16.04


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: waxwing on December 24, 2016, 09:37:32 PM
Has anything changed in the past week or so? Joinmarket was working normally previously, but I get the following error now when I use the wallet-tool

Code:
Traceback (most recent call last):
  File "wallet-tool.py", line 121, in <module>
    sync_wallet(wallet, fast=options.fastsync)
  File "*/Joinmarket/joinmarket-0.2.2/joinmarket/blockchaininterface.py", line 79, in sync_wallet
    jm_single().bc_interface.sync_wallet(wallet)
  File "*/Joinmarket/joinmarket-0.2.2/joinmarket/blockchaininterface.py", line 88, in sync_wallet
    self.sync_addresses(wallet)
  File "*/Joinmarket/joinmarket-0.2.2/joinmarket/blockchaininterface.py", line 168, in sync_addresses
    data = btc.make_request_blockr(blockr_url + ','.join(addrs))['data']
  File "*/Joinmarket/joinmarket-0.2.2/bitcoin/bci.py", line 41, in make_request_blockr
    data = json.loads(make_request(*args))
  File "*/Joinmarket/joinmarket-0.2.2/bitcoin/bci.py", line 36, in make_request
    raise Exception(p)
Exception: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:590)>

I run Joinmarket on Ubuntu 16.04


blockr.io's certificate expired a couple of days back (on the 21st). Unfortunately they don't appear to have renewed it yet. You can verify by trying to visit https://btc.blockr.io.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: jjacob on December 27, 2016, 03:39:01 PM
blockr.io's certificate expired a couple of days back (on the 21st). Unfortunately they don't appear to have renewed it yet. You can verify by trying to visit https://btc.blockr.io.

Thanks! I run the tool with the option PYTHONHTTPSVERIFY=0
No harm in that, right?


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: jjacob on December 30, 2016, 12:47:46 AM
Has anything changed in the past week or so? Joinmarket was working normally previously, but I get the following error now when I use the wallet-tool

Code:
Traceback (most recent call last):
  File "wallet-tool.py", line 121, in <module>
    sync_wallet(wallet, fast=options.fastsync)
  File "*/Joinmarket/joinmarket-0.2.2/joinmarket/blockchaininterface.py", line 79, in sync_wallet
    jm_single().bc_interface.sync_wallet(wallet)
  File "*/Joinmarket/joinmarket-0.2.2/joinmarket/blockchaininterface.py", line 88, in sync_wallet
    self.sync_addresses(wallet)
  File "*/Joinmarket/joinmarket-0.2.2/joinmarket/blockchaininterface.py", line 168, in sync_addresses
    data = btc.make_request_blockr(blockr_url + ','.join(addrs))['data']
  File "*/Joinmarket/joinmarket-0.2.2/bitcoin/bci.py", line 41, in make_request_blockr
    data = json.loads(make_request(*args))
  File "*/Joinmarket/joinmarket-0.2.2/bitcoin/bci.py", line 36, in make_request
    raise Exception(p)
Exception: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:590)>

I run Joinmarket on Ubuntu 16.04


blockr.io's certificate expired a couple of days back (on the 21st). Unfortunately they don't appear to have renewed it yet. You can verify by trying to visit https://btc.blockr.io.

Blockr.io's certificate seems to be back now.
So we can run the wallet-tool in the usual way now.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: bitcoin talk on January 13, 2017, 04:58:17 AM
i did indeed pay 15% in fees.
Would the fee be the same larger amounts like $100 plus?


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: waxwing on January 17, 2017, 08:11:34 PM
i did indeed pay 15% in fees.
Would the fee be the same larger amounts like $100 plus?

See https://github.com/JoinMarket-Org/joinmarket/wiki/Step-by-step-running-the-tumbler#before-going-further-a-few-words-on-fees


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: boergo on January 21, 2017, 02:48:06 AM
Can smb to explain what the mixing depth is?
I'm trying to understand all features of joinmarket. But I can't find out nothing about mixing depth in wiki .
I'm understand, that there are wallets each in own mixing depth. I'm sending coins from mix depth 0 - 4, but I can't see no difference between. Is it only used only for wallet organizing?
Is any security difference between sending coins from mix depth 0 and mix depth 4 ?


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: weex on January 21, 2017, 08:33:41 AM
Can smb to explain what the mixing depth is?
I'm trying to understand all features of joinmarket. But I can't find out nothing about mixing depth in wiki .
I'm understand, that there are wallets each in own mixing depth. I'm sending coins from mix depth 0 - 4, but I can't see no difference between. Is it only used only for wallet organizing?
Is any security difference between sending coins from mix depth 0 and mix depth 4 ?
My understanding is that mixing depths represent distinct identities within the software. As coinjoins are done, coins move from one mixing depth to the next higher one. Therefore, assuming you add coins at mixing depth 0, outputs at depth 4 will have gone through 4 coinjoins. This is harder to correlate than coins at mixing depth 3 or 2 or 1. One thing you should never do, and I think the wiki talks about this is to send coins from different depths to the same external wallet as that may allow some blockchain analysis to put together your different depths. Hope that helps.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: weex on January 21, 2017, 08:40:21 AM
Development and testing on many bitcoin-related software packages takes some considerable setup. To try and simplify this and help new developers and testers come up to speed more easily, I've created the Vagrant-based setup below. Vagrant is a toolkit for bringing up and configuring virtual machines and can connect to AWS or a local VirtualBox install among others to create the VM.

The project, called devsetup, was designed to help me test Rein but as I'm getting into JoinMarket I added it to the setup process as well. If you've never developed any Bitcoin-related software or JoinMarket, I'd be interested to hear your thoughts.

The setup is basically to install VirtualBox (https://virtualbox.org) , Vagrant (https://vagrantup.com), then clone this repo with:

Code:
git clone https://github.com/ReinProject/devsetup.git

and finally start up the box with
Code:
vagrant up

The first time it runs, it'll download the Ubuntu 16.04 image this box is based on. When you're done you can
Code:
vagrant destroy
and subsequent
Code:
vangrant up
commands will be able to use that existing image. Provisioning takes about 5-10 minutes which is on par with the regtest of JM once it's running.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: boergo on January 21, 2017, 02:39:40 PM
Can smb to explain what the mixing depth is?
I'm trying to understand all features of joinmarket. But I can't find out nothing about mixing depth in wiki .
I'm understand, that there are wallets each in own mixing depth. I'm sending coins from mix depth 0 - 4, but I can't see no difference between. Is it only used only for wallet organizing?
Is any security difference between sending coins from mix depth 0 and mix depth 4 ?
My understanding is that mixing depths represent distinct identities within the software. As coinjoins are done, coins move from one mixing depth to the next higher one. Therefore, assuming you add coins at mixing depth 0, outputs at depth 4 will have gone through 4 coinjoins. This is harder to correlate than coins at mixing depth 3 or 2 or 1. One thing you should never do, and I think the wiki talks about this is to send coins from different depths to the same external wallet as that may allow some blockchain analysis to put together your different depths. Hope that helps.
Thank you for explaining this. But I can't understand that:

Quote
As coinjoins are done, coins move from one mixing depth to the next higher one. Therefore, assuming you add coins at mixing depth 0, outputs at depth 4 will have gone through 4 coinjoins.
When I sending my coins ,I just specify : mixing depth (where from my coins will be sent from) , my electrum bitcoin address (where bitcoins will be sent to). How will bitcoins migrate from lower mixing depth to higher ?
Maybe I must to made 4 sendcoin operations, every time using bitcoin addres from my coin join wallet 1 level higher mixing depth to reach 4th level ?

P.S. thx for Vagrant , it is rather difficult to install JM first time.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: weex on January 21, 2017, 08:22:17 PM
Thank you for explaining this. But I can't understand that:

Quote
As coinjoins are done, coins move from one mixing depth to the next higher one. Therefore, assuming you add coins at mixing depth 0, outputs at depth 4 will have gone through 4 coinjoins.
When I sending my coins ,I just specify : mixing depth (where from my coins will be sent from) , my electrum bitcoin address (where bitcoins will be sent to). How will bitcoins migrate from lower mixing depth to higher ?
Maybe I must to made 4 sendcoin operations, every time using bitcoin addres from my coin join wallet 1 level higher mixing depth to reach 4th level ?

P.S. thx for Vagrant , it is rather difficult to install JM first time.
I should clarify lower vs higher. I was saying lower = 0 and higher = toward 4-5.

Your coins migrate mixing depths if you use the tumbler script or a yield generator. I'm not sure if there are others, maybe sendpayment or patientsendpayment does the same. Effectively every coinjoin adds a mixing depth so depending on whether your send includes doing a coinjoin on the way, it may increase the overall mixing depth.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: jjacob on January 26, 2017, 04:12:59 PM
Is Broken Pipe error common while running Joinmarket?

Code:
error: [Errno 32] Broken pipe

I get it a lot, but it doesn't seem to have any impact on the actual functioning of the program.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: jjacob on February 04, 2017, 12:13:06 AM
Joinmarket.io gives a list of multiple orders by a single counterparty. Is it possible for a single client to have multiple outstanding orders for joining joinmarket transactions?

Type Counterparty  Order ID     Fee     Miner Fee Cont     Minimum Size      Maximum Size
Absolute Fee     J5BxFA6Lk9v5ekMk     107     0.00000998     0.00000000     0.00089148     0.95114119
Absolute Fee     J5BxFA6Lk9v5ekMk     108     0.00000998     0.00000000     0.00089148     0.95114119
Absolute Fee     J5BxFA6Lk9v5ekMk     109     0.00000998     0.00000000     0.00089148     0.95114119
Absolute Fee     J5BxFA6Lk9v5ekMk     110     0.00000998     0.00000000     0.00089148     0.95114119
Absolute Fee     J5BxFA6Lk9v5ekMk     111     0.00000998     0.00000000     0.00089148     0.95114119
Absolute Fee     J5BxFA6Lk9v5ekMk     112     0.00000998     0.00000000     0.00089148     0.95114119


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: waxwing on February 05, 2017, 12:17:22 PM
Joinmarket.io gives a list of multiple orders by a single counterparty. Is it possible for a single client to have multiple outstanding orders for joining joinmarket transactions?

Type Counterparty  Order ID     Fee     Miner Fee Cont     Minimum Size      Maximum Size
Absolute Fee     J5BxFA6Lk9v5ekMk     107     0.00000998     0.00000000     0.00089148     0.95114119
Absolute Fee     J5BxFA6Lk9v5ekMk     108     0.00000998     0.00000000     0.00089148     0.95114119
Absolute Fee     J5BxFA6Lk9v5ekMk     109     0.00000998     0.00000000     0.00089148     0.95114119
Absolute Fee     J5BxFA6Lk9v5ekMk     110     0.00000998     0.00000000     0.00089148     0.95114119
Absolute Fee     J5BxFA6Lk9v5ekMk     111     0.00000998     0.00000000     0.00089148     0.95114119
Absolute Fee     J5BxFA6Lk9v5ekMk     112     0.00000998     0.00000000     0.00089148     0.95114119

Yes, it is, but multiple orders *over the same amount range* are redundant. The taker code simply drops all but one of them, so in this case, the maker gets no advantage from it. It is irritating, because it spams up the message channel, but apart from that, it's not harmful.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: jjacob on February 06, 2017, 01:14:09 PM
Yes, it is, but multiple orders *over the same amount range* are redundant. The taker code simply drops all but one of them, so in this case, the maker gets no advantage from it. It is irritating, because it spams up the message channel, but apart from that, it's not harmful.

Thanks for the clarification. I have seen a drop in number of coinjoin transactions entered into by my maker bot. I just wanted to make sure that is not due to these multiple orders and that they have no advantage over others.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: waxwing on February 09, 2017, 10:43:08 AM
Relevant to the above point, announcement:

https://www.reddit.com/r/joinmarket/comments/5szb57/bots_with_large_numbers_of_offers_or_overlapping/


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: jjacob on February 17, 2017, 12:08:25 AM
Where can I get the best idea of the size of the outstanding orders?
I see 2 sites
http://joinmarket.io/
https://joinmarket.me/ob/

The number of orders on both sites seem to be very different
joinmarket.io/     - 886 orders found by 132 counterparties
joinmarket.me/ob/    - 94 orders found by 75 counterparties

Which is the right figure?


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: belcher on February 17, 2017, 12:29:39 PM
jjacob those sites are just frontends for the ob-watcher.py script in the main joinmarket repository. If you run it on your own computer you will observe the offers for yourself. However out of those two it looks like joinmarket.io hasn't been updated for a long time because it doesn't have the unit selection dropdown menu.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: waxwing on February 17, 2017, 02:38:11 PM
Well, that's confusing :)

First, I didn't even know joinmarket.io was still operating :)

Second, I recently removed the #agora pit from the ob at joinmarket.me because of spammers, see the recent reddit thread.

Third, there are some problems with getting the ob readings to be reliable. I don't have time to debug/check it (my sense is that there is a bug, but not 100% sure), it's not really interesting, partly because of what belcher mentions above (which both he and I religiously repeat every time this topic comes up!).


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: jjacob on February 18, 2017, 01:58:45 AM
jjacob those sites are just frontends for the ob-watcher.py script in the main joinmarket repository. If you run it on your own computer you will observe the offers for yourself. However out of those two it looks like joinmarket.io hasn't been updated for a long time because it doesn't have the unit selection dropdown menu.

Thanks. I ran the ob-watcher.py script. Its output is totally different from the 2 websites I mentioned.  ;D
Guess I will rely on that to get an idea of the outstanding orders.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: jjacob on February 26, 2017, 02:56:53 AM
Is there anyway to get an idea of Joinmarket volumes (In terms of number of transactions or BTC)?
I think that transactions have dried up, due to higher transaction fees or other reasons. But I want to be sure about that...


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: belcher on February 27, 2017, 07:13:46 PM
Is there anyway to get an idea of Joinmarket volumes (In terms of number of transactions or BTC)?
I think that transactions have dried up, due to higher transaction fees or other reasons. But I want to be sure about that...

Adlai has a project which searches for joinmarket transactions

https://github.com/adlai/cjhunt

If true, another thing that doesn't help regarding miner fees is that the incentives in joinmarket for miner fees are all screwed up, right now the taker essentially pays for everything.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: waxwing on February 27, 2017, 07:45:07 PM
Mainly a call for any testers:

https://www.reddit.com/r/joinmarket/comments/5wit3s/release_for_testing_of_new_joinmarketqt_binary/


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: jjacob on March 05, 2017, 01:26:48 PM
Hi,

I recently sent out a transaction and the final balance in my wallet is reflected properly when I use blocr.io as the blockchain source.
However, when I use bitcoin core, the change output of that particular transaction is not visible. I have run bitcoin-qt -rescan a couple of times, but the issue still persists. What is the way out of this?

Edit: Sorted out. The balance got updated once another transaction was done.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: waxwing on March 09, 2017, 11:36:29 AM
Another update re: joinmarket-qt binaries:

https://www.reddit.com/r/joinmarket/comments/5yekko/added_windows_and_tailsdebian32_binaries_for_new/


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: jjacob on March 16, 2017, 04:04:15 AM
Are high transaction fees killing joinmarket volumes? Volumes seem to have dried up, at least in my experience.

Do we as a community have a preference for Bitcoin Core vs Bitcoin Unlimited? I know that it is a divisive topic, but can we configure Joinmarket to work with Bitcoin Unlimited as well?


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: waxwing on March 17, 2017, 04:54:05 PM
Update on electrum plugin:

https://www.reddit.com/r/joinmarket/comments/5zyn2h/electrum_plugin_update_a_few_extra_notes_in/


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: belcher on April 15, 2017, 12:16:15 PM
New release

https://github.com/JoinMarket-Org/joinmarket/blob/master/doc/release-notes-0.2.3.md


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: PremiumCodeX on April 15, 2017, 02:40:00 PM
Are high transaction fees killing joinmarket volumes? Volumes seem to have dried up, at least in my experience.

Do we as a community have a preference for Bitcoin Core vs Bitcoin Unlimited? I know that it is a divisive topic, but can we configure Joinmarket to work with Bitcoin Unlimited as well?

If we can discuss "as well", the preference does not matter. What matters I think, there is a demand of both Bitcoin Core and Bitcoin Unlimited.

So, if it is possible, Joinmarket should provide configuration for both. Do you agree?


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: jjacob on April 16, 2017, 04:46:25 AM
Are high transaction fees killing joinmarket volumes? Volumes seem to have dried up, at least in my experience.

Do we as a community have a preference for Bitcoin Core vs Bitcoin Unlimited? I know that it is a divisive topic, but can we configure Joinmarket to work with Bitcoin Unlimited as well?

If we can discuss "as well", the preference does not matter. What matters I think, there is a demand of both Bitcoin Core and Bitcoin Unlimited.

So, if it is possible, Joinmarket should provide configuration for both. Do you agree?

Detailed discussion on the same in reddit.
https://www.reddit.com/r/joinmarket/comments/601qk2/is_it_safe_to_run_joinmarket_during_hard_forks/
If you are focussing only on one chain and don't care about the other chain, then you can just do nothing and continue running Joinmarket.  :)


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: kkris on May 08, 2017, 07:26:59 PM
Joinmarket developers, your software has been around for a couple of years. The documentation still sucks. So does the user interface, if you can call it one.

Have you considered doing some usability studies? Nothing fancy, just grab three or four friends/relatives/neighbors, ask them to install and use joinmarket with NO HELP FROM YOU while you quietly and patiently watch.

Then act on what you observe.

If you don't want to do the above, then would you please change the title of this thread? Make it "Coinjoin that hardly anybody will actually use".


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: btcforall777 on May 08, 2017, 08:37:09 PM
Joinmarket developers, your software has been around for a couple of years. The documentation still sucks. So does the user interface, if you can call it one.

Have you considered doing some usability studies? Nothing fancy, just grab three or four friends/relatives/neighbors, ask them to install and use joinmarket with NO HELP FROM YOU while you quietly and patiently watch.

Then act on what you observe.

If you don't want to do the above, then would you please change the title of this thread? Make it "Coinjoin that hardly anybody will actually use".

Im sure a future team that forks it will have this in mind.  Just because you build it, they wont necessarily come. But some people still believe that is nall it takes.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: jjacob on May 09, 2017, 02:12:49 AM
Spam on Joinmarket IRC Chat?

I am getting the following interesting messages.
"Hello my name is Agneta boman and i live in Sweden Solna Please send hitman or drugs to my apartment i have 2 suicidal parrots. please i am suicidal aswell Love and kindness Boman(sd)"

 :P :P :P


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: OROBTC on May 09, 2017, 04:55:27 AM
Joinmarket developers, your software has been around for a couple of years. The documentation still sucks. So does the user interface, if you can call it one.

Have you considered doing some usability studies? Nothing fancy, just grab three or four friends/relatives/neighbors, ask them to install and use joinmarket with NO HELP FROM YOU while you quietly and patiently watch.

Then act on what you observe.

If you don't want to do the above, then would you please change the title of this thread? Make it "Coinjoin that hardly anybody will actually use".


I do know that when blockchain.info offered a similar service that I liked it, but apparently there was a security vulnerability that forced them to stop offering the service.  The main thing that I liked about the service was that it easy to use.  I have visited this thread many times and have NOT found anything that looks like ease-of-use would be coming along soon.

Different technologies and methods of obscuring Bitcoin trails are a great idea.  But it looks like Bitmixer.io is the leader in this "space", and the CoinJoin community does not seem to be coalescing around an easy-to-use service.

(they do call me an impatient sort)


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: Seram1 on May 22, 2017, 02:26:44 AM
JoinMarket is built for those who:
1. Want to use coinjoin to improve the privacy of their bitcoin transactions or reduce the miner fees they pay.
2. Want to earn an income from their investment bitcoins

Coinjoin is a kind of bitcoin transaction which combines multiple people's transactions together in an effort to improve privacy, especially as a way to regain privacy after it's been degraded by bad practices. It can also reduce the size of transactions and so require less miner fees. The concept has enormous potential, but it has not seen widespread usage so far despite the multiple projects that implement it. I believe this is because the incentive structure was not right.

A coinjoin transaction requires other people to take part. The right resources (coins) have to be in the right place, at the right time, in the right quantity. This isn't a software or tech problem, its an economic problem. I propose a new kind of market is created that would allocate these resources in the best way.

In practice this would work by allowing coinjoin transactions to be paid-for. On one side there will be time-rich coinjoiners who will wait around and be willing to coinjoin at any time. On the other side will be time-stressed coinjoiners who can coinjoin instantly for a price.

This will naturally attract investors, holders of bitcoin who don't want to transact but just want to earn the coinjoin fee. They would be taking on only a very small amount of risk; Their private keys would never leave their computer, the software would only sign transactions that are valid and pay the correct amount of coins. So it's safe to say that investors would pour in, resulting in the coinjoin fees being very low.

Elevator Pitch for Coinjoin Users / People who desire privacy.

With Joinmarket nobody can steal your coins, you would mix them on your own computer. The software will never sign a transaction unless your coins are going to exactly the right address in the right amount.

Other mixing services mix your coins with other users, resulting in you getting back coins possibly related to drugs, stolen money or other illegal or immoral practices. This is highly undesirable if you just don't want your employer knowing which non-profits you support from your salary. Because of the incentives of JoinMarket, you have access to a huge amount of clean, untainted bitcoins to mix with at a very low price. Many of the bitcoins you're mixing with will be bought from regulated exchanges, owned by legitimate holders of bitcoin.

Not to mention you'd likely be paying lower fees for mixing than other services, because of the competition between willing-to-wait coinjoiners. Indeed if you don't mind waiting, you can wait around with a low offer fee and maybe another impatient coinjoiner will join with you.

Elevator Pitch for Investors

Firstly I'd like to clarify what I mean by investing. I don't want you to give your bitcoins to me. I dont want you to give your bitcoins to anybody. The private keys would be safely held on your own computer, known only by you and your wallet.

Features:
1. Earn an income from your investment bitcoins.
2. Very low risk. Your coins have to be on an online computer, but the software would only sign transactions that are valid and pay you the correct amount.
3. No commitment, withdraw your bitcoins at any time.
4. Improves the privacy of the bitcoin transactions, which makes bitcoin as a currency more useful and thus increases its value.
5. Improves the fungibility of bitcoin, since the distinction between 'clean' and 'dirty' bitcoins will be meaningless. Eliminates this particular systemic risk to bitcoin.

Downside:
1. Your return is likely to be quite low. Low risk = low reward.
2. You don't get paid unless people who desire privacy actually use this. If you're an investor you have an incentive to tell people about JoinMarket and contribute to it.

The Software

I've been writing an implementation of the idea. Right now the coinjoiner bots meet in an IRC channel. The bots announce their orders in an open-outcry trading pit style. Transaction data is sent between users as IRC private messages. Authenticated encryption is used to stop the IRC server eavesdropping. I have plans one day to move away from IRC entirely and have the users meet in some kind of peer to peer network.

How to try
Download the repository from https://github.com/chris-belcher/joinmarket and read the README file
There is an internal HD wallet. It is generated from a wallet encrypted on your hard drive.

There's also plenty of information on the wiki https://github.com/chris-belcher/joinmarket/wiki

Code:
$python wallet-tool.py generate
   Generates a new wallet. Asks for your encryption passphrase and gives you a 12-word recover seed to write down on paper, a la Electrum or Mycelium.

$ python wallet-tool.py [wallet file name]
  This will print out addresses from the HD wallet, send some coins to the first receive address

$ python yield-generator.py [wallet file]
  Becomes an investor bot, being online indefinitely and doing coinjoin for the purpose of profit

$ python sendpayment.py -N 4 [wallet file] [amount-in-satoshi] [destination address]
  Chooses the cheapest offer to do a 5-party coinjoin to send money to a destination address

If you're a frugal user and don't feel like paying to coinjoin if you dont have to, use this command
$ python patientsendpayments.py -N 1 -w 2 [wallet file] [amount in satoshi] [destination address]
  Announces orders and waits to coinjoin for a maximum of 2 hours. Once that time it up cancels the
  orders and pays to do a 2-party coinjoin.

$ python ob-watcher.py
  Starts a local http server which you can connect to and will display the orderbook as well as some graphs

$ python wallet-tool.py recover
  Will prompt for the 12 word recover seed and create a new encrypted wallet file

$ python wallet-tool.py -p [wallet file]
  Will print out addresses along with private keys which can be used to sweep the coins away

Example coinjoins transactions made with JoinMarket:
14 parties, amount 0.01btc https://blockchain.info/tx/55eac9d4a4159d4ba355122c6c18f85293c19ae358306a3773ec3a5d053e2f1b
11 parties, amount 0.57960945btc https://blockchain.info/tx/402d3e1df685d1fdf82f36b220079c1bf44db227df2d676625ebcbee3f6cb22a
8 parties, amount 2.6btc https://blockchain.info/tx/722bb2662cb2ef9b4a2693e52ba82c44cea1042349f1aa6e71e28a3947aa4144
7 parties, amount 0.02btc https://blockchain.info/tx/e38e45d004ef913ee4e952d1f185dbea91cc8cc56e22aa7f767a3edec952a4a9
3 parties, amount 25btc https://blockchain.info/tx/da1a2259be752dd6b5162221989181b7334bd0acbbc1bca31596e5bc32375770
4 parties, amount 40btc https://blockchain.info/tx/3b97544488cac0271a80b20822597342648d19ed02ac25041bd8d35e624d8e6b
3 parties, amount 12btc https://blockchain.info/tx/d91278e125673f5b9201456b0c36efac3b2b6700fdd04fc2227352a63f941170
4 parties, amount 0.84btc (~$200 at contemporary exchange rate) https://blockchain.info/tx/7d588d52d1cece7a18d663c977d6143016b5b326404bbf286bc024d5d54fcecb
4 parties, amount 0.1btc https://blockchain.info/tx/b85a3b563474ca98ba1809460e61a50053899c21f9869afb6a3a6d4b4cb00b7c
3 parties, amount 0.19btc https://blockchain.info/tx/2e2cd9204f97a2260ba5b1fd446f394eeff79daa973e37dd29794a9ee667bf64

Further Development
Github: https://github.com/chris-belcher/joinmarket
IRC: irc.freenode.net #joinmarket
Twitter: https://www.twitter.com/joinmarket
Reddit: http://www.reddit.com/r/joinmarket

If you can program, contribute code. The project needs development works more than anything else right now. A list of suggested projects are here https://github.com/chris-belcher/joinmarket/wiki/What-can-I-do-for-JoinMarket%3F

If you require privacy, JoinMarket can be used right now on the mainnet, albeit with a command-line interface. Many people are already using it.

Bitcoin Core wallet could be integrated by using the -walletbroadcast=0. Integration on the command line using json-rpc calls is already done, use the --rpcwallet flag on sendpayment.py

I have plans to create an Electrum plugin which does this, it would be a simple checkbox and thereafter all transactions would be coinjoined.

If you run your own yield generator bot, you can earn an income from your bitcoin savings and increase the privacy and anonymous set of others.

People trust systems more if they think they know how it works. If you're good with graphics, you can help the project by creating an infographic for how it all works. For example how coinjoin transactions in the joinmarket software are communicated, created, checked and signed.

Snazzy websites are better for getting the word out than big walls of text on a forum.

Further Reading
gmaxwell's original coinjoin post. https://bitcointalk.org/index.php?topic=279249.0
my original Joinmarket suggestion / writeup. https://bitcointalk.org/index.php?topic=279249.msg9384411#msg9384411
Mike Hearn's blog post about privacy and coinjoin https://medium.com/@octskyward/merge-avoidance-7f95a386692f
Is this promising

I want to try my next campaign.
 :)


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: charger100 on September 21, 2017, 02:31:08 PM
"Joinmarket - Coinjoin that people will actually use"

It's been 2,5 years since this topic was started and my only question is simple: haven't you yet understood that people will NOT actually use something that doesn't have friendly UI?

I like this whole project and idea behind it, however being someone without basic coding background I find this thing quite challenging to deal with :(


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: K1773R on September 21, 2017, 04:25:58 PM
"Joinmarket - Coinjoin that people will actually use"

It's been 2,5 years since this topic was started and my only question is simple: haven't you yet understood that people will NOT actually use something that doesn't have friendly UI?

I like this whole project and idea behind it, however being someone without basic coding background I find this thing quite challenging to deal with :(
RTFM


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: charger100 on September 23, 2017, 09:10:44 AM
"Joinmarket - Coinjoin that people will actually use"

It's been 2,5 years since this topic was started and my only question is simple: haven't you yet understood that people will NOT actually use something that doesn't have friendly UI?

I like this whole project and idea behind it, however being someone without basic coding background I find this thing quite challenging to deal with :(
RTFM

yeah good luck in accomplishing anything with such an attitude


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: belcher on September 23, 2017, 01:49:53 PM
There is a GUI and has been for months

https://www.reddit.com/r/joinmarket/comments/691olg/reminder_waxwings_joinmarketclientserver_repo_has/


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: belcher on September 23, 2017, 05:51:02 PM
JoinMarket-clientserver release 0.3.1(!)

https://github.com/JoinMarket-Org/joinmarket-clientserver/blob/master/docs/release-notes/release-notes-0.3.1.md

https://twitter.com/joinmarket/status/911647821958393859

Bugfixes and new features, notably syncing your wallet from Electrum servers.

As mentioned before this supports segwit, has a GUI, more stable sendpayment and tumbler that can be restarted if it crashes prematurely.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: panju1 on October 20, 2017, 10:04:23 PM
Is there a problem in importing a private key from JM 0.3.2 to Electrum? When I try that, I get a totally different address (non-segwit) in Electrum...


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: belcher on November 11, 2017, 11:30:23 AM
Looks like electrum uses the WIP version byte to choose which kind of address it generates https://github.com/spesmilo/electrum/blob/3.0.1/RELEASE-NOTES#L46-L55


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: aetherist on December 20, 2017, 05:38:17 AM
JM daemon setup has completed, but the terminal has output anything beyond

2017-12-19 19:37:02,808 [MainThread  ] [INFO ]  Warning: too high txfee to be profitable, halfing it to: 590
2017-12-19 19:37:02,808 [MainThread  ] [INFO ]  Warning: too high txfee to be profitable, halfing it to: 295
2017-12-19 19:37:02,808 [MainThread  ] [INFO ]  Warning: too high txfee to be profitable, halfing it to: 147
2017-12-19 19:37:02,808 [MainThread  ] [INFO ]  starting yield generator
2017-12-19 19:37:03,189 [MainThread  ] [INFO ]  Listening on port 27183
connection was made, starting client
2017-12-19 19:37:07,645 [MainThread  ] [INFO ]  JM daemon setup complete

I have forwared port 27183 on my router, but I don't read anything happening on that port when I run nmap on my laptop.  When I run top, on my home server I don't see any additional process under the user under which I started the yield generator.  Is my IRC setup dysfunctional, or has the high fees from the blocksize cap priced out takers? Or perhaps something else?  I have just run the yield generators with default settings.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: aetherist on December 20, 2017, 08:31:20 PM
This morning, I thought if the problem is not with IRC, but with a lack of demand (due to fees), such that, I cannot find a counterparty, then I should just tumble. I should easily find a counterparty.  Makers responded.

2017-12-20 12:12:50,549 [MainThread  ] [INFO ]  fee breakdown for J59guRuX5ct5H2KF totalin=8090451 cjamount=6280195 txfee=22 realcjfee=245
2017-12-20 12:12:50,551 [MainThread  ] [INFO ]  fee breakdown for J58pyc32abnCjf9V totalin=13236610 cjamount=6280195 txfee=8064 realcjfee=8074
2017-12-20 12:12:50,554 [MainThread  ] [INFO ]  fee breakdown for J549nFYzjyWtkd9k totalin=7000000 cjamount=6280195 txfee=74 realcjfee=166
2017-12-20 12:12:50,568 [MainThread  ] [INFO ]  fee breakdown for J5Dm1LNSVD71cPGg totalin=250000000 cjamount=6280195 txfee=0 realcjfee=63
2017-12-20 12:12:50,571 [MainThread  ] [INFO ]  fee breakdown for J582pgC6GjfA8mj8 totalin=11810274 cjamount=6280195 txfee=0 realcjfee=685
2017-12-20 12:12:50,580 [MainThread  ] [INFO ]  fee breakdown for J54B3A58fYh1WEdU totalin=30000000 cjamount=6280195 txfee=0 realcjfee=6374
2017-12-20 12:12:50,582 [MainThread  ] [INFO ]  fee breakdown for J59w76vRTjNiqLKR totalin=7592378 cjamount=6280195 txfee=22 realcjfee=188
2017-12-20 12:12:50,583 [MainThread  ] [INFO ]  fee breakdown for J5F9XcX6aiZ86Ufg totalin=9916408 cjamount=6280195 txfee=0 realcjfee=2506

Unhandled Error
...

Estimated fee per kB greater than absurd value: 350000, quitting.

Amp server or network failure unhandled by client application.  Dropping connection!  To avoid, add errbacks to ALL remote commands!
Traceback (most recent call last):
Failure: twisted.protocols.amp.UnknownRemoteError: Code<UNKNOWN>: Unknown Error

At the moment, I have no clues.  I will digest this later when I have time.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: belcher on December 25, 2017, 07:30:07 PM
Estimated fee per kB greater than absurd value: 350000, quitting.

Without getting any more information, it looks like this is the problem.

Recently demand for block space has been very high, so when your joinmarket bot obtains fee estimations it returned a value higher than 350 sat/b (350000) which joinmarket interpreted as an absurd value.

Try opening `joinmarket.cfg` and changing `absurd_fee_per_kb = 350000` to another higher value.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: aetherist on December 28, 2017, 12:27:02 AM
I did not realize that the new version of JoinMarket does not output to the terminal just logs. So I had to clean my UTXO. I moved each UTXO to a new address, to ?untaint? them and I managed to coinjoin as a taker with absurd_fee_per_kb=925000.  The price was bit high maybe I had set the number of makers, ?N?, too high or maybe the increase is due to the new market value for transaction fees.  I am still tweaking parameters to try to coinjoin as a maker.

How many times, is N used for different parameters? It sounds as though, N represents at least the the target block confirmation time and the number target makers simultaneously.  Perhaps that's theoretically acceptable if each lives in a different namespace, but from a practical perspective why would anyone want to obfuscate that?  I will reread the high level design to rule out the possibility that maker coinjoin attempts are not failing due to something with the protocol.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: aetherist on December 30, 2017, 12:05:50 AM
I am still a bit unclear by the phrase, "Avoid address reuse." in the high level design doc.  It could me strictly mean do not reuse address, or it could mean do not associate addresses (as in co-joining two addresses into a third address), or do not mix the dirty laundry with the clean laundry.  I found the figure in Wikipedia's coinjoining page more illuminated than the figures in the high level doc and in Gregory Maxwell's.  It appears as though from Wikipedia's figure, that the privacy is a function of the depth level.

Let L represent the depth level and P the privacy, then P=P(L) where P strictly increase with L.   That is to say that change addresses remain tainted.

Also, since the transaction fees are so high now, it seems reasonable to consider consolidating coins into one address (for both makers and takers which would require takers to run a full node), so as to lower the kb of transactions.  I am still a little fuzzy about the the number of UTXO per users.

Is this proposition correct?
Let N=the number of user, then N-1=the number of makers. Let O=the number of UTXO going into the coinjoin. Let M=the average number of transaction inputs per user

N*M<=O

Hence by running a full node the users increase reliability and lower the need for more than one input and lowering the lower bound of each of the following transaction inputs, transaction data size,  the transaction fee.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: aesma on November 07, 2020, 11:06:20 PM
Hello. This thread is really dead, yet I see there are still new releases of Joinmarket, nobody uses it ? I'm interested in the maker thing, that's a good way to mix coins while making some sats, instead of it costing something.

However I have the same questions as aetherist regarding change addresses and how to do things the right way for everyone involved, privacy wise.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: tiker on November 10, 2020, 02:31:26 PM
Hello. This thread is really dead, yet I see there are still new releases of Joinmarket, nobody uses it ?

I'm just learning this myself.  The Reddit site might be a better place to ask questions.
https://www.reddit.com/r/joinmarket/



Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: crypto_curious on September 12, 2021, 09:35:54 AM
This thread is pretty much dead. For anyone who stumble upon this thread, I invite to visit instead:

Community

    Telegram: https://t.me/joinmarketorg

    IRC: #joinmarket on irc.libera.chat https://kiwiirc.com/nextclient/irc.libera.chat#joinmarket

    IRC on tor: #joinmarket on Hackint. This channel is bridged to the above Libera Chat channel.

    Subreddit: https://reddit.com/r/joinmarket

    Bitcoin wiki page: https://en.bitcoin.it/wiki/JoinMarket

    Twitter: https://twitter.com/joinmarket

Source Code:

    https://github.com/JoinMarket-Org/joinmarket-clientserver


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: CohibAA on April 20, 2023, 10:18:30 PM
For anyone interested in JoinMarket (https://bitcoin-node.com/what-is-joinmarket.php) or still following this thread, a new release was posted in January 2023 on GitHub.

Quote
This release includes some needed changes to address issues with Tor connections, and for this reason principally, all users should upgrade as soon as possible, and should also recreate their joinmarket.cfg file.

This release also includes corrections to transaction fee estimation for non-standard output types, fixes to sendpayment, and corrections to a few minor bugs.

The release now also includes OTS timestamp files of the gpg signatures provided, that can be verified using the opentimestamps client.

JoinMarket Releases (https://github.com/JoinMarket-Org/joinmarket-clientserver/releases)

Release Notes (https://github.com/JoinMarket-Org/joinmarket-clientserver/blob/master/docs/release-notes/release-notes-0.9.9.md)

JoinMarket's Awesome, Man (https://jamdocs.org/)

Happy CoinJoining.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: dkbit98 on April 21, 2023, 01:15:24 AM
For anyone interested in JoinMarket (https://bitcoin-node.com/what-is-joinmarket.php) or still following this thread, a new release was posted in January 2023 on GitHub.
There are certainly people who are interested to make a switch from Coinjoin to Joinmarket, especially since Wasabi and Trezor are going in different direction.
What would be the easiest way to make this transition, that could work even for newbies who want more privacy? jamapp.org maybe?


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: CohibAA on April 22, 2023, 07:16:28 PM
What would be the easiest way to make this transition, that could work even for newbies who want more privacy? jamapp.org maybe?

I think it really depends on the comfort level of the user with their OS.  JoinMarket does require a connection to a full bitcoin core node, which may be an obstacle for some new users.  For those comfortable with or currently already running a bitcoin node, I think the install documents (https://github.com/JoinMarket-Org/joinmarket-clientserver/blob/master/README.md#quickstart---recommended-installation-method-linux-and-macos-only) are pretty detailed and well written. 

Personally, I think Jamapp.org (https://jamapp.org/) is a great product for anyone comfortable using Linux based operating systems.  The Windows installation (https://github.com/JoinMarket-Org/joinmarket-clientserver/blob/master/docs/INSTALL.md#installation-on-windows) is also very straight-forward, and most people are probably using Windows.

While JoinMarket is a 'power-user' type of tool, a lot of effort has been made to make it easy to use and understand across a wide variety of situations.

 8)


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: Kryptowerk on December 14, 2023, 02:16:56 PM
I thought I'd go ahead and give this a friendly bump.
The project seems still alive, just not here on the forum.

With my basic technical understanding this seems very promising, but I wonder if there is any chance this can ever become truely mainstream, similar to Electrum wallet for example. Just download a full functioning software with one click and either participate for "join-coining" your own BTC or provide a joincoin-node to make some tiny income for the coin-joins of others.
Anyone knows if there are any plans to in that direction?


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: dkbit98 on December 14, 2023, 05:37:34 PM
With my basic technical understanding this seems very promising, but I wonder if there is any chance this can ever become truely mainstream, similar to Electrum wallet for example. Just download a full functioning software with one click and either participate for "join-coining" your own BTC or provide a joincoin-node to make some tiny income for the coin-joins of others.
Anyone knows if there are any plans to in that direction?
Jamapp.org is the best solution I have seen so far.
No central coordinator, no central point of failure, but you still need to run your own node.
You can't have anything like Electrum wallet without using node from somebody else, but I don't think current Jamapp setup is complicated at all.


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: graphite on February 27, 2024, 09:13:32 PM
Made a post about this on Bitcoin Discussion but was deleted for some reason so ill post it here. I've been reading about JoinMarket and noticed this post on this forum about it. url: https://bitcointalk.org/index.php?topic=1609980.0

It describes a potential way to unmix JoinMarket by exploiting its maker taker system. To simplify it says that all outputs of a mix are either maker or taker but it is trivial to determine which outputs are makers as they will continue on to participate in more mixes while the taker order will not therefore it can be unmixed.

Is this still an issue for JoinMarket or have they found a way around it?


Title: Re: [ANN] Joinmarket - Coinjoin that people will actually use
Post by: ABCbits on February 28, 2024, 10:14:52 AM
Made a post about this on Bitcoin Discussion but was deleted for some reason so ill post it here. I've been reading about JoinMarket and noticed this post on this forum about it. url: https://bitcointalk.org/index.php?topic=1609980.0

It describes a potential way to unmix JoinMarket by exploiting its maker taker system. To simplify it says that all outputs of a mix are either maker or taker but it is trivial to determine which outputs are makers as they will continue on to participate in more mixes while the taker order will not therefore it can be unmixed.

Is this still an issue for JoinMarket or have they found a way around it?


First of all, if you want definite answer, you probably want ask this question on other JoinMarket community[1]. These days on this forum, i see almost no one talk technical detail of JoinMarket. Looking at one of community discussion[2], it seems the workaround is multiple CoinJoin which reduce tracking confidence or use different CoinJoin method supported by JoinMarket software.

[1] https://github.com/JoinMarket-Org/joinmarket-clientserver?tab=readme-ov-file#community (https://github.com/JoinMarket-Org/joinmarket-clientserver?tab=readme-ov-file#community)
[2] https://github.com/JoinMarket-Org/joinmarket-clientserver/issues/948 (https://github.com/JoinMarket-Org/joinmarket-clientserver/issues/948)