I am designing a Consumer Protection System for import products on Blockchain technology. My Client wants to use QR Code instead of Security Tax Stamp. How can we make QR Code uncopyable at the consumer level?

Scenario: I went to a shop to buy an imported Cadbury chocolate bar. The chocolate bar I am buying is not custom cleared and QR Code pasted on it is copied from an authentic custom cleared chocolate bar. As a consumer, I scan the QR Code on that product using an authorized application it will fetch the information stored against that QR Code.

Adding an unauthentic product on blockchain is impossible but at consumer level where only scanning is involved how can it be made secure in a manner that consumer is able to find out the product they are buying is authentic or not?


  • 3
    I'm not sure exactly what you're asking. It's physically impossible to prevent the copying of a QR code. The only way this could be done is with a physically unclonable function, but I cannot think of any way a QR code could have such properties. – forest Sep 5 '18 at 3:15
  • 3
    You're using Blockchain technology, but what you want to accomplish is only possible with Blockchain+AI+cyber+cloud technology. /s – hft Sep 5 '18 at 3:19
  • Not sure what you are asking for. One QR Code = One product ? , like after the first scan the product have to be remove from the stock ? – Baptiste Sep 5 '18 at 9:06
  • Tilt-picture, or holography to give two different qr codes at different viewing angles? Daily production patch dependent qr on the packaging, that is hashed by the qr-sticker? Blockchain seems like a waste with a loophole this big. – bukwyrm Sep 5 '18 at 15:16
  • @bukwyrm As they say, blockchain is a solution in search of a problem. – forest Sep 6 '18 at 3:15

A QR code is just text, encoded in a format that is easily readable to a computer. Can you make the preceding sentence uncopyable?

You cannot make text incopyable. Forget it. It is utterly impossible. What stops me from whipping up paint.exe, and copying the QR code pixel by pixel? Or place it on a scanner and print thousand copies?

QR codes relies on that the smart phone is able to make a copy of the content. When you scan it with your phone, the picture is a copy of the content. The picture is decoded, and a new copy of the information is made, this time as a text string.

So what you ask is not only impossible, it strikingly impossible. You must look elsewhere for how to solve your problem - for instance by invalidating the data in some online database.

| improve this answer | |

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