Now I expect to develop an ownership tracking service like Ascribe. I'm planning to develop it as following, however I am not sure whether my plan is correct. Therefore, please let me ask two questions.

  1. Whether the following plan is correct or not.
  2. Do I need to use bitcoind? Is is not enough to only use bitcoin-library(bitcoinjs-lib)?

My plan is following. 1. Provide a user address and private_key made by bitcoinjs-lib. 2. When the user upload an item, the item gets a specific ID. 3. When the user transfer the item to another, the user put the ID of the item into OP_RETURN area(40byte area) 4. Track the ownership of the item by tracking the specific ID.

  • What prevents a user from putting the ID in multiple transactions? Even completely unrelated transactions? Sounds like you need not just the ID but some signing in there to link to a specific UTXO.
    – Jannes
    Oct 23, 2015 at 9:03
  • Thank you for reply. Does it mean the specific ID should be like the hash of UTXO?
    – Toshi
    Oct 24, 2015 at 0:23
  • I guess the person that initially issues the item can add an OP_RETURN with the ID of the item encrypted with the same private key as the transaction. Other nodes can then verify what the ID was and that it came from the same person. Noone can then fake such an issuance, although the issuer can still doublespend (issue twice). Any further transactions don't need an OP_RETURN i think, clients can simply follow the chain from the first to the last. Probably still a lot of problems with this method...
    – Jannes
    Oct 24, 2015 at 16:18

1 Answer 1


There are a lot of different projects that are looking to solve this problem. Almost all of them use something like colored coins to track an asset on the blockchain. Essentially, what your plan is missing are clear rules that prevent double spending.

Check out coinprism.com, colu.co and chromawallet.com for just a few different implementations of what you're trying to do.


Your Answer

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

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