
Bitcoin will soon block small transaction outputs - fdm
https://github.com/bitcoin/bitcoin/pull/2577#issuecomment-17138223
======
oillio
Small value amounts are useful for smart property:
<https://en.bitcoin.it/wiki/Smart_Property>

The tl;dr: Represent a piece of property, say a stock certificate, as a small
value of bitcoin. By transferring the bitcoin to another user, you are
transferring the ownership of the property. This can be useful for creating
distributed markets where property can be traded for bitcoins without
requiring a trusted intermediary.

I don't understand why this is such a big deal for the developers. You see a
lot of panic about UTXO bloat. It seems to me this can be solved by making the
UTXO cache a bit smarter. If you have a very small value output that has not
been used in a while, store it on the harddrive, not in RAM. If the output
shows up in a new transaction, you will have a cache miss, but that doesn't
seem like a serious issue. If the client is smart property aware, store those
dusty-looking outputs in a seperate cache.

This might be an attack vector for DDOS attacks, but that should be solvable
by throttling the processing of transactions that miss the cache.

The propogation of transactions that are not in the RAM cache might be a bit
longer, but that is the price you pay for making a transaction with dust.

~~~
kolinko
The problem is that Bitcoin is a distributed network, and therefore the whole
blockchain needs to be replicated across all the computers across all the
network.

Right now, the blockchain is around 9GB, most of it because of "dust" - that
is, if you want to set up your own Bitcoin node, you need to download 9GB of
data. And this is growing quite fast.

The practice of microtransactions was abused a lot - for example, SatoshiDice
uses 1 satoshi (the minimum amount) transactions to confirm that a player
lost. Or some other guys used the blockchain to embed WikiLeaks documents
using the same hacks - right now everyone needs to download all this data.

tl;dr; it's not about caching and speed, it's about the amount of storage
required to keep all the dust forever and ever.

Also, from what I gather from the commit - this is supposed to be just a
temporary solution, and there is something better in order.

~~~
gerhardi
How can Bitcoin network maintain integrity in a imaginary future where it has
gained significant traction and there are millions or even more transactions
happening every single second?

~~~
kolinko
That's a good question - I'm not proficient in this area, but I think there
are some cleanup ideas floating around.

------
jasonkolb
I assume the reason behind this is to block people from encoding data into the
block chain by doing thousands of worthless transactions. If I recall
correctly someone recently encoded the URL to a child porn site into the block
chain, this is the only reasonable response to prevent it from happening again
IMO.

~~~
fizx
Encoding data into the blockchain isn't a bug--it's a feature (perhaps THE
feature). When you want distributed consensus (e.g. for free-as-in-speech
domain names), it's the only game in town. People should be able to put
whatever data they want in the system, assuming they cover the cost.

~~~
kolinko
The problem with "dust" transactions is that they do not cover the cost.

~~~
javert
Well, miners can ignore transactions that have small fees or no fees. If there
were not enough space in a block for all outstanding transactions, the
transactions with the least fees will just be ignored.

So, there is an economic mechanism already in place to make sure dust
transactions are paid for.

So that's not the problem that's being addressed.

EDIT: Well, actually, it's a "tragedy of the commons" situation. Having tons
of dust transactions is seen as bad for Bitcoin (for reasons that are not yet
100% clear to me). So the devs think there is a need to dis-incentivize that.
But the economic mechanism I explained above has not yet kicked in, so right
now, you can make tons of dust transactions without having to directly pay for
it. The burden of storing those small outputs for all time then falls on
everybody who uses bitcoin.

------
trevelyan
I do not understand this move. If blockchain size is an issue, I don't
understand why the focus isn't pruning the blockchain so that only the hashed
headers are stored for past transactions. This defeats the point of having 8
decimal places if you can only reasonably use 3+.

~~~
nwh
It's presumably only temporary measure, and only present in the reference
client.

Anything below four decimal places is completely worthless at this point
anyway; do you really have a use for being able to send 0.01c USD?

~~~
ISL
If micropayments are ever to be possible, sub-penny transactions need to
happen. If 10^6 people send you $0.001, you get $1k....

~~~
unreal37
You should be able to send whatever value you want, as long as you pay a fee
for the resources used.

Why should it take hours for my Bitcoin client to sync (and therefore for me
to do anything with my Bitcoins) because people want to encode URLs in the
blockchain?

In a few years, it could take days to sync a new client. What kind of banking
system would that be?

~~~
Jtsummers
Can't you submit transaction before it syncs as long as you you're confident
the transaction will be valid? For a business, they could maintain a current
sync and you submit your transmitting address to them and they can verify,
that way your smartphone doesn't have to get bogged down with the task of
anything other than signing the transaction.

~~~
unreal37
If I recall, the standard Bitcoin client doesn't work until the blockchain is
synced. I've had to wait an hour to do a transaction I wanted to do because I
hadn't opened it in a few months.

------
venomsnake
No central authority - well at least until we hit a small technological bump
and it becomes mildly annoying - then we will solve the problem with a decree
or fiat.

~~~
crapnowwhat
Update changes a hard coded limit to a setting with a default value. IE easily
changeable. So it's more like a guideline. So basically they went in the
opposite direction of a dictate with this release.

~~~
venomsnake
Every developer worth his salt knows that what is set as default stays as
default for the majority of users.

~~~
crapnowwhat
For typical users I totally agree. My sense is that the miners who run the
nodes probably are pretty comfortable tweaking settings. So as a developer who
I dare say is worth his salt I'd agree with this regarding a general
population, but not the group that's currently running the nodes.

------
mortenjorck
So this slows the growth of the blockchain. If blockchain length is already
becoming an issue today, what happens a year from now if trading volume
multiplies as much as it did in the past year? What happens in five, ten
years? Could the blockchain outstrip the economic feasibility of maintaining
it at some point, or is there a mechanism already built into Bitcoin that
addresses this?

~~~
sp332
There is a game called "satoshidice" that is basically clogging the network
with ridiculous amounts of tiny transactions. So far, there's plenty of room
for "normal" traffic. Here's an opinionated explanation that sums up people's
dislike of the practice: <http://buttcoin.org/satoshidice-is-killing-bitcoin>

------
tlrobinson
This isn't a protocol change, so it's not really a big deal. It's basically a
strongly worded (coded) suggestion from the core developers to discourage
micro-transactions and blockchain spam (SatoshiDice, encoding data in the
blockchain, etc)

If miners decide they still want to include these transactions, they can.

This is the way it should be since miners bear the cost of every transaction
in the form of computing/network/storage resources.

~~~
dragontamer
Miners also are the ones running the system. If you control 51% of bitcoin
miners, you control the BTC network as well as the rules.

A malicious BTC miner would want the BTC network to be as hard as possible.
The fewer people mining, the easier it is to take over the network.

------
tocomment
This sucks. I thought one of the killer apps for bitcoin was going to be
micropayments. Oh well maybe the world will switch to litecoin.

~~~
GigabyteCoin
Funny, I always thought of it as a near perfect store of value and nothing
more.

The fact of the matter is that this is all Bitcoin has been used for so far
(no company has used Bitcoins thus far for micropayments) so I think it will
continue to evolve into an even more perfect store of value as time goes on.

~~~
tocomment
Why do you think it's such a good store of value?

~~~
GigabyteCoin
Mainly because it is impossible for anyone to take your bitcoins without your
consent (if you know what you're doing, of course).

It's not like you can place a password on your gold to prevent authorities
from seizing it as they have done in the past.

~~~
shabble
I'm not sure it's any more resistant to rubber-hose attacks ("What's your
private key/passphrase?" vs "Where did you bury your gold stash?"). Perhaps a
little more convenient, though.

------
crapnowwhat
Actually what's changing is the default value for minimum transaction size,
which can be overridden by nodes and clients who wish to. Further reading @
[http://www.reddit.com/r/Bitcoin/comments/1drslh/082_will_not...](http://www.reddit.com/r/Bitcoin/comments/1drslh/082_will_not_eliminate_microtransactions/)

------
MichaelGG
I haven't gotten around to reading the Bitcoin paper yet. But in cases where
features like this are added, don't they rely on most miners moving over?
Otherwise, won't some miners reject the new block while others accept it?

Or it is only for non-confirmation mode that "dust" is dropped?

~~~
stormbrew
If you're thinking this would result in a block chain split I don't think
that's the case. This affects which transactions get relayed and eventually
included into the blocks miners are mining against, but it doesn't mean that
blocks with these transactions would be rejected by any client.

------
jpdoctor
This is idiocy. I know it's a knee jerk reaction to ZOMG-PORN-IN-THE-
BLOCKCHAIN!!1!, but c'mon. We can use such steganography all over the net.

Do we have to show proof-of-concept by putting porn into the DNS records? How
about imgur; You know all those LSBs in the pictures? Think it's hard to get
google search to propagate your steganography for you [and then have Bing
steal it?]

The genie is out of the bottle, I'm surprised that the bitcoin / litecoin
/cryptocoin world is where a line got drawn in the sand.

