3

Can I find (always, without fault) the specific set of blocks from which the Bitcoins that I hold originated?

If yes, would such a trace-back be computationally costly?

1
  • 4
    It's not really clear what that means. For example, say a transaction pulls in the 25 Bitcoins mined in two different blocks and, among other outputs, pays out 1 Bitcoin. What does it mean to ask which of those two original blocks is the one that Bitcoin "originated" in? Apr 13, 2014 at 18:54

3 Answers 3

1

Yes you can do this but I wonder what to do with the outcome. If you receive 1 BTC today you can assume that the path back ends up often in ten thousands of mined bitcoin addresses. Assume the transaction used 3 input addresses and each of the 3 had 3 inputs one step back in history. Then this exponentially grows. This is similar like going back in your personal origin. You have 2 parents, 4 grandparents, 8 grand-grandparents, 16 grand-grand-grandparents ... . After 10 steps back you're above 1000 and after 20 steps above 1 million. There is of course double counting however the total number gets quickly high. I think it's not too computationally costly if you do it only for one address. If you do it for all 600+ million you need a powerful machine or a lot of time.

1

Yes, you can, every transaction in the bitcoin network is registered in a public ledger called blockchain. You can query this ledger via HTTP interface like https://blockchain.info/api/blockchain_api

I don't think will be costly but it depends on how many hands your bitcoin passed. When you find a transaction without a sender, you have to stop, these are mined (generated) blocks

UPDATE 2022:

HTTP API has 2 major problems:

  • Trust, you are trusting the service to provide you the right data.
  • Performance, network calls are expensive.

It is better to query your local copy of the blockchain, using Bitcoin Core with tx index allows you to query the previous outputs of transactions until you find the generating blocks. Note I used plural for blocks because transactions could have multiple inputs, possibly generated by different blocks.

1

Can I find (always, without fault) the specific set of blocks from which the Bitcoins that I hold originated?

Short answer: No.


Yes in the completely trivial sense that your Bitcoins were created in the transaction in which they appeared as outputs. But this isn't the sort of origin you had in mind.

But no in any real sense because a Bitcoin is an unspent transaction output (UTXO). A UTXO has no continuity through transactions and so neither does a Bitcoin. You cannot meaningfully or reliably trace a Bitcoin back through multiple transactions to one or more specific mining rewards.

This is mainly because the public journal of transactions we call the blockchain does not associate transaction outputs with specific transaction inputs. Often you can make an inference if there are few inputs but certainly not "always, without fault".

If a transaction takes three of Alice's coins worth 3, 1.5 and 3.5 and pays Bob 4 and Carol 4 there is no way for Eve or Judy to say where Bob's 4 came from.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

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