JoinMarket wants to solve the problem of privacy, fungibility, fees, and scalability in bitcoin. It’s an innovative kind of mixing technology which uses CoinJoin. Before a deep dive into JoinMarket, it’s important to understand the CoinJoin method which was proposed by Gregory Maxwell, ex-CTO of Blockstream who quit in January to work on Bitcoin. JoinMarket wants to solve the problem of privacy, fungibility, fees, and scalability in bitcoin. It’s an innovative kind of mixing technology which uses CoinJoin. Before a deep dive into JoinMarket, it’s important to understand the CoinJoin method which was proposed by Gregory Maxwell, ex-CTO of Blockstream who quit in January to work on Bitcoin. May 22, · JoinMarket wants to solve the problem of privacy, fungibility, fees, and scalability in bitcoin. It’s an innovative kind of mixing technology which uses CoinJoin.
Joinmarket bitcoinContracts — Bitcoin
Alas, Bob often forgets to pay her, so Alice demands to be paid immediately after each post she approves or rejects. Bob asks Alice for her public key and then creates two transactions. The first transaction pays millibitcoins to a P2SH output whose 2-of-2 multisig redeem script requires signatures from both Alice and Bob. This is the bond transaction. Broadcasting this transaction would let Alice hold the millibitcoins hostage, so Bob keeps this transaction private for now and creates a second transaction.
This is the refund transaction. She then asks Bob for the bond transaction and checks that the refund transaction spends the output of the bond transaction. She can now broadcast the bond transaction to the network to ensure Bob has to wait for the time lock to expire before further spending his millibitcoins.
Now, when Alice does some work worth 1 millibitcoin, she asks Bob to create and sign a new version of the refund transaction. Version two of the transaction spends 1 millibitcoin to Alice and the other 99 back to Bob; it does not have a locktime, so Alice can sign it and spend it whenever she wants. Alice and Bob repeat these work-and-pay steps until Alice finishes for the day, or until the time lock is about to expire.
Alice signs the final version of the refund transaction and broadcasts it, paying herself and refunding any remaining balance to Bob. The next day, when Alice starts work, they create a new micropayment channel.
If Alice fails to broadcast a version of the refund transaction before its time lock expires, Bob can broadcast the first version and receive a full refund. Transaction malleability, discussed above in the Transactions section, is another reason to limit the value of micropayment channels. For larger payments, Bitcoin transaction fees are very low as a percentage of the total transaction value, so it makes more sense to protect payments with immediately-broadcast separate transactions.
Resource: The bitcoinj Java library provides a complete set of micropayment functions, an example implementation, and a tutorial all under an Apache license. Alice is concerned about her privacy.
She knows every transaction gets added to the public block chain, so when Bob and Charlie pay her, they can each easily track those satoshis to learn what Bitcoin addresses she pays, how much she pays them, and possibly how many satoshis she has left. They then each generate a brand new public key and give UTXO details and pubkey hashes to the facilitator.
In this case, the facilitator is AnonGirl; she creates a transaction spending each of the UTXOs to three equally-sized outputs. She gives the partially-signed transaction to Nemo who signs his inputs the same way and passes it to Neminem, who also signs it the same way. Neminem then broadcasts the transaction to the Bitcoin peer-to-peer network , mixing all of the millibitcoins in a single transaction. If Alice does a few more CoinJoins, Bob and Charlie might have to guess which transactions made by dozens or hundreds of people were actually made by Alice.
But against anyone casually browsing block chain history, Alice gains plausible deniability. The CoinJoin technique described above costs the participants a small amount of satoshis to pay the transaction fee. An alternative technique, purchaser CoinJoin, can actually save them satoshis and improve their privacy at the same time.
AnonGirl waits in the IRC chatroom until she wants to make a purchase. She announces her intention to spend satoshis and waits until someone else wants to make a purchase, likely from a different merchant. Then they combine their inputs the same way as before but set the outputs to the separate merchant addresses so nobody will be able to figure out solely from block chain history which one of them bought what from the merchants.
JoinMarket style CoinJoins differ from the above described scheme by splitting the participants into two sections: market makers and market takers. Market makers are publishing their CoinJoin intentions to an IRC room and waiting for market takers to take their offers. When a taker comes along, it selects a set of makers and creates a shared transaction with them, while also paying a small fee.
Opennoms joinmarket tutorial. Learn how to Install TOr. Opennoms joinmarket fee tutorial. Taken directly from the Bitcoin Wiki. UTXOs from one mixdepth are never used as inputs along with coins from others, so mixdepths are like seperate identities which users can use to stop coins from different sources being mixed. Coins only move between them via CoinJoins. The Deterministic wallet discourages users from doing address reuse. The wallet allows individual private keys and UTXOs to be imported, which can be used with reused addresses to have CoinJoins created from them which would confuse any analysis based on the common-input-ownership heuristic.
You can send Bitcoin to another address right away and get the privacy benefits of a CoinJoin. The privacy benefits are less than using the tumble. This can be set in your joinmarket.
After getting the hang of joinmarket, you will get a better idea of what is appropriate to pay based on your use case. The participant information is presented to the taker, so the taker can confirm they want to go through with the CoinJoin. For a detailed explanation on Tumble.