Post
Topic
Board Gambling
Re: SatoshiDICE.com - The World's Most Popular Bitcoin Game
by
kano
on 13/09/2012, 05:40:11 UTC
its strange that it only seems to be my big winning bets that are blocking  Undecided 

I think there's a reason for that.  When you lose, the only input required to 'pay you out' is your own bet.  You know you didn't double-spend your bet, so the payout goes through quickly.

When you win, however, your payout is made up of your bet plus lots of bits of change that SD had in their wallet after paying out losing bets.  That change depends on the losing bets themselves not being double spent.  If any of the losing bets turns out not to be valid then the change from paying them out also won't be valid, and so your winning payout also won't be valid, since it depends indirectly on a double-spent losing bet.

The bigger your win, the more inputs it's likely to take to make the payout, and so the more chance you have of your payout depending on an invalid coin.

So SD's wallet will contain a bunch of transactions that they think are valid, but which will never confirm.  That's probably why it takes so long for these bets to get paid out - someone has to go in and manually tidy up the wallet.

I'm only guessing about all this, based on what I can see in the blockchain.  But I expect it's not too far from the truth.
Hopefully - not the excuse.
That's just a design flaw your talking about there which I doubt is part of SD ...

If there is a double spend, for the 2nd transaction that doesn't get into a block, all the transactions based on it will NEVER get into a block.
You can't 'fix' a transaction, you can only create a different one that then new transactions can build upon.

If the design flaw is there in SD, then it will be identified by the transaction number of the winning payment changing to a new transaction (though it can change for other reasons)

You can, however, detect the cause of the problem - follow the transaction tree back and look for 2 that use the same source - one will be in a block and the other will be a pending/orphan transaction
or, follow the transaction tree back and look for transactions that don't exist any more.