Ask HN: What are some good methods to prove current time?
I know I can film a current newspaper to prove one side, how do I prove the other side? In other words how can I prove the current time of message? I think this should be possible but every idea I come up with, it seems to be possible to fake in the future tense.
Is live streaming the only true method? Or am I missing something?
67 comments
[ 2.7 ms ] story [ 121 ms ] threadIn many countries you can have a statement you wrote signed, dated and stamped by the state authorities that verifies not the truth of the content, but that _you_ wrote it (and the specific time). You need to fill a form, take it to a state office, and present your ID to them for them to stamp and approve it.
In the US I find that this is called a "statutory declaration":
A statutory declaration is a document that formalizes matters to be made known publicly. It is a solemn statement made by plaintiff or witnesses instead of the oath, but equally binding.
Statutory declaration is a legal document based on statute law as to their format and content requirements. Statutory declarations are of the same force and effect as if sworn under oath or affirmation.
However, third parties watching the stream have no proof that this wasn't a coordinated trick prepared in advance.
The only solution I can see would be to use an impartial third-party with legal weight to attest the current time to be as declared on video and on paper.
Another idea would be to make and film a transaction on a public system (Bitcoin blockchain?) with a proof of the transaction and its timestamp?
This cryptographically proves that the document was created/published within those two time bounds.
This of course doesn't help in all cases, i.e. you could edit an old document to make it look newer, but I'm not aware of any way to properly solve that particular problem without a trusted third-party.
[1] https://www.jamieweb.net/blog/proof-of-timestamp/
On the other hand if you're trying to show that you did something (not just authored a message) at a given time, it's a bit harder, because you can always notarize the video long after it has been recorded. The best way to deal with this one (in the absence of trusted parties that might attend in-person) might be to do it in a public place e.g. in the library while a specific event is happening, on the street while some specific work is being done, in front of a newspaper stand in a shop etc. However I can see any of those faked using video editing.
CCTV footage, news footage, snapchat stories, instagram... all independently verifiable and hard to fake all of them.
Several public certification authorities offer these services, described in RFC 3161, at no charge, because they’re used by code signing schemes, to prove that a digital signature on an object file was made during the validity period of the signer’s identity certificate. Here’s Microsoft’s explanation:
https://docs.microsoft.com/en-us/windows/win32/seccrypto/tim...
You don’t have to use an identity certificate, however; OpenSSL, for example, can work work with timestamps directly:
https://www.openssl.org/docs/manmaster/man1/tsget.html
https://www.openssl.org/docs/manmaster/man1/openssl-ts.html
Some examples of time-stamping servers:
https://knowledge.digicert.com/generalinformation/INFO4231.h...
https://www.entrust.com/knowledgebase/ssl/time-stamp-url
https://sectigo.com/resource-library/time-stamping-server
Whether such a timestamp would be acceptable proof, on its own or accompanied by an explanation from an independent expert, would depend on the audience and the situation, of course.
It builds a Merkle tree of hashed documents, timestamps it, and puts it on the blockchain.
The way it works is pretty simple: your message is hashed with a series of cryptographically secure hash/append/prepend operations, leading to a Bitcoin block. Since they are one way hashes, your message must have existed prior to that Bitcoin block.
The hard part is actually proving a message existed after some point in time. To do that, you need a random beacon: a large number (also known as a nonce) that we know was created at some point in time, and prior to that point in time, was impossible to predict. Newspaper headlines are a weak form of random beacon, as it's hard to predict the news in advance. Bitcoin block hashes are even better, as the proof-of-work ensures that even trying to force a single bit of the block hash is extremely expensive. I also run a project to inject other random beacons into the Bitcoin blockchain, such as the NIST Random Beacon: https://github.com/opentimestamps/nist-inject
But in the age of deep fakes, what does any of this actually prove? See, while a timestamp proof mathematically depends on your message, with a random beacon it's the opposite: your message needs to depend on the random beacon. For human meaningful messages that's not easy to achieve. A photo can be photoshopped, a video deepfaked, etc.
The best you can do in general is try to make the random beacon time, and the timestamp, be as close together as possible to make it as difficult as possible to do a photoshop, deepfake, etc. But deepfakes are good enough these days that IMO that's dubious security.
Probably the best approach here is to actually think about what exactly you are trying to achieve - are you kidnapping someone? proving you've recovered from the plague? launching a cryptocurrency? There isn't a one-size-fits-all solution to this problem.
But I've been saying that it could be used for races or world records or predictions.
Neat to see someone actually wants it.
Can't you combine this with a basic public-key crypto scheme if you're worried about fakes? You could extend the same scheme to multiple people if needed; obviously you can't prove a certain picture definitely wasn't faked, but in most cases a semantics like "X, Y, Z agree this is real" is sufficient.
If you're not concerned about the actual author of a message faking its timestamp, you can just do public-key encryption, and write the date in the message.
It's interesting that we think about this exactly opposite!
It has been possible since a long time (relative to the existence of the internet) to prove something existed after some point in time by cryptographically tying a news headline to your message. That's what Satoshi used if I'm not mistaken[1], or at least I remember this being used before blockchain.
If you want to do it the other way around, you needed a trusted third party up until Bitcoin came around and there was a method that did not rely on a single third party.
One issue I see with blockchains is that they require a running and ongoing service to prevent backdating. A witness also works, but is just moving the problem (it can be a solution, but it's not a general solution that works in every situation). To me it still seems that the easy way around is the one that is solvable with an ordinary newspaper.
Edit: I see in your GitHub bio (sorry for the stalking, I was curious about your age since you seem to consider blockchain to be the more generally available than newspapers, whereas to (perhaps older) me, newspapers are the generally available method and blockchain novel) that you describe yourself as a "Applied Cryptography Consultant (what the cool kids call 'blockchain tech')". I suppose that explains why we see this as opposite.
[1] Also looked up the newspaper that Satoshi used. Wikipedia says: `Embedded in the coinbase transaction of [the genesis] block was the text: "The Times 03/Jan/2009 Chancellor on brink of second bailout for banks"` https://en.wikipedia.org/wiki/Satoshi_Nakamoto
The thing is, the famous "The Times 03/Jan/2009 Chancellor on brink of second bailout for banks" quote that's in the genesis block only proves that the genesis block hash was created after Jan 3rd, 2009.
The quote does not prove that the rest of the genesis block was created after that date. That distinction is why random beacons are tricky to use. Sometimes that distinction doesn't matter, sometimes it does. It depends on what exactly you are trying to accomplish.
With the Bitcoin genesis block this isn't a problem, as the purpose of the genesis block quote is to show that blocks after the genesis block weren't generated in advance. But in other use-cases - eg the "proof of life via newspaper" example - deep fakes make the security of a random beacon much more dubious.
> I was curious about your age since you seem to consider blockchain to be the more generally available than newspapers, whereas to (perhaps older) me, newspapers are the generally available method and blockchain novel
I'm wasn't trying to make that claim one way or another. Regardless of what exact type of random beacon you use, the problem I describe above still exists. Now, if you actually do have one of the rare use-cases where random beacons work, these days using Bitcoin as your random beacon is certainly better suited to automation. But whether or not that's relevant depends on what exactly you're trying to achieve.
https://github.com/Merovius/notary
An article showing one of the classified ads: https://www.vice.com/en/article/j5nzx4/what-was-the-first-bl...
https://threadreaderapp.com/thread/1315314371560579073.html
The flip side of this is so many people make so many predictions that getting any one the correct is effectively meaningless most of the time. Essentially, you need a long string of public predictions on a single channel for it to be meaningful anyway.
https://derrenbrown.co.uk/shows/the-system/
Here are two low-tech solutions almost anyone can do:
1. Record yourself standing under a well-known landmark, which has a digital or analog display of time and date. Movie theaters have displays showing time and date. Malls have them too.
2. Record yourself doing a Google search for "time now" and record the search result showing the time.
What I was being pedantic about on the other one I guess was that if we include some video editing in our definition of "easy", a newspaper which you can bend and wave and make slightly annoying to edit over seems slightly more believable than a fixed time and date which even if you walk around near should be a bit easier to edit over afterwards considering it's going to be some "regular" shapes.
Video editing: So many ways of doing this. The basic idea is to show a display of "time and date" somewhere, which is difficult for you to arrange.
You can record yourself standing in front of a couple of newspaper stands, showing today's newspapers.
You can record yourself shouting at train passengers of multiple trains, "hey what's today's date and time?" and recording the response.
There are many, many solutions accessible to the common man to prove this, with a generally acceptable level of authenticity.
Specifically, you may put the hash of your message into a bitcoin transaction, and submit this transaction. If you later want to prove its age, just point to the bitcoin block containing your transaction. The guy verifying it is sure that you have got this message before the block is mined, because otherwise you would not have the hash of the message at that time and successfully embed it into a block.
Assuming you don't want to involve any third party, things get difficult. To be honest I think there is always a way to make a message look older.
The goal is to prove that you did something in the past -- for example, that you proved a theorem, or that you predicted that COVID would become an issue way back in 2018.
Interestingly, patio11 solved this for COVID: He published a hash of his article, calling out COVID in Japan, to Twitter, which has no edit button. Then a month or so later, he published the article itself, proving that he did in fact write that article a month prior.
It's an old solution, not his. But that's the general idea here.
What are the sides referred to in "the other side" for instance.
If I show you a video today, where in the video I am holding the newspaper from 1 year ago, then (excluding any video manipulation) you can be reasonably sure that I did not record the video prior to 1 year ago because prior to that the newspaper for that day did not yet exist. So I have given reasonable proof for one direction in time; that it can’t have been further back in time than that.
But the other direction in time, and what I think they are referring to as “the other side”, is forward.
With the same video, you decide to trust that it wasn’t filmed prior, but it could have been filmed at any point in time since.
So what OP is asking for is for a way to prove that a message (text, video, or whatever else) was composed no later than some point t2 in time.
And for this the suggestions in this thread are good.
And if you combine techniques then you can to some extent prove that a message was composed between two specific points in time.
For example, by having the message reference a fact that was not known prior to point t1 in time and then having the message itself or a hash of the message notarized at point t2 in time in a medium that can be reasonably trusted.
But still it is challenging, with things like the possibility that you created and notarized separate messages for all possible outcomes for example and chose to divulge only the notarization of the outcome that actually happened after the outcome was known.
Interesting that so many people have posted ideas regarding block chains and hashing, which is to be expected from a programmer's forum I suppose.
My eventual solution all be it not perfect is to record my message on a clear night with the ISS passing over. I believe this could be faked but would be quite difficult to align my geo position, the moon phase and relative position of planets, stars and space station all inside a moving video.
Thank you for your response.
https://en.wikipedia.org/wiki/Leibniz–Newton_calculus_contro...:
“In the XVII century, as at the present time, the question of scientific priority was of great importance to scientists. However, during this period, scientific journals had just begun to appear, and the generally accepted mechanism for fixing priority by publishing information about the discovery had not yet been formed. Among the methods used by scientists were anagrams, sealed envelopes placed in a safe place, correspondence with other scientists, or a private message”
The bitcoin BlockChain on the other hand is much harder to modify.
ps. I guess twitter can be trusted for some use cases, but for others (e.g. legal) I wouldn't trust a Twitter account.
When renting a car from a sketchy place, I take photos and send them either to myself or to the owner. In cases of liability, a public medium would be preferable so you can just share a link to let anyone validate it.
Honestly, just emit the message in the Bitcoin blockchain and it will be there for perpetuity with a timestamp that is fully verifiable.
Buy or request a SSL certificate for that CN. it’ll be from a notarized source, with a date on it, proving you knew that info at least as early as that, and recorded in the certificate transparency streams.
Also encode today’s lottery numbers to prove you knew the info after that date.
That could solve the "No older than this" part, by imprinting a sufficiently long (unique) sequence from a particular time on your asset. Although I suppose it would be possible for whoever keeps the recorded "event-log" to just alter it.
For the "No younger than this" part, it seems you need to do the reverse, imprint the universe with your signature, which can then be verified by anyone who looks.
I guess blockchain can work as "universe" to some extent, but a more natural/absolute solution would be neat.
Are there other ways of conceptualizing this problem?