Bitcoin will soon block small transaction outputs
github.com
github.com
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.
My interpretation is that they do not see this application as important enough to take into account in their updates. This is a perfectly valid stance, and they are the developers doing the work; I just don't agree with it.
Correct.
> Regardless, any property worth tracking in such a scheme is likely worth enough to justify a $0.01 investment in bitcoin.
A doubling of the current price would make transactions of less than 1 US penny impossible. So, if the price goes up 10x, it would be 5 pennies. 100x, 50 cents. 1000x, 5 dollars. So, yeah, it does seem like a non-issue.
However, this policy clearly rules out microtransactions.
Also, maybe you want to allow the user to transfer fractions of your property issue. Stocks can go up 10000x in value and you don't want the issuer to have to perform stock splits. If there is no minimum transaction value, this is easy. With minimum transaction values, the value of a single certificate in bitcoin becomes much more important.
The point is, there are valid reasons to transact small amounts of bitcoin that do not involve micro-transactions. If the user is willing to pay the transaction fee, these should be allowed. The developers are limiting the useful (and profitable) application of the network to fix an issue that can be solved by other means.
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.
Of course, it may be that all the developers are not of one mind on this.
Per the lead developer:
"If you have a better suggestion for fixing the problem of new users wasting lots of time gathering tiny drips and drabs of bitcoins, and then getting upset when they can't spend them (because it costs more in fees that they are worth), I'm open to suggestions."
https://bitcointalk.org/index.php?topic=191425.msg1985498#ms...
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.
If a user is willing to spend $10 to insert a URL in the block chain, there is no way to stop them without making bitcoin useless.
The move to treat very small amounts of bitcoin as simply invalid is intended to reduce the bloat of the unspent address cache (called the UTXO). This is explained at the top of the linked page.
(Also, IIRC, wasn't their a proposal to make the data a hash or something mandatory so that it couldn't be random|misc-manual data? Or was that unfeasible for some reason?)
Regarding the CP URL, it was actually several hundreds of links in a large FAQ, and I don't think this changes anything regarding encoding data in the block chain.
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?
A handful of developers shouldn't be deciding acceptable business models for bitcoin. That's not going to lead anywhere good.
Placing the constraint right on the edge of the current value seems like it will just cause a lot of problems as the value continues to fluctuate.
I'd also point out that in much of the world, the local equivalent of $0.01 USD may actually not be a trivially dismissable amount of money.
But I'm not sure it's a bad idea, I just think they chose a very awkward value to peg it at.
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?
Even if payment processing costs weren't an issue (which would cause many more small unbatched transactions in gov currency, similar to the crap being dumped into the block chain... banks have to log gov currency transactions for auditing purposes), whatever the cost of individual transactions, if you have a payor who owes you $.001 over a billing period, you've done something wrong. They'd be just as willing to pay you $.01 as $.001.
Is that now the guiding principle for Bitcoin?
Is this sarcasm?
0.01US$ might be worth nothing in the US, but might be worth something in some poorer countries.
There are a number of effective "we're gonna change the world" platforms in the bitcoin world.
1) No centralized bank or government control of value/transactions/etc. 2) Anonymous wealth control 3) Microtransactions 4) Non-repudiable 'instant' transactions
These are not exclusive, nor a complete list. For example, I'm very much a fan of #3 and #4 because I have been hoping for years that we can create a sustainable system for implementing many of the commercial aspects, including transclusion, of the Xanadu goals.
All of us are ignorant or dismissive of some basic facts, whether technical, political, or economical. For example, people are very fascinated with identifying the high-net-worth btc holders. While the effort to track their accounts and transfers was originally non-trivial, people spent a lot of time developing tools and methods for correlating accumulation and distribution. It's a short hop from there to tying an account to human entities.
It's not that this was unforeseeable, but that the effort seemed too much to worry about. However, one should probably assume that any effort distributed across the Internet will attract the attention of those people who have the time and inclination to grind away at tasks considered to be pointless by the vast majority. For some, it's a way of counting coup, and you'll never escape that.
The 'opportunity' that the limitation on transaction size creates is a value-added service for micropayments. In effect, a merchant would keep a ledger of microtransactions that could be remitted at any time. You could do this today with Mt. Gox, for example.
The downside of this is much the same as with a conventional financial system. That is, people are morons and principles have a price. Many of the systems built to date have been compromised (Mt. Gox, Bitcoinica, etc.) or misappropriated completely (BTCST, Bitcoinica, etc.). It is unlikely (but possible) that an entity with technical and legal competence and a scrupled imperative will bridge the gap for microtransactions on a long-term basis.
If it were to happen, one would still have a centralized 'bank' that would have to follow practices that would compromise anonymity due to AML and KYC regulations because bitcoin services are not a competitive market at this time.
[1] If they really wanted to do so with a major fork it's possible but it's not nearly worth the hassle.
You actually have it backwards, it's aproblem precisely because there are not transactions involving those addresses other than the initial block rewards; pruning the tree would make those coins unspendable, which would be unfair.
There are so many definitely-lost and likely-lost coins that I imagine at some point there will be a 'move your coins or lose them' mandate that will give people.. idk maybe 2 years or something to move coins to prove they aren't lost, and allow a large chunk of the blockchain to be pruned.
The "no central authority" concept is from a different context, i.e., the fact that a decentralized Byzantine consensus type scheme is being used to guard against double-spends and to control minting, instead of an individual company or bank or government (i.e., "authority").
Plus, anybody can always fork Bitcoin.
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.
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.
It doesn't seem like a lot of money but if everyone did it I'm guessing it would probably beat Adsense.
There are hundreds of other applications as well for micropayments.
You don't have the right to say that, it should be my right to decide whether my transaction size is appropriate or not. This sounds like regulation to me.
Making sub-cent transactions is a waste of MY resources because every transaction gets duplicated to everyone's copy of the blockchain. That's spam. If we don't stop this then the blockchain will become so unwieldy that it makes Bitcoin all but useless for everyone, and that's not good for anyone.
It is designed to support micropayments, but with the inefficient blockchain, the implementation does not support them.
Some types of micro-transactions can be supported. Mainly, transactions where you have an ongoing relationship with the other party. For instance, paying for Wi-Fi access, one kilobit at a time: https://en.bitcoin.it/wiki/Contracts#Example_7:_Rapidly-adju...
Micro-transactions can also be supported through other centralized systems built on top of the main bitcoin system. For example Open Transactions: https://github.com/FellowTraveler/Open-Transactions
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.
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.
By this logic, any cryptographically strong series of bits is a perfect store of value.
Or it is only for non-confirmation mode that "dust" is dropped?
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.