3 ms·
I've done some thinking about how to prove that a video was filmed at a particular time. I've written parts of the design but haven't written any code yet. Th
by mleonhard 6y ago
I've done some thinking about how to prove that a video was filmed at a particular time. I've written parts of the design but haven't written any code yet. The idea is to have a group of public Internet servers that create a hash chain mesh. Every second, each server produces a new block, containing the SHA3-512 hash (digest) of the previous block, hashes of many other servers' previous block, and hashes of user documents.
To show that a video was created after a particular time, a person can include a hash from any public server in the video. The easiest way is to have somebody hold a phone in view of the camera, running an app that shows a QR code of a recent hash, updating in realtime. They could also read the hash digits. And the phone app could play the hash as audio tones.
Afterward, anyone who has the video can use software to extract the hash, query public servers for the hash's position in the immutable historical hash mesh, and get the associated timestamp. The existence of the hash in the video proves that the video was created (or edited) after the timestamp.
To show that a video was created before a particular time, use software to send the file's hash to a public server for inclusion in the mesh. A good recording app can publish repeated hashes of the file as it is recorded and gets longer. When the user stops recording, the app adds an "end of recording" mark to the file and publishes a final hash.
Afterward, anyone with good enough software can determine the time interval between the hash embedded in the video and the published hash. This is the interval when the video was produced. A malicious actor would have that much time to edit the video. With a good enough network, this could be 2 seconds, insufficient time for a human to make any editing decisions.
Hashes apply only to the original file. Anyone distributing a file with hashes must provide the original file that was used to create the hashes. Low-res resampled files can't be verified. Shortened or spliced files can't be verified. Only the alleged original file from the camera can be verified.
To fake a video, malicious software would need to insert a hash QR code into the video, process the video so it looks like it was recorded from a camera, and publish the hashes, all with a few seconds of delay. Fakers could also use a physical camera to re-record a video on a monitor. Either technique should be detectable. Fakery software will get better and may produce undetectable fakes. I hope that people will invent new physical anti-fake techniques to thwart fakery software.
I'm thinking of calling the system "Livestamp". It would work for any type of file or recording, not just videos.
- drexlspivey 6y agoSuch a system exists, it’s called OpenTimestamps
- mleonhard 6y agoThanks for letting me know. It seems to rely on bitcoin's block timestamps which are accurate within tens of minutes or hours. https://petertodd.org/2016/opentimestamps-announcement#how-opentimestamps-works https://petertodd.org/2016/opentimestamps-announcement#how-o...