To prove that something happened after some time in a distributed way, just refer to something publicly know just before. Is that right? (Though I wonder how to make the time granularity smaller.)

What about to prove that something happened before some time in a distributed way ? How to make it more accurate, for example, an hour, a minute, a second, a milli-second?

Edit: To prove that you survives after a particular time, you just need to take a photo with a sheet of newspaper. It proves that you have lived some day after that newspaper was printed, though it cannot be certain which day.

It is quite distributed since you do not have to go for a notary office, etc., which is much more centralized, and is used widely therefore by those who have to refute rumors without having to go public.

It obsessed me how to do it conversely, that is, to prove that something exists or happens before a particular time. Go for a notary office is a centralized method to timestamp, which is able to prove something happens between two moments.

But to do it in a distributed way, it is best to do it yourself or with strangers anonymously. For example, buying a random newspaper is something that you can do with strangers anonymously.

Okay, let me explain the problem I am trying to solve, and hope you all may figure out if I went to the wrong direction. It is, though, something that is not quite relevant to the question itself, which is just a small, single link inside the chain, and that I didn't intend to talk about before. Here it goes.

I want to allow people to post messages publicly to a certain domain (a distributed storage system, details irrelevant) without further verification and any centralized service provider. (limited, once for all verification in Beta stage of the project is okay). But spamming will occur.

IP examination is not acceptable, since IP should not be collected, and not possible distributedly. I haven't found distributed CAPTCHA solution.

Proof of work won't work, since attackers can gather more CPU, GPU, and RAM, and create much more users and messages than normal people do, as do in bitcoin. Mutual random authentication between users will not work either.

I may limit user generation by introducing to the protocol invitation and collective punishment to the invitor and invitees, and give users quota per year.

So I have to prove that message is posted this very year, and people right now do not use quota from last year, one hundred years ago, or next year.

  • It's hard to deduce what you really mean? You mean some sort of mad science?
    – Aria
    Commented Aug 21, 2016 at 23:17
  • 1
    @Aria It is no mad science. See the links listed at en.wikipedia.org/wiki/Timestamp#See_also
    – Schezuk
    Commented Aug 21, 2016 at 23:53
  • Perhaps you mean "Is there a service such that, provided a piece of your work, you could have a set minimum number of random - verified human - individuals to digitally witness and anonymously timestamp, effectively keeping an exact copy for later reference/proof?"
    – dotproi
    Commented Aug 22, 2016 at 0:10
  • The best case is to self service and retrieve evidences from outside the system, as "The Times 03/Jan/2009 Chancellor on brink of second bailout for banks" did in Bitcoin. The second best case would be to prove untrusted anonymous witnesses in the system to be trustworthy with algorithms, I think. @dotproi
    – Schezuk
    Commented Aug 22, 2016 at 0:24
  • 1
    @dotproi Well, I need to restrict that users in a distributed system post messages within a small quota (the only method I have yet figured out to control spamming without censoring). But I have to stop them forging messages to be created in the past to obtain yearly quota, or stop them storing quota for the next year.
    – Schezuk
    Commented Aug 22, 2016 at 0:46

1 Answer 1


This has been discussed in more detail here:

In short, get a digitally-signed timestamp from several Time Stamping Authorities (RFC 3161) or post a hash of the data on a cryptocurrency's blockchain.

If you're talking about a physical event that needs to be timestamped, you have to turn it into data first. For example, you can take a video of the event and timestamp that video using the above methods as soon as possible.

  • I am trying to figure out how to timestamp with a FEW UN-trusted parties (therefore not TSA or Blockchain). Postdating is able to be avoided since no one can send a message to others than its accomplice until that very date the message claims arrives. But I have no idea how to avoid pre-dating without the involvement of a trusted authority or without witnessing by the whole network yet.
    – Schezuk
    Commented Aug 24, 2016 at 15:10
  • @Schezuk Well, you have to have some witness. If you use the blockchain, you don't have to trust any of the involved parties.
    – Navin
    Commented Aug 25, 2016 at 8:35
  • Without witness, you can still prove something happens after any particular time by referring in signature any consensus which occurs regularly and is un-manipulable, that is, of which outcome is unpredictable and cannot be regretted, no matter the consensus at first widely known or not. People can refer, cannot predict. The problem is fore-dating.
    – Schezuk
    Commented Aug 25, 2016 at 10:55
  • Blockchain is a FSM which overlays on a global network of connectivity, a luxury in many cases; and requires that its current status be available to every party involved to generate the next status, which limits its application; let alone being vulnerable of 51% attack, no matter private imitators or the public one, whose computing power is already controlled by a small group of miners.
    – Schezuk
    Commented Aug 25, 2016 at 10:55
  • 1
    – SDsolar
    Commented Dec 31, 2016 at 3:45

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