Pages:
Author

Topic: WARNING! Bitcoin will soon block small transaction outputs - page 15. (Read 58538 times)

legendary
Activity: 1008
Merit: 1023
Democracy is the original 51% attack
This discussion would be much more productive and pleasant if people would stop with the personal attacks. Gavin and other developers are making this change because they think it is intelligent to do so, and they've given reasoning for this. If you disagree, then discuss your reasoning and engage in a professional dialogue.

If you care about Bitcoin, and about how it develops, then allowing your commentary to devolve into personal insults and hyperbolic rhetoric is counterproductive - you sabotage your own goals, unless your goal is just to be mean or cause superficial uproar.

The merit of your argument is diminished to the extent it is wrapped in anger. A wise person, confident in his ideas, needn't resort to shouting.
donator
Activity: 2772
Merit: 1019
Not a file sharing, but distributed DHT-like database HASH=BLOCK
What you're looking for is Freenet. Aside from the anonymity (which is neither needed or maybe even desired for blockchain storage) Freenet is a large operating content-addressed, redundant distributed filesystem with some unique properties such as good resistance to data loss even under the condition of nodes coming and going randomly, with no explicit coordination or configuration. The Freenet developers are aware of Bitcoin and are aware of how Freenet and the potential synergy between the two projects, and I think they only thing that's missing is interest for some type of collaboration to happen is some programmers on the Bitcoin side to take an interest in them.

best talk to da2ce7 and/or xelister. They have been thinking about "bitcoin over freenet" 2 years ago. xelister actually started an implementation, but progress seemed slow. I've tried myself but got stuck. It's not as straight-forward as one might first think but I think this kind of thing is important going forward.
staff
Activity: 4284
Merit: 8808
It is not a data storage service. Bitcoin would be a very bad design for a storage service
That's your - and mine too - opinion.
Some people apparently see the blockchain as useful for data storage, or for message sending, whatever.
It's isn't just an opinion— it's what people signed up for.  Satoshi didn't advertise Bitcoin as "p2p storage for uncle fester's preteen porn collection", he advertised it as a currency.

As far as fees go— there is no automatic moral righteousness that comes from paying fees: If I pay a big enough fee to your neighbor should I be able to show up and drill holes in your head?  Why not?? I paid a fee!!!!
Don't be ridiculous (or troll harder). There's consent in Bitcoin usage. Apart from botnets and alike, nobody forces you to install Bitcoin in your computer.
The comment there isn't about the force— though thats an issue too— it was a response to you saying "they paid for it".  I install Bitcoin to participate in a distributed currency, I didn't consent to storing whatever garbage you can trick the system into storing.   You can't say you paid me for my trouble and I accepted— you didn't you paid some random third parties who aren't me, I might not even be mining at all— but I support Bitcoin and run a full node because a p2p decentralized currency is important to me, and making it stay inflation free is very important.  Thus my silly analogy about paying your neighbor for permission to drill holes in your head.

Quote
And yeah, that's part of the "game": the remuneration is diluted in this lottery-like thing popularly called mining. That's known in advance. You know you'll only get the fees of a transaction if you get to produce the block that contains it. As long as the remuneration you collect (inflation + fee) pays for the overall effort and costs you need to bear, you should be fine.
Except that mining, necessarily, has nothing to do with the cost of validation. To be decenteralized its important that as many _non miners_ fully validate as possible, otherwise there is nothing to keep the miners honest as a group.

Quote
and these miners won't be able to fully validate the block in which they get included - if they get included by someone-, pretty much like SPV nodes. But they'll still be able to validate and mine all others, more "interesting" transactions.
Awesome, so I just make up a transaction that never existed with an output of a billion bitcoins— and split it between myself and a couple other parties that I know have complete records and mine that. Whos to be the wiser? Obviously that example is a bit silly— but the point remains, validation isn't useful unless its done completely. If someone can predict how you won't validate they can create inflation producing, thieving transactions which meet that criteria.

Quote
Anyway, I really doubt UTXO will ever get that big so this is likely a non-issue)
I guess you haven't looked at the rate of utxo growth?

Quote
Great, at least people can safely opt-out. I still think it should be an opt-in though.
As has been written dozens of times here by a dozen people. I'm glad you took the time to inform yourself on the subject before posting. Sad

Quote
I insist: banning like this is dumb. Charging for it is more reasonable, and much more use-case-neutral.

Uh. If you're such a fan of charging for things then you should realize that thats exactly what this does. It charges for it by making you increase the size of your outputs.  The clever thing about charging for it this way is that is that it focuses the charge on the specific usage that adds the expensive perpetually unprunable data to the blockchain (because that creates outputs which cannot be redeemed).

