Pages:
Author

Topic: Economically Unspendable Outputs: A Problem On The Radar - page 8. (Read 16508 times)

hero member
Activity: 546
Merit: 500


Yep, I agree and there is no question that SatoshiDICE has done some great things. But they are also pushing a burden of disproportionate costs onto all full nodes that exist or will ever exist in the future. No other Bitcoin enterprise behaves this way.


All that SatoshiDICE needs to do is pick one of several options for changing the way it sends unspendable outputs to notify gamblers of losing bets.


They could hold back those small payments and have them build up until such time as the receiver wanted to withdraw them.


Ditto on bitcoin is "still in beta" - we are all still "early adopters".
hero member
Activity: 756
Merit: 500
It's all fun and games until somebody loses an eye
If I have other coins, say 4 BTC, and want to spend 1.25 BTC, it's trivial to create a transaction with 4 BTC + 1 or more single-satoshi inputs, that pays 1.25 + 2.7500000x BTC change as outputs, and pay no fees.

So not only can they be spent, they can even be spent and pruned for free.  Yes, I've done it myself.

First of all your trick only works once, if the 4 BTC come from a transaction output that is sufficiently aged. So it's not "free", you're consuming the limited resource (old coins in this case). You could not, for example, use the same 4 BTC again to combine another single satoshi input for "free".

Second, assuming that you did not have aged coins you would have to pay a fee. The 36 bytes for the additional input (the 1 satoshi) will drive the fee up by more than one satoshi. This is what we mean by "economically unviable to spend."


People talk about "old" coins, and "aging" coins, to avoid a fee, but what is the actual meaning of "old"? How long do they have to sit, is it a coupe blocks, a couple days, a couple weeks?
legendary
Activity: 2142
Merit: 1010
Newbie
Quote
I bet u r wrong. Some guys say that bitcoins can be infinitely divided.
How much do you bet?

21 million times 10^8 Satoshis + 1 satoshi more

 Grin
full member
Activity: 203
Merit: 100
Quote
I bet u r wrong. Some guys say that bitcoins can be infinitely divided.
How much do you bet?
legendary
Activity: 2618
Merit: 1007
This requires a hard fork, if you create more than 3 additional digits (smallest unit is 1/100th of a nBTC) you overflow an 64bit int and once this is necessary, I guess there are a LOT of other problems first.

Currently there is also a hard cap of 1 million bytes/block. There are ideas to change that, but as it currently stands these are the rules every block on the network must follow to be valid. Of course in the future BTC could be divided down to 100 decimal places, blocks could be 100GB per block etc. - all these things are (maybe?) desirable or wouldn't change the main idea behind bitcoin a lot, but still currently and without a widely accepted hard fork they are out of question.
legendary
Activity: 2142
Merit: 1010
Newbie
Also, there is a hard cap of 21 million times 10^8 Satoshis.

I bet u r wrong. Some guys say that bitcoins can be infinitely divided.
legendary
Activity: 2618
Merit: 1007
In recent times mrbigg has started to troll hard with half-true information, similar to a user which name was a certain greek deity who carried the world on his shoulders...

If unprunable dust output becomes a problem, there IS incentive to include "collecting" transaction in the network - you have a big transaction input, but can prune each of these from your list. Once storing your list is more expensive than block space, you include these transactions. If it isn't, it's also not a problem to store them.

Also, there is a hard cap of 21 million times 10^8 Satoshis. You can do the maths how big the maximum set of pruned unspent outputs can get and this isn't even a VERY scary number (Facebook soon will store more data than that). This is the absolute maximum EVER that can be reached, no matter the block size, no matter how many people attack BTC.

By the way, I'm also pissed that SD is using several gigabytes(!) of my HDD space on my full node and only paying miners for including these (I personally believe there should be full nodes not only run by miners or at a loss) but instead of spreading information that I bend a bit to sound informed or plausible, I'd rather release a "no-SD" patch and maybe even binaries for pools to use. There STILL is no real bitcoin client that is tailored towards miners and their needs, most clients are written for end users (=transaction generators, not transaction confirmers).

Also this issue is not new at all, since day 1 SD has been under attack by people for creating 1 Satoshi bitdust. They didn't care back then and they won't change their operations now that they risk their business. Even the "let's track SD earnings" thread in the dev forum was also partly created to also see how much they bloat the block chain.

All you do with this thread is creating a Streisand effect - every publicity is good publicity...
hero member
Activity: 756
Merit: 501
There is more to Bitcoin than bitcoins.
I've never heard of anyone except evorhees being involved with SatoshiDice. You should really be careful with throwing names around like that.
Perhaps mrbigg has privileged access to non-public information? Perhaps this access has something to do with his job of posting amazingly inflamatory idiotic statements such as
Quote
Bitcoin under ATTACK now: What YOU can do to help!

