Bitcoin Forum
April 24, 2024, 12:40:39 AM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: 1 2 [All]
  Print  
Author Topic: The "Bounty Swarm"  (Read 10256 times)
Anonymous
Guest

August 07, 2010, 06:49:48 AM
 #1

I propose the following -which I call the "distributed bounty swarm".It would utilise a bitcoin type application where people would tag a transaction fee with a label such as "fix this bug" or "build this website feature" or "hire me" which would then be broadcast on the network and the person that solved the issue could collect the "cloud bounty" on offer.The bounties could be parsed from the swarm and listed on any website or client.Both the fee provider and the bounty collector would only be registered by their bitcoin address.This could  be encrypted with a pgp key to verify ownership.

What is needed
A way to broadcast to the swarm that a job has been completed.
An automatic escrow service that verifies the job has been completed.The fee is already verified by the swarm.
Some form of messaging/contact  between fee provider address and bounty collector address to allow pgp key sending.
Provide a sending and receiving address so that a coin sent to you gets sent back out with your signed pgp key which verifies you to the other party.
The Bitcoin network protocol was designed to be extremely flexible. It can be used to create timed transactions, escrow transactions, multi-signature transactions, etc. The current features of the client only hint at what will be possible in the future.
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
1713919239
Hero Member
*
Offline Offline

Posts: 1713919239

View Profile Personal Message (Offline)

Ignore
1713919239
Reply with quote  #2

1713919239
Report to moderator
1713919239
Hero Member
*
Offline Offline

Posts: 1713919239

View Profile Personal Message (Offline)

Ignore
1713919239
Reply with quote  #2

1713919239
Report to moderator
kiba
Legendary
*
Offline Offline

Activity: 980
Merit: 1014


View Profile
August 07, 2010, 06:59:37 AM
 #2

Hmm...I feel weird in the abritation and judgement area. Some jobs won't be of to the satisifaction of some individuals. Some individuals think it is a satisifed job. Some jobs are completely subjective.

But, clearly, I am not thinking clearly since I am tired and all.

FreeMoney
Legendary
*
Offline Offline

Activity: 1246
Merit: 1014


Strength in numbers


View Profile WWW
August 07, 2010, 09:06:06 AM
 #3

I think it's a great idea for a separate service.

The currency can be bitcoin or something else even.

I think it's a great example of how public goods can be funded without coercion. I don't think bounties can provide every public good, so don't derail this thread trying to straw man me.

Play Bitcoin Poker at sealswithclubs.eu. We're active and open to everyone.
bytemaster
Hero Member
*****
Offline Offline

Activity: 770
Merit: 566

fractally


View Profile WWW
August 08, 2010, 01:15:07 AM
 #4

I had about the same idea 5 years ago and tried to implement it as "OpenContract".  The challenge is finding a way to clearly define requirements and dealing with multiple people who "race" to get it done.  I would love to see such a system.

https://fractally.com - the next generation of decentralized autonomous organizations (DAOs).
mizerydearia
Hero Member
*****
Offline Offline

Activity: 574
Merit: 507



View Profile
August 08, 2010, 05:15:40 AM
 #5

I had about the same idea 5 years ago and tried to implement it as "OpenContract".  The challenge is finding a way to clearly define requirements and dealing with multiple people who "race" to get it done.  I would love to see such a system.

Humm, for some reason I am reminded of 99designs and http://no-spec.com
Ground Loop
Member
**
Offline Offline

Activity: 111
Merit: 10


View Profile
August 10, 2010, 04:26:43 AM
 #6

Before solving the difficult "submission and satisfaction" part, I'd love to find a way to pay into a pool, even if that pool is controlled (received/arbitrated) by one person.

For example, bounty for some public good (SSE4.2 optimization or somesuch).  I just want a way to send coins out to be 'held' in escrow until some agreed arbiter releases them.

In the event the deadline arrives, there should be an easy way to "refund" all the coins back where they came from.

The irreversible and anonymous nature of bitcoins makes this really attractive, since the "doer" knows precisely how many coins are pending, and the donors don't need to identify themselves.

Bitcoin accepted here: 1HrAmQk9EuH3Ak6ugsw3qi3g23DG6YUNPq
kiba
Legendary
*
Offline Offline

Activity: 980
Merit: 1014


View Profile
August 10, 2010, 04:33:03 AM
 #7

So, who is working on this project?

Anonymous
Guest

August 10, 2010, 05:19:07 AM
 #8

Before solving the difficult "submission and satisfaction" part, I'd love to find a way to pay into a pool, even if that pool is controlled (received/arbitrated) by one person.

For example, bounty for some public good (SSE4.2 optimization or somesuch).  I just want a way to send coins out to be 'held' in escrow until some agreed arbiter releases them.

In the event the deadline arrives, there should be an easy way to "refund" all the coins back where they came from.

The irreversible and anonymous nature of bitcoins makes this really attractive, since the "doer" knows precisely how many coins are pending, and the donors don't need to identify themselves.

Yeah freelancer or odesk isnt appropriate though they offer some of the functionality.
Anonymous
Guest

August 10, 2010, 05:19:37 AM
 #9

So, who is working on this project?


Whoever wants too!!
Ground Loop
Member
**
Offline Offline

Activity: 111
Merit: 10


View Profile
August 10, 2010, 05:53:31 AM
 #10

Really, it's just the refunding that's difficult.

If I post a btc address, and everyone agrees that I'm a trustworthy treasurer, I can receive the escrow/bounty just fine.  Further, with the right not-yet-extant tools, anyone could see the accumulated total (so no trust is required there).  That's very cool.  So that becomes the more general coin-tracking problem -- figuring out the total credits in any one address.

The problem comes if I want to refund the bounty to the respective donors.  That seems impossible without adding something to identfy the payer (IP address).  Hmm.

Bitcoin accepted here: 1HrAmQk9EuH3Ak6ugsw3qi3g23DG6YUNPq
mizerydearia
Hero Member
*****
Offline Offline

Activity: 574
Merit: 507



View Profile
August 10, 2010, 06:11:23 AM
 #11

I'm not sure if this is related, but I think it is.  As I was searching through the forum and also with some collaboration with jgarzik on IRC, I prepared http://www.bitcoin.org/wiki/doku.php?id=list_of_patches and particularly learned more about listtransactions patch http://bitcointalk.org/index.php?topic=611.0

I believe that patch may be useful in some way.
Anonymous
Guest

August 10, 2010, 06:57:07 AM
 #12

Really, it's just the refunding that's difficult.

If I post a btc address, and everyone agrees that I'm a trustworthy treasurer, I can receive the escrow/bounty just fine.  Further, with the right not-yet-extant tools, anyone could see the accumulated total (so no trust is required there).  That's very cool.  So that becomes the more general coin-tracking problem -- figuring out the total credits in any one address.

The problem comes if I want to refund the bounty to the respective donors.  That seems impossible without adding something to identfy the payer (IP address).  Hmm.

Probably need to secure ip first  Cheesy
Insti
Sr. Member
****
Offline Offline

Activity: 294
Merit: 252


Firstbits: 1duzy


View Profile
August 10, 2010, 08:47:22 AM
 #13

Really, it's just the refunding that's difficult.

If I post a btc address, and everyone agrees that I'm a trustworthy treasurer, I can receive the escrow/bounty just fine.  Further, with the right not-yet-extant tools, anyone could see the accumulated total (so no trust is required there).  That's very cool.  So that becomes the more general coin-tracking problem -- figuring out the total credits in any one address.

The problem comes if I want to refund the bounty to the respective donors.  That seems impossible without adding something to identfy the payer (IP address).  Hmm.

The 'from' Bitcoin address is stored in the transaction, you don't need any extra information.
Sending money back where it came from is not difficult.
FreeMoney
Legendary
*
Offline Offline

Activity: 1246
Merit: 1014


Strength in numbers


View Profile WWW
August 10, 2010, 09:54:03 AM
 #14

Really, it's just the refunding that's difficult.

If I post a btc address, and everyone agrees that I'm a trustworthy treasurer, I can receive the escrow/bounty just fine.  Further, with the right not-yet-extant tools, anyone could see the accumulated total (so no trust is required there).  That's very cool.  So that becomes the more general coin-tracking problem -- figuring out the total credits in any one address.

The problem comes if I want to refund the bounty to the respective donors.  That seems impossible without adding something to identfy the payer (IP address).  Hmm.

The 'from' Bitcoin address is stored in the transaction, you don't need any extra information.
Sending money back where it came from is not difficult.

Why doesn't this show up in the client? Am I blind?

Play Bitcoin Poker at sealswithclubs.eu. We're active and open to everyone.
Insti
Sr. Member
****
Offline Offline

Activity: 294
Merit: 252


Firstbits: 1duzy


View Profile
August 10, 2010, 02:51:43 PM
 #15

Why doesn't this show up in the client? Am I blind?

Good question. No.
Ground Loop
Member
**
Offline Offline

Activity: 111
Merit: 10


View Profile
August 10, 2010, 03:53:54 PM
 #16

Seriously?  The From bc address is right there in the transaction?  That would be great.
My clients show only the address the payment was *to*, not from.

I'd love to set up a receive address that maintains (in the client?) the sources of all funds, and has a "return to payer" feature.

Bitcoin accepted here: 1HrAmQk9EuH3Ak6ugsw3qi3g23DG6YUNPq
theymos
Administrator
Legendary
*
Offline Offline

Activity: 5180
Merit: 12878


View Profile
August 10, 2010, 08:26:29 PM
 #17

Transactions are usually from many different addresses (maybe hundreds), so you can't show them in the "all transactions" list.

Returning a payment to one of these addresses would be confusing, since they would see a payment going to an address they created for some one-time thing months ago or whatever. They'd have no way of knowing it was from you. The client could be modified to detect this, though.

1NXYoJ5xU91Jp83XfVMHwwTUyZFK64BoAD
FreeMoney
Legendary
*
Offline Offline

Activity: 1246
Merit: 1014


Strength in numbers


View Profile WWW
August 10, 2010, 08:28:42 PM
 #18

Transactions are usually from many different addresses (maybe hundreds), so you can't show them in the "all transactions" list.

Returning a payment to one of these addresses would be confusing, since they would see a payment going to an address they created for some one-time thing months ago or whatever. They'd have no way of knowing it was from you. The client could be modified to detect this, though.

What about showing the one(?) address to which the change was sent? Is there a change address if change happens to be 0?

Play Bitcoin Poker at sealswithclubs.eu. We're active and open to everyone.
theymos
Administrator
Legendary
*
Offline Offline

Activity: 5180
Merit: 12878


View Profile
August 10, 2010, 08:31:14 PM
 #19

What about showing the one(?) address to which the change was sent? Is there a change address if change happens to be 0?

There isn't. Good idea, though -- there would be a single change address in almost all cases.

1NXYoJ5xU91Jp83XfVMHwwTUyZFK64BoAD
Insti
Sr. Member
****
Offline Offline

Activity: 294
Merit: 252


Firstbits: 1duzy


View Profile
August 10, 2010, 08:40:12 PM
 #20

Transactions are usually from many different addresses (maybe hundreds), so you can't show them in the "all transactions" list.

Returning a payment to one of these addresses would be confusing, since they would see a payment going to an address they created for some one-time thing months ago or whatever. They'd have no way of knowing it was from you. The client could be modified to detect this, though.

If you know there is the possibility of a return, you just do another transaction to a new address before the actual transaction so it is only coming from one address.

Or you could just make sure the first listed transaction from address was the one you wanted to be the 'return address'
Would probably require slight client modification, but should be simple to do.
Then we just agree on the standard. (which is all the system is anyway.)

Are transactions allowed to have input addresses with a zero balance?

Gavin Andresen
Legendary
*
Offline Offline

Activity: 1652
Merit: 2216


Chief Scientist


View Profile WWW
August 10, 2010, 10:31:23 PM
 #21

Are transactions allowed to have input addresses with a zero balance?
If they are (I didn't see anything preventing them after a quick reading of the code), then they trigger the 0.01BTC micro-transaction fee.

I'll be doing a lot of experimenting (on the TEST network, of course) with refunding transactions over the next few weeks.  I think the UI issue can be resolved (it should be pretty straightforward to teach the UI to recognize refund transactions and show them as "refund from BLAH", where BLAH is either a BC address or a label from your address book.

I've already implemented a "refundtransaction" api call, but it still needs work before it would be ready for standard bitcoin.  In particular, it shouldn't be possible to create infinite 'refundtransaction' loops (where you accidentally or purposely refundtransaction a refunded transaction, probably triggering another refund, etc).

And refunding a transaction should, ideally, use the same "coins" (... should have the same ancestor transactions, for anybody who's going to get all pedantic on me) as the original transaction, if possible, so if that original transaction is exactly as valid as the original transaction.  Otherwise it might be possible to generate a bad transaction, send it somewhere you know it will get refunded immediately with different, valid transactions, and so "launder" your bad bitcoins for good.

How often do you get the chance to work on a potentially world-changing project?
Insti
Sr. Member
****
Offline Offline

Activity: 294
Merit: 252


Firstbits: 1duzy


View Profile
August 10, 2010, 11:12:56 PM
 #22

Are transactions allowed to have input addresses with a zero balance?
If they are (I didn't see anything preventing them after a quick reading of the code), then they trigger the 0.01BTC micro-transaction fee.

I'll be doing a lot of experimenting (on the TEST network, of course) with refunding transactions over the next few weeks.  I think the UI issue can be resolved (it should be pretty straightforward to teach the UI to recognize refund transactions and show them as "refund from BLAH", where BLAH is either a BC address or a label from your address book.

I've already implemented a "refundtransaction" api call, but it still needs work before it would be ready for standard bitcoin.  In particular, it shouldn't be possible to create infinite 'refundtransaction' loops (where you accidentally or purposely refundtransaction a refunded transaction, probably triggering another refund, etc).

And refunding a transaction should, ideally, use the same "coins" (... should have the same ancestor transactions, for anybody who's going to get all pedantic on me) as the original transaction, if possible, so if that original transaction is exactly as valid as the original transaction.  Otherwise it might be possible to generate a bad transaction, send it somewhere you know it will get refunded immediately with different, valid transactions, and so "launder" your bad bitcoins for good.


The micro transaction fee only applies to the the 'out' side.

By putting the 'return address' on the 'In' side, we can pass a specific return address if we want.

TXIn [ Return Address (0), Address with money (10) ]
TXOut [ Payee Address (9.95), Change Address (0.05) ]

The return transaction should be indistinguishable from any other transaction.

TXIn[ Some other Address (9.95 ) ]
TXOut[ Return Address (9.95) ]

Anyone who is accepting 'bad' transactions and returning good coins deserves to give their money away.
Gavin Andresen
Legendary
*
Offline Offline

Activity: 1652
Merit: 2216


Chief Scientist


View Profile WWW
August 11, 2010, 12:02:33 AM
 #23

The micro transaction fee only applies to the the 'out' side.
Right, but every TxIn has to have a corresponding TxOut (except for GENERATE/coinbase transactions, but those have their own rules).  So if you want a 0 BTC TxIn, you've gotta first pay yourself with a 0BTC TxOut and that'll trigger the fee.  TxIns don't contain a value, the value is in the corresponding TxOut...

Quote
Anyone who is accepting 'bad' transactions and returning good coins deserves to give their money away.

But you agree that it wouldn't be OK for a 'refundtransaction' API call to make it easy to do that, right?

How often do you get the chance to work on a potentially world-changing project?
Insti
Sr. Member
****
Offline Offline

Activity: 294
Merit: 252


Firstbits: 1duzy


View Profile
August 11, 2010, 12:39:31 AM
 #24

The micro transaction fee only applies to the the 'out' side.
Right, but every TxIn has to have a corresponding TxOut (except for GENERATE/coinbase transactions, but those have their own rules).  So if you want a 0 BTC TxIn, you've gotta first pay yourself with a 0BTC TxOut and that'll trigger the fee.  TxIns don't contain a value, the value is in the corresponding TxOut...
Ok, that makes things more complicated again.
I suggest just using the first listed TxIn address as the return address + let peoples clients manipulate the transactions so the 'right' value is in that position. This may involve an initial transaction to yourself to put some(all) of the money in a 'refund possible from shop X' address, before the actual payment to shop X.
(Now you tell me transaction input order is not deterministic?)

Quote
Quote
Anyone who is accepting 'bad' transactions and returning good coins deserves to give their money away.

But you agree that it wouldn't be OK for a 'refundtransaction' API call to make it easy to do that, right?

'refundtransaction' API call should make it difficult to refund 'bad' transactions.

Refunds should not be a common occurrence.

I can see how it might be a problem if you are instantly refunding a double spent coin with a 'good' coin.
but might it be a better solution to just queue the refund until the incoming transaction was sufficiently mature?
It's another convenience/privacy trade off.

(Should this discussion be in it's own 'Refunds' thread?)
Anonymous
Guest

August 11, 2010, 04:11:14 AM
 #25

The idea of semi anonymous bounties does seem possible after reading everyones replies.
jgarzik
Legendary
*
Offline Offline

Activity: 1596
Merit: 1091


View Profile
August 11, 2010, 04:24:39 AM
 #26


One method of funding is using prediction markets to further the scientific and useful arts:

Prediction Markets For Promoting The Progress of Science and The Useful Arts
Tom W. Bell, 2006
http://www.tomwbell.com/writings/PredEx.pdf


Jeff Garzik, Bloq CEO, former bitcoin core dev team; opinions are my own.
Visit bloq.com / metronome.io
Donations / tip jar: 1BrufViLKnSWtuWGkryPsKsxonV2NQ7Tcj
Anonymous
Guest

August 11, 2010, 05:29:40 AM
 #27


One method of funding is using prediction markets to further the scientific and useful arts:

Prediction Markets For Promoting The Progress of Science and The Useful Arts
Tom W. Bell, 2006
http://www.tomwbell.com/writings/PredEx.pdf



i think someone was working on a prediction market
jgarzik
Legendary
*
Offline Offline

Activity: 1596
Merit: 1091


View Profile
August 11, 2010, 07:00:35 AM
 #28

One of the salient points of the paper is that you can provide a bounty swarm using a prediction market.  One of the key attributes of a prediction market is permitting insider trading, to add knowledge to the market.

Jeff Garzik, Bloq CEO, former bitcoin core dev team; opinions are my own.
Visit bloq.com / metronome.io
Donations / tip jar: 1BrufViLKnSWtuWGkryPsKsxonV2NQ7Tcj
waynechong1995
Full Member
***
Offline Offline

Activity: 644
Merit: 117


swing!


View Profile WWW
October 07, 2017, 09:58:34 AM
 #29

Your idea could be further improved by using "plugins", like how real-time chat implemented in websites that allow visitors to further understand your requests. Your list of needed feature i guess its already available on other sites that serve different purposes.

Wonderful idea though, i never thought of this kind of implementation that resemble web freelancer services.

erobecbea
Newbie
*
Offline Offline

Activity: 1
Merit: 0


View Profile
October 22, 2017, 02:43:44 PM
 #30

This is incredible idea. How long time ago nobody made it?
Pages: 1 2 [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!