Subject: [saag] URI for a blockchain token

From: Phillip Hallam-Baker <[email-masked]>
Date: Tue, 20 Oct 2015 15:46:09 -0400

All,

So I have this need for a compact representation of a generalized hash
chain token value as a string, it seems natural to represent it as a
URI.

Let us assume that there is some service X that regularly emits a
value V(t) and accompanying proof P(t) which is then recorded by
multiple authorities.

V(t) is a 256+ bit output value that is a 'cryptographically strong'
function of V(t-1) (aka we stuff V(t-1) and some other data through a
hash function to produce it.

P(t) is evidence which allows a party that has at least one value
V(tt), tt<t to validate the construction of V(t).

Obviously the choice of P(t) depends on the circumstances. In a
closely coupled situation, a hash chain is probably sufficient, in
more loosely coupled situations where we can't assume knowledge of a
particular V(t-1), we might want to use structures that permit more
compact representations like Merkle trees.

So the question is how to represent a V(t) so that it is easy for a
verifier to check it. I am thinking along the lines of

XXX:<Domain>:<DateTime>:<Data>

Comments?

The immediate application I have is for a system where I want to be
able to use this for bounding replay attack by providing a
cryptographically hard timestamp on each request without the need to
muck about requesting nonces.