5 ms·
Like everything else Peter Todd does, this is very impressive and extremely useful. And I think it's almost what we need at Keybase for timestamping our own da
by malgorithms 9y ago
Like everything else Peter Todd does, this is very impressive and extremely useful.
And I think it's almost what we need at Keybase for timestamping our own database. I figured I'd record here what's important to us in a timestamping service, because I have a feeling (if we're reading it correctly), OpenTimestamps doesn't yet do quite what we'd want.
What we would love:
- to announce that our database has hash H at time T.
- to make all our announcements discoverable to prove we aren't making parallel database announcements around time T.
The latter feature doesn't matter if your only goal is proving data existed on a certain date. Say you want to prove you wrote a story, great, just post its hash. But feature 2 is important if you're also trying to convince people that you aren't telling other people other stories at the same time.
Random examples of someone wanting the second feature:
- a newspaper or website might like to prove that yesterday's headlines or stories were X,Y and Z, and that they were the only stories yesterday. How can we know they didn't publish 1,000,000 different headlines or variations of the stories, just to cover all the possible big news of interest, and then point at the 3 interesting ones later? Or later point at the ones that paint their editorial perspective a certain way?
- a money manager / fund might like to prove they can make good stock picks, so they announce their 10 predictions for the year, and later, when they publish their predictions, you can verify they were their only 10 predictions.
- on Keybase we're trying to prove that we're not maintaining 2 different databases for all our users. If you ask who keybase/chris is, Keybase is giving the same answer to everyone in the world, and not accidentally leaving, say, a revocation off the end of my announcements.
- a government might like to prove that its laws were exactly X at time T, and there weren't some extra ones slipped in as optional extra laws later.
- proof you truly love only one.
This all seems to require an authentication method for posting things, and a way for the timestamp server's data structure to be traversable to a poster's announcements, so you know you're not missing anything.
Right now at Keybase we do this by burning money from a specific address, an address known to be our announcement address. It's clunky. But it achieves that goal: someone can know they're seeing all our announcements. This is expensive and annoying to maintain, and it would be nice to see a general package that manages this kind of thing.
So consider this a vote for v2 supporting parties putting signed statements into open timestamp server! Or a request for clarification, if it already works this way.
(Thanks Peter and others who worked on this! very cool stuff.)
edit: formatting
- malgorithms 9y agoI almost forgot another interesting use of this second feature: package managers and binary distribution. Knowing that version 1.2.3 of some app was published a month ago is nice. Also nice is knowing that for the last month it's the only version 1.2.3, and everyone in the world has been getting the same one.
- powera 9y agoBitcoin. This, and not the money nonsense, is what Bitcoin does, if you do it right.
- petertodd 9y agotl;dr: What you want isn't timestamping, and OpenTimestamps very explicitly doesn't address your use-case. Fortunately I have another project to solve your use-case too. I've written up some of the theory behind this here: https://petertodd.org/2016/commitments-and-single-use-seals https://petertodd.org/2016/commitments-and-single-use-seals