Let's assume that I have deduced with a high probability what a certain famous person or organization will choose to do at a near-future date. How can I publish any proof of me having deduced this? The fact that they already have a plan now to make that choice at that future date might prove an unethical behavior or a conspiracy on their part. I would like to ensure that I can prove that it was me who made the prediction, and that the prediction was indeed made before the event.

Of course, if I publish after the event that "I knew it!", nobody will believe me.

If, however, I publish it before the event, it might lead to the following problems:

  • self-fulfilling prophecy: people might accuse me that the event happened because of the information I published (I "gave them ideas").

  • self-defeating prophecy: they might become aware of their "plan" being discovered and change it, with me possibly ending up as a conspiracy theorist making wrong accusations.

Of course, I would like to choose the simplest method which works, using technologies the most people are aware of. This is very important, because if the technology used is very complicated, I cannot convince my audience if they don't understand my proof at all.

What I thought of so far, is the following plan:

I write the information as a simple, text-only file. I publish the MD5 hash of this file on twitter, social media, etc., with a short description of "this will happen", maybe with a short description of what a hash is and why I'll publish the information only later. After the event, I publish the "I knew it!" article, with a link to the previously published md5 hash. By using several social media sites to publish the hash, people can reasonably believe the date and time of the publishing. If I only published the hash on a personal website, they might assume that I tampered with the dates myself.

Is there a better way of doing this?

I know that md5 is partially compromised, but I guess it's still a good choice because:

  • it has a widespread use, if people have even heard about hashes at all, this will probably be the only one they know of. It also has a lot of implementations, so the average user can more easily check it.
  • although it is not completely secure anymore, because someone might forge a different file with the same md5 hash, it should not be the case with textual information. One might pad an executable with unused gibberish until it has the intended md5 hash, but I guess it's impossible to write a human-readable and on-topic text file without any gibberish in it, to make it have a specified md5 hash. Is this assumption correct, and is it likely to remain correct for the foreseeable future?

My approach has two problem areas:

  1. Is it secure enough from an information security point of view?
  2. Is it understandable enough that as many people as possible will believe my proof?

Please, if you have alternative solutions, keep in mind the above two different sides of the problem.

  • IMO it would be enough if some experts with good reputation are able to say that your proof is authentic.To mitigate the authenticity issue I would rather spread a digital signature of the text. (In other words: your public key and the sha256 checksum encrypted with your private key)
    – Noir
    Commented Oct 10, 2015 at 10:02
  • 3
    Why use a known broken algorithm like MD5 when better alternatives like the SHA family are just as accessible? I simply don't understand why there are still people so attached to that crap algorithm.
    – Philipp
    Commented Oct 10, 2015 at 11:25
  • 1
    @Philipp : if something is unsuitable for one task, doesn't necessarily mean it's unsuitable for a completely different task. MD5 is still perfect for checking against non-malicious corruption of a file due to errors in transmission, for example. And I can't imagine how someone can write an on-topic text file with no gibberish in it, to have a pre-defined MD5 hash.
    – vsz
    Commented Oct 10, 2015 at 11:56
  • lets not forget low tech methods a registered letter, sealed and unopened, sent to a third party can be used after the truth of the prediction, can be said to be tamper proof in comparison to online data
    – user88939
    Commented Oct 11, 2015 at 17:22
  • While it is true what you say about MD5, I have to agree with Philipp that too many folks are in love with MD5. If we had the same phenomenon in symmetric crypto, you's see folks explaining why DES is still too hard for most people to break. SHA256 is a good place to be right now, and soon SHA3. Keep in mind publicly known breaks on MD5 and all breaks on MD5 are not necessarily the same sets. I am not a tinfoil hat guy, but it is silly to cling to ancient hash technology when better is readily available.
    – WDS
    Commented Oct 11, 2015 at 18:39

3 Answers 3


Encrypt your "prophecy" with PGP using a new keypair. Publish your encrypted prophecy on the internet for everyone to download. Make sure people share it, so they won't accuse you of creating a hundred files with every possible scenario and then making all but one of them disappear before you go public (like this guy). After your prophecy became true, publish the key to decrypt it.

Someone who did this for other reasons is Wikileaks and their "Insurance Files". This is a bunch of large, encrypted files. There is no statement what they actually contain. Wikileaks threatens the US government that should something happen to them, the decryption key will be released. They might be bluffing and it's just garbage. It might be just a PR gag. But who knows?

Possible weakness of this method: People might accuse you that you secretly gave your unencrypted prophecy to the decision makers and they did it just because they knew about it. Unfortunately there is nothing you can do to disprove this, because one can not prove that one does not possess a certain information (a dilemma faced by any person in world history who ever got tortured for information they didn't actually knew).


The potential issue with purely using social media is that it still relies on the integrity of third-party services, although I appreciate that publishing to multiple services greatly increases assurance.

However, I believe that by leveraging cryptographic methods, it should be possible to entirely decentralise the process. Furthermore, if the message can be verified cryptographically, there should be no reason to publish any plaintext version of it until after the actual event (eliminating the self-fulfilling and self-defeating issues).

Sign the Prediction

Sign your prediction with a private PGP key which can later be verified by others.

So that this can be verified by a wide range of people (outside the web of trust) you might want to use a verifiable service like keybase.io to link the message to various online identities. Although Keybase.io is a service, all of the underlying cryptography can be verified by anyone, so it is essentially decentralised. That being said, it does rely on proofs being submitted via these 3rd party services (Twitter etc), so in that sense it has similar defects to your original proposal in terms of identity.

The alternative is to ensure that you have a solid web of trust established, ideally reaching to those who you want to convince.

Generate a Trusted Timestamp

Trusted timestamping will allow someone to verify that your signed prediction existed at a certain point in time. The best decentralised method that I know of utilises the Bitcoin blockchain. Bitcoin and other crypto currencies rely on having a tamper proof record of transactions. By embedding a hash of your signed prediction in the blockchain (via a small bitcoin transaction), there is a permanent cryptographically sound record that the message existed at that point in time.

You can technically do this yourself (any suggestions for good tutorials welcome), or use a 3rd party service. One such service is Origin Stamp.


You should end up with a message which you can prove that you were personally in possession of at a particular moment in time. This should also prove that you were in possession of it before anyone else was, which should be a good indication that you authored it.

On the downside, the process is more complex and may be more difficult for people to verify (less accessible). It depends whether you think the additional assurance would therefore be worth it.


Note: this is an extension of Philipp's answer.

In ye olde days, scientists wanted to prove that they were the first to discover a celestial object, a physical law, or invent a new mathematical method. Publishing full-size papers took time, and was prone to someone gleaning the discovery/invention and plagiarizing it.

What they did was put together a short phrase describing their contribution to science, make an anagram out of it, and send the resulting gibberish to many scientists (implicitly trusting the postal service).

This is in no way protected from modern computers. Like every other method (including asymmetrically/symmetrically encrypted messages with signatures/HMACs, trusted timestamping etc.), anagrams aren't designed to counter the threat of you secretly communicating the prophecy to the decision maker. However, a mass surveillance agency may be able to rule out most covert channels if they have been monitoring you for a long time. Alas, they aren't really in a position to reveal their intelligence collection methods to the general public.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .