W3C home > Mailing lists > Public > public-blockchain@w3.org > September 2016

Re: Open Timestamps

From: Mountie Lee <mountie@paygate.net>
Date: Fri, 23 Sep 2016 08:51:52 +0000
Message-ID: <CAE-+aYKLyLpM-YNSa5e5D3PY33WR_KmH+wy6JnxR3fuudLmOnA@mail.gmail.com>
To: Peter Todd <pete@petertodd.org>, Wayne Vaughan <wayne@tierion.com>
Cc: Melvin Carvalho <melvincarvalho@gmail.com>, Blockchain CG <public-blockchain@w3.org>
if you put the topic of yours to github issue (
https://github.com/w3c/blockchain/issues)
then peoples will be able to identify discussion status more easily and
easy to participate.



2016년 9월 17일 (토) 오후 11:20, Peter Todd <pete@petertodd.org>님이 작성:

> On Fri, Sep 16, 2016 at 04:01:18PM -0400, Wayne Vaughan wrote:
> > > Do you have some examples of this in action?
> > >
> >
> > I'll post some in the Chainpoint Community Group mailing list.
>
> Thanks, let me know when you do.
>
> Looking at the chainpoint-validate-js source code, I don't see how it's
> possible to validate anything other than a conventional Bitcoin OP_RETURN
> anchor, with a single merkle tree using one hash function. I also don't
> see any
> examples of Chainpoint proofs in the unit tests for anything more complex
> than
> a single, linear, merkle path.
>
> > > > A hash calendar <https://en.wikipedia.org/wiki/Hash_calendar> is a
> type
> > > of
> > > > merkle tree that calculates a merkle root once per second has hashed
> are
> > > > continually added to the tree. This captures the state of the tree
> in one
> > > > second intervals.  Systems such as Guardtime's KSI
> > > > <https://eprint.iacr.org/2013/834.pdf> use a hash calendar to
> generate a
> > > > partial proof. They then aggregate all the merkle roots from the hash
> > > > calendar, construct a new merkle tree, anchor the merkle root in one
> or
> > > > more sources, extract the proof path for each item in the tree, and
> > > append
> > > > the partial proofs with the new data to generate the final proofs.
> You
> > > can
> > > > build a system using a hash calendar that generates Chainpoint
> proofs.
> > > Not
> > > > everyone requires this capability so we didn't build it into the base
> > > > protocol.
> > >
> > > I think not having this functionality in the protocol is a serious
> > > omission.
> >
> >
> > I think you misunderstand. Nothing in Chainpoint precludes you from
> > implementing a hash calendar. The way that unanchored proofs are handled
> > requires no changes to the Chainpoint format.  Unlike OpenTimeStamps,
> > Chainpoint allows you to anchor into multiple sources. We currently
> support
> > Bitcoin, Ethereum, and are adding others.  If you retrieve an unanchored
>
> FWIW, I considered adding additional PoW blockchains to OpenTimestamps
> right
> away, but decided to leave that out because the actual need to do so is
> minimal. The Bitcoin blockchain has proven to be extremely reliable, with a
> total of just a few hours of "outages" that could affect the validity of a
> timestamp in the entire time it's been in existance. Meanwhile for
> Ethereum...
> which Ethereum are you talking about? The original chain or the bailout
> chain?
>
> Regardless, adding additional PoW blockchains is not particularly
> difficult,
> just time that I think is better spent elsewhere (Ethereum will inevitably
> fork
> again due to the difficulty bomb, something I'd prefer to avoid wasting
> time
> dealing with!).
>
> Also, I looked at your Node.js module, chainpoint-validate-js, and it
> appears
> to support only Bitcoin OP_RETURN anchors right now; the Ethereum support
> in
> the whitepaper isn't actually implemented. Also, as I mentioned in my blog
> post, are a less-than-ideal way of proving a timestamps validity due to the
> necessity of having an expensive index of OP_RETURN transactions.
>
> > proof, the value for the source can be "unanchored" or a URI of the
> > developers choice.  Chainpoint is flexible enough to handle unanchored
> > proofs without any changes to the current format.  If you have a
> suggestion
> > about improving the existing mechanism, please make a post in the
> > Chainpoint Community Group.
>
> So to be clear, ChainPoint 2.0 does not support calendars right now from
> the
> point of view of the verifier, and calendars are not part of the protocol
> specification or the reference verifier implementation.
>
> As to why this is important: remember that the purpose of a timestamp is
> not to
> just create a timestamp, but rather to be verifiable later. Much like DNS
> is
> much less useful without the root server infrastructure, timestamps are
> much
> less convenient and less useful without a calendar infrastructure.
>
> > For OpenTimestamps, from the point of view of the protocol supporting
> > > calendars
> > > is very simple. We represent them as a pending attestation, which is
> > > nothing
> > > more than a URL that the verifier can use to find further information.
> If
> > > succesful, the verifier then adds that new timestamp data to the
> > > timestamp's
> > > commitment operation graph, and continues verifying.
> > >
> > > The advantage though is big: without calendars creating timestamps is
> very
> > > inconvenient, as you always have to wait for the underlying Bitcoin (or
> > > similar) transaction proving the timestamp to confirm, which takes many
> > > minutes, or even hours. This means that using Chainpoint for
> applications
> > > such
> > > as timestamping PGP signatures or Git commits(1) becomes impractical
> > > except in
> > > special, high-value, scenarios.
> >
> >
> > I'm cautious about making bold statements about OpenTimeStamps because
> the
> > Github commit history shows that until four weeks ago, you had not
> updated
> > the code since 2013. The project looks incomplete and you're probably
> > making changes on a daily basis.
>
> I think that's an unfair criticism for a few reasons:
>
> 1) OpenTimestamps's first Bitcoin support Dec 2012, at which point is
> supported
> most of the current functionality, including calendars, and some
> functionality
> that's since been removed, such as PGP attestations. There were some
> conceptual
> differences to the protocol, such as the fact that at the time calendars
> weren't meant to be making a indefinite promise to keep your timestamp
> commitment, but regardless it did get some use by people in production,
> such as
> to timestamp server logfiles (I ran a public calendar using the previous
> protocol version and saw quite a bit of usage of it). The recent work I've
> done
> rewriting it is in response to lessons learned over a number of years,
> both in
> OpenTimestamps and other timestamping schemes.
>
> 2) The code has been updated since 2013: look at the stand-alone
> python-opentimestamps implementation which was written last year by client
> demand. Since then that code has used by two different clients, one of
> which in
> production (they also wrote a Go library implementing it).
>
> 3) ChainPoint is also making changes - as noted above, you're adding more
> blockchains, and the protocol doesn't itself have any calendar support.
>
> 4) The publicly available ChainPoint codebase is incomplete: unlike
> OpenTimestamps I don't see any calendar server, or even a way to create a
> timestamp and validate it on the command line. In comparison,
> OpenTimestamps is
> significantly _more_ complete, with an open source client, calendar
> server, and
> Python library available for the most recent version of the protocol.
> Regardless, this is a mailing list discussing protocol standardization; we
> should be evaluating protocols based on the merits of the protocols
> themselves.
>
>
> Incidentally, I noticed your whitepaper credits Proof of Existance (2014)
> with
> pioneering the use of Bitcoin to timestamp data; OpenTimestamps predates
> Proof
> of Existance, and had significantly improved functionality regardless. In
> turn,
> Chronobit predates OpenTimestamps, although I'd consider them separate, as
> it
> wasn't possible to use Chronobit without having access to hashing power (it
> made use of the p2pool share chain and required the user to have a miner).
> AFAIK OpenTimestamps was the first - and still the only - publicly
> available
> and complete implementation of Bitcoin timestamping that can be used to
> both
> create and verify a timestamp by someone without access to hashing power.
>
> > The many customers of Tierion find
> > Chainpoint perfectly suitable for high volume applications.  At the
> > upcoming Distributed Health conference, I'll be giving a talk about how
> > Philips used Tierion for protecting the integrity of data collected from
> > IoT devices.  Several other companies are using Chainpoint, even some
> > Tierion competitors.  For example, Blockai generates their proofs to be
> > based on Chainpoint.  Here's a link to a verification tool on their
> Github.
> > https://github.com/blockai/blockai-verify
>
> Note that Blockai is using Chainpoint 1.0, not the current 2.0 version of
> the
> protocol.
>
> --
> https://petertodd.org 'peter'[:-1]@petertodd.org
>
Received on Friday, 23 September 2016 08:52:33 UTC

This archive was generated by hypermail 2.4.0 : Friday, 17 January 2020 19:08:26 UTC