Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add paper "Secure names for bit-strings" to Whitepaper section #637

Open
yanmaani opened this issue May 6, 2021 · 0 comments
Open

Add paper "Secure names for bit-strings" to Whitepaper section #637

yanmaani opened this issue May 6, 2021 · 0 comments

Comments

@yanmaani
Copy link

yanmaani commented May 6, 2021

Apparently, there's a paper predating Bitcoin by 17 years that pretty much outlines Namecoin to a T. Even more interesting, bitcoin.pdf cites it.

[5] S. Haber, W.S. Stornetta, "Secure names for bit-strings," In Proceedings of the 4th ACM Conference on Computer and Communications Security, pages 28-35, April 1997.

This paper seems to describe Namecoin, but without the PoW. Ironically enough, contemporary Namecoin doesn't directly use PoW either.

Abstract (emphasis added):

The increasing use of digital documents, and the need to refer to them conveniently and unambiguously, raise an important question: can one “name” a digital document in a way that conveniently enables users to find it, and at the same time enables a user in possession of a document to be sure that it is indeed the one that is referred to by the name? One crucial piece of a complete solution to this problem would be a method that provides a cryptographically verifiable label for any bit-string (for example, the content, in a particular format, of the document). This problem has become even more acute with the emergence of the World- Wide Web, where a document (whose only existence may be on-line) is now typically named by giving its URL, which is merely a pointer to its virtual location at a particular moment in time.

Using a one-way hash function to call files by their hash values is cryptographically verifiable, but the resulting names are unwieldy, because of their length and randomness, and are not permanent, since as time goes on the hash function may become vulnerable to attack. We introduce procedures to create names that are short and meaningful, while at the same time they can persist indefinitely, independent of the longevity of any given hash function. This is done by naming a bit-string according to its position in a growing, directed acyclic graph of one-way hash values. We prove the security of our naming procedures under a reasonable complexity-theoretic cryptographic assumption, and then describe practical uses for these names. An implementation of our naming scheme has been in use since January 1995.

Other excerpts:

This paper presents a method for naming bit-strings that retains the verifiable security of hash-based names, while avoiding the constraints listed above, as well as avoiding the use of secret, cryptographic keys. The method is a variation on the digital time-stamping schemes of [HS 91, BHS 93]. In summary, the essence of the new scheme is to keep a repository of hash values that depend on many bit-string inputs, and to name each bit-string by a concise description of a location in the repository to which it can be securely “linked” by a one-way hashing computation.

Because we use it directly in our naming scheme, we summarize here one digital time-stamping scheme. A central “coordinating server” receives certification requests—essentially, hash values of files—from users. At regular intervals, the server builds a binary tree out of all the requests received during the interval, following Merkle’s tree authentication technique[...]. The root of this tree is hashed together with the previous “interval hash” to produce the current interval hash, which is placed in a widely available repository.

This would be the third time or so someone independently re-invents Namecoin, which leads me to think it's an obvious idea.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant