lunarboy
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
September 07, 2015, 02:02:00 AM |
|
My take on the issue:
Any solution has to make spam expensive. Anything else is just adding further problems. That's why I like the solution implemented with Litecoins. Why does spam have to be expensive? if transactions are zero fee, then miners have no incentive to include them, so they'll just get filtered out and apply some mempool clearing system that forgets them after a certain time. If the transactions have a fee attached they are not really spam, so why not let supply and demand economics take care of the miners incentive?
|
|
|
|
brg444
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
September 07, 2015, 03:45:11 AM |
|
My take on the issue:
Any solution has to make spam expensive. Anything else is just adding further problems. That's why I like the solution implemented with Litecoins. Why does spam have to be expensive? if transactions are zero fee, then miners have no incentive to include them, so they'll just get filtered out and apply some mempool clearing system that forgets them after a certain time. If the transactions have a fee attached they are not really spam, so why not let supply and demand economics take care of the miners incentive? Because the miners incentives are not aligned with those of the network in a free floating block size scenario
|
"I believe this will be the ultimate fate of Bitcoin, to be the "high-powered money" that serves as a reserve currency for banks that issue their own digital cash." Hal Finney, Dec. 2010
|
|
|
ArticMine
Legendary
Offline
Activity: 2282
Merit: 1050
Monero Core Team
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
September 07, 2015, 05:00:01 AM |
|
My take on the issue:
Any solution has to make spam expensive. Anything else is just adding further problems. That's why I like the solution implemented with Litecoins. Why does spam have to be expensive? if transactions are zero fee, then miners have no incentive to include them, so they'll just get filtered out and apply some mempool clearing system that forgets them after a certain time. If the transactions have a fee attached they are not really spam, so why not let supply and demand economics take care of the miners incentive? Because the miners incentives are not aligned with those of the network in a free floating block size scenario There is actually research indicating that this is not the case in the presence of a block reward. https://dl.dropboxusercontent.com/u/43331625/feemarket.pdf (Thanks to binaryFate for letting me know about this article). Essentially the miners will not include spam unless the fee meets a certain threshold because it increases the probability of orphan blocks. The tricky part, where the above is very likely true, is in the absence of a block reward. On another note: I am actually interested in the Litecoin solution regarding spam.
|
|
|
|
smooth
Legendary
Offline
Activity: 2968
Merit: 1198
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
September 07, 2015, 07:14:58 AM |
|
My take on the issue:
Any solution has to make spam expensive. Anything else is just adding further problems. That's why I like the solution implemented with Litecoins. Why does spam have to be expensive? if transactions are zero fee, then miners have no incentive to include them, so they'll just get filtered out and apply some mempool clearing system that forgets them after a certain time. If the transactions have a fee attached they are not really spam, so why not let supply and demand economics take care of the miners incentive? Because the miners incentives are not aligned with those of the network in a free floating block size scenario There is actually research indicating that this is not the case in the presence of a block reward. https://dl.dropboxusercontent.com/u/43331625/feemarket.pdf (Thanks to binaryFate for letting me know about this article). Essentially the miners will not include spam unless the fee meets a certain threshold because it increases the probability of orphan blocks. The article doesn't really disagree with what brg444 said above (I didn't read the entire chain of previous quotes). It says miners won't include arbitrarily much spam at an arbitrarily low price, because there will indeed be a functioning market where block space has a well-defined price. That is not the same as concluding that the resulting block size will be one that non-miner stakeholders (or anyone really) are happy with, much less that such a size is in some sense socially optimal.
|
|
|
|
fairglu
Legendary
Offline
Activity: 1100
Merit: 1032
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
September 07, 2015, 07:56:53 AM |
|
If the transactions have a fee attached they are not really spam, so why not let supply and demand economics take care of the miners incentive?
Supply and demand take some time to adapt, spam attacks can be instantaneous and targeted to achieve Denial of Service during a particular time span to maximize annoyance. Also the cost to achieve a high-fee DoS spam attack is relatively low compared to the world-wide disruption it can cause, it's actually negligible compared to a traditional advertising campaign with the same global reach.
|
|
|
|
conspirosphere.tk
Legendary
Offline
Activity: 2352
Merit: 1064
Bitcoin is antisemitic
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
September 07, 2015, 11:46:05 AM |
|
On another note: I am actually interested in the Litecoin solution regarding spam.
https://www.reddit.com/r/Bitcoin/comments/3ci25k/the_current_spam_attack_on_bitcoin_is_not/This spam attack is not economically feasible on the Litecoin network. I will explain why. Here's one of txns that is spamming the network: https://blockchain.info/tx/1ec8370b2527045f41131530b8af51ca15a404e06775e41294f2f91fa085e9d5For creating 34 economically unfeasible to redeem UTXOs, the spammer only had to pay 0.000299 btc ($0.08). In order to clean up all these spammy UTXOs, you needed a nice pool to mine this huge transaction for free. And the only reason why the pool was able to was because the spammer sent these coins to simple brain wallets! If these were random addresses, they would stick around in the UTXO set forever! (or until each BTC is worth a lot) The reason why Litecoin is immune to this attack is because Litecoin was attacked in a similar fashion (though to a much smaller degree) years ago. And I noticed this flaw in Bitcoin and patched it in Litecoin. There's code in Bitcoin that says if someone sends a tiny amount of coins to an output, make sure that he pays the mintxfee. This makes sense because you wouldn't want someone creating "dust" spam by sending small amount of coins. BUT the code still only enforces the same mintxfee if you send to many small outputs. The fix is simple: require a mintxfee for each tiny output. Because of this fix, Litecoin's UTXO set is much more manageable than Bitcoin's. But the pull request for this that I created against the bitcoin codebase was rejected 3 years ago: https://github.com/bitcoin/bitcoin/pull/1536One of the reasons why I created Litecoin was because it was hard for someone like me (who was a nobody back then) to make any changes to Bitcoin. Having a different set of developers take the code in a different direction can only be good for the resiliency of the whole cryptocurrency movement. And that is why there is value in altcoins.
|
|
|
|
Peter R
Legendary
Offline
Activity: 1162
Merit: 1007
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
September 07, 2015, 06:33:12 PM |
|
Like ArticMine pointed out, there is already a cost to produce a large spam block, regardless of whether the costs is paid by a user in the form of fees, or by a miner in the form of increased orphan risk. ![](https://ip.bitcointalk.org/?u=https%3A%2F%2Fi.imgur.com%2FK93u2BB.png&t=665&c=5L3qXzV-UrN-VA) Smooth is also correct, however, that just because the spam block has a finite cost and that a fee market exists, it doesn't necessarily mean that the fees will be the "right" fees to keep people who want to run Bitcoin nodes on low-cost hardware with slow internet connections happy, for example. As the chart above shows, both transaction fees and spam costs (measured in bitcoins) decrease as the propagation impedance of the network improves. This relates to the question of externalities. (a) Does retaining the block size limit as an anti-spam measure (i.e., a production quota above the free market production Q*) result in a negative externality? If so, is it worth it to implement a production quota below Q* and suffer a loss of economic activity equal to the region shaded in brown? (b) If the answer to both questions in (a) is "yes," then the question is whether it is even possible to enforce a production quota without a strong organization or government willing to use force if necessary. ![](https://ip.bitcointalk.org/?u=https%3A%2F%2Fi.imgur.com%2FVOCBZAC.png&t=665&c=monTrZvUNWrhtA)
|
|
|
|
brg444
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
September 07, 2015, 07:11:55 PM |
|
Like ArticMine pointed out, there is already a cost to produce a large spam block, regardless of whether the costs is paid by a user in the form of fees, or by a miner in the form of increased orphan risk.
-
Smooth is also correct, however, that just because the spam block has a finite cost and that a fee market exists, it doesn't necessarily mean that the fees will be the "right" fees to keep people who want to run Bitcoin nodes on low-cost hardware with slow internet connections happy, for example. As the chart above shows, both transaction fees and spam costs (measured in bitcoins) decrease as the propagation impedance of the network improves.
This relates to the question of externalities.
(a) Does retaining the block size limit as an anti-spam measure (i.e., a production quota above the free market production Q*) result in a negative externality? If so, is it worth it to implement a production quota below Q* and suffer a loss of economic activity equal to the region shaded in brown?
(b) If the answer to both questions in (a) is "yes," then the question is whether it is even possible to enforce a production quota without a strong organization or government willing to use force if necessary.
-
Your paper is fundamentally flawed because it addresses nothing resembling the current dynamics at stake in Bitcoin. More precisely it ignores the incentives for miners to centralize (as they have shown to have) to mitigate propagation times. In effect your paper clearly demonstrates it is more profitable to do so under free-floating blocks and you essentially rely on their altruism to maintain the validity of your model to make decisions going forward. In short, your work might be sound from a technical standpoint but can not be used to construct security models that depend on worst-behaviours assumptions.
I cannot accept that you could comment on Greg's game theory intelligence when you continue to wave away the clear negative externality present in your models. You chose to ignore the obvious tragedy of commons at stake and that is why your opinion can never be considered as long as you don't recognize the cost externalized to node and the overall centralization pressure suggested by YOUR alignment of the incentives.
Relevant material: http://pastebin.com/jFgkk8M3https://botbot.me/freenode/bitcoin-wizards/2015-08-30/?msg=48477664&page=1http://lists.linuxfoundation.org/pipermail/bitcoin-dev/2015-August/010737.htmlEveryone is free to read and make their own judgment but considerable holes have been poken into Peter's work and he has often been urged to revise his conclusions. He is now parading his charts, illustration all over the forum in an attempt to obtuse the debate, confusing more impressionable users who do not have time, ability or care for validating his propositions.
|
"I believe this will be the ultimate fate of Bitcoin, to be the "high-powered money" that serves as a reserve currency for banks that issue their own digital cash." Hal Finney, Dec. 2010
|
|
|
ArticMine
Legendary
Offline
Activity: 2282
Merit: 1050
Monero Core Team
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
September 08, 2015, 04:55:28 AM Last edit: September 08, 2015, 03:34:49 PM by ArticMine |
|
Thanks for the info. The idea is to make the cost of sending the spam comparable to the cost of cleaning up the spam, which makes a lot of sense. Min TX fees can work as an anti spam measure, and can be applied without hard forking the coin if enough nodes simply refuse to relay transactions without the min TX fee.
|
|
|
|
lunarboy
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
September 08, 2015, 05:59:47 PM Last edit: September 08, 2015, 10:29:36 PM by lunarboy |
|
Thanks for the info. The idea is to make the cost of sending the spam comparable to the cost of cleaning up the spam, which makes a lot of sense. Min TX fees can work as an anti spam measure, and can be applied without hard forking the coin if enough nodes simply refuse to relay transactions without the min TX fee. Forgive the ignorance as i'm not a coder. ![Embarrassed](https://bitcointalk.org/Smileys/default/embarrassed.gif) If the unconfirmed transactions are stored in the mempool, (effectively distributed cloud storage). Surely this provides the natural free market limit and restricts spam. For example if i'm a full node or solo miner, I clearly can't store every tiny unconfirmed transaction. Therefore i would just add a filter to limit my mempool size. Filtering on say; fee paying transactions, or only including transactions over a certain quantity of satoshis. Larger miners, Pools or super nodes will be able to afford broader limits on their filters and store more (or all) unconfirmed transactions. As enough transactions get stored in the mempool eventually a fee market will emerge, Some transactions are worth storing until they get confirmed while others are not and should drop out. Certain companies say NASDAQ who are just using the single satoshi as a coloured coin (hence, zero fee) will clearly have to sponsor miners to store and confirm these. What am I missing ? edited to remove stupidity. ![Grin](https://bitcointalk.org/Smileys/default/grin.gif)
|
|
|
|
Peter R
Legendary
Offline
Activity: 1162
Merit: 1007
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
September 08, 2015, 06:52:46 PM |
|
Larger miners, Pools or super nodes will be able to afford broader limits on their filters and store more UXTO. As enough transactions get stored in the UXTO set eventually fee market will emerge, Some transactions are worth storing until they get confirmed while others are not and should drop out.
It depends what you mean by UTXOs "dropping out." It is fine to do as you say and move UTXOs that aren't worth storing in expensive "hot" storage (RAM and the like) into cheaper colder storage (a hard disk). However, a full node must be able to do an exhaustive search to determine whether a given UTXO exists or not. Otherwise, the node will be forked off the network. It is fine if this "exhaustive search" takes longer for certain spammy UTXOs; in fact, it is actually a good thing because it slows the propagation of blocks that contain such spammy UTXOs down and thus increases the chance that the block is orphaned. This helps to create a fee market.
|
|
|
|
notme
Legendary
Offline
Activity: 1904
Merit: 1002
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
September 08, 2015, 07:25:13 PM |
|
Thanks for the info. The idea is to make the cost of sending the spam comparable to the cost of cleaning up the spam, which makes a lot of sense. Min TX fees can work as an anti spam measure, and can be applied without hard forking the coin if enough nodes simply refuse to relay transactions without the min TX fee. Forgive the ignorance as i'm not a coder. ![Embarrassed](https://bitcointalk.org/Smileys/default/embarrassed.gif) If the unconfirmed transactions UXTO are stored in the mempool, (effectively distributed cloud storage). Surely this provides the natural free market limit and restricts spam. For example if i'm a full node or solo miner, I clearly can't store every tiny unconfirmed transaction. Therefore just limit my mempool (storage space) with a filter to a certain size, and filter on say; fee paying transactions, or only including transactions over a certain quantity of satoshis. Larger miners, Pools or super nodes will be able to afford broader limits on their filters and store more UXTO. As enough transactions get stored in the UXTO set eventually fee market will emerge, Some transactions are worth storing until they get confirmed while others are not and should drop out. Certain companies say NASDAQ who are just using the single satoshi as a coloured coin (hence, zero fee) will clearly have to sponsor miners to store and confirm these. What am I missing ? I think you are confusing UTXO and unconfirmed transactions. The UTXO set is all confirmed transactions that have unspent outputs.
|
|
|
|
molecular
Donator
Legendary
Offline
Activity: 2772
Merit: 1019
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
September 08, 2015, 07:53:02 PM |
|
My take on the issue:
Any solution has to make spam expensive. Anything else is just adding further problems. That's why I like the solution implemented with Litecoins. Excuse my ignorance, but what solution is implemented in LTC?
|
PGP key molecular F9B70769 fingerprint 9CDD C0D3 20F8 279F 6BE0 3F39 FC49 2362 F9B7 0769
|
|
|
gentlemand
Legendary
Offline
Activity: 2590
Merit: 3014
Welt Am Draht
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
September 08, 2015, 08:00:42 PM |
|
Excuse my ignorance, but what solution is implemented in LTC?
Here's what the man himself has to say - https://www.reddit.com/r/Bitcoin/comments/3ci25k/the_current_spam_attack_on_bitcoin_is_not/"I know this is post is going to be controversial, but here goes... ![Smiley](https://bitcointalk.org/Smileys/default/smiley.gif) This spam attack is not economically feasible on the Litecoin network. I will explain why. Here's one of txns that is spamming the network: https://blockchain.info/tx/1ec8370b2527045f41131530b8af51ca15a404e06775e41294f2f91fa085e9d5For creating 34 economically unfeasible to redeem UTXOs, the spammer only had to pay 0.000299 btc ($0.08). In order to clean up all these spammy UTXOs, you needed a nice pool to mine this huge transaction for free. And the only reason why the pool was able to was because the spammer sent these coins to simple brain wallets! If these were random addresses, they would stick around in the UTXO set forever! (or until each BTC is worth a lot) The reason why Litecoin is immune to this attack is because Litecoin was attacked in a similar fashion (though to a much smaller degree) years ago. And I noticed this flaw in Bitcoin and patched it in Litecoin. There's code in Bitcoin that says if someone sends a tiny amount of coins to an output, make sure that he pays the mintxfee. This makes sense because you wouldn't want someone creating "dust" spam by sending small amount of coins. BUT the code still only enforces the same mintxfee if you send to many small outputs. The fix is simple: require a mintxfee for each tiny output. Because of this fix, Litecoin's UTXO set is much more manageable than Bitcoin's. But the pull request for this that I created against the bitcoin codebase was rejected 3 years ago: https://github.com/bitcoin/bitcoin/pull/1536One of the reasons why I created Litecoin was because it was hard for someone like me (who was a nobody back then) to make any changes to Bitcoin. Having a different set of developers take the code in a different direction can only be good for the resiliency of the whole cryptocurrency movement. And that is why there is value in altcoins."
|
|
|
|
lunarboy
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
September 08, 2015, 10:30:32 PM |
|
I think you are confusing UTXO and unconfirmed transactions. The UTXO set is all confirmed transactions that have unspent outputs.
Edited the original post, is my question clearer now ?
|
|
|
|
smooth
Legendary
Offline
Activity: 2968
Merit: 1198
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
September 08, 2015, 11:33:09 PM |
|
First, mintxfee is not a solution against miners themselves creating large blocks because they are paying the fee to themselves. Second, miners can also offer fee rebates to large customers if the mintxfee is above what the fee market would dictate. So the mintxfee on the blockchain would look like it is providing some protection but it actually would not be and indeed would be encouraging centralization since its easier to sign up with one big pool to get your rebates than 100 little ones.
|
|
|
|
lunarboy
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
September 09, 2015, 01:22:58 AM |
|
Right, Ok so my misunderstanding on this scaling debate comes down to one question.
Assuming vast quantities of transactions, and no restrictions on block size. Where is the primary processing/storage bottleneck? Is it in the temporary size of the mempool, (pre processing), or the permanent size of the blockchain? (post processing)
|
|
|
|
brg444
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
September 09, 2015, 01:26:14 AM |
|
Right, Ok so my misunderstanding on this scaling debate comes down to one question.
Assuming vast quantities of transactions, and no restrictions on block size. Where is the primary processing/storage bottleneck? Is it in the temporary size of the mempool, (pre processing), or the permanent size of the blockchain? (post processing)
I suppose it would have to be the UTXO stored in the RAM.
|
"I believe this will be the ultimate fate of Bitcoin, to be the "high-powered money" that serves as a reserve currency for banks that issue their own digital cash." Hal Finney, Dec. 2010
|
|
|
notme
Legendary
Offline
Activity: 1904
Merit: 1002
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
September 09, 2015, 03:24:13 AM |
|
Right, Ok so my misunderstanding on this scaling debate comes down to one question.
Assuming vast quantities of transactions, and no restrictions on block size. Where is the primary processing/storage bottleneck? Is it in the temporary size of the mempool, (pre processing), or the permanent size of the blockchain? (post processing)
Bottleneck is definitely storage, not processing with current technology. There are some things in the pipeline that should help quite a bit with fast access to large data sets that should begin rolling out over the next two years. UTXO is the larger concern. However, not all transactions increase the UTXO set and some decrease it (lots of inputs to a single output).
|
|
|
|
smooth
Legendary
Offline
Activity: 2968
Merit: 1198
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
September 09, 2015, 04:48:13 AM Last edit: September 09, 2015, 05:50:49 AM by smooth |
|
Right, Ok so my misunderstanding on this scaling debate comes down to one question.
Assuming vast quantities of transactions, and no restrictions on block size. Where is the primary processing/storage bottleneck? Is it in the temporary size of the mempool, (pre processing), or the permanent size of the blockchain? (post processing)
Storage (a hierarchy, in general), CPU power, and bandwidth are all potential bottlenecks and the future critical factor will depend in on the path of technological evolution which is difficult to predict. Most expect bandwidth, I believe.
|
|
|
|
|