Can a bitcoin transaction be reversed from the receiving end?



I know this seems like a duplicate of the question 'Can a bitcoin transaction be reversed?' but none of the answers there were explicit enough as they all seemed to assume reversal triggered from the sending side.

I guess a secondary part of my question is 'What would happen if a merchant just sent the funds back to any one of the input addresses that was used in the original transaction?' Would the money be effectively returned to my control?

Julian Noble

Posted 2011-09-08T08:49:42.500

Reputation: 817



When sending coins, the original Bitcoin client picks the more "secure" coins, i.e. the oldest ones that can be used as input for the transaction. Internally, it doesn't care about accounts, although it does of course keep track of each account's balance.

As a result, sending coins back to an input address will only guarantee they will go back to the original wallet, not necessarily the original account, let alone the original person. In many situations wallets are shared between different persons, e.g. in web services (online wallets, mining pools, etc.), so the difference is crucial.

Thus if you're designing an application and you want to allow refund, you should absolutely not rely on the sending address in your application design. Instead, allow people to give an email, a refund address, etc. at some point.

We're talking about the original Bitcoin client here. Although this behaviour is largely justified for security reasons, some current or future clients may not mix addresses between accounts and still be compliant at protocol level.

David Ammouial

Posted 2011-09-08T08:49:42.500

Reputation: 1 590

Not clear. So if I return money to the address where I receive it the money will be lost? – user4951 – 2013-05-02T01:54:35.823

1+1 for pointing out that sending coins back to an address that (for example) MtGox used to facilitate a withdrawal is very counter-productive. They'll receive it, but they'll have no idea what they are supposed to do with it. It will probably end up being credited to a random account holder (or lost). – Thilo – 2011-09-09T09:18:32.557


(Just adding a somewhat important remark to davux answer)

It seems that free scripting for transactions will be soon activated in the real network, like it is currently in the test network.

With scripts, it's possible to issue transactions that will go through completely different mechanisms than the simple one based on those standard bitcoin addresses we all know. In some cases, the receiving side might be unable to even find any addresses where to send the money back.

A “standard” bitcoin address should be considered as one way to receive some bitcoins (and to spend those). It should not be considered as the universal way to receive (or send) them.

Stéphane Gimenez

Posted 2011-09-08T08:49:42.500

Reputation: 4 894


Regarding the "second part" of your question, if you sent from your own wallet then yes, you would receive the funds "returned".

There is at least one service that only works like this (using the input address as a return address): The reason they do this is so that all "tickets" are visible in the block chain, as well as all payouts -- which are only sent to an input address from the winning ticket. This effectively eliminates the chance that the lottery operator is paying out properly and that the operator has no potential to gain advantage over any other participant.

The downside to doing this is that if someone uses an ewallet, and then becomes the winner -- the lottery winnings get sent to some other user of that ewallet service.

Stephen Gornick

Posted 2011-09-08T08:49:42.500

Reputation: 26 454

Oh, that is fun. It is like finding a winning lotto ticket on the sidewalk that someone dropped. – RobKohr – 2011-11-01T23:58:46.343