Quote
I wouldn't call that "discouraging", I'd call that censoring them on bitcoind. Discouraging would be to make them pay.
Bitcoind will still happily accept blocks with these transactions. There are many kinds of non-standard transactions which are rejected in the same way. For example, transactions which create 0 value outputs, or ones which create outputs less than 0.01 without a fee, or ones that use random opcodes, or have more than a couple parties in a multisig.
legendary
Activity: 1596
Merit: 1100
In the end of the day if you are not a significant miner you have no say whatsoever in how much to charge for any transaction and whether it is better to patch and recompile bitcoind to get what you want or to use some command line switches. All you can decide on is whether you prefer a higher fee for quicker transaction or not. This is so by design. It always was so. It always will be so. If you are not happy with it go and create a fork where users decide how much miners are to charge for finding blocks.

Close.

It is true that miners choose which transactions get into blocks.

However, every client chooses what to relay, or not.

legendary
Activity: 1106
Merit: 1004

As far as fees go— there is no automatic moral righteousness that comes from paying fees: If I pay a big enough fee to your neighbor should I be able to show up and drill holes in your head?  Why not?? I paid a fee!!!!

Don't be ridiculous (or troll harder). There's consent in Bitcoin usage. Apart from botnets and alike, nobody forces you to install Bitcoin in your computer.

This is plain disrespectful.

OK. And comparing it with drilling holes in people's heads was totally coherent, relevant and "respectful".

In the end of the day if you are not a significant miner you have no say whatsoever in how much to charge for any transaction and whether it is better to patch and recompile bitcoind to get what you want or to use some command line switches. All you can decide on is whether you prefer a higher fee for quicker transaction or not. This is so by design. It always was so. It always will be so.

I hope you're right on the last phrase.
And yes, in the end of the day significant miners get to tell what's accepted or not. So why embedding this particular policy in the default behavior anyway? (the particular dust-non-standard one, not the config options, which are obviously welcome)
member
Activity: 106
Merit: 10
So my new suggestion is: Set a safe upper limit on the number of transaction outputs per block. Blocks with more outputs would be invalid and rejected by the network.

Actually, an improvement on the last suggestion.

Determine an acceptable (given technology) rate of growth of the total set of unspent outputs. Every 2 weeks, adjust the number of (new unspent outputs created - previous unspent outputs spent) allowed per block, based on how closely the maximum rate of growth is being tracked.

This makes the size of all unspent outputs a resource that is subject to an economic feedback loop, just as we already have (in theory) with the total size of each block. That minimizes transaction fees without ruling out legitimate transactions that look like dust (micropayments).

Miners could pay users to spend lots of dust outputs, since it allows them to include more unspent outputs (which they can charge for) in their block.

Yes and No, Yes there should be a high limit to prevent spam,
 but also there should be a lower limit on the amount of satoshis you could send to a EMPTY address,
 a spammer can use have infinite number of empty addresses to bloat the blockchain with 1 satoshi transactions
 but he can only have so many addresses with a balance in it!

thus forbid transactions that send less than x satoshis to a address with 0 satoshis.

If this transactions have multiple outputs, just look the one's that are empty and send the amount back as change.
This will make everyone want to have at least x btc in his/her address and not spamming the address space with almost empty addreses.

full member
Activity: 194
Merit: 100
After reading all 15 pages of this stuff.. It basically boils down to this.

There was a magic number in the code for the transaction fees, so if a user of the bitcoind software wanted to change this, one had to get the source, edit main.h find the magic constant, change it, compile, install and use the newly compiled binary.

Sooo rather then that.

It was made an run time configurable thing. A NEW magic number was chosen. OMG! You're censoring transactions!! Nazi! Fork the code!!

I mean see for yourself:

https://github.com/bitcoin/bitcoin/pull/2577/files

(hint the red lines are removed and the green lines are added)

For example:
---
-    // To limit dust spam, require MIN_TX_FEE/MIN_RELAY_TX_FEE if any output is less than 0.01
+    // To limit dust spam, require base fee if any output is less than 0.01
---

Notice the change from a CONSTANT to a variable?

Geeze...
hero member
Activity: 826
Merit: 1000
I basically said the same thing, I don't know where my mis-information is?
Quote from: gweedo
So if the majority of miners hashing power like the change, it then sticks.
^ right there.

Has nothing to do with a majority of hashing power. If, for example, 10% of hashing power were under the old rules (or some alternative anti-spam rules that still allowed very small outputs under some conditions) then you'd expect 1:10 blocks to include transactions paying the small amounts.

but we all know that hashing power == power here. What I was trying to say, is if a big mining pool changes to that and starts getting a lot of blocks then obviously there choosing to use that method of blocking dust.

This only changes the default behavior of pools so they block dust transactions. Some pools already block dust transactions and will continue to do so. Others haven't been blocking dust transactions and will accept them.

But others will just do whatever default behavior the devs set.
legendary
Activity: 1106
Merit: 1004
It is not a data storage service. Bitcoin would be a very bad design for a storage service

That's your - and mine too - opinion.
Some people apparently see the blockchain as useful for data storage, or for message sending, whatever. Simply trying to censor them is dumb. It's the typical bureaucratic response to a perceived "problem": ban it!

The clever response is to imagine how could Bitcoin profit from it. And I can see no better way than to make them pay for such unconventional usage.

As far as fees go— there is no automatic moral righteousness that comes from paying fees: If I pay a big enough fee to your neighbor should I be able to show up and drill holes in your head?  Why not?? I paid a fee!!!!

Don't be ridiculous (or troll harder). There's consent in Bitcoin usage. Apart from botnets and alike, nobody forces you to install Bitcoin in your computer.

The costs of data storage are not just borne by the single miner that accepts the transaction and has arguably been paid for their trouble they are imposed on the entire network— all current and future users of Bitcoin— for all time.

They're not "imposed".

And yeah, that's part of the "game": the remuneration is diluted in this lottery-like thing popularly called mining. That's known in advance. You know you'll only get the fees of a transaction if you get to produce the block that contains it. As long as the remuneration you collect (inflation + fee) pays for the overall effort and costs you need to bear, you should be fine.
Although in general I'm for the internationalization of costs, you shouldn't get overly paranoid there. Sometimes it's more expensive to internalize a cost than to bear the free-rider. For example, have you ever seen a residential building trying to charge its inhabitants according to the amount of times they took the elevator?
(By the way, if UTXO ever becomes so huge that smaller miners can't bear to store it entirely - I honestly doubt it - they can choose to drop some transactions that they believe will never be spent. At the worst, some of these transactions get spent and these miners won't be able to fully validate the block in which they get included - if they get included by someone-, pretty much like SPV nodes. But they'll still be able to validate and mine all others, more "interesting" transactions. Another alternative would be to store these txs in slower and cheaper media, since they don't expect to access it. Anyway, I really doubt UTXO will ever get that big so this is likely a non-issue)

Quote
Will bitcoind also disconnect from nodes that don't respect this policy, à la FATCA style?
No, nodes relaying non-standard transactions are not disconnected. That would make it infeasible to have inconsistencies in policy. Part of the point of policy vs protocol rules is that policy isn't required to be completely consistent for correct operation.

Great, at least people can safely opt-out. I still think it should be an opt-in though.

I agree with you, but it's still sad to see biased behavior being embedded in the reference implementation. It's like bitcoin.org. Not a monopoly, but still, the "reference". I'd very much prefer if it remained the most unbiased possible.
Biased how?

By deciding which use cases are desirable and which are not, and attempting to censor those considered undesirable. That's a judgement of value.

I insist: banning like this is dumb. Charging for it is more reasonable, and much more use-case-neutral.

Discouraging the creation of transaction outputs that yield fewer Bitcoins than they cost to spend is pretty "value neutral".

I wouldn't call that "discouraging", I'd call that censoring them on bitcoind. Discouraging would be to make them pay.

As far as I'm aware a policy to restrict them doesn't discriminate against any kind of usage other than the "usage" of forcing hundreds of thousands of machines to archive non-bitcoin data against their operators consent.

It is not against their consent (botnets excluded, of course).
sr. member
Activity: 375
Merit: 250
how is the any different than all miners using the standard client changing the minimum transaction size accepted to 5430 satoshis?

if it's identical, why haven't they done it already? why would a patch be necessary to implement the change? why not make a forum post with the suggestion?
member
Activity: 106
Merit: 10
People, i have a solution should look something like this:

Forbid transaction that includes output less than x for a output address with an actuall amount of less than y.

Where x is 100 times less than the transaction fee and y 100 times more than the transaction fee.
And,
the transaction fee IS the average of the transaction fee included in the last 4380 blocks.(1 month)
with a minimum hardcoded that will change, but could be 0.0001 for transactions of less than 0.01 btc amount (at the moment, but that last number could be 0.01% of the average transaction size, rounded downwards. according to blockchain.info average transaction size is 13.4btc; so you will have to pay a 0.000134 min fee for any transaction of less than 0.00134 / or for every output of less than 0.00134)

so for example if the currently average transaction is fee is 0.00054
you cannot send less than 0.0000054 to an address with less than 0.054 (it will bounce back as change?)

