1

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.

Schezuk
  • 131
  • 4
  • It's hard to deduce what you really mean? You mean some sort of mad science? – Aria Aug 21 '16 at 23:17
  • 1
    @Aria It is no mad science. See the links listed at https://en.wikipedia.org/wiki/Timestamp#See_also – Schezuk Aug 21 '16 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 Aug 22 '16 at 00: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 Aug 22 '16 at 00:24
  • I gather you are thinking along the lines of this: http://www.crypto.com/papers/policymaker.pdf In my experience, decentralized trust mechanisms (or otherwise) typically have a fairly narrow functional scope. Take the time to focus your question and pick a scenario, then word it more carefully. This could make for a very interesting post. – dotproi Aug 22 '16 at 00:32
  • 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 Aug 22 '16 at 00:46
  • The other problem is to limit user generation. Invitation is no good, since what grandchildren did can hardly blame the grandparent, though children can to the parent. – Schezuk Aug 22 '16 at 00:54
  • The way you have phrased the question, you appear to want to prove something happened **before** there are available witnesses (else how would you prove the event did not happen at the time the witness perceived the event or created the event themselves). I don't think the 'distributed' requirement is relevant before you can solve your core problem first. – schroeder Aug 22 '16 at 07:22
  • @schroeder Distribution is the feature of the parent project, and the environment where this problem occurs. With signature we are sure that event is done by user. – Schezuk Aug 22 '16 at 15:19
  • register a free email account. send to that mailbox an email with the details identifying the file ( file name and sha-256). from the inbox, read the Email and its headers : there are dates and message ID added by smtp servers. They prove at that specific time they handle your Email. I think their servers keep emails for a loong time, if you have to prove it. Make a automatic procedure over N accounts, also on different providers. – Massimo Aug 23 '16 at 21:45
  • https://security.stackexchange.com/questions/145563/ways-to-prove-that-a-file-was-not-created-in-advance/145690#145690 – SDsolar Dec 31 '16 at 03:45
  • cf. [Proof of Existence](https://poex.io/) – Geremia Apr 20 '18 at 20:33

1 Answers1

2

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.

Navin
  • 467
  • 5
  • 9
  • 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 Aug 24 '16 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 Aug 25 '16 at 08: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 Aug 25 '16 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 Aug 25 '16 at 10:55
  • One way to supress forging is to introduce some externality in the process of generating every message. But externality is still able to be forged. – Schezuk Aug 25 '16 at 11:05
  • 1
    https://security.stackexchange.com/questions/145563/ways-to-prove-that-a-file-was-not-created-in-advance/145690#145690 – SDsolar Dec 31 '16 at 03:45