Pages:
Author

Topic: [ANN] Joinmarket - Coinjoin that people will actually use - page 14. (Read 84864 times)

sr. member
Activity: 469
Merit: 253
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.
sr. member
Activity: 392
Merit: 250
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.
sr. member
Activity: 469
Merit: 253
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.
sr. member
Activity: 392
Merit: 250
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.
full member
Activity: 223
Merit: 130
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.
sr. member
Activity: 392
Merit: 250
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?
sr. member
Activity: 261
Merit: 518
sr. member
Activity: 261
Merit: 518
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.
full member
Activity: 223
Merit: 130
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.

newbie
Activity: 7
Merit: 0
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.
newbie
Activity: 7
Merit: 0
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.

sr. member
Activity: 261
Merit: 518
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.
newbie
Activity: 25
Merit: 0
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!
full member
Activity: 142
Merit: 104
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.
sr. member
Activity: 469
Merit: 253
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!).
full member
Activity: 142
Merit: 104
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?]
newbie
Activity: 7
Merit: 0
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.
hero member
Activity: 503
Merit: 501
One piece of the puzzle towards individual transactional data ownership.
legendary
Activity: 1792
Merit: 1008
/dev/null
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
full member
Activity: 142
Merit: 104
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?
Pages:
Jump to: