Pages:
Author

Topic: Demurrage, transaction fees, storage fees & comparison to commodity money. - page 3. (Read 16732 times)

legendary
Activity: 1372
Merit: 1002
  • When an old transaction is announced, the miner downloads the block that contains these old coins.

From whom? The assumption has been that miners will be the ones storing the full blocks.

Perhaps it is feasible for a division of labor, where block chain storage could be a separate business?

Well either the owner of the old transactions keeps the old blocks himself, or he pays another company to keep the old block for him.
The owner of the old coins understands that his old coins will be un-spendable if the old blocks are completely forgotten.

This is a user-pays system.  That is a good thing.

If miners prune not empty accounts, when a payment from that account is made, they would:

A) Ask for the missing blocks and verify they are correct.
B) Simply reject those transactions.

The miners have an incentive to just ignore old accounts to save storing (or computing power and bandwidth) so this whole thing is a more dangerous situation than I first thought.
legendary
Activity: 1372
Merit: 1002
I suppose that would work, if we were starting over or starting a new fork of code, but this problem doesn't justify a breaking change.

I don't think is a breaking change.
For the miners to receive the fees, they should just agree that these fees are legit: just as hard as changing the block reward.
For the holders to pay the fees, the miners should just reject transactions from accounts that are not enough funded (due to demurrage fees payments): just as hard as requiring a minimum fee for accepting transactions or removing the maximum block size.
full member
Activity: 238
Merit: 100
Today for example, 7.4% of bitcoins were transferred. That means $3.3 million worth of BTC. In one year, assuming similar ratios as today (which I've looked through the data and it doesn't seem atypical), that comes to $1.215 billion worth of transactions. Keep in mind a lot these are international transfers which are typically much more costly in classical banking. The amount paid to miners comes to 2% of that, which replaces the cost of all the security that classic banks have to spend on when transferring money, and all of the other transaction costs as well.

Two points. The amount displayed in, e.g., bitcoinwatch is completely bogus. A transaction contains a change. If you transfer $10 to a third party from an account that has $100000, the banking system transfers $10, not $10 + $99990, while Bitcoin does the latter. Wouldn't you be rather pissed off if Paypal charged you 2.9% on $100000 when you moved $10? So the percentage of the cost in Bitcoin is way higher than what you calculated. Secondly, there are so many transactions because they are mostly free. When the fees become a norm, the transaction volume will slow down.


Quote
Also, a successful >50% attack would not lead to a complete security breach where all bitcoins can be stolen. It would only open the possibility of double spends by an attacker, so the value of such an attack does not equal the market value of bitcoins. This suggests the risks of lower difficulty/market-cap could be low.

I know that but a lot of people here downplay the consequences of the >50% attack. It is true that there is rather little to gain for the attacker compared to being honest. Therefore, I think we may never see a ">50% attack for profit". But for attackers that only want to make damage (for example a competition to Bitcoin), it can really make havoc. It's the mother of all DoS attacks. A >50% attacker can:

1. Completely halt all confirmations.
2. Reverse all transactions (so halt retroactively) and put them on hold.
3. Annihilate recently mined coins and all transactions where the coins were used (if the chain fork is longer than 120 blocks).
4. Double spend his coins.

And the point that is frequently missed:

5. Allow anybody to double spend. When the chain is forked, all transactions go into a memory pool of the miners. The attacker can be "nice" enough to remove them from his memory pool and allow anybody to connect, submit a new double spend transaction and confirm it. It can allow some non-fraudulent transaction and you will not know what is right and what is wrong.

If you think that it won't crash the BTC value, you are very optimistic. It would create such a mess that it will be very hard to untangle.  And do it a few times and nobody will trust the Bitcoin blockchain for anything larger that a few dollar transactions and Bitcoin returns to its amateur status.

Quote
Furthermore, operating profit margins right now are quite high for miners. It will decrease significantly once bitcoin inflation slows and the market stabilizes, approaching close to the cost of electricity, which I've seen that you've noted at the moment is $0.75 million a year. This is only about 0.06% of the market value of transactions. There will need to be some profit, so even if we triple that, to 0.2%, that's still very low cost.

As I wrote above, the value of transactions is bogus. The only think non-bogus is the total BTC value (money supply). Relatively to money supply, Bitcoin is expensive.

legendary
Activity: 1222
Merit: 1016
Live and Let Live
  • When an old transaction is announced, the miner downloads the block that contains these old coins.

From whom? The assumption has been that miners will be the ones storing the full blocks.

Perhaps it is feasible for a division of labor, where block chain storage could be a separate business?

Well either the owner of the old transactions keeps the old blocks himself, or he pays another company to keep the old block for him.
The owner of the old coins understands that his old coins will be un-spendable if the old blocks are completely forgotten.

This is a user-pays system.  That is a good thing.
sr. member
Activity: 294
Merit: 250
  • When an old transaction is announced, the miner downloads the block that contains these old coins.

From whom? The assumption has been that miners will be the ones storing the full blocks.

Perhaps it is feasible for a division of labor, where block chain storage could be a separate business?
hero member
Activity: 772
Merit: 501
Quote from: Raulo
Even if we somehow collectively solve this problem, there is another one. Contrary to what Satoshi wrote at the beginning, Bitcoin is a quite expensive system to maintain. At the current difficulty and BTC price, miners are paid 25-30 million USD a year (by block inflation) to protect 40-45 million USD Bitcoin market value. The current BTC price/difficulty may be abnormally high but the electricity alone costs a cool 1-1.5 million USD a year and equipment depreciation is 2-3 times of that and it will rise when BTC price/difficulty drops. And Bitcoin is barely safe to an attack because Bictoin need to maintain this capacity constantly and attackers can just use short bursts. I'm not sure that the mainstream banking costs for transaction system and money supply are so high percentwise for the same amount of money supply and trading that Bitcoin offers. The bailouts (which were indeed expensive) went for fixing the lending hole which Bitcoin is not doing.

It's not only the market value of the bitcoins that is being protected, it's the integrity of the transaction record, and therefore market value of the transactions that occurred that year.

Today for example, 7.4% of bitcoins were transferred. That means $3.3 million worth of BTC. In one year, assuming similar ratios as today (which I've looked through the data and it doesn't seem atypical), that comes to $1.215 billion worth of transactions. Keep in mind a lot these are international transfers which are typically much more costly in classical banking. The amount paid to miners comes to 2% of that, which replaces the cost of all the security that classic banks have to spend on when transferring money, and all of the other transaction costs as well.

Also, a successful >50% attack would not lead to a complete security breach where all bitcoins can be stolen. It would only open the possibility of double spends by an attacker, so the value of such an attack does not equal the market value of bitcoins. This suggests the risks of lower difficulty/market-cap could be low.

Furthermore, operating profit margins right now are quite high for miners. It will decrease significantly once bitcoin inflation slows and the market stabilizes, approaching close to the cost of electricity, which I've seen that you've noted at the moment is $0.75 million a year. This is only about 0.06% of the market value of transactions. There will need to be some profit, so even if we triple that, to 0.2%, that's still very low cost.


legendary
Activity: 1222
Merit: 1016
Live and Let Live
The merkle hash tree is intended to permit the block to be pruned of spent transactions but unspent transactions cannot be pruned.  Hence the cost.  I'm beginning to get annoyed.  I started this thread to have an educated conversation with intelligent peers, and I find myself spending too much time pointing out the basic errors of understanding of others instead.

You can safely prune both spent and unspent transactions, in fact you can prune entire blocks with spent transactions (for everyone except those those who own the coins in the given old blocks).

  • Each miner keeps a list the root hashes of all the previous block, from the genesis block. (e.g. 256bit per block)
  • A hash of all the past hashes is included in every block. (a slight modification to the block chain, but trivial) e.g. a Merkle hash tree root
  • When an old transaction is announced, the miner downloads the block that contains these old coins.
  • The miner compares the hash of the block downloaded to the known good hash of the block
  • The miner then can check if the transaction is valid or not.
  • When a block is announced with containing a very old block, the network will re-download that block and check if the transaction is correct
  • (most) of the network forgets the old block once the new block is verified

See with one small change to the block-chain, (to contain a 2nd root of the hashes of all the past blocks), you can have secure on-demand downloading of old blocks.

So I believe your premise is incorrect.
legendary
Activity: 1708
Merit: 1007
This whole thread is based upon a false premise: there is a global storage cost for old transactions.  This is untrue.
It's provably true that there is a cost to maintaining old transactions, however small that it is.

This is not correct.  The cost is nothing more than what would need to be kept anyway even with culling. Please see: Merkle hash trees

Yes.  You should read that link you posted.  Again, an unspent transaction does impose an ongoing resource cost upon the greater, collective network, however small that cost may be.  It's right there.  The merkle hash tree is intended to permit the block to be pruned of spent transactions but unspent transactions cannot be pruned.  Hence the cost.  I'm beginning to get annoyed.  I started this thread to have an educated conversation with intelligent peers, and I find myself spending too much time pointing out the basic errors of understanding of others instead.
The miners only need to keep the root hash of every block to verify transactions.  However the owner of the old coins needs to keep an complete copy of the old block.

To spend the old coins. The owner announces both the transaction, and provides the old coin's block for upload.  The miners (who wish to) will see this transaction an 're-download' the old block. (and compare the root Merkle hashes)
If this were universally true, where would the miners download the old blocks from?  The miners is where those blocks are most likely to be kept.

The person who owns the old coins needs to maintain a archive of the blocks that contain those coins... Again moving to a 'user-pay' system.  When the owner of the old coins wants to spend the coins that owner must provide a copy of the full old block.

If the (only|most available) copy of an old block is the one that the spender has, this introduces an attack vector not present in Bitcoin now.  The obvious one that I can think of is that Bitcoin depends on the independently verifiable blocks that are provided by multiple sources not connected to the parties involved in the trade, or at least enough sources that it's extremely unlikely that all those peers are connected to either party in the trade.  If the only copy available to the miner of the input block is the one provided by the sender himself, a spoofed block is then possible.  How hard do you think it would be to fake a block and transaction set that could hash to match the merkle root of one block too old for miners to keep?  It might take a malicious node a few days to find the right combo of extra-nonce and false transactions to match the merkle root, but time is of little concern in such an attack.

Spending coins in this way is the only way to have a decent risk assessment while using two lightweight clients while offline, but this can never be the norm.

Only some of the miners will bother to download the old block, others will just focus on bitcoins in recent blocks.
I see this as an unintended consequence of the network providing for free storage indefinitely, and I don't agree that it would be a workable solution, or even generally a positive consequence.

There is no global cost, (aka a user-pays system), then there is no 'unintended consequence'


Your core premise is false.  Easily proven as such, and you even use some of that evidence to support your false premise.  I find that amazing.
sr. member
Activity: 294
Merit: 250
Ultimately you are paying for the security of the present transaction.

Actually, this made something click for me.

Isn't it he recipient, not the sender, the one to gain the most from the protection of the block chain? Past six confirmations (or however many before the recipient provides the good or service), the sender couldn't care whether or not the transaction is reversed.

Is there some way to take this into account without breaking Bitcoin?
legendary
Activity: 1222
Merit: 1016
Live and Let Live
This whole thread is based upon a false premise: there is a global storage cost for old transactions.  This is untrue.
It's provably true that there is a cost to maintaining old transactions, however small that it is.

This is not correct.  The cost is nothing more than what would need to be kept anyway even with culling. Please see: Merkle hash trees

The miners only need to keep the root hash of every block to verify transactions.  However the owner of the old coins needs to keep an complete copy of the old block.

To spend the old coins. The owner announces both the transaction, and provides the old coin's block for upload.  The miners (who wish to) will see this transaction an 're-download' the old block. (and compare the root Merkle hashes)
If this were universally true, where would the miners download the old blocks from?  The miners is where those blocks are most likely to be kept.

The person who owns the old coins needs to maintain a archive of the blocks that contain those coins... Again moving to a 'user-pay' system.  When the owner of the old coins wants to spend the coins that owner must provide a copy of the full old block.

The owner makes a transaction and provides the old block for download.  (if the miners who offer this service don't already choose to keep the old blocks)

Only some of the miners will bother to download the old block, others will just focus on bitcoins in recent blocks.
I see this as an unintended consequence of the network providing for free storage indefinitely, and I don't agree that it would be a workable solution, or even generally a positive consequence.

There is no global cost, (aka a user-pays system), then there is no 'unintended consequence' - the few miners who wants to secure old blocks (by downloading old blocks or keeping a archive), can charge a premium for the service.  This is why it is a 'transaction fee' for 'processing the transaction.'  If it requites more work to process old transaction, then those transactions will attract higher fees.  (again a user-pays system).

This extra work of checking old blocks can adequately and naturally attract higher transaction fees. (but not demurrage, as there was no 'storage costs')
Once again, there is a provable degree of storage costs suffered by the network.  If you don't believe that is true, then just consider what you think would happen if transactions stopped.

Again, yes there is, See: Merkle hash trees: negligible cost for verifying old blocks without long-term storage.  (other than the owner of the coins providing the block for upload)

The whole concept of demurrage doesn't isn't economically logical.  Just like always issuing new coins always isn't economically logical.  The COST involved isn't to secure old coins - but to secure NEW TRANSACTIONS.  When all the Bitcoin's are mined, securing transactions moves to a user-pays model.  (as it should be, the user pays for the cost)
There is no cost in 'not using' Bitcoin.
Old transactions are indeed 'using' Bitcoin.  The only way to not be using bitcoin is to sell out all that you have so that someone else is using what you once had.  If you have a positive balance in bitcoin, you're using the system by defintion.

This, again, is incorrect.  Nobody is compelling any miner to process old transaction... The miners can choose to reject old transactions for whatever reason they want.  Including their age.
sr. member
Activity: 434
Merit: 250
Ultimately you are paying for the security of the present transaction.

Even if a million BTC were to sleep in an account for a hundred years, it is only when they are spent that the security is important (and paid for).

If I keep 10 BTC for 10 years, but one day before I spend them the blockchain is tempered with (in a way as to render the network worthless), I don't see why I should have paid the miners all this time.

I repeat: the security is only useful when you use your BTC. I would even add that the current transaction need the transaction history to validate itself.
Everything in-between transactions is irrelevant. 

Please don't destroy a key characteristic of Bitcoin (and ANY money); for now it is durable - as durable as the network. Doing so would undermine the entire project.
legendary
Activity: 1708
Merit: 1007
I suppose that would work, if we were starting over or starting a new fork of code, but this problem doesn't justify a breaking change.
legendary
Activity: 1372
Merit: 1002
I've changed your proposal to this:

5) The demurrage would be discounted from the payer's address when he makes a transaction (but it is effectively charged when the miner receives it).

This, by the way, also solves "the problem of the lost wallets" since lost wallets will eventually be completely spent on demurrage fees. Actually I didn't though it was a technical problem until now. I wasn't very concern with the economic impact of lost wallets neither.

How do you propose to do this?  My understanding of the system doesn't allow for discounting of transactions (or accounts, if you prefer) without significant changes to the technical aspects.

The creation of bitcoins to pay the miners would be as simple as the creation of the current reward and equal to:

flat_demurrage_fee * number of old transactions

All nodes would have to know that it is allowed to "create" bitcoins this way accept those blocks.

The later destruction of the already payed fees could be implemented through a third field (apart from payment and transaction fee) for registering the amount "destroyed" in the transaction. That field isn't even necessary since the content of that field can be calculated like this:

 ((previous_tx_block_num + expiration_time) - current_tx_block_num) * flat_demurrage_fee

All nodes would have to know that the "old" accounts contain less money than they say to reject transactions from accounts with not enough funds.
The lost wallets are just ignored like empty accounts when they've spent all they content in demurrage fees.

Quote
Quote
My proposal would remove the point 4 and change the 5:

5) The block reward by demurrage would be constant. To accomplish this, the reward would be equal to the demurrage percentage charged on each account but applied to the total targeted supply.


I don't even think that this is possible.


The "creation" is constant and not related to the number of old transactions

For the "destruction":

 (previous_tx_block_num - current_tx_block_num) * demurrage_rate * amount_in_account
legendary
Activity: 1372
Merit: 1002
Ok, so we agree that hoarding and saving are exactly the same thing? Then why use the word hoarding, which has a distinctly negative connotation?

Is there a single word that means "money holder"/hoarder without negative connotations (that I don't need) and other than "saver"?

Quote
Quote
would be financially beneficial for the money users and won't punish all the savers. Just hoarders and lenders

You imply that hoarders are a subset of savers, and that it is less detrimental to punish them compared to the savers. I don't understand this view at all.

With demurrage some savings would move from "money holding" to lending, storage of goods or direct investment
Some savings could also move from lending to direct investment. Before direct investment becomes "too risky", savers would prefer storing to lend.
Some of the investments are not done not because they're not economically feasible due to a lack of real resources, but because the saver can demand the liquidity premium or just hold their money at zero cost for them.
This forces all investments to be at least as profitable as the liquidity premium.
The risk premium is an "insurance" from the lender to the borrower, that's why it gets smaller with collateral.
If the capital was only the investments, nothing would prevent the yields of capital to tend to zero as the different investments compete between them for profits. But while the capital is investments plus money, there's an artificial (yes, money being time resistant is an agreement between the money users) low limit for the capital yields. When investments yields are below the liquidity premium (instead of when they're below zero), the capital price of the investments is recalculated and investment "stops" until the cost of production of the real capital at least match (through comparison with the yield of money on liquidity premium) the rent that can be earned in the market with that real capital.
While lenders and other capital owners take the extra profit from the liquidity premium, the more saving is made by holding instead of lending, the more investments won't be done to "compete with the rest of the capital for profits".
The money holders don't benefit from all this, nor they are the ones to blame for anything. We should not blame no one for this. It's just the result of the agreement of letting money be time resistant. The players just follow the rules of the game. But as we can create new moneys we can change those rules. If people find more interesting that money is not everlasting, they can agree with each other in trading with that money. Actually there's people doing it right now.
I think is not a semantic issue, but an economic one.
Since I'm pretty sure no one is going to agree on the financial gains of demurrage, I think we should move to another thread. For example this one:

http://forum.bitcoin.org/index.php?topic=6549.0

I would like to know any flaws on my reasoning, but I don't want to keep on discussing it here because it goes beyond the topic of the thread.
legendary
Activity: 1708
Merit: 1007
I'm still waiting for any of the developers to chime in and tell me how demurrage could be done, or if it's even possible, beyond the early idea of an alternate minimum fee upon eventual transfer.  I still can't grasp how lost coins could even  be 'rotted'.
legendary
Activity: 1708
Merit: 1007
I think that it's totally reasonable for users to refresh once a year.
legendary
Activity: 1036
Merit: 1002
I'd like this demurrage on very stale coins, as in lost coins. If you don't move coins for 8 years, they start disappearing slowly.

It is totally reasonable for BTC holders to refresh once in 8 years. This gives a small fee to miners, and with what I learned about nodes not accepting blocks that split the block chain too far back... with little change to the protocol, we might not need many miners to keep things going.

I find the idea of having exactly 21M coins much nicer than the risk of "suddenly, surprise market crash caused by ancient million bitcoin deposit". Also, you can pretty much rely on coins getting lost somewhere, so this will always secure a minimum amount of mining.

Nice part: nobody complains, since everybody can prevent demurrage by just doing a single transfer to himself every 8 years. The client could remind people, too.
legendary
Activity: 1708
Merit: 1007
I've changed your proposal to this:

5) The demurrage would be discounted from the payer's address when he makes a transaction (but it is effectively charged when the miner receives it).

This, by the way, also solves "the problem of the lost wallets" since lost wallets will eventually be completely spent on demurrage fees. Actually I didn't though it was a technical problem until now. I wasn't very concern with the economic impact of lost wallets neither.

How do you propose to do this?  My understanding of the system doesn't allow for discounting of transactions (or accounts, if you prefer) without significant changes to the technical aspects.

Quote

Again, I think a demurrage fee that depends on the money quantity too and not only on time would be financially beneficial for the money users and won't punish all the savers. Just hoarders and lenders.


This would likely introduce other perverse incentives than what I was trying to prevent, and I would have to oppose that on principle and on economic grounds.  Any demurrage system must scale relative to the real costs to the network scale, and that means per transaction and not per transaction value setting.

Quote

Lending would still be more interesting than storing while the liquidity premium were positive, or even zero because most goods aren't as time resistant as a safe loan.
More investing (another way of saving) would be more interesting than today in this "saving market" and in general.
Note that you can invest with borrowed money so investing is not always saving.  


This is neither economicly sound, nor relevant to Bitcoin.  It's not remotely relevant to the problem I'm trying to avoid.

Quote
 
But the reason why malinvestments are done before crises is because of an "unexpected" increase in the monetary supply (note that this had happened with gold being money too), not because need to charge the liquidity premium in order to lend wisely.
My proposal would remove the point 4 and change the 5:

5) The block reward by demurrage would be constant. To accomplish this, the reward would be equal to the demurrage percentage charged on each account but applied to the total targeted supply.


I don't even think that this is possible.

Quote

If you want a reasonable demurrage rate with this proposal you need to change either the 21 M or the 50 btc. I think the issuing curve would be different too, so it cannot be applied to bitcoin.
I think we should focus on the proposal for bitcoin and discuss the supposedly evil financial effects of demurrage and freicoin in another thread.


No.  Absolutely not.  I would much prefer to leave the potential problem unaddressed than proceed in this manner.
sr. member
Activity: 294
Merit: 250
"Hoarding" is just shorter than "holding money". I still don't know what you don't like about my definition of hoarding: is a way to save. But it doesn't mean that I should always use save instead of hoard, because sometimes I mean save in a more general way, not necessarily hoarding, without specifying the way to save.

Ok, so we agree that hoarding and saving are exactly the same thing? Then why use the word hoarding, which has a distinctly negative connotation?

This is specifically the part of your post with which I take issue:

Quote
would be financially beneficial for the money users and won't punish all the savers. Just hoarders and lenders

You imply that hoarders are a subset of savers, and that it is less detrimental to punish them compared to the savers. I don't understand this view at all.

Quote
I think we should focus on the proposal for bitcoin and discuss the supposedly evil financial effects of demurrage and and freicoin in another thread.

I'm merely taking issue with your biased terminology, which seems to be at the core of your argument for the use of demurrage in the first place.
legendary
Activity: 1372
Merit: 1002
Again, I think a demurrage fee that depends on the money quantity too and not only on time would be financially beneficial for the money users and won't punish all the savers. Just hoarders and lenders.

Unless you can define "hoarding" in a way that does not also include "saving", please stop using this bullshit term.

"Hoarding" is just shorter than "holding money". I still don't know what you don't like about my definition of hoarding: is a way to save. But it doesn't mean that I should always use save instead of hoard, because sometimes I mean save in a more general way, not necessarily hoarding, without specifying the way to save.

Quote from: jtimon
I think we should focus on the proposal for bitcoin and discuss the supposedly evil financial effects of demurrage and freicoin in another thread.
Pages:
Jump to: