BitShares Forum

Main => Technical Support => Topic started by: puppies on January 04, 2016, 04:44:46 pm

Title: better way of distributing FBA revenue than a buy back?
Post by: puppies on January 04, 2016, 04:44:46 pm
I was looking through the docs, and I found the section on creating vesting balance objects.  Wouldn't that be a better way of distributing the revenue of a fee backed asset than with a buybay?  What are the fees to deposit to a vesting object?  Could a FBA deposit to the same VBO that is used for cashback, or would each FBA need to create its own VBO?  We could require that a potential hodler of a FBA registers a VBO for it.  95bts once, plus 2bts per withdrawal seems like a better deal than having to place orders for a buyback. 

Code: [Select]

        Public Members

        uint64_t fee

            the cost to register the cheapest non-free account

struct vesting_balance_create_operation
    #include <vesting.hpp>

    Create a vesting balance.

    The chain allows a user to create a vesting balance. Normally, vesting balances are created automatically as part of cashback and worker operations. This operation allows vesting balances to be created manually as well.

    Manual creation of vesting balances can be used by a stakeholder to publicly demonstrate that they are committed to the chain. It can also be used as a building block to create transactions that function like public debt. Finally, it is useful for testing vesting balance functionality.

    Return
        ID of newly created vesting_balance_object

    Public Members

    account_id_type creator

        Who provides funds initially.

    account_id_type owner

        Who is able to withdraw the balance.

class vesting_balance_object
    #include <vesting_balance_object.hpp>

    Vesting balance object is a balance that is locked by the blockchain for a period of time.

    Public Functions

    void deposit(const fc::time_point_sec &now, const asset &amount)

        Deposit amount into vesting balance, requiring it to vest before withdrawal.

    void deposit_vested(const fc::time_point_sec &now, const asset &amount)

        Deposit amount into vesting balance, making the new funds vest immediately.

    void withdraw(const fc::time_point_sec &now, const asset &amount)

        Used to remove a vesting balance from the VBO. As well as the balance field, coin_seconds_earned and coin_seconds_earned_last_update fields are updated.

        The money doesn’t “go” anywhere; the caller is responsible for crediting it to the proper account.

    asset get_allowed_withdraw(const time_point_sec &now) const

        Get amount of allowed withdrawal.

    Public Members

    account_id_type owner

        Account which owns and may withdraw from this vesting balance.

    asset balance

        Total amount remaining in this vesting balance Includes the unvested funds, and the vested funds which have not yet been withdrawn

    vesting_policy policy

        The vesting policy stores details on when funds vest, and controls when they may be withdrawn.

struct vesting_balance_withdraw_operation
    #include <vesting.hpp>

    Withdraw from a vesting balance.

    Withdrawal from a not-completely-mature vesting balance will result in paying fees.

    Return
        Nothing


Am I missing something?
Title: Re: better way of distributing FBA revenue than a buy back?
Post by: pc on January 04, 2016, 05:51:44 pm
You can use existing VBOs if the vesting period is the same.

But I don't see how your idea solves the original problem, namely the actual distribution of the funds.
Title: Re: better way of distributing FBA revenue than a buy back?
Post by: puppies on January 04, 2016, 06:09:03 pm
If the fee for depositing to a VBO is the same as a regular transfer then it would not be a good idea at all.  The blockchain currently deposits to cashback and witness pay free of charge.  I don't see why an FBA wouldn't be able to do the same.  I think that buybacks are a subpar solution I'd rather have dividends.  Let the FBA get it's value from its revenue stream rather than a reduction in supply. 

Title: Re: better way of distributing FBA revenue than a buy back?
Post by: pc on January 04, 2016, 08:01:02 pm
I agree that dividends would be a desirable feature.

But VBOs are not required for that. The blockchain is able to do anything free of charge, including deposits to accounts.
Title: Re: better way of distributing FBA revenue than a buy back?
Post by: puppies on January 04, 2016, 08:22:01 pm
I was thinking that each FBA would have an object that contained all hodlers and the percentage of total asset they hodl.  It seems we should need this to determine the top 5 hodlers anyways.

If crediting each hodlers VBO in real time would take too much processing power could we do it during the maintenance interval?

It seems to me that a credit to a VBO is different than a normal transaction output.  Its kept in memory, and not written to the blockchain until withdrawal right?
Title: Re: better way of distributing FBA revenue than a buy back?
Post by: pc on January 04, 2016, 08:52:00 pm
If crediting each hodlers VBO in real time would take too much processing power could we do it during the maintenance interval?

I think it would be a good idea (for various reasons, efficiency being one of them) to collect the proceeds and only pay out in longer intervals / after certain thresholds.


It seems to me that a credit to a VBO is different than a normal transaction output.  Its kept in memory, and not written to the blockchain until withdrawal right?

Block rewards are credited to the VBO immediately when a block is created. TX fees are collected in the spenders' accounts and credited to the referrers' VBOs only during maintenance intervals.
Operations that credit or withdraw from VBOs directly appear in the blockchain just like normal transfers.
Title: Re: better way of distributing FBA revenue than a buy back?
Post by: puppies on January 04, 2016, 09:18:11 pm
Thanks pc.
Title: Re: better way of distributing FBA revenue than a buy back?
Post by: abit on January 05, 2016, 05:02:17 pm
FYI we had some discussions about how to efficiently pay dividends long time ago, a claim model.
https://bitsharestalk.org/index.php?topic=14785.msg191711#msg191711

Basically, distributing fees among referrers/registrars is an operation which cost linear to the amount of operations within a maintenance interval, but distributing funds among asset holders is linear to the amount of holders. The former is doable in the maintenance interval, but the latter is not.

Title: Re: better way of distributing FBA revenue than a buy back?
Post by: Pheonike on January 06, 2016, 01:23:11 am

Instead of pushing dividends, couldn't the process be a pull. When a dividend is available, a claim button is enabled in the gui that shows amount available to claim.  The holder of the asset can decide when to claim the dividend. This way the process can happen over a period on time instead of one interval.
Title: Re: better way of distributing FBA revenue than a buy back?
Post by: yvv on January 06, 2016, 03:14:33 am
Buy back is not distributing a revenue. It is a convenient method to pay debt for issuer of debt token, like obits. Obits borrowed worth of $200K loan from people (4M obits), and made $3K profit in one month. If they claim that they are going to spend all their profit to pay their debt, it will take them about 5 years to pay their debt at this pace.
Title: Re: better way of distributing FBA revenue than a buy back?
Post by: puppies on January 06, 2016, 08:16:15 am
FYI we had some discussions about how to efficiently pay dividends long time ago, a claim model.
https://bitsharestalk.org/index.php?topic=14785.msg191711#msg191711

Basically, distributing fees among referrers/registrars is an operation which cost linear to the amount of operations within a maintenance interval, but distributing funds among asset holders is linear to the amount of holders. The former is doable in the maintenance interval, but the latter is not.

Thanks abit.  I'll read through this.

Instead of pushing dividends, couldn't the process be a pull. When a dividend is available, a claim button is enabled in the gui that shows amount available to claim.  The holder of the asset can decide when to claim the dividend. This way the process can happen over a period on time instead of one interval.

That's what I was hoping for.  My belief was based upon the bug we had where different nodes would show different vested balances for different VBO's.  I assumed that this was due to vesting balances being derived from the blockchain state, but not implicit.  I thought this could save us some overhead. 
Title: Re: better way of distributing FBA revenue than a buy back?
Post by: puppies on January 06, 2016, 08:30:26 am
Buy back is not distributing a revenue. It is a convenient method to pay debt for issuer of debt token, like obits. Obits borrowed worth of $200K loan from people (4M obits), and made $3K profit in one month. If they claim that they are going to spend all their profit to pay their debt, it will take them about 5 years to pay their debt at this pace.

Apple's stock price is currently $102.71. It's dividend in the past year was $2.03.  If Apple's means of paying off the loan of investing in it was a buy back it would take 50 years at this pace.
Title: Re: better way of distributing FBA revenue than a buy back?
Post by: abit on January 06, 2016, 10:07:41 am
Buy back is not distributing a revenue. It is a convenient method to pay debt for issuer of debt token, like obits. Obits borrowed worth of $200K loan from people (4M obits), and made $3K profit in one month. If they claim that they are going to spend all their profit to pay their debt, it will take them about 5 years to pay their debt at this pace.

Apple's stock price is currently $102.71. It's dividend in the past year was $2.03.  If Apple's means of paying off the loan of investing in it was a buy back it would take 50 years at this pace.
Using the buy back model are mostly because of concerns of legal issues. Issuing a asset and paying dividends without a proper license is illegal in many countries.
On the other hand, with the buy back model, the company may have more control of it's operation.


Instead of pushing dividends, couldn't the process be a pull. When a dividend is available, a claim button is enabled in the gui that shows amount available to claim.  The holder of the asset can decide when to claim the dividend. This way the process can happen over a period on time instead of one interval.
Yes, it's what we've discussed in that post.
FYI we had some discussions about how to efficiently pay dividends long time ago, a claim model.
https://bitsharestalk.org/index.php?topic=14785.msg191711#msg191711
Title: Re: better way of distributing FBA revenue than a buy back?
Post by: Samupaha on January 06, 2016, 02:48:01 pm
Using the buy back model are mostly because of concerns of legal issues. Issuing a asset and paying dividends without a proper license is illegal in many countries.
On the other hand, with the buy back model, the company may have more control of it's operation.

How much more control there actually is? FBA will be a smart contract that will be executed by the blockchain. After it's issued, there is not much that the issuer can do.

We have to remember that this is meant to be a fee backed asset (or at least I have understood it this way). The value of the asset is backed by the fee that it will collect in the future.

Maybe we should even separate the two possibilities: fee backed asset is the one that will collect royalties every time the feature is used and buyback backed asset will be bought back from the markets.
Title: Re: better way of distributing FBA revenue than a buy back?
Post by: yvv on January 06, 2016, 11:47:04 pm
Buy back is not distributing a revenue. It is a convenient method to pay debt for issuer of debt token, like obits. Obits borrowed worth of $200K loan from people (4M obits), and made $3K profit in one month. If they claim that they are going to spend all their profit to pay their debt, it will take them about 5 years to pay their debt at this pace.

Apple's stock price is currently $102.71. It's dividend in the past year was $2.03.  If Apple's means of paying off the loan of investing in it was a buy back it would take 50 years at this pace.

Stock dividents and buy back - are two different things. Obits dividend is 0.