[p2p-hackers] References for using hashes as unique identifiers?
Mark S. Miller
markm at caplet.com
Mon Mar 8 10:49:32 UTC 2004
At 12:02 AM 3/8/2004 Monday, Brad Neuberg wrote:
>> I believe the concept originated at Xanadu around
>> 1990 or so, but was never
>> implemented or published.
>
>That's an interesting reference to Xanadu. Can you
>talk more about how and why the Xanadu team came up
>with this concept in regards to their own vision of a
>hypertext web?
A link from document X to document Y must somehow designate document Y. It
had never occurred to us that the designator should depend on specifying
what machine Y is hosted on. That would obviously be insane. Documents must
survive longer than their hosting machine and their hosting organization.
Besides, popular documents would make for hotspots in the network -- an
obviously unscalable architecture.
The goals of the Xanadu project had long been to make a decentralized
secure medium, robust against attack, including censorship attempts by
governments, and able to scale to hold mankind's literature. We all felt
that large scale electronic publishing was coming, expected and hoped that
it would be hypertext, and realized that this transition would make
mankind's literature either much more vulnerable or much less vulnerable to
abuse, depending on the architecture. One of our slogans: "We want to build
a medium Thomas Jefferson would be proud of."
The architecture now known as Udanax Gold
http://udanax.com/gold/index.html
http://www.sunless-sea.net/forum
http://www.caplet.com/papers/open-media.html
has two concepts corresponding to what we mean by "document": The "work" and
the "edition". A link can link to either kind of thing.
The version of Udanax Gold that was actually built was not distributed, and
so did not need a cryptographic basis for its integrity (or other security)
properties. But it was designed to have a semantics that could be preserved
by a decentralized implementation, where the decentralized implementation
would necessarily depend on cryptographic controls to enforce the integrity
specified by the semantics, in order to prevent abuse.
An edition is an immutable snapshot of the contents of a document as of some
moment. We planned to eventually designate an edition by the cryptohash of
its contents. Nevermind that we made other decisions that would have made this
impossible -- we didn't notice the conflicts at the time. Though we didn't
yet know Zooko's phrase "self-authenticating designator", we had the
concept, and we thought we were on a course to achieve it.
A work is a mutable designator of a particular edition. It represents the
notion of a living document, as in "the current rev of the biz plan". To
read a work is to obtain access to its current edition. To revise a work is
to set its current edition to an edition you specify.
We planned to represent a work by a pair of a signing key and a signature
verification key. The work would be designated by the signature verification
key (or a fingerprint of this key). The right to revise a work would be
based on knowledge of the signing key. To revise a work is to sign the hash
of an edition (plus some meta info, perhaps identifying predecessor
editions, I don't remember) as being an edition of this work, and to make
the resulting signature available. Note that both editions and signed
revision records can be replicated freely and are location independent.
Within just these notions, one can't reliably read the *current* state of a
work. Rather, the best you can do is to get the most recent of those you
could find. We expected to have something like a netnews flooding algorithm,
so that this would normally be recent enough for many purposes.
In addition, we did have a location dependent notion of a work's current
true home -- its hosting machine. To reliably get the work's *current* edition
required a round trip to that machine, and the notion of current was still
subject to abuse by the proprietors of that machine. We didn't like it, but
the only way we knew to avoid this kind of per-work centralization was to
give up the notion of "current", which we were unwilling to do.
In any case, I'm proud to say that most of the notions stated above,
including (I think) these same cryptographic integrity controls, are now
part of OpenCM and used for decentralized high assurance configuration
management.
http://opencm.org/
This set of ideas actually works together much better than we had any right
to expect ;). But the price of "current" remains location dependence. This
constraint is even harder to escape than we'd feared. The only escape I know
of is quorum systems of some kind (such as
http://szabo.best.vwh.net/securetitle.html ), and, IMHO, these may still be
too complex to be practical.
--
Text by me above is hereby placed in the public domain
Cheers,
--MarkM
More information about the P2p-hackers
mailing list