Quote
Blockchain.info Colluding with SatoshiDICE to spam the network?
?
donator
Activity: 668
Merit: 500
You didn't read. Sure, the blocks are full but the problem is that the SatoshiDICE losing confirmations are unspendable and unprunable. Do you understand this distinction? A normal transaction output stays in the block chain until it is completely spent at which point it is eligible for pruning and can disappear forever. It only "bloats" the block chain until it is spent. Compare this with SD's losing confirmation, which can never be spent economically and therefore can never be pruned. Do you get it now? Why won't it read?

I've explained why this is false.  Why do you keep repeating a falsehood?  Ax(e) to grind?
legendary
Activity: 4760
Merit: 1283
That "bloat" when maxed out will increase chain size linearly, while the cost of storage goes down exponentially. It's really an anomaly of young bitcoin that we had blocks below the cap this long - for most of bitcoin's future, the blocks should be nearly full.

Seems to me that as long as the community does not choose to fiddle with the block size, the fees will start to take care of SatoshiDice-class problems and it should remain practical for the system to be operational on the backs of a wide class of operators. 

You didn't read. Sure, the blocks are full but the problem is that the SatoshiDICE losing confirmations are unspendable and unprunable. Do you understand this distinction? A normal transaction output stays in the block chain until it is completely spent at which point it is eligible for pruning and can disappear forever. It only "bloats" the block chain until it is spent. Compare this with SD's losing confirmation, which can never be spent economically and therefore can never be pruned. Do you get it now? Why won't it read?


Ya, so they stay in the block chain, bloat it, and cause overhead and nuisance.  As long as it is predictable I don't see it as a terminal event.

Perhaps an attacker could use is as a DOS mechanism by deliberately leveraging the weakness at a significant monetary loss.  In that case it probably would be possible to make a fork which a significant chunk of the userbase would adopt (if that is what it took to deal with the issue.)  Or just shift to a crypto-currency solution which didn't have this weakness.

hero member
Activity: 950
Merit: 1001
That "bloat" when maxed out will increase chain size linearly, while the cost of storage goes down exponentially. It's really an anomaly of young bitcoin that we had blocks below the cap this long - for most of bitcoin's future, the blocks should be nearly full.

Seems to me that as long as the community does not choose to fiddle with the block size, the fees will start to take care of SatoshiDice-class problems and it should remain practical for the system to be operational on the backs of a wide class of operators.  

You didn't read. Sure, the blocks are full but the problem is that the SatoshiDICE losing confirmations are unspendable and unprunable. Do you understand this distinction? A normal transaction output stays in the block chain until it is completely spent at which point it is eligible for pruning and can disappear forever. It only "bloats" the block chain until it is spent. Compare this with SD's losing confirmation, which can never be spent economically and therefore can never be pruned. Do you get it now? Why won't it read?

Even with no pruning at all the max chain size still goes up linearly over time. Do you understand that?
legendary
Activity: 1064
Merit: 1001
That "bloat" when maxed out will increase chain size linearly, while the cost of storage goes down exponentially. It's really an anomaly of young bitcoin that we had blocks below the cap this long - for most of bitcoin's future, the blocks should be nearly full.

Seems to me that as long as the community does not choose to fiddle with the block size, the fees will start to take care of SatoshiDice-class problems and it should remain practical for the system to be operational on the backs of a wide class of operators. 

You didn't read. Sure, the blocks are full but the problem is that the SatoshiDICE losing confirmations are unspendable and unprunable. Do you understand this distinction? A normal transaction output stays in the block chain until it is completely spent at which point it is eligible for pruning and can disappear forever. It only "bloats" the block chain until it is spent. Compare this with SD's losing confirmation, which can never be spent economically and therefore can never be pruned. Do you get it now? Why won't it read?

hero member
Activity: 950
Merit: 1001
Who knows, maybe provably fair gambling is the "killer app" for Bitcoin.

And I thought Bitcoin was a fiat-killer, the most powerful idea for the internet since the WWW.
I do hope some other people share this view...

Those things aren't mutually exclusive. Part of the advantage over fiat is that it's the market - not a bunch of lofty rhetoric - that decides the allocation of resources.
legendary
Activity: 4760
Merit: 1283
That "bloat" when maxed out will increase chain size linearly, while the cost of storage goes down exponentially. It's really an anomaly of young bitcoin that we had blocks below the cap this long - for most of bitcoin's future, the blocks should be nearly full.

My thought too.  As long as things are predictable I'm not terribly worried.  At least in terms of bloat, and as long as it is possible to be an infrastructure operator without spending huge amounts of money and thus limiting Bitcoin to be reliant on a handful of well capitalized entities.

Seems to me that as long as the community does not choose to fiddle with the block size, the fees will start to take care of SatoshiDice-class problems and it should remain practical for the system to be operational on the backs of a wide class of operators. 

Start monkeying with the block size and all bets are off.  Possibly this is why things are coded as they are?

legendary
Activity: 1078
Merit: 1006
100 satoshis -> ISO code
Who knows, maybe provably fair gambling is the "killer app" for Bitcoin.

And I thought Bitcoin was a fiat-killer, the most powerful idea for the internet since the WWW.
I do hope some other people share this view...
hero member
Activity: 651
Merit: 501
My PGP Key: 92C7689C

Free transactions are only relayed or included in a block if the coins are of sufficient age, to prevent attackers from flooding the network with messages.


So if someone wants their 1 Satoshi they can just send it as a free transaction. Once it is of a sufficient age they will be sent.

Problem solved.

You most likely wouldn't send 1 satoshi by itself. One of the free-bitcoin sources has been sending 1-satoshi payments. I combine them with mining income and other income with my CheapSweep script (google this forum for the thread). It can take a few hours for the transaction to get accepted, but I've not had one not go through yet.
hero member
Activity: 950
Merit: 1001
Everyone who has accepted the spirit of Bitcoin wants a new, peer regulated currency independent of central-banks and civil-liberties-crushing government control. The next thing is they want is for Bitcoin to take some market share from the existing fiat dominated world.
Quote
There is a potential risk, which looks to me a big risk, that SD-like applications will grow to consume nearly 100% of Bitcoin's capacity. At that point the "improve the world" dream will be on life-support.
When did the spirit of Bitcoin tell you which applications are most important? Some of my dreams involve weird new inventions that weren't possible before, why should they take a backseat to direct conflict over occupied territory? If we both want the same shared resource for different ends, bidding on it seems like the fairest way to resolve our disagreement. Who knows, maybe provably fair gambling is the "killer app" for Bitcoin.

Quote
There is also the problem of unspendable outputs bloating the blockchain.
That "bloat" when maxed out will increase chain size linearly, while the cost of storage goes down exponentially. It's really an anomaly of young bitcoin that we had blocks below the cap this long - for most of bitcoin's future, the blocks should be nearly full.
legendary
Activity: 1078
Merit: 1006
100 satoshis -> ISO code
What exactly is wrong with this "bloat?"
Blocks won't go over the size cap, so it's fair to clients.
SD is paying enough in fees for miners to accept, so it's fair to miners.
Speculators get slightly richer from lost coins and increased popularity.
The only people who are worse off are other senders because they now have to pay a market price instead of tips.

Isn't this what we signed up for? Transaction fees go up, subsidy goes down?

Everyone who has accepted the spirit of Bitcoin wants a new, peer regulated currency independent of central-banks and civil-liberties-crushing government control. The next thing is they want is for Bitcoin to take some market share from the existing fiat dominated world.

Applications like SD are generating new business within the Bitcoin domain, business which could never have existed before. This is fine to a degree, but this new, internal, business is not replacing general fiat usage or taking market share from paypal or mastercard, yet it is close to 70% of Bitcoin's transaction flow. This means that only 30% of Bitcoin's processing is replacing existing real-world fiat&payments. Even this might be fine, but Bitcoin has a finite capacity at the moment, the max block size, and a further unknown block size limit which is set by the network block propagation latency and verification time (remember, only 10 mins between blocks).

There is a potential risk, which looks to me a big risk, that SD-like applications will grow to consume nearly 100% of Bitcoin's capacity. At that point the "improve the world" dream will be on life-support. There is also the problem of unspendable outputs bloating the blockchain.

We are asking that SD optimize itself to at least buy some time.
donator
Activity: 668
Merit: 500
First of all your trick only works once, if the 4 BTC come from a transaction output that is sufficiently aged. So it's not "free", you're consuming the limited resource (old coins in this case). You could not, for example, use the same 4 BTC again to combine another single satoshi input for "free".
Yes, that's the currently agreed ruleset.  So what's the problem again?

You've gone from saying they can't be spent, to they can't be spent for 6 hours?  Come on.  And not every bet is a losing bet.  And you can spend 3 or 4 satoshis at a time.

Second, assuming that you did not have aged coins you would have to pay a fee. The 36 bytes for the additional input (the 1 satoshi) will drive the fee up by more than one satoshi. This is what we mean by "economically unviable to spend."

No, you can easily get a total of combined inputs and outputs of 6 or more without raising the cost from free.  Have you looked at what's happening in the actual blockchain, or the logic for free transactions?  And if you're paying the 0.0005 "minimum" anyway you can get away with a lot more inputs and outputs.
hero member
Activity: 950
Merit: 1001
What exactly is wrong with this "bloat?"
Blocks won't go over the size cap, so it's fair to clients.
SD is paying enough in fees for miners to accept, so it's fair to miners.
Speculators get slightly richer from lost coins and increased popularity.
The only people who are worse off are other senders because they now have to pay a market price instead of tips.

Isn't this what we signed up for? Transaction fees go up, subsidy goes down?
Pages:
Jump to: