$5000 Bounty - Dividend Paying ProtoShares

Started by bytemaster, November 03, 2013, 07:10:22 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

bytemaster

Quote from: barwizi on January 01, 2014, 12:36:35 AM
is this 5k going to be added to the 500 PTS one? That would make me work even faster

This bounty is now expired and the new 500 PTS bounty takes its place.
For the latest updates checkout my blog: [url="http://bytemaster.bitshares.org"]http://bytemaster.bitshares.org[/url]
Anything said on these forums does not constitute an intent to create a legal obligation or contract between myself and anyone else.   These are merely my opinions and I reserve the right to change them at any time.

barwizi

 is this 5k going to be added to the 500 PTS one? That would make me work even faster
--Bar--  PiNEJGUv4AZVZkLuF6hV4xwbYTRp5etWWJ

The magical land of crypto, no freebies people.

FreeTrade

Quote from: bytemaster on December 02, 2013, 03:09:25 AM
I have dramatically simplified the implementation of this:

http://bitsharestalk.org/index.php?topic=1169.0

+1

Agree - this is a much simpler way to implement. It's quite a beautiful paradigm shift. No hiding place for inflation.
"People should be more sophisticated? How are you gonna get that done?" - Jerry Seinfeld reply to Bill Maher

bytemaster

For the latest updates checkout my blog: [url="http://bytemaster.bitshares.org"]http://bytemaster.bitshares.org[/url]
Anything said on these forums does not constitute an intent to create a legal obligation or contract between myself and anyone else.   These are merely my opinions and I reserve the right to change them at any time.

voldemort628

Quote from: Stan on November 25, 2013, 02:10:29 PM
From time to time we offer bounties to build general purpose components for potential use in future offerings. Often we use an existing code base (Bitcoin or ProtoShares) as the starting point. Not every bounty implies a stand-alone future product.  Sometimes they are for test or training purposes.  Sometimes they constitute job interviews.   :) 

Once our own research has allowed us to understand a component well enough to spec it for someone else to build, we try to offer others a way to participate on some of the build-to-spec, integration and testing tasks.  Building up a distributed, autonomous "Steely-Eyed-Geek" developer community is just as important to defending Free Space as Keyhotee and the DACs themselves.

ok cool :)

Stan

Quote from: voldemort628 on November 25, 2013, 12:57:15 PM
I am not sure if I understand what this "dividend paying protoshares" means..can someone please elaborate?
is it just an experiement? or is it a new developments/ a new DAC to solve a problem/serve a purpose? or what ?
how is it related to pts and bitshares?

From time to time we offer bounties to build general purpose components for potential use in future offerings. Often we use an existing code base (Bitcoin or ProtoShares) as the starting point. Not every bounty implies a stand-alone future product.  Sometimes they are for test or training purposes.  Sometimes they constitute job interviews.   :) 

Once our own research has allowed us to understand a component well enough to spec it for someone else to build, we try to offer others a way to participate on some of the build-to-spec, integration and testing tasks.  Building up a distributed, autonomous "Steely-Eyed-Geek" developer community is just as important to defending Free Space as Keyhotee and the DACs themselves.
Anything said on these forums does not constitute an intent to create a legal obligation or contract of any kind.   These are merely my opinions which I reserve the right to change at any time.

voldemort628

I am not sure if I understand what this "dividend paying protoshares" means..can someone please elaborate?
is it just an experiement? or is it a new developments/ a new DAC to solve a problem/serve a purpose? or what ?
how is it related to pts and bitshares?

bytemaster

Quote from: FreeTrade on November 15, 2013, 06:43:28 PM
Okay I think I've got it - the dividends are funds which aren't explicitly recorded in the blockchain, but which can be inferred by examination of the blockchain. The cleanest implementation I can think of would be to add them as coinbase transactions that are immediately spendable and spent in the block in which they are added. Conceptually, it's very clean, but implementation would require very careful work. You'd have to be extra careful to avoid ruling out the possibility of a lightweight client in the future.

No need to add them to the coin base transaction.   All you need to do is record 'dividends earned this block' in the block header.  Everything else can be calculated on a per-transaction basis.   Lightweight clients only need the block headers.
For the latest updates checkout my blog: [url="http://bytemaster.bitshares.org"]http://bytemaster.bitshares.org[/url]
Anything said on these forums does not constitute an intent to create a legal obligation or contract between myself and anyone else.   These are merely my opinions and I reserve the right to change them at any time.

FreeTrade

Okay I think I've got it - the dividends are funds which aren't explicitly recorded in the blockchain, but which can be inferred by examination of the blockchain. The cleanest implementation I can think of would be to add them as coinbase transactions that are immediately spendable and spent in the block in which they are added. Conceptually, it's very clean, but implementation would require very careful work. You'd have to be extra careful to avoid ruling out the possibility of a lightweight client in the future. 
"People should be more sophisticated? How are you gonna get that done?" - Jerry Seinfeld reply to Bill Maher

bytemaster

Quote from: FreeTrade on November 15, 2013, 04:57:54 AM
Hmm - one issue I encountered with MemoryCoin voting was that it was never clear in the outputs which address was receiving the funds and which was the change address. You might have a similar issue here - how do you know which output address to award the dividend to?
If you start awarding the dividend to the sending address, then there may be no way to clear a balance to zero - there is always dust there.

Dividends are accumulated in the inputs.  Inputs + Dividends must be greater than Output + Min Fees.   Any amount not specified in an output address is automatically a fee.   Transactions are constructed assuming the dividends as the inputs so the sum of the outputs includes the dividends.  There is not a separate dividend output.
For the latest updates checkout my blog: [url="http://bytemaster.bitshares.org"]http://bytemaster.bitshares.org[/url]
Anything said on these forums does not constitute an intent to create a legal obligation or contract between myself and anyone else.   These are merely my opinions and I reserve the right to change them at any time.

FreeTrade

Hmm - one issue I encountered with MemoryCoin voting was that it was never clear in the outputs which address was receiving the funds and which was the change address. You might have a similar issue here - how do you know which output address to award the dividend to?
If you start awarding the dividend to the sending address, then there may be no way to clear a balance to zero - there is always dust there.
"People should be more sophisticated? How are you gonna get that done?" - Jerry Seinfeld reply to Bill Maher

bytemaster

Quote from: FreeTrade on November 15, 2013, 03:35:45 AM
Quote from: bytemaster on November 14, 2013, 05:14:48 PM
Dividends are paid as part of every transaction.   You can always calculate your balance as OUTPUT + Dividends Available Upon Spending.   

So if you receive 100 PTS it will sit as an 'unspent output' for  X blocks.   Each block will pay Y dividends per PTS but these are not transferred to anyone yet.    When you spend the output with 100 PTS you then calculate the dividends due and add it to the input value of a trx.   In this way, dividends have 0 extra overhead in trx volume.

So if I spend 100 PTS and have 10PTS waiting for me in dividends, the input is increased to 110PTS, and the recipient still gets 100PTS, but the 10 goes back to me as additional change?

Depends upon how much money you are sending.    If You want to pay someone 105, then you will spend that input, 105 will go to them, and 5 back to you.   
For the latest updates checkout my blog: [url="http://bytemaster.bitshares.org"]http://bytemaster.bitshares.org[/url]
Anything said on these forums does not constitute an intent to create a legal obligation or contract between myself and anyone else.   These are merely my opinions and I reserve the right to change them at any time.

FreeTrade

Quote from: bytemaster on November 14, 2013, 05:14:48 PM
Dividends are paid as part of every transaction.   You can always calculate your balance as OUTPUT + Dividends Available Upon Spending.   

So if you receive 100 PTS it will sit as an 'unspent output' for  X blocks.   Each block will pay Y dividends per PTS but these are not transferred to anyone yet.    When you spend the output with 100 PTS you then calculate the dividends due and add it to the input value of a trx.   In this way, dividends have 0 extra overhead in trx volume.

So if I spend 100 PTS and have 10PTS waiting for me in dividends, the input is increased to 110PTS, and the recipient still gets 100PTS, but the 10 goes back to me as additional change?
"People should be more sophisticated? How are you gonna get that done?" - Jerry Seinfeld reply to Bill Maher

bytemaster

Quote from: FreeTrade on November 14, 2013, 11:38:43 AM
Hmmm - how frequently are the dividends to be payed? What triggers a payment in the blockchain?

Dividends are paid as part of every transaction.   You can always calculate your balance as OUTPUT + Dividends Available Upon Spending.   

So if you receive 100 PTS it will sit as an 'unspent output' for  X blocks.   Each block will pay Y dividends per PTS but these are not transferred to anyone yet.    When you spend the output with 100 PTS you then calculate the dividends due and add it to the input value of a trx.   In this way, dividends have 0 extra overhead in trx volume.
For the latest updates checkout my blog: [url="http://bytemaster.bitshares.org"]http://bytemaster.bitshares.org[/url]
Anything said on these forums does not constitute an intent to create a legal obligation or contract between myself and anyone else.   These are merely my opinions and I reserve the right to change them at any time.

FreeTrade

Hmmm - how frequently are the dividends to be payed? What triggers a payment in the blockchain?
"People should be more sophisticated? How are you gonna get that done?" - Jerry Seinfeld reply to Bill Maher