Bitcoin Forum
November 03, 2024, 11:09:36 PM *
News: Latest Bitcoin Core release: 28.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: « 1 2 3 4 [5] 6 7 8 9 10 11 12 13 14 15 16 17 18 »  All
  Print  
Author Topic: [ANN] Joinmarket - Coinjoin that people will actually use  (Read 84985 times)
inaltoasinistra
Full Member
***
Offline Offline

Activity: 142
Merit: 104


View Profile
June 11, 2015, 09:26:43 AM
 #81

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?]

waxwing
Sr. Member
****
Offline Offline

Activity: 469
Merit: 253


View Profile
June 11, 2015, 11:32:15 AM
 #82

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 Smiley 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!).

PGP fingerprint 2B6FC204D9BF332D062B 461A141001A1AF77F20B (use email to contact)
inaltoasinistra
Full Member
***
Offline Offline

Activity: 142
Merit: 104


View Profile
June 25, 2015, 01:16:57 PM
 #83

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.

ThePiGuy
Newbie
*
Offline Offline

Activity: 25
Merit: 0


View Profile
June 26, 2015, 01:00:13 AM
 #84

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!
belcher (OP)
Sr. Member
****
Offline Offline

Activity: 261
Merit: 523


View Profile
June 26, 2015, 11:33:34 AM
 #85

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.

1HZBd22eQLgbwxjwbCtSjhoPFWxQg8rBd9
JoinMarket - CoinJoin that people will actually use.
PGP fingerprint: 0A8B 038F 5E10 CC27 89BF CFFF EF73 4EA6 77F3 1129
coinchip
Newbie
*
Offline Offline

Activity: 7
Merit: 0


View Profile
June 28, 2015, 04:56:59 PM
 #86

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.


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.

coinchip
Newbie
*
Offline Offline

Activity: 7
Merit: 0


View Profile
June 28, 2015, 05:17:28 PM
 #87

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.
CohibAA
Full Member
***
Offline Offline

Activity: 223
Merit: 132



View Profile WWW
June 28, 2015, 08:23:33 PM
 #88

Anybody can edit the wiki.  Wink

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.


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

Activity: 261
Merit: 523


View Profile
June 28, 2015, 11:28:06 PM
 #89

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.

1HZBd22eQLgbwxjwbCtSjhoPFWxQg8rBd9
JoinMarket - CoinJoin that people will actually use.
PGP fingerprint: 0A8B 038F 5E10 CC27 89BF CFFF EF73 4EA6 77F3 1129
belcher (OP)
Sr. Member
****
Offline Offline

Activity: 261
Merit: 523


View Profile
June 29, 2015, 12:15:37 AM
 #90

For eager joinmarketeers, read this list for ways to contribute.

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

1HZBd22eQLgbwxjwbCtSjhoPFWxQg8rBd9
JoinMarket - CoinJoin that people will actually use.
PGP fingerprint: 0A8B 038F 5E10 CC27 89BF CFFF EF73 4EA6 77F3 1129
noel57
Sr. Member
****
Offline Offline

Activity: 392
Merit: 250



View Profile
June 29, 2015, 05:09:25 AM
 #91

This concept seems great especially the investment part of it  Grin, can this also serve as multi signature for safe escrow dealing when transacting with people you yet to be trusted?

CohibAA
Full Member
***
Offline Offline

Activity: 223
Merit: 132



View Profile WWW
June 29, 2015, 05:20:51 AM
 #92

This concept seems great especially the investment part of it  Grin, 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.

noel57
Sr. Member
****
Offline Offline

Activity: 392
Merit: 250



View Profile
June 29, 2015, 08:32:13 AM
 #93

This concept seems great especially the investment part of it  Grin, 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.

waxwing
Sr. Member
****
Offline Offline

Activity: 469
Merit: 253


View Profile
June 29, 2015, 09:46:27 AM
 #94

This concept seems great especially the investment part of it  Grin, 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.

PGP fingerprint 2B6FC204D9BF332D062B 461A141001A1AF77F20B (use email to contact)
noel57
Sr. Member
****
Offline Offline

Activity: 392
Merit: 250



View Profile
June 30, 2015, 08:46:05 AM
 #95

This concept seems great especially the investment part of it  Grin, 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.

waxwing
Sr. Member
****
Offline Offline

Activity: 469
Merit: 253


View Profile
July 01, 2015, 11:26:10 AM
 #96

This concept seems great especially the investment part of it  Grin, 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.

PGP fingerprint 2B6FC204D9BF332D062B 461A141001A1AF77F20B (use email to contact)
inaltoasinistra
Full Member
***
Offline Offline

Activity: 142
Merit: 104


View Profile
July 02, 2015, 07:10:57 AM
 #97

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?

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

Activity: 261
Merit: 523


View Profile
July 02, 2015, 10:47:05 AM
 #98

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.

1HZBd22eQLgbwxjwbCtSjhoPFWxQg8rBd9
JoinMarket - CoinJoin that people will actually use.
PGP fingerprint: 0A8B 038F 5E10 CC27 89BF CFFF EF73 4EA6 77F3 1129
domob
Legendary
*
Offline Offline

Activity: 1135
Merit: 1170


View Profile WWW
July 02, 2015, 10:53:33 AM
 #99

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.

Use your Namecoin identity as OpenID: https://nameid.org/
Donations: 1domobKsPZ5cWk2kXssD8p8ES1qffGUCm | NMC: NCdomobcmcmVdxC5yxMitojQ4tvAtv99pY
BM-GtQnWM3vcdorfqpKXsmfHQ4rVYPG5pKS | GPG 0xA7330737
Adlai
Newbie
*
Offline Offline

Activity: 42
Merit: 0


View Profile WWW
July 03, 2015, 02:39:56 AM
 #100

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.
Pages: « 1 2 3 4 [5] 6 7 8 9 10 11 12 13 14 15 16 17 18 »  All
  Print  
 
Jump to:  

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