I occasionally receive requests from people wanting me to cancel their BitBet bet. This is invariably met with a strict refusal, as BitBet does not cancel bets at the request of third parties. The reason for this policy is twofold : it's not very practical, and it's never actually needed.
As to the "practical" part :
- If BitBet cancelled bets, then it'd have to obtain and verify some sort of proof from the bettor that he wants his bet cancelled. Arguably this could be accomplished through address signatures, but even in this case :
- the verification is a draw on clerical resources, increasing BitBet fixed costs ;
- the requests once verified would have to be retained, possibly forever, which brings further administrative complications ;
- sooner or later someone will make a claim for a falsely cancelled bet, which is a further draw on administrative resources ;
- people frequently use third party services to pay on their bets - it is perfectly possible for such a service to falsely cancel a bet for whatever reason, and no way to resolve the ensuing conundrum - basically the problem would move from "only bet if you mean to bet" to "make sure you own the address you send from", which progression is the wrong thing ;
- If BitBet cancelled bets, all the people playing odds arbitrage would need their bets cancelled all the time.
- If BitBet cancelled bets the currently clean scheme allowing instant verification of payout on all past bets would suffer from cancellation ambiguity.
More importantly, as to the "not actually needed" part : Suppose there's a bet which goes "A duck has four legs". For whatever reason there's 1 BTC bet on Yes and 10 BTC bet on No. For whatever reason you bet 1 BTC on Yes. You then realise a duck indeed does not have four legs. What can you do now ?
Well... you could email asking for your bet to be cancelled, but this will never happen. Your other alternative is to bet 10 BTC on No. This way, once the bet resolves you will receive 11 BTC (minus the 1% fee) and thus have practically cancelled your 1 BTC bet, for a 0.11 BTC cost to do so.
But what if there are weights involved ? Suppose the 1 and 10 original bets were at weight = 100k, your mistaken 1 bet was at weight 80k and now when you realise the problem the weight is 74k.
Well let's see here. 1 x 100k + 1 x 80k = 180k ; 10 x 100k = 1mn. Your bet is 80k out of 180k, so you will need to control 80k/180k of the opposing pool. This comes down to 800k, which at a weight of 74k comes down to 10.81 BTC roughly.
So then, if weighs are involved, in order to cancel a bet you bet on the opposing side your (wrong bet) * (its weight / current weight) * (right side pool) / (wrong side pool). Numerically, 1 * 80 / 74 * 1000 / 100 = 10.(810).
But what if the odds aren't nearly as clearly cut as in the case of a three legged duck ? Suppose you read the bet wrongly, and imagined a 9:1 handicap, when in fact the correct handicap is 5:1. What now ?
Well basically... you don't want to cancel your ENTIRE bet. You just want to cancel a portion thereof. So your bet needs to also take a (correct handicap / wrong handicap) factor, and so the entire formula becomes (wrong bet) * (correct handicap / wrong handicap) * (its weight / current weight) * (right side pool) / (wrong side pool).
Let's take an example. A bet with objective chances of resolving reflected correctly in the odds stands at 10 BTC Yes, 50 BTC No. The Yes pool is 850k, the No pool is 4.1mn. You bet 40 BTC on No at 80k weight, mistakenly judging the bet odds to be closer to 1:9. At 75k weight you realise that your judgement was erroneous, and the bet indeed splits 1:5. You therefore bet 40 * (9 / 5) * (80 / 75) * (850/7300) = 8.942465753 BTC on Yes, thus bringing your exposure to this bet back to the 1:5 base.
To verify : you control 8.942465753 BTC on Yes, at a weight of 75k, or 0.441041348% of the Yes pool. You also control 40 BTC on No, at a weight of 80, or 43.8356164% of the No pool. Should the bet resolve as Yes you will receive 0.441041348% of 90 BTC = 39.45205476 BTC. Should the bet resolve as No you will receive 43.8356164% of 25.92195122 BTC = 8.303546624 BTC. Your results thus come to 39.45205476/8.303546624 or just about 5:1 (you could get even more precise results by actually including the bet you're making in the calculation, for the cost of further complicating the formula).
So there you have it : you can cancel your own bets, by adding some capital. This obviously has a small cost associated, which is exactly as it should be.
I'm kind of surprised nobody pointed this out sooner, but anyway.