DeathAndTaxes
Donator
Legendary
Offline
Activity: 1218
Merit: 1079
Gerald Davis
|
|
December 05, 2012, 05:10:20 AM |
|
So a business which is willing to mine for free because their entire business depends on the success of bitcoin will CHOOSE to include massive quantities of spam which would damage the very network their are mining for free to protect? We don't know. In 10 years Walmart might be operating their business via Bitcoin, and the transaction volume they will deal with might make any spam a regular person could generate look like a rounding error. A lot can change in 10 years. In which case the spam rules are meaningless as anyone can send tx directly to Walmart who will include them in a block. Note that can happen right now today. The mandatory fee rules are implemented ONLY at the client level.
|
|
|
|
DannyHamilton
Legendary
Offline
Activity: 3514
Merit: 4894
|
|
December 05, 2012, 05:14:37 AM |
|
. . . In some future scenario where 99.9% of transaction pay a 0.001 BTC fee or more to get into the next block and the mandatory fee is 0.00005 BTC the mandatory fee is no longer serving a purpose. It can simply be removed completely. The purpose of the mandatory fee is to prevent a spam attack and if there is enough real competition for block space such that actual fees are higher than the mandatory fee it is redundant.
The minimum fees will still serve a purpose, otherwise spam attacks and zero-fee opportunists will ensure blocks are always full even during lulls or non-busy times. Not if a miner doens't include them. . . So, if the spam fee is removed from the clients such that they will forward fee-free spammy transactions, and there are consistently enough fee transactions to fill all blocks, then what happens to the transactions created by a spammer who writes a program to pass 0.00000001 BTC back and forth as fast as possible between two addresses? Don't those transactions still have to be forwarded around the entire network and stored in some sort of memory pool indefinitely since they'll never make it into a block?
|
|
|
|
Foxpup
Legendary
Offline
Activity: 4547
Merit: 3445
Vile Vixen and Miss Bitcointalk 2021-2023
|
|
December 05, 2012, 06:56:46 AM |
|
So, if the spam fee is removed from the clients such that they will forward fee-free spammy transactions, and there are consistently enough fee transactions to fill all blocks, then what happens to the transactions created by a spammer who writes a program to pass 0.00000001 BTC back and forth as fast as possible between two addresses? Don't those transactions still have to be forwarded around the entire network and stored in some sort of memory pool indefinitely since they'll never make it into a block?
These transactions will only be stored in the memory pools of clients which have been modified to accept such transactions. Unmodified clients will neither store these transactions nor forward them unless they end up in a block. Miners using unmodified clients will not mine these transactions either, even if there is free space for them in a block. Removing the anti-spam fee from you client doesn't allow you to spam the network, unless the network (including miners) agrees to accept your spam. It does, however, allow other people with similarly modified clients to spam you, making it a pretty dumb idea.
|
Will pretend to do unspeakable things (while actually eating a taco) for bitcoins: 1K6d1EviQKX3SVKjPYmJGyWBb1avbmCFM4I am not on the scammers' paradise known as Telegram! Do not believe anyone claiming to be me off-forum without a signed message from the above address! Accept no excuses and make no exceptions!
|
|
|
DannyHamilton
Legendary
Offline
Activity: 3514
Merit: 4894
|
|
December 05, 2012, 07:09:06 AM |
|
So, if the spam fee is removed from the clients such that they will forward fee-free spammy transactions, and there are consistently enough fee transactions to fill all blocks, then what happens to the transactions created by a spammer who writes a program to pass 0.00000001 BTC back and forth as fast as possible between two addresses? Don't those transactions still have to be forwarded around the entire network and stored in some sort of memory pool indefinitely since they'll never make it into a block?
These transactions will only be stored in the memory pools of clients which have been modified to accept such transactions. Unmodified clients will neither store these transactions nor forward them unless they end up in a block. Miners using unmodified clients will not mine these transactions either, even if there is free space for them in a block. Removing the anti-spam fee from you client doesn't allow you to spam the network, unless the network (including miners) agrees to accept your spam. It does, however, allow other people with similarly modified clients to spam you, making it a pretty dumb idea. That's what I thought. So the spam filtering fee in the client isn't there to prevent spamming the blockchain with transactions in the blocks, it's there to prevent spamming of the memory pool and transaction forwarding. I was confused because D&T seemed to be indicating that the spam filtering fee would eventually be removed from ALL clients when there were enough fee transactions to fill most blocks. He seems to be indicating that as long as miners don't include free transactions in the blocks, there isn't a need for the client programs to require fees for forwarding spammy transactions. . . . I would imagine at some point there won't be a need for any mandatory min fee . . . The "min mandatory fee" will be a relic of the past. At some point in the future nodes may save CPU cycles and stop even performing the check.
The need for a min fee is a side effect of the large block subsidy. Without a true free market on transactions (due to the distorting effect of the subsidy) there is a need to protect the network from spam (as most miners in the past included every single tx in a block).
. . . In some future scenario where 99.9% of transaction pay a 0.001 BTC fee or more to get into the next block and the mandatory fee is 0.00005 BTC the mandatory fee is no longer serving a purpose. It can simply be removed completely. The purpose of the mandatory fee is to prevent a spam attack and if there is enough real competition for block space such that actual fees are higher than the mandatory fee it is redundant.
The minimum fees will still serve a purpose, otherwise spam attacks and zero-fee opportunists will ensure blocks are always full even during lulls or non-busy times.
Not if a miner doens't include them. As miners get more and more sophisticated I doubt you will see many including giants numbers of spam-like free tx especially when the block subsidy is negligible and they are doing extra work to hurt the network for no profit . . .
|
|
|
|
Foxpup
Legendary
Offline
Activity: 4547
Merit: 3445
Vile Vixen and Miss Bitcointalk 2021-2023
|
|
December 05, 2012, 07:31:53 AM |
|
That's what I thought. So the spam filtering fee in the client isn't there to prevent spamming the blockchain with transactions in the blocks, it's there to prevent spamming of the memory pool and transaction forwarding. I was confused because D&T seemed to be indicating that the spam filtering fee would eventually be removed from ALL clients when there were enough fee transactions to fill most blocks. He seems to be indicating that as long as miners don't include free transactions in the blocks, there isn't a need for the client programs to require fees for forwarding spammy transactions.
I read it as the anti-spam fee not being required because all transactions will require fees, regardless of whether the transaction is spammy or not. The only reason the anti-spam fee exists at all is because miners (currently) allow free transactions, but they naturally don't want people abusing the privilege.
|
Will pretend to do unspeakable things (while actually eating a taco) for bitcoins: 1K6d1EviQKX3SVKjPYmJGyWBb1avbmCFM4I am not on the scammers' paradise known as Telegram! Do not believe anyone claiming to be me off-forum without a signed message from the above address! Accept no excuses and make no exceptions!
|
|
|
gmaxwell
Staff
Legendary
Offline
Activity: 4298
Merit: 8818
|
|
December 05, 2012, 01:05:54 PM |
|
I read it as the anti-spam fee not being required because all transactions will require fees, regardless of whether the transaction is spammy or not. The only reason the anti-spam fee exists at all is because miners (currently) allow free transactions, but they naturally don't want people abusing the privilege.
Not just miners. It's needed to protect the relaying network from floods of spam transactions which would never get mined. But sure— as the fee marketplace becomes a real thing I can see the anti-spam fees for relaying becoming something that no one practically has to worry about because if it exists at all (it could be potentially replaced by priority queues for that purpose) it would end up smaller than the amount required to realistic get a transaction into a block.
|
|
|
|
AfricanHunter
|
|
December 06, 2012, 07:13:39 AM |
|
I got the same alert 30 min ago. Sent a 7.5 btc payment, no fee; Then sent a 2.2 and got the popup saying .0005
Only bummer is there is no way to process a free tx (obviously slower), you either accept or cancel.
As I understand, if you let the coins sit for a while the fee may go away. Can anyone confirm?
|
|
|
|
prezbo
|
|
December 06, 2012, 10:12:23 AM |
|
I got the same alert 30 min ago. Sent a 7.5 btc payment, no fee; Then sent a 2.2 and got the popup saying .0005
Only bummer is there is no way to process a free tx (obviously slower), you either accept or cancel.
As I understand, if you let the coins sit for a while the fee may go away. Can anyone confirm?
If the outputs are all larger than 0.01 btc, then yes, after coins are old enough the transaction priority will rise and it will be accepted without a fee.
|
|
|
|
Ascholten (OP)
|
|
December 08, 2012, 07:51:08 PM |
|
Ok here's a bit of a test.
I have one wallet that has been receiving a lot of 'micro payments'. From these get paid to click sites.
currently it has 93mBTC in it collected over 402 transactions. that would be 0.0930 BTC collected over a period of about 4 months.
If I try to send 0.090 BTC somewhere I am asked to pay a fee of 0.0255 BTC to do so. NO I did NOT mis read the number.
That is a transaction fee of over 28 percent of the amount!! I don't mind supporting the system but this is a bit insane of a transaction fee.
If this is the way the system really is then perhaps the 'community' should dissuade all these micro / sub micro click here sites from their attempts to grab their tiny part of the market because in the long run, the only ones getting any real money will be the miners at these rates. If not then are you saying then if I wait long enough, this fee will eventually waive itself down to zero? How long is long, weeks, months??? or am I just stuck and paying a BIG fee?
Thank you for your inputs.
Aaron
|
|
|
|
prezbo
|
|
December 08, 2012, 10:46:31 PM |
|
Ok here's a bit of a test.
I have one wallet that has been receiving a lot of 'micro payments'. From these get paid to click sites.
currently it has 93mBTC in it collected over 402 transactions. that would be 0.0930 BTC collected over a period of about 4 months.
If I try to send 0.090 BTC somewhere I am asked to pay a fee of 0.0255 BTC to do so. NO I did NOT mis read the number.
That is a transaction fee of over 28 percent of the amount!! I don't mind supporting the system but this is a bit insane of a transaction fee.
If this is the way the system really is then perhaps the 'community' should dissuade all these micro / sub micro click here sites from their attempts to grab their tiny part of the market because in the long run, the only ones getting any real money will be the miners at these rates. If not then are you saying then if I wait long enough, this fee will eventually waive itself down to zero? How long is long, weeks, months??? or am I just stuck and paying a BIG fee?
Thank you for your inputs.
Aaron
The priority formula, priority = sum(input_value_in_base_units * input_age)/size_in_bytes takes into account the age of coins and the size of the transaction. Normally 1 btc of inputs should be 1 day old or older to avoid the fee. A transaction containing 400 inputs will be huge, thus coins will have to be really old if you don't want to pay any fee. That said, I'm sure if you sent the transaction without a fee it would still get included in a block.
|
|
|
|
2112
Legendary
Offline
Activity: 2128
Merit: 1073
|
|
December 08, 2012, 11:10:58 PM |
|
or am I just stuck and paying a BIG fee?
Not if you have a bitcoin-rich uncle. Just meet with him and ask him to use his 1000 BTC wad of cash to mop up the dust in your wallet. I'm not kidding. You can avoid all fees if you can convince someone to include your small transaction outputs in a single large transaction. It is the total sum transferred that matters.
|
|
|
|
justusranvier
Legendary
Offline
Activity: 1400
Merit: 1013
|
|
December 08, 2012, 11:20:05 PM |
|
Not if you have a bitcoin-rich uncle. Just meet with him and ask him to use his 1000 BTC wad of cash to mop up the dust in your wallet.
I'm not kidding. You can avoid all fees if you can convince someone to include your small transaction outputs in a single large transaction. It is the total sum transferred that matters.
Clients could be programmed to do this automatically.
|
|
|
|
prezbo
|
|
December 08, 2012, 11:22:17 PM Last edit: December 09, 2012, 08:46:00 AM by prezbo |
|
or am I just stuck and paying a BIG fee?
Not if you have a bitcoin-rich uncle. Just meet with him and ask him to use his 1000 BTC wad of cash to mop up the dust in your wallet. I'm not kidding. You can avoid all fees if you can convince someone to include your small transaction outputs in a single large transaction. It is the total sum transferred that matters. If my calculation is correct, he would need ~3200 btc*confirmation worth of inputs, so about 23 of 1 day old coins would probably do it. If I had any old coins I would gladly do this for you, but alas I don't.
|
|
|
|
BkkCoins
|
|
December 08, 2012, 11:42:05 PM |
|
That is a transaction fee of over 28 percent of the amount!! I don't mind supporting the system but this is a bit insane of a transaction fee.
In comparison a service like Paypal would charge you 0.30 +3 percent for each pmt you received. Multiply that by 402 times. The sum total of your 402 pmts is $1.21 or so. It doesn't seem like an insane fee at all but rather you're asking it to do a rather insane transaction that any other processing system would make impossible. If this is the way the system really is then perhaps the 'community' should dissuade all these micro / sub micro click here sites from their attempts to grab their tiny part of the market
Yes, it's silly when they could collect up the clicks and pay out once a day with a single transaction. But it's not up to the network to decide this. It should be the clickers who choose to use a better service and competition to provide a method that doesn't throw away 28% on fees.
|
|
|
|
deepceleron
Legendary
Offline
Activity: 1512
Merit: 1036
|
|
December 09, 2012, 04:28:21 AM Last edit: December 09, 2012, 01:15:59 PM by deepceleron |
|
or am I just stuck and paying a BIG fee?
Not if you have a bitcoin-rich uncle. Just meet with him and ask him to use his 1000 BTC wad of cash to mop up the dust in your wallet. I'm not kidding. You can avoid all fees if you can convince someone to include your small transaction outputs in a single large transaction. It is the total sum transferred that matters. If my calculation is correct, he would need ~3200 btc*day worth of inputs, so about 100 of 1 month old coins would probably do it. If I had any old coins I would gladly do this for you, but alas I don't. Let's show our work: Typical transaction size examples in KB (from blockchain): A) 1 input/1 output (sending exact balance of one input) = 191 bytes B) 1 input/2 output (sending money from single input with some change) = 258 bytes C) 2 input/1 output (consolidating two address balances to one output) = 404 bytes D) 12 input/2 output (sending from many inputs with change) = 1851 bytes E) 34 input/1 output (consolidating 34 inputs to one output) = 3400 bytes F) 128 input/2 output (sending with a dice-spammed wallet) = 22935 bytesCalculated fee for last transaction in list = 23k * .0005 = 0.0115 regardless of actual BTC amount sent ( actual transaction was 0.013 BTC fee). priority = sum(input_value_in_base_units * input_age)/size_in_bytes minimum priority to avoid the enforced limit = above 57,600,000 So if transaction example B was a 20 BTC input with 144 confirmations (1 day old): priority = ( 2,000,000,000 * 144 ) / 258 = priority 1,116,279,060 = free OKIf transaction example F input was 20 BTC, one day old, plus 127 satoshispams, one day old: priority = { ( 2,000,000,000 * 144 ) + ( 1 * 144 ) + ( 1 * 144 ) + ( 1 * 144 ) .... } / 22935 priority = { (288000000000) + (18288) } / 22935 priority = 12,557,234 < 57,600,000 That transaction priority would be about one-fifth the size needed for free priority, either we can wait five days instead of one day, or use 100 BTC instead of 20 when adding a "helper balance" to the wallet. Note above that the age of the small-BTC spam inputs have near zero effect on the priority, only their additional size. Double the spam inputs, you only double the size, and double the age or balance required by a big helper balance when attempting to empty wallet for free.
|
|
|
|
|