this will:
1- Encourage the consolidation of addresses for people that have little amounts of coins and many addreses.
2- Not prevent people from making satoshi-transactions (they will pay a fee but they will have to have some balance in the receiving address)
3- Not bloat the blockchain
4- Help in the eventually cleanup of the blockchain: then after an x period, we can cleanup all addresses with less than 100 times the transaction fee safely.(i'm not sure if this last one is possible, but we could alow the sending for free of this satoshis to a address with a minimum balance)

That should deal with the bloated blockchain problem...
people with small amounts of satoshis, and that care enought, can still recover them by sending some btc (over 0.01) to the address and then send it it back or by  alowing the sending for free of satoshis only if they leave the address with 0 balane and are send to a address with a minimum balance.

TL,DR:
Encourage consolidation of addreses, forbid sending satoshis to an empty address, allow sending satoshis (if paying fee) to an address with balance, helping cleanup of blockchain (addresess with 0 balance should be pruned)

And for the people complaining about the size of the blockchain, a miner/pool making 100$ a day cannot spend 100$ on a 1tb harddisk per year?
full member
Activity: 157
Merit: 100
So my new suggestion is: Set a safe upper limit on the number of transaction outputs per block. Blocks with more outputs would be invalid and rejected by the network.

Actually, an improvement on the last suggestion.

Determine an acceptable (given technology) rate of growth of the total set of unspent outputs. Every 2 weeks, adjust the number of (new unspent outputs created - previous unspent outputs spent) allowed per block, based on how closely the maximum rate of growth is being tracked.

This makes the size of all unspent outputs a resource that is subject to an economic feedback loop, just as we already have (in theory) with the total size of each block. That minimizes transaction fees without ruling out legitimate transactions that look like dust (micropayments).

Miners could pay users to spend lots of dust outputs, since it allows them to include more unspent outputs (which they can charge for) in their block.
member
Activity: 135
Merit: 10
I guess this might have to happen if you want to keep the blockchain from getting spammed with useless transactions.
If the limit can be raised it can also be lowered, right?
hero member
Activity: 686
Merit: 500
Wat
When you have a communal asset like the blockchain it can lead to a tragedy of the commons situation unless you make services cover the cost of their transactions. Otherwise its like building roads and infrastructure funded by the taxpayer but the housing developers take all the profits.

tldr a land tax is a fair way to do things.
legendary
Activity: 2142
Merit: 1010
Newbie
Not that it will affect me but this is absolutely not the right way to go about this. This has to be a temporary fix until they figure out what to do with the massive blockchain.

My experience says that temporary fixes stay forever.
hero member
Activity: 588
Merit: 500
Hero VIP ultra official trusted super staff puppet
Not that it will affect me but this is absolutely not the right way to go about this. This has to be a temporary fix until they figure out what to do with the massive blockchain.

That's exactly what Gavin referred to it as.
hero member
Activity: 524
Merit: 502
Not that it will affect me but this is absolutely not the right way to go about this. This has to be a temporary fix until they figure out what to do with the massive blockchain.
full member
Activity: 157
Merit: 100
Why not just decide an acceptable rate of growth for the blockchain per annum (e.g. 10 GB), limit block sizes accordingly, assume all blocks will potentially be completely filled up, and be done with it?

I need to update my suggestion. I have been told on IRC that the real problem is considered to be that unspent transaction outputs have to be stored in every fully validing node's memory. As opposed to the problem being total block chain size.

So my new suggestion is: Set a safe upper limit on the number of transaction outputs per block. Blocks with more outputs would be invalid and rejected by the network.

Advantages: Miners would optimize such that you need to pay a higher fee if you take up more of the unspent outputs in that block. Now, we let economic feedback kick in and we address the problem head on, rather than waiting for it to bite us as bitcoin usage grows and limiting dust transactions is not enough, since it only indirectly solves the problem.

Actually, you could do _both_ - set a safe upper limit on the block size to deal with storage issues and a safe upper limit on unspent outputs per block, too. Then you'd be totally safe.
legendary
Activity: 1078
Merit: 1006
100 satoshis -> ISO code
So why even have 8 decimal places in the first place then?

Because some time in the future 1 BTC just might be worth $1,000,000.00 (i.e. 1 satoshi = 1 cent).
However, Bitcoin will not get to this truly excellent state if it is suffocated in infancy with transactions which existing fiat systems deem too stupid to bother with.

why the fuck would you send less than 5uBTC to ANYBODY?

Exactly! Can anyone detail any previous fiat transaction they had for an amount < 1 cent?

donator
Activity: 980
Merit: 1000
So why even have 8 decimal places in the first place then?

This is a configurable variable. If valuation is so high 1 Satoshi is a non-negligible amount, there won't be spam at all and this variable could be set to 0.
Pages:
Jump to: