1

From this link which is a bitcoin testnet transaction.

How can we be sure that this transaction spent a certain amount of satoshis to an address from another wallet? In this case the transaction is spending 2000000 t-satoshis to mzTH5MV8AVuzu6PRL5NArsv6qNYro1P8Qm address.

UPDATE

It seems "blockcypher" system is doing this accurately for this transaction as well. So there must be a way to do it. How does this work?

Blockcypher displays that Estimated Value Sent : 0.01 t-BTC

1

Generally, there is no information in a bitcoin transaction which indicates the amount being transacted between two parties. An outside observer can view the value of inputs and outputs, but the ownership of each output will be unknown to them. More specifically, the change output is often indistinguishable from the other outputs, so an outside observer may not know which output is the change, and which is the actual amount transacted. This is important, because it helps preserve privacy!

Consider this simple example: User A sends a bitcoin transaction to User B, which looks like this on the blockchain (ignoring fees for simplicity):

Inputs:

  • Address 1: 5 BTC

Outputs:

  • Address 2: 2 BTC

  • Address 3: 3 BTC

As an outside observer, we cannot tell whether User B was sent 2 BTC, or 3 BTC. By design, there is no data to tell us this.


However, in the case of both transactions you linked, the input address has been re-used as the change address, which is not best practices, as it significantly degrades privacy. This allows us to know how much BTC was transacted, because the transaction now looks like this:

Inputs:

  • Address 1: 5 BTC

Outputs:

  • Address 2: 2 BTC

  • Address 1: 3 BTC

And so we can see that User A sent 3 BTC back to themselves, and thus 2 BTC were sent to User B.


NOTE: some block explorers will make a guess at "how many bitcoins were transacted" (sent from one user to another) in a given transaction, according to some logic written by the developers that built that explorer. But this is just a guess, there is fundamentally no way to be certain about this information.

When best practises are followed, it becomes impossible to tell how much BTC was 'transacted': this is by design, and it is important for privacy and fungibility.

Your Answer

By clicking "Post Your Answer", you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.