localhost
|
|
November 21, 2011, 04:20:10 PM |
|
LOL Now Litecoin finds itself in the same predicament that Solidcoin had to solve to fend off malicious attackers. It's going to be very interesting seeing how Coblee fixes this "bug" in the protocol. HENCE THE ENTIRE DILEMMA . You can't even tell the difference between a (small) transaction fee (=given back to miners) and a (huge) king tax (=kept by the magic fairy of everythingisfineland)... just go run the TaxCoin logo design contest or something.
|
-
|
|
|
FlipPro
Legendary
Offline
Activity: 1764
Merit: 1015
|
|
November 21, 2011, 04:34:11 PM |
|
LOL Now Litecoin finds itself in the same predicament that Solidcoin had to solve to fend off malicious attackers. It's going to be very interesting seeing how Coblee fixes this "bug" in the protocol. HENCE THE ENTIRE DILEMMA . You can't even tell the difference between a (small) transaction fee (=given back to miners) and a (huge) king tax (=kept by the magic fairy of everythingisfineland)... just go run the TaxCoin logo design contest or something. LOL Edit: You don't even understand the problem that Litecoin is currently facing. Don't tell me I don't know what I'm talking about, when the exact thing happened with the very coin you're telling me to go back to.
|
|
|
|
coblee (OP)
Donator
Legendary
Offline
Activity: 1654
Merit: 1351
Creator of Litecoin. Cryptocurrency enthusiast.
|
|
November 21, 2011, 05:41:58 PM |
|
You don't even understand the problem that Litecoin is currently facing. Don't tell me I don't know what I'm talking about, when the exact thing happened with the very coin you're telling me to go back to.
I don't think the same thing happened to SolidCoin 1.0. SolidCoin 1.0 was using a fixed fee system, and ArtForz took advantage of that and spammed the network and only paying the same low fixed fee as everyone else. So RealSolid has to shutdown the chain because his change to Bitcoin's fee system backfired. Having a fixed fee is good, but that's assuming no one abuses it and sends spam transactions for low cost. Let me summarize what's been happening Dust spamming transactionsLitecoin is using the SAME Bitcoin code to deal with spam. The problem was that when I initially released Litecoin, I tried to change as a little as I could from Bitcoin. So I naively left the fee the same: 0.0005 ltc for transaction fee and 0.0001 ltc for transaction relay fee. This made it too cheap for a spammer to bloat our chain. The spammer started off by sending transactions with a ton of 0.00000001 LTC outputs and paying very little fees. (See: http://blockexplorer.sytes.net/block/4d5fc716d8a56f4223d38ebdaa2858551302d2118084448895db4131a3087117) So I increased it 200 times to make it closer to Bitcoin dollar-wise: 0.1 ltc for transaction fee and 0.02 ltc for transaction relay fee. See these 2 commits: https://github.com/coblee/litecoin/commit/b661930c59691761691e0690771981af37b2b835https://github.com/coblee/litecoin/commit/f0f9b11e860acb96279f26010c55d30b0684f10bExempt low-priority transactionsAfter this change went in, the spammer decided to send a lot of 2 LTC transactions for free. (See: http://blockexplorer.sytes.net/block/cf33787eec7468824617350664ec77048e6ecf47e6ade82a3bf07d5d566219a7) Bitcoin allows 3000 bytes of low priority transactions to go into a block for free. So he manages to fit about 13 of these transactions into each block without paying any fee. It's annoying but not too bad. But since we are finding blocks 4 times as fast as Bitcoin, this attack is 4 times as effective than a similar attack on Bitcoin. So I made the change to reduce the amount of exempt free transaction space to 500 bytes: https://github.com/coblee/litecoin/commit/65f2053c72522a12ff92429c28d654ac8002cea4https://github.com/coblee/litecoin/commit/332adc52190d079ccc3a6da0457ad2a494fc3866I also changed the priority threshold to match Litecoins parameters. It was previously using 144 for the numbers of blocks found a day. So by using 576, the priority cutoff is now 1 litecoin day per 250 bytes. https://github.com/coblee/litecoin/commit/8fe8e1304c7e7ed15e5499054e24b97b96ba98a1High-priority transactionsOnce that fix went in, the spammer can no longer fit 13 of those low priority transactions in each block. He can fit about 3. So he decided to make his transactions high priority. He started sending 577 coins to himself per transaction. (See: http://blockexplorer.sytes.net/block/960d4b540de8663508fad8e3a24b8329bc8c435a1233648281788a557ccbdcfb) He could then fit about 13 of these into a block. Since they are high priority, they can be sent without any fees. And they are only limited by the free transaction rate limiting code to prevent abuse. I then decided that we can live with this since honest user's transactions will be higher priority and will go in ahead of this spam. This attack will just slowly bloat the chain. Dust spamming transactions round 2I think after the spammer saw that I wasn't going to do anything about the high-priority transactions, he decided that's it's not worth his time to continue that since it's not doing much damage. He went back to dust spamming. But this time, he's taking advantage of the lower relay transaction fees and the fact that many users have not upgraded to the latest code. So he's paying 1/5 the cost that he normally should be charged. He's paying about 1 LTC for 50k of chain bloat. (See: http://blockexplorer.sytes.net/block/fa27fbea0d3e1a45021debb64c894ad619223baa5ee594c6fd47cda4d3e5168c) This is the problem we currently have. This exact same attack can be performed on Bitcoin, but I don't think anyone is wasting time with it. You can bloat the Bitcoin chain by 50kb by spending 0.025 btc or 6 cents. (and 1GB is only going to cost $1200) My fix proposed above should fix this problem for both Litecoin and Bitcoin.
|
|
|
|
jjiimm_64
Legendary
Offline
Activity: 1876
Merit: 1000
|
|
November 21, 2011, 06:24:40 PM |
|
Well done coblee, thank you.
My previous posts about your changes were based solely on my ignorance of how the transactions fees worked.
Thanks for you hard work.
----------------------- "my ignorance is only surpassed by my lack of knowledge" jmo
|
1jimbitm6hAKTjKX4qurCNQubbnk2YsFw
|
|
|
coblee (OP)
Donator
Legendary
Offline
Activity: 1654
Merit: 1351
Creator of Litecoin. Cryptocurrency enthusiast.
|
|
November 21, 2011, 07:57:35 PM |
|
Here's another thought I have. Ideally, I'd like to tie the transaction fees with current price of Litecoin so that the cost of spamming stays the same in terms of fiat cost. (We are still living in a fiat world whether we like it or not.) But that's impossible to do in code. The next best thing is to tie it to the difficulty. The idea is that difficulty is loosely coupled with price. If ltc price goes up, difficulty will follow as more miners jump in. And as ltc price goes down, mining becomes unprofitable, miners leave, and difficulty goes down.
So we want an inverse relationship between the base fee and the difficulty. When Litecoin becomes popular and more people start to mine it and ltc price goes up, we want the fees to go down. And we should also cap the max fee at 1 LTC. Something like this.
BaseFee = 0.1 / difficulty (round to 2 significant digits)
With the current difficulty at 0.63769, the base fee will be 0.15 LTC. If the network doubles and difficulty doubles, the base fee will be reduced to 0.075 LTC. And if we ever go back down to difficulty of less than 0.1, the base fee will be at most 1 LTC.
Thoughts?
|
|
|
|
notme
Legendary
Offline
Activity: 1904
Merit: 1002
|
|
November 21, 2011, 08:26:33 PM |
|
Here's another thought I have. Ideally, I'd like to tie the transaction fees with current price of Litecoin so that the cost of spamming stays the same in terms of fiat cost. (We are still living in a fiat world whether we like it or not.) But that's impossible to do in code. The next best thing is to tie it to the difficulty. The idea is that difficulty is loosely coupled with price. If ltc price goes up, difficulty will follow as more miners jump in. And as ltc price goes down, mining becomes unprofitable, miners leave, and difficulty goes down.
So we want an inverse relationship between the base fee and the difficulty. When Litecoin becomes popular and more people start to mine it and ltc price goes up, we want the fees to go down. And we should also cap the max fee at 1 LTC. Something like this.
BaseFee = 0.1 / difficulty (round to 2 significant digits)
With the current difficulty at 0.63769, the base fee will be 0.15 LTC. If the network doubles and difficulty doubles, the base fee will be reduced to 0.075 LTC. And if we ever go back down to difficulty of less than 0.1, the base fee will be at most 1 LTC.
Thoughts?
I like it personally.
|
|
|
|
localhost
|
|
November 21, 2011, 08:53:13 PM |
|
Here's another thought I have. Ideally, I'd like to tie the transaction fees with current price of Litecoin so that the cost of spamming stays the same in terms of fiat cost. (We are still living in a fiat world whether we like it or not.) But that's impossible to do in code. The next best thing is to tie it to the difficulty. The idea is that difficulty is loosely coupled with price. If ltc price goes up, difficulty will follow as more miners jump in. And as ltc price goes down, mining becomes unprofitable, miners leave, and difficulty goes down. [...] Thoughts?
I'm not sure difficulty is that much linked to coin value. For instance, the BTC diff is now about what it was in early June or something, but its value is like 10 times lower. I'm not sure either if a fluctuating fee (or to put it in other words, a somewhat unpredictable fee) is a good thing psychologically. Manual adjustment from time to time, depending on the economic situation, sounds good enough to me.
|
-
|
|
|
notme
Legendary
Offline
Activity: 1904
Merit: 1002
|
|
November 21, 2011, 08:59:19 PM |
|
Here's another thought I have. Ideally, I'd like to tie the transaction fees with current price of Litecoin so that the cost of spamming stays the same in terms of fiat cost. (We are still living in a fiat world whether we like it or not.) But that's impossible to do in code. The next best thing is to tie it to the difficulty. The idea is that difficulty is loosely coupled with price. If ltc price goes up, difficulty will follow as more miners jump in. And as ltc price goes down, mining becomes unprofitable, miners leave, and difficulty goes down. [...] Thoughts?
I'm not sure difficulty is that much linked to coin value. For instance, the BTC diff is now about what it was in early June or something, but its value is like 10 times lower. I'm not sure either if a fluctuating fee (or to put it in other words, a somewhat unpredictable fee) is a good thing psychologically. Manual adjustment from time to time, depending on the economic situation, sounds good enough to me. So you want centralized fee policy? To me this proposal is the right incentive structure. Fees go up as the network becomes more secure.
|
|
|
|
localhost
|
|
November 21, 2011, 09:07:44 PM |
|
So you want centralized fee policy? To me this proposal is the right incentive structure. It's not really centralized since noone is forced to update their client. Fees go up as the network becomes more secure. If I understood well, the point of coblee's idea is precisely to keep a stable fee (in fiat value), which is somewhat equivalent to the fees going down as the network becomes more secure. Note that I don't really mind the automatically adjusting fee, I'm just not sure it's as needed as psychologically uncomfortable. When I started using BTC, that mysterious unpredictable fee was a major turn off to me.
|
-
|
|
|
notme
Legendary
Offline
Activity: 1904
Merit: 1002
|
|
November 21, 2011, 09:11:44 PM |
|
You're right.
|
|
|
|
luv2drnkbr
|
|
November 21, 2011, 09:28:23 PM |
|
Wow, I go on vacation for a week and come back to see this mess! On the one hand, fuck RS or CH or whoever the fuck it is that's doing this, but I've also been very happy to see the innovative fast response and reasonable client changes as a result. Thanks for all the hard work coblee, litecoins rock!
|
|
|
|
bulanula
|
|
November 21, 2011, 09:29:46 PM |
|
Really sad to see LTC slip away into a maniacal man's paradise just like ScamCoin. Manual TX fee adjustments ? That sounds like fun
|
|
|
|
coblee (OP)
Donator
Legendary
Offline
Activity: 1654
Merit: 1351
Creator of Litecoin. Cryptocurrency enthusiast.
|
|
November 21, 2011, 09:38:23 PM |
|
Really sad to see LTC slip away into a maniacal man's paradise just like ScamCoin. Manual TX fee adjustments ? That sounds like fun It's really hard to figure out your position on stuff, bulanula. And plus you seem to flip flop so often. Ever thought of running for a political position? Are you against manual transaction fee adjustments or for them? Do you know that the bitcoin fee has been manually adjusted from 0.01 btc to 0.0005 btc as the bitcoin price rose to $30? And now that the price is back to $2, the current bitcoin fees make it very cheap to spam bitcoin also. I'm not sure difficulty is that much linked to coin value. For instance, the BTC diff is now about what it was in early June or something, but its value is like 10 times lower.
Yes, so if bitcoin had auto adjusted fees, the fee won't increase back to 0.01 btc because the difficulty didn't drop so much. But it would be about twice the 0.0005 btc fee, which would at least be going in the right direction without having to release another client just to manually adjust the fees. I'm not sure either if a fluctuating fee (or to put it in other words, a somewhat unpredictable fee) is a good thing psychologically. Manual adjustment from time to time, depending on the economic situation, sounds good enough to me.
Yes psychologically, it might be bad. Though it's just a simple calculation that anyone can do if they know the difficulty, so it's not something mysterious.
|
|
|
|
localhost
|
|
November 21, 2011, 09:46:01 PM |
|
Though it's just a simple calculation that anyone can do if they know the difficulty, so it's not something mysterious. Yeah, I meant that more in the way that you can't predict what the fee will be like in a week (since the diff will change). I don't like unpredictable stuff. I believe lots of financial people don't like unpredictable stuff either, just see the mess at Wall Street and such.
|
-
|
|
|
coblee (OP)
Donator
Legendary
Offline
Activity: 1654
Merit: 1351
Creator of Litecoin. Cryptocurrency enthusiast.
|
|
November 21, 2011, 09:51:05 PM |
|
Though it's just a simple calculation that anyone can do if they know the difficulty, so it's not something mysterious. Yeah, I meant that more in the way that you can't predict what the fee will be like in a week (since the diff will change). I don't like unpredictable stuff. I believe lots of financial people don't like unpredictable stuff either, just see the mess at Wall Street and such. Well you can just use allchains to get an estimate of next difficulty. Or if predictability is that important, I can always fix the fee to the previous period's difficulty. So you will just use today's difficulty to figure out the fee for the next period. Like everything it's a tradeoff. Would you rather have to upgrade every now and then to get new adjusted fees? Or would you rather have fees set automatically to something close but then it's not something that's fixed.
|
|
|
|
bulanula
|
|
November 21, 2011, 09:56:55 PM |
|
The difficulty TX fee idea seems to be neater than manually adjusted TX fees though. Maybe we should go with that ? Are deposits and withdrawals still messed up on BTC-E.com ? Thanks.
|
|
|
|
localhost
|
|
November 21, 2011, 09:57:45 PM |
|
Or if predictability is that important, I can always fix the fee to the previous period's difficulty. So you will just use today's difficulty to figure out the fee for the next period. Sounds good indeed. And maybe to reduce variability (improve predictability even further), if it's not too much trouble, compute today's fee based on average diff of the last 2 weeks or something (like average of the last 4 diff).
|
-
|
|
|
coblee (OP)
Donator
Legendary
Offline
Activity: 1654
Merit: 1351
Creator of Litecoin. Cryptocurrency enthusiast.
|
|
November 21, 2011, 10:09:10 PM |
|
Or if predictability is that important, I can always fix the fee to the previous period's difficulty. So you will just use today's difficulty to figure out the fee for the next period. Sounds good indeed. And maybe to reduce variability (improve predictability even further), if it's not too much trouble, compute today's fee based on average diff of the last 2 weeks or something (like average of the last 4 diff). That would take a lot of work and I'm not sure it's necessary. The difficulty is already calculated using the average of the block times in the past period. Also, please remember that as Litecoin becomes more popular, the fee will go down. So I think having fluctuating but generally decreasing fees shouldn't really be a big problem. And if we lose hashrate, I'd be more worried about us getting 51% attacked than the fees. My first suggestion is that we cap the fees at 1 LTC, but I could reduce the cap to 0.2 LTC or even 0.1 LTC if that feels better.
|
|
|
|
DeathAndTaxes
Donator
Legendary
Offline
Activity: 1218
Merit: 1079
Gerald Davis
|
|
November 21, 2011, 10:20:48 PM |
|
Or if predictability is that important, I can always fix the fee to the previous period's difficulty. So you will just use today's difficulty to figure out the fee for the next period. Sounds good indeed. And maybe to reduce variability (improve predictability even further), if it's not too much trouble, compute today's fee based on average diff of the last 2 weeks or something (like average of the last 4 diff). That would take a lot of work and I'm not sure it's necessary. The difficulty is already calculated using the average of the block times in the past period. Also, please remember that as Litecoin becomes more popular, the fee will go down. So I think having fluctuating but generally decreasing fees shouldn't really be a big problem. And if we lose hashrate, I'd be more worried about us getting 51% attacked than the fees. My first suggestion is that we cap the fees at 1 LTC, but I could reduce the cap to 0.2 LTC or even 0.1 LTC if that feels better. Why not cap fees where they are right now and use formula to decrease them as difficulty rises. With current fee structure spamming would only make sense if value of LTC fell 90% or so. If LTC value has fallen that much the risk of fees being too low are likely not really a significant concern. It may be easier to convince people fees can only fall than fees can rise and fall but it is unlikely they will rise.
|
|
|
|
coblee (OP)
Donator
Legendary
Offline
Activity: 1654
Merit: 1351
Creator of Litecoin. Cryptocurrency enthusiast.
|
|
November 21, 2011, 10:29:51 PM |
|
Why not cap fees where they are right now and use formula to decrease them as difficulty rises. With current fee structure spamming would only make sense if value of LTC fell 90% or so. If LTC value has fallen that much the risk of fees being too low are likely not really a significant concern.
It may be easier to convince people fees can only fall than fees can rise and fall but it is unlikely they will rise.
Sounds good. Thanks for the advice. Let's cap the fees at the current 0.1 LTC then. Transaction and relay fees: - base fee = 0.1 / difficulty - capped at 0.1 LTC - round to 1 significant digit
With the current difficulty at 0.63769 (0.1 / 0.63769 = 0.156816), the fee is capped at 0.1 LTC. If the network doubles and difficulty doubles to 1.27538 (0.1 / 1.27538 = 0.078408), the fee will be reduced to 0.08 LTC. If the difficulty increases tenfold to 6.3769 (0.1 / 6.3769 = 0.0156816), the fee will be reduced to 0.02 LTC.
Sounds good? We can adjust this if there's anything seriously wrong with it... like if the difficulty shoots up but the price stays the same, which makes spamming cheap again.
|
|
|
|
|