Timestamping Photos

Here’s how I timestamp photos manually:

  • I print out a news article and place it in every photo so that the headline shows. Today it could be this headline from CNN: “Freddie Gray death: New narratives question police brutality claim”. This proves that the photos were shot after this article was published.

  • I organize all photos in a zip file, then broadcast the file’s hash with Counterwallet. This proves the photos were shot before the broadcast.

I wonder if there is a more convenient, automated way of doing this?

A camera app could broadcast the hashes automatically. The camera would send the hash of every photo to a centralized server. All hashes from all users of this app would be collected in a single file, and the hash of this file would be broadcast on the Bitcoin blockchain. This could be repeated frequently, say every ten minutes. Now this would prove that photos existed before the broadcast. Such an app wouldn’t be too difficult to make, would it?

The part of embedding current data in the photo (equivalent to the newspaper headline) would be harder, wouldn’t it? Of course, some current data could be stamped on each photo, but how to prove it is not just stamped onto some old photo? When I include the printed paper in my photos, on the other hand, the proof is stronger because it is difficult to photoshop a paper into a photo (or is it? I know little about this).

A workaround, although not perfect, is that all photos from the same app, include hashes of previous photos. Any better way of doing it? Has someone all ready made such an app? Does Factom plan to make one?

I’ve only looked briefly but wonder this might be similar: http://www.proofofexistence.com/about

From the little I’ve seen, it is possible to add data, obviously in exif but also beyond the boundary of the image definition… but then I’d expect any edit could remove or corrupt that data. The other issue is that you might need to hash all forms of the image - so a different size image gets a different hash.

My instinct sees this as a DRM like problem… it’s not enforceable but you can try on a simple level to put enough that allows others to give appropriate acknowledgements.

Perhaps one option is not to put the hash in the photo but just one URL pointer in the exif data of all photos, that then pointing then to a proved index of the hashs of all your photos… which in turn sees the blockstamps of groups of those as proof of existence at certain time/block.

How you automate it and then enforce it, I don’t know. While reverse image search tools exist, I’ve no sense of whether those are full proof or whether they ever find some photo B that was an edit of photo A.

@davidpbrown those are good points, but I think you need a proof that a photo existed at a point in time, not that all versions of it existed (which is something you may want for a DRM-ed versions of the same original).

I agree that extracting exif info could help automate the process, assuming you choose to store it (some cameras can disable that, and of course editors can stripe that info if instructed, but if you want to timestamp it with today’s date, you could insert today’s date and then still pipe the same photo through the exif-extracting process to keep that “out” side the same).

That thought came from wondering that to enable others’ confidence, there would need to be a valid hash on the photo or otherwise why should they trust it. The original hash is useful to the owner but a publisher might want a hash on the photo they use.

One idea I came up with for my artworks was to generate the random asset name and include it in each work before creating the hash for the broadcast. For a photo, you would overlay the asset name. For stenciling, you can do it if you have stencils for A and 0-9.

Since generating the hash can require some software installation, I setup http://ripemd-160.com to help create a secure 40-byte hash for this purpose. It works well enough as long as file sizes are not too big (>10mb).

1 Like

Yes, it is a good service but I prefer a broadcast from Counterwallet - it is cheaper, just as convenient and I expect Counterparty broadcasts to become the standard for embedding data.