Skip to content
This repository has been archived by the owner on May 13, 2022. It is now read-only.

Funding future development #258

Open
chris-belcher opened this issue Oct 4, 2015 · 16 comments
Open

Funding future development #258

chris-belcher opened this issue Oct 4, 2015 · 16 comments

Comments

@chris-belcher
Copy link
Collaborator

It would be useful to increase the amount of donations to fund development. A possible way to do this might be to have an opt-out donation built into the tumbler script.

@tailsjoin
Copy link
Contributor

I don't like opt-out scenarios. Especially when it comes to donations.

@JulianTosh
Copy link

JulianTosh commented Oct 4, 2015 via email

@chris-belcher
Copy link
Collaborator Author

I understand what you're saying. Of course people don't like to feel they've been tricked into contributing.

On the other hand, few people will work for free long term, especially when others find bitcoin's privacy properties very useful and profitable. And there are centralized services which attempt to do the same as tumbler.py but can collect a fee.

As for the opt-out, apparently multibit doesn't even have one. https://www.reddit.com/r/Bitcoin/comments/39694x/wtf_multibit_hd_why_i_have_to_pay_a_fee_to_you/

They charge per-transaction which is an option too. So something like keeping track of transaction numbers and every 10 or 20 add an extra output address. A third way might be to ask from the yield generators. It's not clear thats even worth it, as market makers will always have a very low income.

@JulianTosh
Copy link

I like the sound of sharing profits from yieldgenerator.py

On Sun, Oct 4, 2015 at 9:28 AM, chris-belcher notifications@github.com
wrote:

I understand what you're saying. Of course people don't like to feel
they've been tricked into contributing.

On the other hand, few people will work for free long term, especially
when others find bitcoin's privacy properties very useful and profitable.
And there are centralized services which attempt to do the same as
tumbler.py but can collect a fee.

As for the opt-out, apparently multibit doesn't even have one.
https://www.reddit.com/r/Bitcoin/comments/39694x/wtf_multibit_hd_why_i_have_to_pay_a_fee_to_you/

They charge per-transaction which is an option too. So something like
keeping track of transaction numbers and every 10 or 20 add an extra output
address. A third way might be to ask from the yield generators. It's clear
thats even worth it, market makers will always have a very low income.


Reply to this email directly or view it on GitHub
#258 (comment)
.

@justusranvier
Copy link

Another route to consider might be moving away from IRC to some other type of messaging hub, and allowing those hubs to charge a small usage fee.

Usage fees collected by the default hub would become an income source (hopefully) capable of funding development.

@chris-belcher
Copy link
Collaborator Author

A problem with a centralized messaging hub is that it implies the ability to censor. If the operator of the hub can stop people using it if they haven't paid, they can also stop them using it for some political or moral reason, or if they've been coerced. That's also bad for privacy because the operator could stop a taker meeting anyone except its own sybils.
So long term we absolutely must to move away from a single central IRC channel, but ideally not into another centralized messaging channel.

@justusranvier
Copy link

As long as people have a choice of messaging hubs, then censorship has an opportunity cost and users will migrate to the ones that provide the best service.

With Joinmarket you've correctly identified that the best way to ensure the presence of makers is to allow them to sell their services - the same is true for the matchmaking mechanism.

I agree that it's a problem if a messaging hub can show some users a different view of the order book than others, but this is a problem that has many solutions and you've only mentioned one (eliminate messaging hubs entirely).

@chris-belcher
Copy link
Collaborator Author

Ok interesting. The subspace project also had the idea for their servers to be able to charge for relaying messages.

So it may be a little like certificate authorities in SSL who charge for their services and there are many of them who compete with each other. The only issue is that it may be difficult for people who need privacy to meaningfully add new messaging hubs, in a similar way to how its difficult to add new CAs.

It's worth considering definitely.

@eragmus
Copy link

eragmus commented Oct 4, 2015

In terms of funding, I recommend applying for this CoinJoin bounty, set up 2 years ago by Greg Maxwell:

https://bitcointalk.org/index.php?topic=279249.msg2983911#msg2983911

The fund address (42 BTC):

https://www.blocktrail.com/BTC/address/3M8XGFBKwkf7miBzpkU3x2DoWwAVrD1mhk

"The bounty fund will pay out as funds are available according to the signers best judgment for completed work proposed in this thread that furthers the goal of making improved transaction privacy a practical reality for Bitcoin users."

I think JoinMarket qualifies, easily. I can't think of another project that has done anywhere as much work on CoinJoin. Or, for added incentive, maybe it can pay out once wallet integration is done with a popular light wallet, like Electrum, plus Bitcoin Core!! ;)

I did actually message Greg about this situation 1-2 months ago, and we agreed that JoinMarket probably deserves most of the bounty.

The added benefit is that these 42 BTC should hopefully provide constitute way more in donations than the proposed opt-out idea would, in addition to being much more user-tolerated. People tend to be very unhappy when they find they are auto-donating money away, without being given an option. Even the option gives some a bad taste. See the unhappiness when MultiBit HD announced it.

@kristovatlas
Copy link

Another route to consider might be moving away from IRC to some other type of messaging hub, and allowing those hubs to charge a small usage fee.

Usage fees collected by the default hub would become an income source (hopefully) capable of funding development.

I like this idea. (No thoughts on its business viability.)

@phelixbtc
Copy link

what eragmus said

@kevz718
Copy link

kevz718 commented Jun 13, 2016

i think its super important that these open source projects get the $ support they need otherwise they fizzle out and die.

Im pretty new so I don't yet know if join market is for me but I'm 95% sure it is and that i just need to figure out a few more things/errors and then ill be on-board for good and would at that point want to make sure i contribute to keep it alive.

What about a crowd fund-style goal page where people know how much is desired and what efforts that will go towards? For example (+ I'm totally making #s up).

GOAL #1 - continue full-time development = $20,000 needed (and then show amount donated + amount needed)

GOAL #2 - provide part-time support person = $20,000 needed (and then show amount donated, etc)

GOAL #3 - integrate into official electrum plugin = $10,000 needed

etc etc

then by essence of people donating to a goal, they could vote on the thing they think most important.

otherwise, i can see this very cool project fizzling out over time. mycelium is gonna develop a competitor which is stupid cuz it'd be best to broaden the mixing audience and thus having everybody in one pool of mixers using same protocol i think makes for better mixing at the non-tech level.

anyways, once i figure out my remaining issues and understand that I'm going to stick with using join market, ill be making a donation to the lead developer just to say thanks.

but long term, i hope to see a goal-driven crowdfunded option of donating and getting new features based on peoples donations.

i also think thet having the yield generator profits donated is a fantastic way to support the project overall. Id encourage having both ways to donate (maybe the yield sharing supports core dev/bug fixing, etc) and the donation-crowd funding supports new features via a vote by donation mentality.

anybody else aware of any conjoin-style mixer apps out there? and i don't mean darknet-for-profit mixers that will likely scam people someday. I know blockchaininfo closed their conjoin functionality down for the moment. and i dunno what sup with dark wallet but that fizzled to my knowledge

@raedah
Copy link
Contributor

raedah commented Jun 13, 2016

I suggest we add a donate.py, that displays a metric of how much they have used joinmarket, their suggested donation based on usage, and (Y/N) to execute it. Just make it easy. I prefer this over a opt-out.

@chris-belcher
Copy link
Collaborator Author

Yield generator income used for funding is unlikely to work well because yieldgen margins are razor thin, it would be very rational for yieldgen operators to simply turn it off. p2pool had a similar model where part of the miner income would be redirected for development by default with the option to stop it. Miner margins are about as thin as yield generator margins.
Here's a few posts by forrestv about his experience with the p2pool donation: http://www.data321.net/other/201606362107/decentralization

When I see guides telling people to use --give-author 0 without any mention made of what it does, people blindly following them, or people asking me for help, providing screenshots of them running P2Pool with donations disabled, it hurts a bit. Actually, more than a bit. Right now, I get 0.09% of the revenue from P2Pool due to node donations (which default to 1%), which likely means that about 90% of people have completely disabled donations. That doesn't result in much revenue. Just today I spent about 10 hours getting http://p2pool.info/ working, which is the equivalent of two weeks of pool donations - if I were being paid minimum wage! I don't have a job (I am a student) and I do have other side-ventures that I'm working towards that look a bit more optimistic, so pardon me for rationally allocating my free time.

Crowdfunding donations combined with donation campaigns (posting on every bitcoin forum, causing hype and getting people talking) is an interesting idea. DarkWallet worked like this, as well as a few other projects like bitsquare and tlsnotary.

One possible negative effect of it is I personally would have to be much less outspoken on some issues. For example, I commented a lot on reddit during the height of the block size conflict a few months ago. There was a lot of misinformation around and I felt the need to give the pro-Core viewpoint. Because of this I was targetted with automated downvotes: https://i.imgur.com/WSuoNzu.png I'm thinking in a future where JoinMarket depends on donation campaigns, I wouldn't be able to be so outspoken on important issues.

@AdamISZ
Copy link
Member

AdamISZ commented Jun 14, 2016

I guess I'll throw in a few comments. I understand the appeal of bounties, but I think they're really problematic. Crowd-funding is kind of the same thing on a larger, broader scale and I think makes more practical sense. i.e. the developers/organizers set a few broader, higher level goals so people have some sense of what they're funding. Of course there are problems but it can be at least not practically terrible.

The ideal is having a business model and investment, but it doesn't seem there is conceivably a business model here without introducing unacceptable trust points. The sort of 'gold standard' is some very high/grand goals over long time periods, like the Blockstream type of investment, but we are not playing in that particular kind of sandpit :)

I think @kevz718 's description in vague terms works quite well, consider we only had 2 or 3 FTE devs, even if we paid them a minimum wage like $10/hr (frankly I'd be very happy with that considering I am paid nothing other than my share of the small donations we've received the past year, thanks @chris-belcher for that, which probably works out to $1 per hour or something). On that basis $10K could pay for a few hundred hours of 3 FTE dev. But if I acquiesce to $10/hr that doesn't mean anyone else will, plus let's be honest, most professional devs wouldn't think it worth considering.

The remaining issue is that 10K x a few, low as it is, may not be at all achievable; that was bitsquare's experience when they tried to raise a smallish figure. (tlsnotary didn't do that btw)

I agree that yield gen donations doesn't really work.

Re: the point about constrained speech/political influence, I think we can just agree that our positions should never be affected by this, and to the extent that they are, that's an undesirable side effect.

@chris-belcher
Copy link
Collaborator Author

A way for solving this I've been thinking of is to have a hardcoded payment in the tumbler to the developers.

Tumbler users are less price-sensitive than yield generators. They pay miner fees and coinjoin fees, and bitcoiners who need privacy already pay a fee when they use centralized mixers like BitcoinFog. Also then the funding for keeping JoinMarket alive would come from part of it's main users, so all the incentives would align to keep it working sustainably.

Bitsquare works a bit like this I believe. They have a hard coded fee that goes to the developers for every trade.

In the code there could be a list of each developer's stealth address pubkey where one is randomly chosen with weights where the fee gets sent to.

It would be a built into the GUI tumbler, an entirely new script. The tumbler.py command line script should stay the same so there isn't the psychological objection of "this thing only cost miner fees and coinjoin fees before, why do we have to pay more now for the same product?".

Everything would be explained in a GUI popup when the app is first started up. This was one problem with the opt-out donation in tumbler.py, that it was not transparent enough. People rightly felt tricked into 'donating' and for that I have to accept responsibility.

In terms of investment. I'd personally be happy to continue investing time in JoinMarket for a while to try to fix important fundamental issues like sybil attacks, #156 and a ton of other problems. But that depends on there being a sustainable future for it. If I don't think it can happen then I might as well stop now.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

10 participants