Post
Topic
Board Announcements (Altcoins)
Re: [ANN] Litecoin - a lite version of Bitcoin. Launched!
by
coblee
on 21/11/2011, 17:41:58 UTC
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 transactions

Litecoin 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/b661930c59691761691e0690771981af37b2b835
https://github.com/coblee/litecoin/commit/f0f9b11e860acb96279f26010c55d30b0684f10b

Exempt low-priority transactions

After 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/65f2053c72522a12ff92429c28d654ac8002cea4
https://github.com/coblee/litecoin/commit/332adc52190d079ccc3a6da0457ad2a494fc3866

I 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/8fe8e1304c7e7ed15e5499054e24b97b96ba98a1

High-priority transactions

Once 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 2

I 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.