From hal at finney.org Thu Mar 1 14:24:24 2001 From: hal at finney.org (hal at finney.org) Date: Thu, 1 Mar 2001 11:24:24 -0800 Subject: the three-services model Message-ID: <200103011924.LAA20764@finney.org> Wei Dai's original article on the Three Services Model has appeared on the openp2p.com news ticker (look at the lower right part of that page, or the news page at http://www.openp2p.com/p2p/news.csp). The link ponints directly into the Bluesky archives. The OpenP2P site does not provide a discussion forum on its news page, but this could lead to wider distribution of information about this list. Hal From mccoy at io.com Mon Mar 5 20:41:24 2001 From: mccoy at io.com (Jim McCoy) Date: Mon, 05 Mar 2001 17:41:24 -0800 Subject: market-based data location (was Scalability) In-Reply-To: References: Message-ID: <4.3.2.7.2.20010302142754.00d11290@pop.io.com> At 03:02 AM 2/28/01 +0100, Oskar Sandberg wrote: >[...] >I approached the Mojonation people regarding my concern that the whole >content tracking system was not really decentralized at all at the Peer to >Peer conference. Actually our opinion is that our content tracking system is _too_ decentralized. It would have served us better to start off with a few centralized content trackers (a la Napster) that were specialists in a particular content type rather than the Gnutella-like indexing structure which we currently employ. A few handicappers exist within our current code to do keyword-hash based lookups (woe to the poor slob who gets stuck with "britanny" or "spears" :) but these have not really been tested very much. >It turned out however, that Mojonation's basic architecture isn't scalable >anyways. The content-trackers in MN do not map metadata onto a physical >address, they map metadata onto UIDs (the SHA1 hash for each part) of the >data. Apparently, to then find the data, MN simply expects each node to >keep a list of the IDs of every other node in the network [...] This is incorrect. Each node keeps a set of phonebook entries for other brokers that it has contacted in the past (not the entire list, just the nodes you have communicated with). These entries contain information such as broker ID (to link to reputation information about that broker), contact information and connectin strategies (e.g. to contact Broker X send the message to relay server Y), and specific service info such as the block mask for a storage service agent. It is these masks which are used to determine who you will send a request to when looking for a blob of data. If you can't find the blob you are looking for at any of the brokers you know who cover that range of the SHA1 address space then the Broker goes back to the centralized metatracker and asks it for a few more phonebook entries which cover the range of the address space it is interested in and caches these entries. This scales sufficiently well for our current prototype and when this starts to show scaling problems we will drop in the gossip-based mechanism to limit reliance on metatrackers for new block server phonebook entries. In our gossip-based lookup system your Broker would send a phonebook lookup request to block servers that a Broker knows about which were closest to the desired range. These block servers would either answer the request as best they could with entries out of thier cache or direct the originator of the request to a few other block servers which were even closer to the correct mask range in the hope that they could provide useful phonebook info. Each Broker will hold on to phonebook entries that overlap or are near its mask range longer than it will for other ranges of the block address space. Each block server within a Broker will become a specialist in the metainfo about other blocks servers whose mask is a near-match, allowing us to replicate data blocks within the network easier and assisting other Brokers by being able to provide useful phonebook info. Next time perhaps you could try to make sure that you actually understand how another system works before you start throwing stones... jim mccoy AZI/Mojo Nation From md98-osa at nada.kth.se Tue Mar 6 06:25:50 2001 From: md98-osa at nada.kth.se (Oskar Sandberg) Date: Tue, 6 Mar 2001 12:25:50 +0100 Subject: market-based data location (was Scalability) In-Reply-To: ; from mccoy@io.com on Mon, Mar 05, 2001 at 05:41:24PM -0800 References: Message-ID: <20010306122550.C623@hobbex.localdomain> On Mon, Mar 05, 2001 at 05:41:24PM -0800, Jim McCoy wrote: > At 03:02 AM 2/28/01 +0100, Oskar Sandberg wrote: > >[...] > >I approached the Mojonation people regarding my concern that the whole > >content tracking system was not really decentralized at all at the Peer to > >Peer conference. > > Actually our opinion is that our content tracking system is _too_ > decentralized. It would have served us better to start off with a few > centralized content trackers (a la Napster) that were specialists in a > particular content type rather than the Gnutella-like indexing structure > which we currently employ. A few handicappers exist within our current > code to do keyword-hash based lookups (woe to the poor slob who gets stuck > with "britanny" or "spears" :) but these have not really been tested very much. I guess that with the emphasis of MN's technology research being on the monetary system you can justify doing a rough job of searching - but I think you can understand why those of us who emphasize on data sharing architectures are somewhat taken aback by that. Especially in light of MN often being presented as a decentralized data sharing network. > >It turned out however, that Mojonation's basic architecture isn't scalable > >anyways. The content-trackers in MN do not map metadata onto a physical > >address, they map metadata onto UIDs (the SHA1 hash for each part) of the > >data. Apparently, to then find the data, MN simply expects each node to > >keep a list of the IDs of every other node in the network [...] > > This is incorrect. Each node keeps a set of phonebook entries for other > brokers that it has contacted in the past (not the entire list, just the > nodes you have communicated with). These entries contain information such > as broker ID (to link to reputation information about that broker), contact > information and connectin strategies (e.g. to contact Broker X send the > message to relay server Y), and specific service info such as the block > mask for a storage service agent. It is these masks which are used to > determine who you will send a request to when looking for a blob of data. > > If you can't find the blob you are looking for at any of the brokers you > know who cover that range of the SHA1 address space then the Broker goes > back to the centralized metatracker and asks it for a few more phonebook > entries which cover the range of the address space it is interested in and > caches these entries. This scales sufficiently well for our current > prototype and when this starts to show scaling problems we will drop in the > gossip-based mechanism to limit reliance on metatrackers for new block > server phonebook entries. Obviously, I don't think I need to comment on my opinion of this model. Are you guys not concerned about waking up one morning with a friendly letter from the RIAA in your mailbox (something that has already happened to several Opennap admins)? > In our gossip-based lookup system your Broker would send a phonebook lookup > request to block servers that a Broker knows about which were closest to > the desired range. These block servers would either answer the request as > best they could with entries out of thier cache or direct the originator of > the request to a few other block servers which were even closer to the > correct mask range in the hope that they could provide useful phonebook > info. Each Broker will hold on to phonebook entries that overlap or are > near its mask range longer than it will for other ranges of the block > address space. Each block server within a Broker will become a specialist > in the metainfo about other blocks servers whose mask is a near-match, > allowing us to replicate data blocks within the network easier and > assisting other Brokers by being able to provide useful phonebook info. This is closer to the sort of the self-sorting we are using for Freenet, although we are interested only in comparing the data key (aka GUID or whatever) values, since nodes have no static range to cover (let alone one they can choose themselves, since we consider this opportunity for targeted attacks on parts of the keyspace unacceptable). I can warn you however, that making this sort of system work is not easy - and even when it does you have given up deterministically finding the results. In light of the fact that you are using the "rigid" model of matching data id's and with node id's anyways, I would very recommend you look at the Plaxton model for routing in this type of system. It's very fast for searching (you can keep it 4 or 8 times under logarithmic for the worst case) and also has some interesting characteristics for finding the best located data (though you needn't employ those). > Next time perhaps you could try to make sure that you actually understand > how another system works before you start throwing stones... Not a chance. > > jim mccoy > AZI/Mojo Nation -- 'DeCSS would be fine. Where is it?' 'Here,' Montag touched his head. 'Ah,' Granger smiled and nodded. Oskar Sandberg md98-osa at nada.kth.se From ota at transarc.com Tue Mar 6 06:52:17 2001 From: ota at transarc.com (Ted Anderson) Date: Tue, 6 Mar 2001 06:52:17 -0500 (EST) Subject: market-based data location (was Scalability) In-Reply-To: References: Message-ID: On 27 Feb 2001 00:12:55 PST wrote: > But I was struck by the statement in the introduction to one of their > papers that their goal is to support a network with 10^10 users (10 > billion users, i.e. the total population of Earth), each storing 10000 > files, for a total of 100 trillion files. That's a lot of files! > Scaling to that level will be a real challenge. This figure struck me as well, because it agreed with my thinking about the appropriate scale of the decentralized file system I envision. This was crystallized for me when I tried, unsuccessfully, to convince myself that a 128-bit hash value was sufficiently large for object CHKs. When I considered how many nodes might participate in the system and how many objects each might create over a period of years, I could not do it. I assumed 10^10 nodes (not users, but actively participating computers) and over its lifetime it seemed plausible that a node might create 10^10 files (about 33/sec for 10 years). This comes to 10^20 (2^66.5) objects and, since the birthday paradox tells us that collisions will be common when we reach the square root of the hash size, 128 bits seemed just too small for comfort. Using the 160 bit SHA-1 output provides a nice margin of safety. In a relatively benign environment, I could imagine a system like the OceanStore data location scheme working at this scale. I have argued in favor of a similar idea based on boolean hypercubes for several years. However, I now think the Internet is hostile enough that a more flexible, adaptable approach based on market incentives will be necessary. At the beginning of this thread, Wei Dai, very briefly, described such a system. The economic model is the only one we know of that can organize loosely-coupled human systems on this scale. If we generalize the interpretation of "economic" to include cooperative, mutually beneficial interactions of all kinds this organizational capability applies to complex systems of essentially any type. Robert Wright, expounds on this idea in his book titled "Nonzero: The logic of Human Destiny". He argues that increasing complexity of all living systems are driven by nonzero-sum interactions on many levels. The specific shortcomings of MojoNation-style economics, and with micro-payments in general, are worth understanding. The conclusion I think we must draw, however, is not that we should avoid market-based incentives, but that we need to find a way to incorporate these mechanisms in a way that will enable mutually beneficial cooperation between agents while suppressing parasitic interactions. Ted Anderson From hal at finney.org Tue Mar 6 12:05:31 2001 From: hal at finney.org (hal at finney.org) Date: Tue, 6 Mar 2001 09:05:31 -0800 Subject: Naming via SDSI Message-ID: <200103061705.JAA13116@finney.org> An article on Wired Online this morning describes a case of multiple name services competing for business. One of the issues is that it will not work well if there are two independent name server systems that service the same TLD (.xxx in this case). I think the problems are, first, that it would be inefficient to have to query two name servers to find out where sexygirls.xxx is; and second, that the two groups might register the same name, making addresses ambiguous. Both of these would be resolved by assigning each TLD to only one name service operator. How would that work in a P2P model? If we did have competing name lookup services (using Wei's term from the three service model), would there have to be some global mechanism to make sure that no two services tried to handle the same addresses? Or would we accept that address to name mapping was inherently ambiguous? Or, perhaps, would TLDs have to have unfriendly unforgeable names? Mark Miller sent me a pointer to an idea of his that he had proposed in another context, http://www.erights.org/elib/capability/pnml.html. The idea of his "Pet Name Markup Language" (pnml) is that you pass around long, unambiguous names (such as hashes), but let the display software substitute short, user-assigned, local nicknames, somewhat similar to what is done in SDSI. Maybe this could eliminate the need for name lookup services, at least in some cases (including in particular the TLD issue discussed above). Hal === http://www.wired.com/news/business/0,1367,42217,00.html: New.net announced Monday that it was offering 20 new top-level domains (TLDs) including dot-xxx, which could be intriguing for adult sites. But Domain Name Systems has been selling dot-xxx domains for several months. The competing efforts that go outside the Internet's accepted domain name system could become a complex legal dispute over dispensing adult domains. New.net began selling domains using TLDs that are not approved by the Internet Corporation for Assigned Names and Numbers (ICANN), the international agency charged with overseeing TLDs. The company began distributing software that enables Web browsers to access the new TLDs. Domain Name Systems has been offering dot-xxx and dot-sex registrations since ICANN rejected those two proposed TLDs last November. ... Stacey King, an intellectual property lawyer at Howrey Simon Arnold & White, said disputes between two companies trying to register the same domain name would have to be settled via trademark, if it's possible. "Things will have to go back to traditional trademark principles. Do they have a registered trademark or common law rights to a name? Have they used it in commerce? They may have greater rights than someone who doesn't have a federal registration," she said. If there is no trademark or history of doing business under a name, then things could get nasty, since there are no laws governing ownership of top-level domains. "It may come down to first-come, first-served unless these two companies want to fight it out in the courts who has a right to the top-level domain," King said. From markm at caplet.com Tue Mar 6 12:17:14 2001 From: markm at caplet.com (Mark S. Miller) Date: Tue, 06 Mar 2001 09:17:14 -0800 Subject: Naming via SDSI In-Reply-To: Message-ID: <5.0.2.1.2.20010306091536.00a88290@shell9.ba.best.com> At 09:05 AM Tuesday 3/6/01, hal at finney.org wrote: >Mark Miller sent me a pointer to an idea of his that he had proposed >in another context, http://www.erights.org/elib/capability/pnml.html. >The idea of his "Pet Name Markup Language" (pnml) is that you pass around >long, unambiguous names (such as hashes), but let the display software >substitute short, user-assigned, local nicknames, somewhat similar to >what is done in SDSI. Maybe this could eliminate the need for name >lookup services, at least in some cases (including in particular the >TLD issue discussed above). Thanks! I'm puzzled by this reference to SDSI. I had thought that SDSI had been fully absorbed into SPKI, and AFAIK SPKI has no such mapping from keys back to names. ?? Cheers, --MarkM From hal at finney.org Tue Mar 6 12:39:36 2001 From: hal at finney.org (hal at finney.org) Date: Tue, 6 Mar 2001 09:39:36 -0800 Subject: Naming via SDSI Message-ID: <200103061739.JAA13361@finney.org> I wrote earlier: > Mark Miller sent me a pointer to an idea of his that he had proposed > in another context, http://www.erights.org/elib/capability/pnml.html. > The idea of his "Pet Name Markup Language" (pnml) is that you pass around > long, unambiguous names (such as hashes), but let the display software > substitute short, user-assigned, local nicknames, somewhat similar to > what is done in SDSI. I want to clarify that "what is done in SDSI" is maintaining a database associating local nicknames with keys. SDSI does not map back and forth between nicknames and keys the way Mark proposes in the PNML. That is a new and interesting idea which could be another approach to the name mapping problem. Hal From dmarti at zgp.org Tue Mar 6 14:09:14 2001 From: dmarti at zgp.org (Don Marti) Date: Tue, 6 Mar 2001 11:09:14 -0800 Subject: Naming via SDSI In-Reply-To: ; from hal@finney.org on Tue, Mar 06, 2001 at 09:05:31AM -0800 References: Message-ID: <20010306110914.F3154@zgp.org> On Tue, Mar 06, 2001 at 09:05:31AM -0800, hal at finney.org wrote: > How would that work in a P2P model? If we did have competing name lookup > services (using Wei's term from the three service model), would there > have to be some global mechanism to make sure that no two services tried > to handle the same addresses? Or would we accept that address to name > mapping was inherently ambiguous? Or, perhaps, would TLDs have to have > unfriendly unforgeable names? All this bogus DNS stuff will get settled at the business level, not the crypto level. There are already sites that rate registrars. The services would just have to add a column to their ratings chart with an estimate of what percentage of the hosts on the net can resolve each registrar's domains. (Data for this could be collected by putting small images, srced from all the new domains, on popular pages.) New registrars will presumably offer registrations at no charge to build up a user base, and pay webmasters to make new-domain-only content to encourage ISPs to recognize their TLDs. (For example, if you run pornpornporn.com, a new registrar offering .xxx will _give_ you pornpornporn.xxx and pay you to put free porn there that's not on your original site.) More popular registrars will get more registrations with more content, thereby scooping up more ISPs -- positive reinforcement for the more popular one that will make the less popular one get fewer registrations, less content, and less demand. Competition won't be an issue. -- Don Marti "I've never sent or received a GIF in my life." dmarti at zgp.org -- Bruce Schneier, Secrets and Lies, p. 246. http://zgp.org/~dmarti/ (Free the Web: http://burnallgifs.org/) From hal at finney.org Tue Mar 6 14:42:58 2001 From: hal at finney.org (hal at finney.org) Date: Tue, 6 Mar 2001 11:42:58 -0800 Subject: Naming via SDSI Message-ID: <200103061942.LAA13981@finney.org> Don Marti, , writes: > More popular registrars will get more registrations with more content, > thereby scooping up more ISPs -- positive reinforcement for the more > popular one that will make the less popular one get fewer registrations, > less content, and less demand. Competition won't be an issue. You are suggesting that the end result of a competitive process will be that each new TLD is assigned to just one registrar (name lookup service). Each one will have a de facto monopoly on that particular name. It's possible that the results will approximate this state, but I don't think it will be as clean as you suggest. New domains will spring up all the time and there will be a battle over who gets to serve them. Well established registrars may make "raids" on other registrars' domains to try to establish themselves as alternatives for those TLDs. The same thing can be accomplished by creating new domains: is it .xxx or .sex? .vid or .tv? .snd or .mus? Registrars will spend money promoting new alternative TLDs in the hopes that they will become popular and steal business from other TLDs. There may also be truces between registrars who agree to share a TLD and cooperate to make sure they don't assign competing names. Then these truces will be broken sometimes. It's going to be a dynamic process. That's how competition works. It seems likely that a substantial number of TLDs will be in flux at any given time. This will lead to ambiguity, uncertainty and costs in doing name lookups. I don't think this is an ideal solution. Hal From dmarti at zgp.org Tue Mar 6 20:46:52 2001 From: dmarti at zgp.org (Don Marti) Date: Tue, 6 Mar 2001 17:46:52 -0800 Subject: Naming via SDSI In-Reply-To: ; from hal@finney.org on Tue, Mar 06, 2001 at 11:42:58AM -0800 References: Message-ID: <20010306174652.H19251@zgp.org> On Tue, Mar 06, 2001 at 11:42:58AM -0800, hal at finney.org wrote: > It's going to be a dynamic process. That's how competition works. > It seems likely that a substantial number of TLDs will be in flux at > any given time. This will lead to ambiguity, uncertainty and costs in > doing name lookups. I don't think this is an ideal solution. A two-tier structure of both competitive and official TLDs would be better than an ICANN-only one. People who want to explore the wild and wooly domains can run a simple caching nameserver at home; people who want to stick with ICANN and any rogue TLDs that get well-established can use their ISP's name server. -- Don Marti "I've never sent or received a GIF in my life." dmarti at zgp.org -- Bruce Schneier, Secrets and Lies, p. 246. http://zgp.org/~dmarti/ (Free the Web: http://burnallgifs.org/) From blanu at uts.cc.utexas.edu Tue Mar 6 22:09:25 2001 From: blanu at uts.cc.utexas.edu (Brandon) Date: Tue, 6 Mar 2001 21:09:25 -0600 (CST) Subject: Naming via SDSI In-Reply-To: Message-ID: > How would that work in a P2P model? If we did have competing name lookup > services (using Wei's term from the three service model), would there > have to be some global mechanism to make sure that no two services tried > to handle the same addresses? Or would we accept that address to name > mapping was inherently ambiguous? Or, perhaps, would TLDs have to have > unfriendly unforgeable names? Well, I see three ways to handle this: central authority to resolve disputes, choosing sides, or total subjectivity. Pet names is total subjectivity. I think that's a pretty good system. It's the system I'm using to do e-mail over Freenet (PGP fingerprint == key, Freenet "e-mail address" == pet name). My main issue with total subjectivity is that it requires that you pass around fat references (keys) all the time. So I can't tell someone "Check out megatokyo.com." I have to say "check out asjldkq9u4q8412093ajla0912l". It helps if you have a computer-mediated communication environment to do translation for you, but it sucks for voice and written. I know the last time I wrote down my PGP fingerprint I made to copying errors. If it was a different kind of key, such errors woul have made it useless. Having naming paths helps because then, for instance, I can run a name mapping service and if you already have my key then I can tell you "check out brandon/megatokyo" and that path will resolve. It still has the same theoretical problems, but in practice will suck less because you tend to communicate with the same people a lot. From blanu at uts.cc.utexas.edu Tue Mar 6 22:12:52 2001 From: blanu at uts.cc.utexas.edu (Brandon) Date: Tue, 6 Mar 2001 21:12:52 -0600 (CST) Subject: Naming via SDSI In-Reply-To: Message-ID: > There are already sites that rate registrars. The services would just > have to add a column to their ratings chart with an estimate of what > percentage of the hosts on the net can resolve each registrar's domains. > (Data for this could be collected by putting small images, srced from > all the new domains, on popular pages.) This is just moving the trust authority to the registrar rating site. Or to a trust oligopoly of registrar rating sites. So I'd say it doesn't actually change the problem at all. You now have to choose you to trust, you just have a new layer of middlemen. I'm not saying this isn't better than ICANN. I think it is. From alk at pobox.com Tue Mar 6 22:18:49 2001 From: alk at pobox.com (Tony Kimball) Date: Tue, 6 Mar 2001 21:18:49 -0600 (CST) Subject: Naming via SDSI References: Message-ID: <15013.43161.904733.426487@spanky.love.edu> Quoth Brandon on Tuesday, 6 March: : : ...resolve disputes... I find it difficult to imagine how disputes could last, frankly: Anyone who plans to stick around is going to be synchronizing with the other registries as often as possible. Indeed, I can't see any sane business reason not to run all the registries off of a single meta-registry database. It's only when someone has the heady smell of monopoly in their nostrils that they could seriously consider disincluding any other competent registry. From retep at penguinpowered.com Tue Mar 6 22:37:55 2001 From: retep at penguinpowered.com (Peter Todd) Date: Tue, 6 Mar 2001 22:37:55 -0500 Subject: Naming via SDSI In-Reply-To: ; from blanu@uts.cc.utexas.edu on Tue, Mar 06, 2001 at 09:09:25PM -0600 References: Message-ID: <20010306223755.A1557@petes.localdomain> On Tue, Mar 06, 2001 at 09:09:25PM -0600, Brandon wrote: > My main issue with total subjectivity is that it requires that you pass > around fat references (keys) all the time. So I can't tell someone "Check > out megatokyo.com." I have to say "check out > asjldkq9u4q8412093ajla0912l". It helps if you have a computer-mediated > communication environment to do translation for you, but it sucks for > voice and written. I know the last time I wrote down my PGP fingerprint I > made to copying errors. If it was a different kind of key, such errors ^ We already make enough errors just writing normal text. :) Whats so special about PGP figerprints BTW that allows them to tolerate errors? -- retep at penguinpowered.com http://retep.tripod.com -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 232 bytes Desc: not available Url : http://lists.ibiblio.org/pipermail/bluesky/attachments/20010306/d3252819/attachment.bin From blanu at uts.cc.utexas.edu Tue Mar 6 22:46:24 2001 From: blanu at uts.cc.utexas.edu (Brandon) Date: Tue, 6 Mar 2001 21:46:24 -0600 (CST) Subject: Naming via SDSI In-Reply-To: Message-ID: > We already make enough errors just writing normal text. :) Names like google, slashdot, and freenetproject are resistant to errors in duplication. > Whats so special about PGP figerprints BTW that allows them to > tolerate errors? You check a PGP fingerprint against a key. So if the fingerprint has errors but not many then you can still trust it. From blanu at uts.cc.utexas.edu Tue Mar 6 22:49:54 2001 From: blanu at uts.cc.utexas.edu (Brandon) Date: Tue, 6 Mar 2001 21:49:54 -0600 (CST) Subject: Naming via SDSI In-Reply-To: Message-ID: > I find it difficult to imagine how disputes could last, frankly: > Anyone who plans to stick around is going to be synchronizing with the > other registries as often as possible. Indeed, I can't see any sane > business reason not to run all the registries off of a single > meta-registry database. Having a meta-registry is just shifting the central authority from ICANN to the people that run the meta-registry, avoiding the question of a situation without a central trust authority. In such a system disputes might occur. From markm at caplet.com Wed Mar 7 01:43:46 2001 From: markm at caplet.com (Mark S. Miller) Date: Tue, 06 Mar 2001 22:43:46 -0800 Subject: Naming via SDSI In-Reply-To: References: Message-ID: <5.0.2.1.2.20010306215651.043f3890@shell9.ba.best.com> At 07:09 PM Tuesday 3/6/01, Brandon wrote: >My main issue with total subjectivity is that it requires that you pass >around fat references (keys) all the time. So I can't tell someone "Check >out megatokyo.com." I have to say "check out >asjldkq9u4q8412093ajla0912l". It helps if you have a computer-mediated >communication environment to do translation for you, but it sucks for >voice and written. I know the last time I wrote down my PGP fingerprint I >made to copying errors. If it was a different kind of key, such errors >woul have made it useless. > >Having naming paths helps because then, for instance, I can run a name >mapping service and if you already have my key then I can tell you "check >out brandon/megatokyo" and that path will resolve. It still has the same >theoretical problems, but in practice will suck less because you tend to >communicate with the same people a lot. I think this summarizes well both the good and bad news with total subjectivity, as in SPKI/SDSI/Pet-Names. I also think this is as good as it gets. See http://www.cap-lore.com/MathPhys/GRref.html . And I think the bad news isn't this bad, as explained below. The other choices are mostly illusory. "Central authority" actually becomes "choosing sides" since (hopefully) we'll never have unanimity about who should be world dictator. Witness the upcoming war between ICANN and the government of Tonga of the TLD ".to". (Tonga refuses to pay their dues to ICANN, saying, rightly, "Who put you in charge?".) Global name spaces create unsolvable political problems. To attempt to live within a global name space is to choose to subjugate yourself and your customers to unnecessarily centralized authorities. "Choosing sides" is really just a broken way to look at subjectivity + naming paths anyway, as the creators of SDSI correctly explained. For example, in my use of PNML, BrandontldServertocypherpunks starts with the name server I take to serve Brandon's exported names, asks it what TLD server it takes as authoritative, and then decodes cypherpunks.to within that TLD system. This might be a different entity than the one designated by my use of "tldServertocypherpunks". So even the domain name system is best seen through the eyes of subjectivity + naming paths. For direct communication with people you already know, I think you underestimate: >I can run a name >mapping service and if you already have my key then I can tell you "check >out brandon/megatokyo" and that path will resolve. It still has the same >theoretical problems, I don't think it does. If I have a communications directly from Brandon, let's say I meed Brandon at a party, and let's say I have a basis for believing a correspondence between my face-recognition of Brandon and his fingerprint; then, if he either tells me "brandon/megatokyo" or scribbles it on a piece of paper, I know that the "brandon" is my already established naming root for him, not a name to be looked up in a global or almost global name space. Of course, in a Mission Impossible plot my face and voice recognition of Brandon at the party might be spoofed. But that's the only remaining theoretical problem I see with this use. The only real bad news with subjectivity above is "voice and written" with people you don't already know. For written: I've got my PGP fingerprint on my business card, as do many other people. People already often clip their cards to documents they hand out. This fingerprint is a fine naming root for the naming paths in the document. Xerox has some fine technology for embedding machine readable info unobtrusively in the normal ink printing patterns on paper, and one can imagine a convention for embedding a name-root fingerprint in a company letterhead. For voice: If it's in person, it can still be supplemented by a business card, and often is. If it's not in person, then it's over an electronic medium, which can carry other information as well. Cheers, --MarkM From hal at finney.org Wed Mar 7 03:12:29 2001 From: hal at finney.org (hal at finney.org) Date: Wed, 7 Mar 2001 00:12:29 -0800 Subject: Naming via SDSI Message-ID: <200103070812.AAA26086@finney.org> Wei's original "three-services model" was like this: > 1. name lookup service: maping user-friendly names/URLs to content-hash > based ids > 2. data location service: maping content-hash based ids to storage servers > (network addresses and data transport protocols) that can deliver the data > 3. data transport service: actually obtaining content from a storage > server given its address and a content-hash based id The current thread focuses on the first service, the one that does name lookups. However this model has (at least) two separate functions for the name lookup, and perhaps it would be useful to split them. One function is providing a "friendly name" for a document; and the other is allowing documents to change without their name changing. This second problem is somewhat specific to the assumption that content hashes are the unforgeable identifiers for documents. With this approach, any time a document is updated, its content hash and therefore its identifier changes. Any content-hash based address will become obsolete once this change has occured. Therefore having the name lookup service is necessary so that you can find the latest version of the document. However there are other ways to handle document revisions. This is part of why Freenet has spawned its multiplicity of key (identifier) classes. Freenet and OceanStore have identifiers which are based on cryptographic keys and signatures. These have the same basic self-verification properties as content hashes but they can allow documents to be updated with the updates signed by the key. If document changes are no longer an issue then the only remaining one is friendly naming. There are a couple of things to note which make this problem less severe. First, only a very small percentage of the web pages on the net presently have names friendly enough that they can be reasonably typed. You might type www.cnn.com to get the headlines, but you won't type http://www.cnn.com/2001/TECH/space/03/06/mir.fungus.reut/index.html to learn about the mutant bacteria threat from Mir. Instead your mail reader will treat it as a link for you, or maybe you'll cut and paste it into your web browser. Given this primitive level of automation, which is already necessary for links to be passed around at all, a link with a 160 bit unforgeable number can look like d787ef5c05460da6cf3d6aa1633655d8861e20f1 in hex or like 14fvXAVGDabPPWqhYzZV2IYeIPE in a base-64 encoding, which is easy to cut and paste; easier in fact than modern URLs which often span more than one line and get forcibly line-wrapped by brain-damaged email software. Second, of course if you are able to use HTML then the link isn't even seen and friendliness does not arise. The remaining case is where people do want to type a URL. This will often be where the URL appears in print, in a magazine or newspaper or billboard; or via some other off-line medium like radio or tv. These URLs have to be extremely short, essentially just one or two words, something that people can remember. This core of the problem remains hard, but note that it will mostly involve businesses and large organizations, and most of the cases will be advertising. Names will typically be some easy-to-remember variant of the company's name, or maybe a clever play on words involving its function. It may well be that for this case a market-based registrar system will work, with just a few large registrars handling the corporate business. You'll have .com, .org and a few others, as we have today. Widely used software will hardwire these popular registries and it will be no easier to overthrow them than it is to get people to ignore the top-level name servers today. The result would be a two-part scheme: a relatively limited and inflexible name system for business trademarks, which identifies the home pages of large organizations; and a completely ad hoc system based on cryptographically self-authorizing, random-looking names for everything else. Hal From blanu at uts.cc.utexas.edu Wed Mar 7 03:47:49 2001 From: blanu at uts.cc.utexas.edu (Brandon) Date: Wed, 7 Mar 2001 02:47:49 -0600 (CST) Subject: Naming via SDSI In-Reply-To: Message-ID: Yes, I came to this conclusion earlier today. Central authority and multiple competing authorities are really just pet naming paths with an ellided well-known root key. So pet names are really the best it can be. From blanu at uts.cc.utexas.edu Wed Mar 7 03:51:36 2001 From: blanu at uts.cc.utexas.edu (Brandon) Date: Wed, 7 Mar 2001 02:51:36 -0600 (CST) Subject: Naming via SDSI In-Reply-To: Message-ID: > http://www.cnn.com/2001/TECH/space/03/06/mir.fungus.reut/index.html > > Given this primitive level of automation, which is already necessary > for links to be passed around at all, a link with a 160 bit unforgeable > number can look like d787ef5c05460da6cf3d6aa1633655d8861e20f1 in hex or > like 14fvXAVGDabPPWqhYzZV2IYeIPE in a base-64 encoding, which is easy to > cut and paste; easier in fact than modern URLs which often span more than > one line and get forcibly line-wrapped by brain-damaged email software. The URL is still easier to communicate by voice than then hex or base-64. I think that the importance of a voice-friendly encoding is often overlooked because people underestimate the amount of URL information communicate over the phone and in person. Of course, I don't have any particular ideas on how to convert 160-bit hashes into more voice-friendly encodings, but the least you could do is use hex instead of base-64. From lucas at worldos.com Wed Mar 7 12:22:23 2001 From: lucas at worldos.com (Lucas Gonze) Date: Wed, 7 Mar 2001 12:22:23 -0500 Subject: Naming via SDSI In-Reply-To: Message-ID: To get human-friendly IDs, it is not hard to have a namespace provider map names to hashes. IMHO unless the UN runs ICANN there is no solution to the political problem. Always allow the user to specify a namespace (either implicitly or explicitly) and the problem goes away. - Lucas > -----Original Message----- > From: bounce-bluesky-127943 at ibiblio.org > [mailto:bounce-bluesky-127943 at ibiblio.org]On Behalf Of Brandon > Sent: Wednesday, March 07, 2001 3:52 AM > To: Global-Scale Distributed Storage Systems > Subject: Re: Naming via SDSI > > > > > http://www.cnn.com/2001/TECH/space/03/06/mir.fungus.reut/index.html > > > > Given this primitive level of automation, which is already necessary > > for links to be passed around at all, a link with a 160 bit unforgeable > > number can look like d787ef5c05460da6cf3d6aa1633655d8861e20f1 in hex or > > like 14fvXAVGDabPPWqhYzZV2IYeIPE in a base-64 encoding, which is easy to > > cut and paste; easier in fact than modern URLs which often span more than > > one line and get forcibly line-wrapped by brain-damaged email software. > > The URL is still easier to communicate by voice than then hex or > base-64. I think that the importance of a voice-friendly encoding is often > overlooked because people underestimate the amount of URL information > communicate over the phone and in person. Of course, I don't have any > particular ideas on how to convert 160-bit hashes into more voice-friendly > encodings, but the least you could do is use hex instead of base-64. > > > > --- > You are currently subscribed to bluesky as: lucas at gonze.com > For list information visit http://www.transarc.ibm.com/~ota/bluesky/ > From hal at finney.org Wed Mar 7 13:01:32 2001 From: hal at finney.org (hal at finney.org) Date: Wed, 7 Mar 2001 10:01:32 -0800 Subject: Naming via SDSI Message-ID: <200103071801.KAA27444@finney.org> Lucas Gonze, , writes: > To get human-friendly IDs, it is not hard to have a namespace provider map names > to hashes. > > IMHO unless the UN runs ICANN there is no solution to the political problem. > Always allow the user to specify a namespace (either implicitly or explicitly) > and the problem goes away. But now the problem is, how to securely identify a namespace provider, when you supply someone with a URL? Isn't this the same problem? You need either a friendly (user-readable) name for the namespace provider, in which case more than one entity could claim to have that name, or you need a cryptographically secure name, which will be long. Hal From lucas at worldos.com Wed Mar 7 13:29:34 2001 From: lucas at worldos.com (Lucas Gonze) Date: Wed, 7 Mar 2001 13:29:34 -0500 Subject: Naming via SDSI In-Reply-To: Message-ID: Hal said: > You need either a friendly (user-readable) name for the namespace > provider, in which case more than one entity could claim to have that > name, or you need a cryptographically secure name, which will be long. I think this boils down to the same insight embodied in webs of trust or SPKI, which is that trust originates at the self. An individual has to make a leap of faith based on the best data they can gather, but from then trusted parties can certify new trusted parties. The bootstrap step you are referring to doesn't have to happen frequently. Let's say there would be a default namespace provider whose function is to map friendly names for namespace providers to hashes. This default namespace provider could be your ISP. On some level you would have to deal with the hash during setup, just like you have to deal with IP settings for a new ISP account. Bootstrap the entire process by getting a public key for your default namespace provider. Verify this in the usual ways, e.g. by looking at the signature in a magazine ad, by calling them on the phone, etc. You can have about as much faith in this as you do in the setup data that your ISP provides. The difference between this and DNS is that trust radiates outward from users, rather than inward from the Root Server in Reston. - Lucas From hal at finney.org Wed Mar 7 13:44:50 2001 From: hal at finney.org (hal at finney.org) Date: Wed, 7 Mar 2001 10:44:50 -0800 Subject: Naming via SDSI Message-ID: <200103071844.KAA27744@finney.org> Lucas writes: > The bootstrap step you are referring to doesn't have to happen frequently. > Let's say there would be a default namespace provider whose function is to map > friendly names for namespace providers to hashes. This default namespace > provider could be your ISP. On some level you would have to deal with the hash > during setup, just like you have to deal with IP settings for a new ISP account. What happens if my ISP and your ISP disagree about which namespace provider gets a certain friendly-name, like .com or .biz? If this can't happen, could you explain why? And how does each ISP keep up to date with namespace changes, and decide which namespace provider to honor in the case of disputed name spaces? Many ISPs can barely keep the modems running - will they have the manpower to take on this task? > The difference between this and DNS is that trust radiates outward from users, > rather than inward from the Root Server in Reston. Well, in a sense trust does radiate outward from users in the DNS. The only reason the root servers have power is because of millions of users whose computers consult them to resolve names. See http://www.youcann.org/instructions.html for how to change your computer to consult different roots. If enough people did this, the current root servers would lose power. Hal From lucas at worldos.com Wed Mar 7 14:37:02 2001 From: lucas at worldos.com (Lucas Gonze) Date: Wed, 7 Mar 2001 14:37:02 -0500 Subject: Naming via SDSI In-Reply-To: Message-ID: My point here is to say that the need to see hashes instead of friendly names can be limited to setup time. After setup you are either specifying a namespace (based on a chain of trust built out from the root server you have picked) or using the implicit namespace of your root server. For example, your root server might only define four or five name/hash mappings. It's interesting and probably even productive to work on whether it is a good to idea to have a system that permits collisions, but I don't mean to be commenting on that here. Whether your root server is your ISP or some other party is also a different set of issues. I am only addressing the problem of mapping friendly names to hashes. > Well, in a sense trust does radiate outward from users in the > DNS. The only reason the root servers have power is because of > millions of users whose computers consult them to resolve names. > See http://www.youcann.org/instructions.html for how to change your > computer to consult different roots. If enough people did this, the > current root servers would lose power. But there's no way to specify the namespace within a domain reference. Changing the root provider has to be dynamic to be useful. Otherwise you just end up with a different dictator. You could probably hack a solution at the OS level already, at least in Linux... Aside from the mammoth installed base, I don't see why DNS should remain the one true method for mapping friendly names to IPs. Not having white space or punctuation is unnecessarily primitive. Having to have a dot anything is fairly silly as well. All the .foo means is the lookup source - there's no conceptual reason why these things should be mapped on a semantic level like com, biz, aero, edu. That is just a historical artifact from the founding environment of DNS. - Lucas From hal at finney.org Wed Mar 7 15:22:53 2001 From: hal at finney.org (hal at finney.org) Date: Wed, 7 Mar 2001 12:22:53 -0800 Subject: Naming via SDSI Message-ID: <200103072022.MAA28173@finney.org> Lucas writes: > My point here is to say that the need to see hashes instead of friendly names > can be limited to setup time. After setup you are either specifying a namespace > (based on a chain of trust built out from the root server you have picked) or > using the implicit namespace of your root server. For example, your root server > might only define four or five name/hash mappings. I'm sorry, I'm still not understanding you. Would your system still handle names like, say, www.microsoft.com? And your point is, that in installing the .com name-server we would use a hash which securely identifies that handler? I don't see how that solves the problem, which is to figure which .com handler we should choose, and more to the point, how to be sure that the .com handler you chose is the same one I use. Or putting it another way, what do you do when two namespace resolvers claim to handle the same namespace? It doesn't help us to have a secure hash to the namespace resolver. That's not the hard part of the problem. One solution is to not have friendly-names for namespaces. In other words, TLDs would be hashes. You'd have www.microsoft.14fvXAVGDabPPWqhYzZV2IYeIPE. That last string would unambiguously designate a namespace resolver; there would be no disputes possible, and everyone would use the same resolver. The question is, can we get this level of clarity and security while keeping friendly names for the namespaces. Hal From lucas at worldos.com Wed Mar 7 16:21:15 2001 From: lucas at worldos.com (Lucas Gonze) Date: Wed, 7 Mar 2001 16:21:15 -0500 Subject: Naming via SDSI In-Reply-To: Message-ID: > Would your system still > handle names like, say, www.microsoft.com? And your point is, that > in installing the .com name-server we would use a hash which securely > identifies that handler? I don't see how that solves the problem, which > is to figure which .com handler we should choose, and more to the point, > how to be sure that the .com handler you chose is the same one I use. I would add one more level of indirection, to a namespace provider that maps the name of the .com namespace provider to the hash of the .com namespace provider. I would eliminate semantic landgrabs for concepts like ".com" and give namespace providers proper names. So www.microsoft.com.realnames.myRootProvider is the full path. myRootProvider is a hash/name mapping I entered manually, realnames is a hash/name mapping provided by myRootProvider, com is a mapping provided by realnames, etc. As you move from right to left the likelyhood of a collision would go up. myRootProvider must be canonical to the best of my ability to make it so. realnames should be very dependable. com would be somewhat disputable. microsoft would be fairly disputable. The possibility of collisions is a good thing. For the most part there won't be collisions, because it's in everyone's interest to share most of this data. But if there are conflicts between namespace providers just let users vote with their feet. > One solution is to not have friendly-names for namespaces. In other words, > TLDs would be hashes. You'd have www.microsoft.14fvXAVGDabPPWqhYzZV2IYeIPE. > That last string would unambiguously designate a namespace resolver; there > would be no disputes possible, and everyone would use the same resolver. quite cool! Ok, so add another level of indirection to get www.microsoft.com.realnames.14fvXAVGDabPPWqhYzZV2IYeIPE. and we are on more or less the same turf, except that I would allow for gradations of disputability. - Lucas From hal at finney.org Wed Mar 7 17:19:18 2001 From: hal at finney.org (hal at finney.org) Date: Wed, 7 Mar 2001 14:19:18 -0800 Subject: Naming via SDSI Message-ID: <200103072219.OAA28801@finney.org> Lucas writes: > I would add one more level of indirection, to a namespace provider that maps the > name of the .com namespace provider to the hash of the .com namespace provider. > I would eliminate semantic landgrabs for concepts like ".com" and give namespace > providers proper names. So www.microsoft.com.realnames.myRootProvider is the > full path. myRootProvider is a hash/name mapping I entered manually, realnames > is a hash/name mapping provided by myRootProvider, com is a mapping provided by > realnames, etc. In what format would you (or, more to the point, Microsoft) publish this name? Is it literally in this form, www.microsoft.com.realnames.myRootProvider? What does the string myRootProvider mean to someone else? And what is "realnames" here? That is a namespace provider, right? What happens if two companies both claim to be responsible for the "realnames" mapping? Does each different ISP decide which one to trust? > As you move from right to left the likelyhood of a collision would go up. > myRootProvider must be canonical to the best of my ability to make it so. > realnames should be very dependable. com would be somewhat disputable. > microsoft would be fairly disputable. What do you mean by "collisions"? Is it that the .com provider might give out two different mappings for microsoft.com? Surely it would not do this. Or are you worried about two different .com providers, both giving out microsoft.com? If so, then surely realnames wouldn't have given out two different mappings for .com, right? So there must have been two different realnames providers, both giving out mappings for .com. On this basis, the only way I see collisions occuring is from the highest level, if two different people are using different root providers, and so they might have different .realnames providers, different .com providers, and so on. But this would be a collision at the right, and would not increase in probability as you go to the left. So I think I am misunderstanding you. > The possibility of collisions is a good thing. For the most part there won't be > collisions, because it's in everyone's interest to share most of this data. But > if there are conflicts between namespace providers just let users vote with > their feet. This was the suggestion made earlier, that we would just let people compete for TLDs and let the market decide. I gave reasons [1] why I thought this was a bad idea. I thought you were offering an alternative to this. Maybe I was mistaken and you had the same idea all along. [1] http://www.mail-archive.com/bluesky%40franklin.oit.unc.edu/msg00088.html > > One solution is to not have friendly-names for namespaces. In other words, > > TLDs would be hashes. You'd have www.microsoft.14fvXAVGDabPPWqhYzZV2IYeIPE. > > That last string would unambiguously designate a namespace resolver; there > > would be no disputes possible, and everyone would use the same resolver. > > quite cool! Ok, so add another level of indirection to get > www.microsoft.com.realnames.14fvXAVGDabPPWqhYzZV2IYeIPE. The problem with this solution is that it is not a friendly name. The goal of this discussion is to see if there is a way to have TLD names be friendly. Hal From md98-osa at nada.kth.se Wed Mar 7 17:32:22 2001 From: md98-osa at nada.kth.se (Oskar Sandberg) Date: Wed, 7 Mar 2001 23:32:22 +0100 Subject: Naming via SDSI In-Reply-To: ; from hal@finney.org on Wed, Mar 07, 2001 at 12:22:53PM -0800 References: Message-ID: <20010307233222.A644@hobbex.localdomain> On Wed, Mar 07, 2001 at 12:22:53PM -0800, hal at finney.org wrote: <> > One solution is to not have friendly-names for namespaces. In other words, > TLDs would be hashes. You'd have www.microsoft.14fvXAVGDabPPWqhYzZV2IYeIPE. > That last string would unambiguously designate a namespace resolver; there > would be no disputes possible, and everyone would use the same resolver. > The question is, can we get this level of clarity and security while keeping > friendly names for the namespaces. I don't think so. After all, a multilayered name can be viewed as relative path along a graph. In order for two parties to follow such a path and end up at the same point, they have to start at the same point. For them to start at the same point, then they either need to go by convention, or the absolute identity of the starting point has to be given. Making the absolute value "nice" is (AFAIK) impossible with current PK crypto - and probably will remain since a PK algo where the public values are chosen and the private values are derived from them is impossible (what is to stop a second party from choosing the same PK value). And even if it wasn't impossible, it would make the whole layered name thing rather pointless. So that leaves convention, and convention unavoidably means both centralization of the service "root" and politics. -- 'DeCSS would be fine. Where is it?' 'Here,' Montag touched his head. 'Ah,' Granger smiled and nodded. Oskar Sandberg md98-osa at nada.kth.se From hal at finney.org Wed Mar 7 18:42:25 2001 From: hal at finney.org (hal at finney.org) Date: Wed, 7 Mar 2001 15:42:25 -0800 Subject: Naming via SDSI Message-ID: <200103072342.PAA29302@finney.org> Oskar Sandberg writes: > On Wed, Mar 07, 2001 at 12:22:53PM -0800, hal at finney.org wrote: > > The question is, can we get this level of clarity and security while keeping > > friendly names for the namespaces. > > I don't think so. After all, a multilayered name can be viewed as relative > path along a graph. In order for two parties to follow such a path and end > up at the same point, they have to start at the same point. For them to > start at the same point, then they either need to go by convention, or the > absolute identity of the starting point has to be given. Yes, that seems very true. > Making the absolute value "nice" is (AFAIK) impossible with current PK > crypto - and probably will remain since a PK algo where the public values > are chosen and the private values are derived from them is impossible > (what is to stop a second party from choosing the same PK value). And even > if it wasn't impossible, it would make the whole layered name thing rather > pointless. So that leaves convention, and convention unavoidably means > both centralization of the service "root" and politics. I agree. Others have proposed alternatives to politics in market-based mechanisms, but markets have trouble negotiating monopolies. There's an economic principle called "rent dissipation" in which companies will expend almost the total value of a rent-producing asset in order to acquire it. This is wasteful and inefficient. Hal From lucas at worldos.com Wed Mar 7 18:16:14 2001 From: lucas at worldos.com (Lucas Gonze) Date: Wed, 7 Mar 2001 18:16:14 -0500 Subject: Naming via SDSI In-Reply-To: Message-ID: > On this basis, ...this is the right interpretation of what I mean by collision. > the only way I see collisions occuring is from the highest level I think that we're agreeing and using different language. Collisions are caused on the right, but are visible on the left. Once a collision happens (which happens as you move left), there are now different parties serving a namespace. I'd add one refinement here, which is that collisions could die out if, e.g., the two different realnames providers agree on a mapping for .com. > This was the suggestion made earlier, that we would just let people > compete for TLDs and let the market decide. I gave reasons [1] why I > thought this was a bad idea. I thought you were offering an alternative > to this. Maybe I was mistaken and you had the same idea all along. > > [1] http://www.mail-archive.com/bluesky%40franklin.oit.unc.edu/msg00088.html I read it. I agree that there are ambiguity, uncertainty and costs in doing name lookups, and that is not ideal. Where I differ is that I think that the question is not whether conflict is allowed but how to minimize the damage. It's hard to believe that China, Libya and the US will always be able to resolve conflicts. At a certain size of the Internet you have to find ways to agree to disagree. So my suggestion re: bootstrapping a friendly name mapping service is intended to make the best of a bad situation, not to eliminate it, because I don't think it can be eliminated. - Lucas From md98-osa at nada.kth.se Wed Mar 7 19:43:34 2001 From: md98-osa at nada.kth.se (Oskar Sandberg) Date: Thu, 8 Mar 2001 01:43:34 +0100 Subject: Naming via SDSI In-Reply-To: ; from hal@finney.org on Wed, Mar 07, 2001 at 03:42:25PM -0800 References: Message-ID: <20010308014334.B1364@hobbex.localdomain> On Wed, Mar 07, 2001 at 03:42:25PM -0800, hal at finney.org wrote: > Oskar Sandberg writes: > > On Wed, Mar 07, 2001 at 12:22:53PM -0800, hal at finney.org wrote: > > > The question is, can we get this level of clarity and security while keeping > > > friendly names for the namespaces. > > > > I don't think so. After all, a multilayered name can be viewed as relative > > path along a graph. In order for two parties to follow such a path and end > > up at the same point, they have to start at the same point. For them to > > start at the same point, then they either need to go by convention, or the > > absolute identity of the starting point has to be given. > > Yes, that seems very true. One hypothetical model for certain circumstances could be make this graph a two-way such, so that two people could negoiate a starting point, and go from there based on reversing their path to it. Something like: Alice: You can get a Free dvd player at my site, fuckwaresux.truth Bob: But I thought ICANN had decided .truth was solely the domain of large media? Alice: Yeah, but I'm not using ICANN's root. Do you know microsoft's webpage under ICANN? Bob: Yeah, it's microsoft.com of course. Alice: Well, it's microsoft.criminal.orgs here, so you should find my site at fuckwaresux.truth.orgs.criminal.microsoft.com (from ICANN's root -> ICANN's com tld -> microsoft's site -> Alice's criminal.orgs domain -> Alice's orgs tld -> Alice's root -> Alice's truth tld -> the Fuckware (Futile Unnecessary Control-Keeping softWARE) Sucks site.) Of course, this doesn't work for several reasons. Firstly, it's pretty useless for tv ads and billboards where there is no room for negoiation, and that is where it is needed. Secondly, there is really no such thing as a two way link in cyberspace - the chances that microsoft would actually have a reverse entry to criminal.orgs isn't exactly very large. Thirdly, it assumes you trust every step along the route, which is pretty nuts. > > Making the absolute value "nice" is (AFAIK) impossible with current PK > > crypto - and probably will remain since a PK algo where the public values > > are chosen and the private values are derived from them is impossible > > (what is to stop a second party from choosing the same PK value). And even > > if it wasn't impossible, it would make the whole layered name thing rather > > pointless. So that leaves convention, and convention unavoidably means > > both centralization of the service "root" and politics. > > I agree. Others have proposed alternatives to politics in market-based > mechanisms, but markets have trouble negotiating monopolies. There's an > economic principle called "rent dissipation" in which companies will > expend almost the total value of a rent-producing asset in order to > acquire it. This is wasteful and inefficient. I considers markets to be politics. -- 'DeCSS would be fine. Where is it?' 'Here,' Montag touched his head. 'Ah,' Granger smiled and nodded. Oskar Sandberg md98-osa at nada.kth.se From adam at cypherspace.org Wed Mar 7 21:16:15 2001 From: adam at cypherspace.org (Adam Back) Date: Wed, 7 Mar 2001 22:16:15 -0400 Subject: distributed immutable namespace Message-ID: <20010307221615.A6287@cypherpunks.ai> I proposed on the crypto lists a few years back an idea about namespaces to create a censor resistant namespace. A namespace is a mapping from a human readable name into some bit string (eg. ipv4 IP address, content hash, location handle, etc). The idea is to try to create a global namespace collaboratively maintained by servers which audit each others behavior and compensate for rogue behavior in collaboration with client name server protocols. The aim is to create a namespace where Names are strictly first-come first served and persistent. Only the author who registers a key at the time he reserves the name is able to change the mapping. Local censorship and revisionism is allowed, but only in local views of the root namespace. Users browsers may be configured (or even come pre-configured) to censor local names in the domain they are distributed in. (Eg. a .cn filter, or a .us filter). But anyone should be able to get to the root unmodified namespace, either by disabling the filters, or by using some syntax which indicates that the name is in the root immutable namespace. There are two protocols involved: 1) Public Auditability - Use Merkle Authentication Trees [*] to prevent revisionism on the part of namespace servers. Namespace servers publish master hashes, users and namespace servers audit each others adherence to the global immutable root policy. 2) Revision Recovery - The client software should include protocols to accept notices from other namespace servers that detect a rogue namespace server. rogue namespace servers responses pass through the revision recovery protocol which works out if the repsonse is from a modified part of the Authentication Tree, and if so recovers the necessary original values from other servers. Servers cache the original values of modified sections of rogue servers Authentication Trees. The combination of protocols in clients and servers ensures that users can choose which filters they want to subscribe to. Companies may be satisfied with the subset of names that survive the policies of a monopoly unaudited root server. People who want more robust names can use the root namespace explicitly. For efficiency you probably want namespace servers to do the auditing. You don't want to audit every lookup back to the root even thought it is relatively efficient. Users can of course independently audit also. Adam [*] A Merkle Authentication Tree is basically a tree of hashes to allow the efficient verification of a particular leaf in the tree with log(n) queries. Imagine a binary tree representing a namespace with names as the leaf nodes. The parent of a leaf node is the hash of the pair of names below it. The parent of that node with it's neighbor is the hash of it and the neighbor hash, and so on up to the root which is the master hash of all the hash of hashes of names down to the leaves. Fortunately Merkle's patent has expired. From hal at finney.org Wed Mar 7 21:22:35 2001 From: hal at finney.org (hal at finney.org) Date: Wed, 7 Mar 2001 18:22:35 -0800 Subject: distributed immutable namespace Message-ID: <200103080222.SAA00621@finney.org> Adam Back writes: > The idea is to try to create a global namespace > collaboratively maintained by servers which audit each > others behavior and compensate for rogue behavior in > collaboration with client name server protocols. > > The aim is to create a namespace where Names are strictly > first-come first served and persistent. Only the author > who registers a key at the time he reserves the name is > able to change the mapping. That's an interesting idea, but isn't there a danger that a first-come first-served policy will result in someone writing a script to reserve all one-letter, two-letter, three-letter words etc. as fast as he can generate keys? Hal From orasis at acm.cs.umn.edu Wed Mar 7 15:36:11 2001 From: orasis at acm.cs.umn.edu (Justin Chapweske) Date: Wed, 7 Mar 2001 20:36:11 +0000 Subject: distributed immutable namespace In-Reply-To: ; from hal@finney.org on Wed, Mar 07, 2001 at 06:22:35PM -0800 References: Message-ID: <20010307203610.C33945@go.cs.umn.edu> > > That's an interesting idea, but isn't there a danger that a first-come > first-served policy will result in someone writing a script to reserve > all one-letter, two-letter, three-letter words etc. as fast as he can > generate keys? > You could slow it down with a "hash cash" type protocol where a person would have to for example burn $100 worth of CPU cycles in order to register a top(ish) level domain. This is currently how the real DNS system works....maybe a very top level domain would cost $100M CPU cycles to register to avoid a completely flat name space. I love having these conversations on public mailing lists because you know some bastard would patent these pretty obvious ideas otherwise. -- Justin Chapweske, Lead Swarmcast Developer, OpenCola Inc. http://www.sourceforge.net/projects/swarmcast/ From adam at cypherspace.org Wed Mar 7 21:43:21 2001 From: adam at cypherspace.org (Adam Back) Date: Wed, 7 Mar 2001 22:43:21 -0400 Subject: distributed immutable namespace In-Reply-To: ; from hal@finney.org on Wed, Mar 07, 2001 at 06:22:35PM -0800 References: Message-ID: <20010307224321.B6287@cypherpunks.ai> It would seem that someone could DoS the namespace as you describe. It sounds like this attack would also work on other namespace proposals, so is perhaps fairly general. What could we do about it? Charge real ecash would be a satisfying answer, but then we have boot strap problems, as there isn't one yet, and global e-cash systems robust against being themselves censored are probably an even harder problem. Perhaps you could use hashcash to pay for your name. name creations are infrequent enough that users could put up with involve a reasonably expensive computation. Users of names could also submit hashcash on the names they use so that popular names get higher valued hashcash. Also you could probably retain auditability if you allowed policies of dropping the lowest valued names in event of a flood. None of this prevents attacks, just makes them a little more expensive. An is-a-person credential and a limited quota per-person might be nice too, but that has it's own boot strap problems, and imports trust on the credential issuer. Adam On Wed, Mar 07, 2001 at 06:22:35PM -0800, hal at finney.org wrote: > Adam Back writes: > > The idea is to try to create a global namespace > > collaboratively maintained by servers which audit each > > others behavior and compensate for rogue behavior in > > collaboration with client name server protocols. > > That's an interesting idea, but isn't there a danger that a first-come > first-served policy will result in someone writing a script to reserve > all one-letter, two-letter, three-letter words etc. as fast as he can > generate keys? From hal at finney.org Wed Mar 7 22:13:01 2001 From: hal at finney.org (hal at finney.org) Date: Wed, 7 Mar 2001 19:13:01 -0800 Subject: distributed immutable namespace Message-ID: <200103080313.TAA01318@finney.org> Justin Capweske writes: > You could slow it down with a "hash cash" type protocol where a person > would have to for example burn $100 worth of CPU cycles in order to > register a top(ish) level domain. This is currently how the real DNS > system works....maybe a very top level domain would cost $100M CPU cycles > to register to avoid a completely flat name space. Hashcash at this scale makes me wince; all those wasted cycles... Verisign bought Network Solutions for 21 BILLION dollars. That gave them a big chunk of .com, .org and .net. Can you imagine burning through that much hashcash? Hashcash is rent dissipation in action. It doesn't make economic sense to sell assets for hashcash. Better to set up some kind of global fund and let buyers pay real money, then distribute the proceeds to everyone on earth. Or maybe use the money to reduce global warming, or to save the whales. Anything is better than flushing the money down the toilet, which is what hashcash does. Hal From retep at penguinpowered.com Wed Mar 7 22:46:09 2001 From: retep at penguinpowered.com (Peter Todd) Date: Wed, 7 Mar 2001 22:46:09 -0500 Subject: distributed immutable namespace In-Reply-To: ; from hal@finney.org on Wed, Mar 07, 2001 at 07:13:01PM -0800 References: Message-ID: <20010307224609.B3677@petes.localdomain> On Wed, Mar 07, 2001 at 07:13:01PM -0800, hal at finney.org wrote: > Hashcash at this scale makes me wince; all those wasted cycles... You know I heard a estimites that Seti at Home burns 18tons of fossile fuel a *minute* Hashcash would do the same thing. > Verisign bought Network Solutions for 21 BILLION dollars. That gave > them a big chunk of .com, .org and .net. Can you imagine burning > through that much hashcash? > > Hashcash is rent dissipation in action. It doesn't make economic sense > to sell assets for hashcash. What do you mean by "rent dissipation in action"? The big problem is hashcash is inflation. Mores law plus vastly increasing supply. We'll end up with insanely high inflation rates if we're not carefull, at least 100% every 18 months. (mores law) Probably a few hundred times higher in practice. Inflation causes another problem. Everything dealing with hashcash must be able to automaticly adjust prices in realtime. If we end up with 10% a day inflation rates, not impossible by any means, we're going to have to do that. And finally inflation may become such a problem that we outgrow the storage space available to store all this hashcash Compound interest is a wonderfull thing you know... > Better to set up some kind of global fund and let buyers pay real money, > then distribute the proceeds to everyone on earth. Or maybe use the > money to reduce global warming, or to save the whales. Anything is better > than flushing the money down the toilet, which is what hashcash does. But hashcash doesn't need any centralized authority to work. Find something else that doesn't. -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 232 bytes Desc: not available Url : http://lists.ibiblio.org/pipermail/bluesky/attachments/20010307/96c5d957/attachment.bin From hal at finney.org Wed Mar 7 22:59:30 2001 From: hal at finney.org (hal at finney.org) Date: Wed, 7 Mar 2001 19:59:30 -0800 Subject: distributed immutable namespace Message-ID: <200103080359.TAA04178@finney.org> Peter Todd writes: > On Wed, Mar 07, 2001 at 07:13:01PM -0800, hal at finney.org wrote: > > Hashcash is rent dissipation in action. It doesn't make economic sense > > to sell assets for hashcash. > > What do you mean by "rent dissipation in action"? Let's suppose that of the $21 billion that Network Solutions went for, half was for .com, so it is worth $10 billion. Then when we make .com available to the highest hashcash bidder, it makes sense for potential bidders to waste up to $10 billion in cycles in order to generate their hashcash. Anyone who wastes less than this won't get it. Therefore there will be $10 billion wasted in order to acquire an asset worth $10 billion. Net benefit to society: zero. Whereas if the $10 billion had gone into a fund to do something useful, there would be a net positive benefit to society. > > Better to set up some kind of global fund and let buyers pay real money, > > then distribute the proceeds to everyone on earth. Or maybe use the > > money to reduce global warming, or to save the whales. Anything is better > > than flushing the money down the toilet, which is what hashcash does. > > But hashcash doesn't need any centralized authority to work. Find > something else that doesn't. Well, this could be a DEcentralized authority, similar to what Adam was proposing. But authority it is. Hal From orasis at acm.cs.umn.edu Wed Mar 7 17:45:53 2001 From: orasis at acm.cs.umn.edu (Justin Chapweske) Date: Wed, 7 Mar 2001 22:45:53 +0000 Subject: distributed immutable namespace In-Reply-To: ; from adam@cypherspace.org on Wed, Mar 07, 2001 at 10:43:21PM -0400 References: Message-ID: <20010307224553.D33945@go.cs.umn.edu> God I love synchronicity (same ideas at the same time). > > Perhaps you could use hashcash to pay for your name. name > creations are infrequent enough that users could put up > with involve a reasonably expensive computation. Users of > names could also submit hashcash on the names they use so > that popular names get higher valued hashcash. > -- Justin Chapweske, Lead Swarmcast Developer, OpenCola Inc. http://www.sourceforge.net/projects/swarmcast/ From orasis at acm.cs.umn.edu Wed Mar 7 17:49:39 2001 From: orasis at acm.cs.umn.edu (Justin Chapweske) Date: Wed, 7 Mar 2001 22:49:39 +0000 Subject: distributed immutable namespace In-Reply-To: ; from hal@finney.org on Wed, Mar 07, 2001 at 07:13:01PM -0800 References: Message-ID: <20010307224939.E33945@go.cs.umn.edu> > > Hashcash at this scale makes me wince; all those wasted cycles... > Very good point. So what we really need is a non-profit DNS where the non-profit organization technically has no control over the DNS system. This is theoretically possible? -- Justin Chapweske, Lead Swarmcast Developer, OpenCola Inc. http://www.sourceforge.net/projects/swarmcast/ From adam at cypherspace.org Wed Mar 7 23:48:51 2001 From: adam at cypherspace.org (Adam Back) Date: Thu, 8 Mar 2001 00:48:51 -0400 Subject: distributed immutable namespace In-Reply-To: ; from hal@finney.org on Wed, Mar 07, 2001 at 07:59:30PM -0800 References: Message-ID: <20010308004851.A35061@cypherpunks.ai> On Wed, Mar 07, 2001 at 07:59:30PM -0800, hal at finney.org wrote: > > > Better to set up some kind of global fund and let buyers pay real money, > > > then distribute the proceeds to everyone on earth. Or maybe use the > > > money to reduce global warming, or to save the whales. Anything is better > > > than flushing the money down the toilet, which is what hashcash does. > > > > But hashcash doesn't need any centralized authority to work. Find > > something else that doesn't. > > Well, this could be a DEcentralized authority, similar to what Adam > was proposing. But authority it is. You would want the ability to buy names strongly anonymously; so you want a payer anonymous ecash system which you can pay for with credit cards, or perhaps with checks as credit cards have too high a fraud rate to risk selling strongly anonymous ecash for. In the short term the payment system would be the system weak point because it's an identifiable central server. Censors would close down the mint, much as the RIAA is having an easy job getting courts to rule that Napster's central servers have to shut down. Even though ecash to pay for names in a namespace is several steps removed from content some of which RIAA may dispute, I doubt a court will feel this any reason not to rule that the mint be shut down. Perhaps there is even a precedent of sorts in the MPAA decision ruling that links to DeCSS source code should be removed. Either way we have a problem with DoS against both the namespace and the distributed content store itself. It may be interesting to investigate how well the name resolution, auditability and revision recovery protocols can be made to scale with number of name servers and percentage of modified values. Hashcash may burn resources, but it appears to be all that we have in the way of distributed DoS resistance. Also hashcash would typically burn resources that would be revving away idle anyway (modulo the difference in power saving state some hardware may switch to if the processor is idle). Unless it got really heated and people started building expensive custom hardware purely to escalate the race on desirable namespace. Another risk for hashcash apart from custom hardware races is virii -- imagine a virus or worm with a payload which computed hashcash collisions. If names are richer there may be less pressure to land grab names to re-sell. Internet domains are basically a single word in .{com,net,org}; if the name space had an arbitrary Top Level Domains and 2nd level domain like namespace it would be easier to find nice sounding names. Whether or not owning a names gives ownership of all names which contain it as a left substring is another question. In eternity USENET http://foo.eternity/ could have completely different ownership to http://foo.eternity/bar/, and there was no support for a link between them. The ownership of foo.eternity just gave the ability to choose which sub-URLs to link from the index.html file. Other people could have sub-URLs which you don't link to (or even which you do), either way authorship signatures describe authorship, and hypertext references provide links. I did think eternity USENET style names might be less vulnerable to land grabbing because the owner of the virtual domain name doesn't automatically own URLs under that. But perhaps that's undesirable anyway because it violates expectations that the URLs which look like they are on the same virtual domain are somehow under related ownership. Adam From md98-osa at nada.kth.se Thu Mar 8 08:06:19 2001 From: md98-osa at nada.kth.se (Oskar Sandberg) Date: Thu, 8 Mar 2001 14:06:19 +0100 Subject: distributed immutable namespace In-Reply-To: ; from adam@cypherspace.org on Wed, Mar 07, 2001 at 10:16:15PM -0400 References: Message-ID: <20010308140619.G800@hobbex.localdomain> On Wed, Mar 07, 2001 at 10:16:15PM -0400, Adam Back wrote: <> > There are two protocols involved: > > 1) Public Auditability - Use Merkle Authentication Trees > [*] to prevent revisionism on the part of namespace > servers. Namespace servers publish master hashes, users > and namespace servers audit each others adherence to the > global immutable root policy. Sorry if I'm being stupid here, but what exactly is the tree authenticating? It seems to me that MATs need to be static, which a namespace would obviously not be. -- 'DeCSS would be fine. Where is it?' 'Here,' Montag touched his head. 'Ah,' Granger smiled and nodded. Oskar Sandberg md98-osa at nada.kth.se From adam at cypherspace.org Thu Mar 8 13:10:28 2001 From: adam at cypherspace.org (Adam Back) Date: Thu, 8 Mar 2001 14:10:28 -0400 Subject: distributed immutable namespace In-Reply-To: ; from Oskar Sandberg on Thu, Mar 08, 2001 at 02:06:19PM +0100 References: Message-ID: <20010308141028.A84590@cypherpunks.ai> On Thu, Mar 08, 2001 at 02:06:19PM +0100, Oskar Sandberg wrote: > > 1) Public Auditability - Use Merkle Authentication Trees > > [*] to prevent revisionism on the part of namespace > > servers. Namespace servers publish master hashes, users > > and namespace servers audit each others adherence to the > > global immutable root policy. > > Sorry if I'm being stupid here, but what exactly is the tree > authenticating? It seems to me that MATs need to be static, which a > namespace would obviously not be. You publish a list of master hashes, say one per day, each hashing the days master and the previous days master hash. If you care you can get the server to commit to names blind so that you can then prove it excluded you. (eg. hash name you would submit with random nonce, get server to sign that random number hashed with todays master hash, then submit the real name and nonce so the server can verify. If the name does not show up in the next days hash tree, you have proof that it excluded you in the form of the signed receipt, on presentation of that receipt the server will either add you to the current tree or be considered t ohave cheated. Adam From ian at octayne.com Thu Mar 8 13:32:50 2001 From: ian at octayne.com (Ian Clarke) Date: Thu, 8 Mar 2001 10:32:50 -0800 Subject: distributed immutable namespace In-Reply-To: ; from adam@cypherspace.org on Wed, Mar 07, 2001 at 10:43:21PM -0400 References: Message-ID: <20010308103250.E1618@technic.uprizer.com> On Wed, Mar 07, 2001 at 10:43:21PM -0400, Adam Back wrote: > Perhaps you could use hashcash to pay for your name. name > creations are infrequent enough that users could put up > with involve a reasonably expensive computation. Users of > names could also submit hashcash on the names they use so > that popular names get higher valued hashcash. This same issue came up on the Freenet mailing list a while back. We weren't happy with hashcash since it would make your ability to publish information proportional to the speed of your PC (which is roughly proportional to the size of your wallet), and we didn't like that at a philisophical level. I suggested a concept called "Think Cash", here is a copy of a document I wrote to describe the idea (note that this is really just an exploration of the problem more than a solution): -- One of the core problems with the Internet today, and its open trusting nature, is that of Denial of Service or DOS attacks. Basically, this is the computer equivalent of making it impossible for someone to use their phone by phoning them once a minute, 24 hours a day, 365 days a year automatically. Of course, with phones, people who did this would be cut off very quickly, however this is not so easy with the Internet. Further, tools such as Freenet which aim to protect people's anonymity, could compound this problem even more in some circumstances. (It is worth noting that Freenet's architecture does make DOS attacks less damaging by avoiding centralized control). One obvious example of DOS attacks is "Spam" or unsolicited email. Here people send out thousands or millions of emails to people, generally advertising a product or service that only a tiny fraction of the recepients will be interested in. Ways to address the problem 1. Increased regulation One approach is increased regulation of the Internet, making it easier to detect and remove those mounting DOS attacks. The problem with this is that many people (myself included) feel that the real value of the Internet is as a forum for free speech, and the tools developed to counter DOS attacks could easily be turned against other Internet users to censor them. In this case, the cure would be much worse than the disease. 2. Hash cash The second approach is to make it too costly for people to mount a DOS attack, but where the cost of normal internet usage remains insignificant. Hash cash is one solution where a user is forced to perform a time-consuming (and therefore money consuming) calculation, before submitting something to the system (such as sending an email or transmitting an IP packet to a given IP address). This is quite straight-forward to implement, however its usefulness is unclear. Firstly it would create a bias against users of slower computers. Secondly, even if it took 1 minute to perform the calculation nescessary to send an email, you could still send a considerable amount of email in a 24 hour period. 3. Think cash A more sophisticated idea, which (as far as I am aware) has not been considered prior to my suggesting it on one of the Freenet Project mailing lists several months ago, is to force ``a human`` to do a small amount of work, which only a human could do, before submitting each piece of information. The aim is to make it impossible to automate the task. Thinking of a way to do this is not easy - any such mechanism would need the following properties: 1. Only a human should be able to perform the task or test 2. A computer should be able to create a test automatically 3. A computer should be able to judge the results of the test Some possible approaches There are a number of general areas where we could look for such a test. Of particular interest to us should be tasks which humans find easy, but which machines find difficult. Examples include image recognition and speech recognition. The problem here is not so much creating the tests (requirement 2), but judging them (requirement 3). There is the further constraint that each test must have enough possible answers so that a computer could not simply attempt all of them. Testing for intelligence One particular line of enquiry which caught my attention was the "Turing Test". Alan Turing was a British cryptographer who helped to break German cyphers during the second world war. He also had a keen interest in the concept of machine intelligence, and in particular, how to test a machine for intelligence. His idea, what we now call the Turing test, was clever in that it largely evaded the question of what intelligence actually was. A simplified version of the actual test would work like this. Someone would have a conversation (using a keyboard and screen, much like IRC) with what could be either another person, or a computer pretending to be a person. They would have to decide whether they were talking to a human or a machine. This test would be repeated, and if they got it wrong around half of the time, then the machine could be regarded as being intelligent. This approach may suggest a solution to the dilemma outlined above. The seeds of a solution I started to think about whether it would be possible to create a system where all the users, while being tested by the system, were actually testing each-other too. Each user might be asked to provide an answer to a question which will demonstrate their intelligence, to provide a question which will test someone elses intelligence, and to give an opinion as to the answers given by a number of other people to several questions. Failure to do any of these things to the best of their ability may result in their submission not being accepted. Remaining issues Of course, there are still many details to be worked out, how can the above system be built so as to make abuse impossible? What if a computer made so many submissions that it saturated the system, and could validate its own submissions as being correct? None the less, at least this suggests that a robust think-cash mechanism is a possibility. As the threat of malicious attacks on the Internet get more and more serious, people may be forced to adopt a mechanism such as this. -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 232 bytes Desc: not available Url : http://lists.ibiblio.org/pipermail/bluesky/attachments/20010308/1eb22df3/attachment.bin From hal at finney.org Thu Mar 8 13:41:14 2001 From: hal at finney.org (hal at finney.org) Date: Thu, 8 Mar 2001 10:41:14 -0800 Subject: distributed immutable namespace Message-ID: <200103081841.KAA25549@finney.org> Another question on Adam's proposal: > The idea is to try to create a global namespace > collaboratively maintained by servers which audit each > others behavior and compensate for rogue behavior in > collaboration with client name server protocols. Given that there are multiple servers, how do you deal with database consistency? Specifically, what if two different servers both give out the same name, to different people? Don't you ultimately need a single server, or at least a global tightly-coupled database with locking semantics? How efficient can that be? Even if you design it to do this, how do you resolve disputes when two servers both claim to have followed the rules but both somehow have given out the same name? Now you need audit logs on your global database so you can figure out which one is wrong. I'm afraid that such a system would be limited in the volume of names that it could handle. Maybe it would be OK if we envisioned it being used for a relatively small number of TLDs, and then each of those operates its own name service. Hal From orasis at acm.cs.umn.edu Thu Mar 8 07:50:50 2001 From: orasis at acm.cs.umn.edu (Justin Chapweske) Date: Thu, 8 Mar 2001 12:50:50 +0000 Subject: distributed immutable namespace In-Reply-To: ; from ian@octayne.com on Thu, Mar 08, 2001 at 10:32:50AM -0800 References: Message-ID: <20010308125050.I33945@go.cs.umn.edu> This is very similar to what mindpixel does. Its cool, check it out: http://www.mindpixel.com/ > > The seeds of a solution > I started to think about whether it would be possible to create a system > where all the users, while being tested by the system, were actually > testing each-other too. Each user might be asked to provide an answer to > a question which will demonstrate their intelligence, to provide a > question which will test someone elses intelligence, and to give an > opinion as to the answers given by a number of other people to several > questions. Failure to do any of these things to the best of their > ability may result in their submission not being accepted. > > Remaining issues > Of course, there are still many details to be worked out, how can the > above system be built so as to make abuse impossible? What if a computer > made so many submissions that it saturated the system, and could > validate its own submissions as being correct? > None the less, at least this suggests that a robust think-cash mechanism > is a possibility. As the threat of malicious attacks on the Internet get > more and more serious, people may be forced to adopt a mechanism such as > this. Content-Description: footer > --- > You are currently subscribed to bluesky as: orasis at acm.cs.umn.edu > For list information visit http://www.transarc.ibm.com/~ota/bluesky/ -- Justin Chapweske, Lead Swarmcast Developer, OpenCola Inc. http://www.sourceforge.net/projects/swarmcast/ From adam at cypherspace.org Thu Mar 8 14:11:59 2001 From: adam at cypherspace.org (Adam Back) Date: Thu, 8 Mar 2001 15:11:59 -0400 Subject: distributed immutable namespace In-Reply-To: ; from hal@finney.org on Thu, Mar 08, 2001 at 10:41:14AM -0800 References: Message-ID: <20010308151159.B87951@cypherpunks.ai> On Thu, Mar 08, 2001 at 10:41:14AM -0800, hal at finney.org wrote: > Another question on Adam's proposal: > > The idea is to try to create a global namespace > > collaboratively maintained by servers which audit each > > others behavior and compensate for rogue behavior in > > collaboration with client name server protocols. > > Given that there are multiple servers, how do you deal with database > consistency? Specifically, what if two different servers both give > out the same name, to different people? Don't you ultimately need > a single server, or at least a global tightly-coupled database with > locking semantics? How efficient can that be? You need a single server to be responsible for each chunk of namespace as you describe. Other name servers could cache responses, audit other servers, and keep information to be able to undo modifications rogue servers make. > I'm afraid that such a system would be limited in the volume of names > that it could handle. Maybe it would be OK if we envisioned it being > used for a relatively small number of TLDs, and then each of those > operates its own name service. So with hierarchical namespaces like DNS, the risk is that the nameserver with control of a subdomain can censor or be coerced into censoring a name. My suggestion isn't to make it more distributed, but to detect and have a protocol on the client and other servers which allows modifications to be undone. Scalability would be related to DNS, lots of caching helps scalability. Adam From mfreed at MIT.EDU Thu Mar 8 21:00:32 2001 From: mfreed at MIT.EDU (Michael J Freedman) Date: Thu, 08 Mar 2001 21:00:32 -0500 Subject: distributed immutable namespace: Think Cash In-Reply-To: References: Message-ID: <200103090201.VAA06484@melbourne-city-street.MIT.EDU> At 10:32 AM 3/8/2001 -0800, you wrote: >This same issue came up on the Freenet mailing list a while back. We >weren't happy with hashcash since it would make your ability to publish >information proportional to the speed of your PC (which is roughly >proportional to the size of your wallet), and we didn't like that at a >philisophical level. This goes back to the question as to the particular need for POWs such as hash cash. Our contention is that for resources which become only temporarily used -- such as bandwidth (Gnutella), CPUs cycles, and caches (Freenet) -- that you don't need a congestion management mechanism *at all times*. Rather, you only need to dynamically change your "publishing" (querying, etc.) requirements based on the current load of your system. That is, as your system gets congested due to temporary load, raise the amount of required payments dynamically. We refer to this as an "accountability slider" in the O'Reilly P2P book. If your resources are cumulatively used -- such as disk space in permanent storage systems (Free Haven) -- then enforcing micropayment requirements when you start getting congested is *already too late.* Thus, for these types of systems, our contention (in the micropayment world) you need 'em all the time. I have some concerns as to the real viability of "Think Cash" in a distributed P2P environment. >task. Thinking of a way to do this is not easy - any such mechanism >would need the following properties: > > 1. Only a human should be able to perform the task or test > 2. A computer should be able to create a test automatically > 3. A computer should be able to judge the results of the test > > >speech recognition. The problem here is not so much creating the tests >(requirement 2), but judging them (requirement 3). There is the further >constraint that each test must have enough possible answers so that a >computer could not simply attempt all of them. > First of all, I think this is actually an incredibly difficult problem which you suggest. Let's describe this in terms of a normal interactive protocol (IP) framework. You are suggesting that your proof system has a prover (P) and verifier (V), such that after the IP, V should only accept (with probability 1-\epsilon, 1-constant, whatever) if P \element {humans}. Getting this (completeness). and soundness (no cheating) with small enough false positives and false negatives is, my opinion, going to be a very hard problem. The issue is compounded that you are working in a distributed peer-to-peer environment. Generally, we would like protocols to be simple, well-understood, and light-weight. This type of system would likely be very complex, hard to formalize, and thus hard to really analyze. You mention the Turing test. Unfortunately, V in that system is a human, not a computer. The ability for computers to perform natural language processing is fairly well along, but it's definately *not* a light-weight operation. But language understanding is much further back, especially if your language domain is fairly large. For example, MIT LCS's Spoken Language Systems group has good working systems for language understanding, but each system only handles a small "problem:" the weather, driving directions, airplane reservations, etc. >The seeds of a solution >I started to think about whether it would be possible to create a system >where all the users, while being tested by the system, were actually >testing each-other too. Each user might be asked to provide an answer to >a question which will demonstrate their intelligence, to provide a >question which will test someone elses intelligence, and to give an >opinion as to the answers given by a number of other people to several >questions. Failure to do any of these things to the best of their >ability may result in their submission not being accepted. This proposals layering many two-way interactions in the "intelligence testing" protocol. It also suggests that users -- who use the system with widely varying educational backgrounds, computer literacy, cultures, comprehension of the technologies involved, etc. -- to "judge" each other's intelligence. And then make operational decisions based on their limited interaction and limited understanding of each other. Make the problems too hard, and your false negatives go way up. Make the problems too each, and I'll write an automated simulator that'll convince most of them. Your false positives go up. Throw some machine learning in there? Then you get away from the "user-interaction" model and you added lots of complexity. When you aren't formalizing the problem -- like hash cash, client puzzles, Naor/Dwork's paying for processing -- you aren't establishing complexity classes, in any sense, for the issues at hand. >Remaining issues >Of course, there are still many details to be worked out, how can the >above system be built so as to make abuse impossible? What if a computer >made so many submissions that it saturated the system, and could >validate its own submissions as being correct? See above. >None the less, at least this suggests that a robust think-cash mechanism >is a possibility. As the threat of malicious attacks on the Internet get >more and more serious, people may be forced to adopt a mechanism such as >this. I fear "robust" is something that hardly applies. Your goal might be an admirable one, but I am very hesitant to think that a "Think Cash" system as you describe is realizable in the near- to medium- future. --mike ----- "Not all those who wander are lost." mfreed at mit.edu From ian at freenetproject.org Fri Mar 9 00:18:04 2001 From: ian at freenetproject.org (Ian Clarke) Date: Thu, 8 Mar 2001 21:18:04 -0800 Subject: Think cash In-Reply-To: ; from mfreed@MIT.EDU on Thu, Mar 08, 2001 at 09:00:32PM -0500 References: Message-ID: <20010308211804.C1313@technic.uprizer.com> On Thu, Mar 08, 2001 at 09:00:32PM -0500, Michael J Freedman wrote: > I have some concerns as to the real viability of "Think Cash" in a > distributed P2P environment. No interesting problem is ever easy. > First of all, I think this is actually an incredibly difficult problem > which you suggest. Again, no interesting problem is ever easy ;-) > You mention the Turing test. Unfortunately, V in that system is a human, > not a computer. The ability for computers to perform natural language > processing is fairly well along, but it's definitely *not* a light-weight > operation. But language understanding is much further back, especially if > your language domain is fairly large. For example, MIT LCS's Spoken > Language Systems group has good working systems for language understanding, > but each system only handles a small "problem:" the weather, driving > directions, airplane reservations, etc. Yes, but if you read on you see that I am actually talking about setting up the system in such a manner that the humans in the system actually test each other, and are incentivised to do a good job. Again, this would be difficult to arrange, but not necessarily impossible. > >The seeds of a solution > >I started to think about whether it would be possible to create a system > >where all the users, while being tested by the system, were actually > >testing each-other too. Each user might be asked to provide an answer to > >a question which will demonstrate their intelligence, to provide a > >question which will test someone else's intelligence, and to give an > >opinion as to the answers given by a number of other people to several > >questions. Failure to do any of these things to the best of their > >ability may result in their submission not being accepted. > > This proposals layering many two-way interactions in the "intelligence > testing" protocol. It also suggests that users -- who use the system with > widely varying educational backgrounds, computer literacy, cultures, > comprehension of the technologies involved, etc. -- to "judge" each other's > intelligence. As someone who has spent several years studying Artificial Intelligence (and being largely disappointed by it), one of the most interesting things is that the hardest things for a computer to do, tend to be the easiest things for a human to do, and the converse is also true. I don't think these exchanges would need to test anyone's computer literacy, or educational qualifications. As for cultural differences, that is hardly a problem on the Internet of today! (How many of you are *not* white middle-class males?). Again, I think that you are judging this too harshly, I am not saying that this would be easy, or even possible, but it is fun to think about it, and who knows, maybe something useful will emerge. > Make the problems too hard, and your false negatives go way up. Make the > problems too each, and I'll write an automated simulator that'll convince > most of them. Your false positives go up. Throw some machine learning in > there? Then you get away from the "user-interaction" model and you added > lots of complexity. This is the nice thing about the "reflected turing test" approach, it is a difficult test, but the computer doesn't really have to do the testing (although it does have to arrange things carefully). > When you aren't formalizing the problem -- like hash cash, client puzzles, > Naor/Dwork's paying for processing -- you aren't establishing complexity > classes, in any sense, for the issues at hand. I am not sure what you mean here, but it sounds like you are saying that there is no point in speculation. If that is the case, how do you ever think of anything original or interesting? > >None the less, at least this suggests that a robust think-cash mechanism > >is a possibility. As the threat of malicious attacks on the Internet get > >more and more serious, people may be forced to adopt a mechanism such as > >this. > > I fear "robust" is something that hardly applies. Why not? Just because something is difficult doesn't mean it is impossible. Freenet showed me that. > Your goal might be an admirable one, but I am very hesitant to think that a > "Think Cash" system as you describe is realizable in the near- to medium- > future. So much pessimism in one so young.... ;-) Ian. -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 232 bytes Desc: not available Url : http://lists.ibiblio.org/pipermail/bluesky/attachments/20010308/74ed053d/attachment.bin From mfreed at MIT.EDU Fri Mar 9 01:21:10 2001 From: mfreed at MIT.EDU (Michael J Freedman) Date: Fri, 09 Mar 2001 01:21:10 -0500 Subject: Think cash In-Reply-To: References: Message-ID: <200103090621.BAA08597@melbourne-city-street.MIT.EDU> At 09:18 PM 3/8/2001 -0800, Ian Clarke wrote: >> Make the problems too hard, and your false negatives go way up. Make the >> problems too each, and I'll write an automated simulator that'll convince >> most of them. Your false positives go up. Throw some machine learning in >> there? Then you get away from the "user-interaction" model and you added >> lots of complexity. > >This is the nice thing about the "reflected turing test" approach, it is >a difficult test, but the computer doesn't really have to do the testing >(although it does have to arrange things carefully). > > >> When you aren't formalizing the problem -- like hash cash, client puzzles, >> Naor/Dwork's paying for processing -- you aren't establishing complexity >> classes, in any sense, for the issues at hand. > >I am not sure what you mean here, but it sounds like you are saying that >there is no point in speculation. If that is the case, how do you ever >think of anything original or interesting? What I just meant is that these other solutions are based on computational problems that are accepted as "hard" (assuming that one-way functions exist). When you start requiring user interaction in a different manner, you start added a lot of uncertainty into your models. Various sociological effects come up that may be much less predictable. You're okay if your system users understand what it's trying to do, but if this is made for the average end-user (I think that's a goal of a lot of p2p systems), I'd try to do the following: tcsh% ./ run-bot "c00ld00d" tcsh% [c00ld00d launched...] tcsh% [c00ld00d finds user "Newbie"] c00ld00d: sends you [Newbie] a message: "Hey!!! How r u?!? can u click OK for me and i'll click OK for u? Cool? THX!!!!!" >> >None the less, at least this suggests that a robust think-cash mechanism >> >is a possibility. As the threat of malicious attacks on the Internet get >> >more and more serious, people may be forced to adopt a mechanism such as >> >this. >> >> I fear "robust" is something that hardly applies. > >Why not? Just because something is difficult doesn't mean it is >impossible. Freenet showed me that. I apologize if I came across too strongly. I think what Freenet is trying to achieve is really good, and that a number of really smart people are working towards similar ends. One of the whole reasons for this mailing lists is to discuss our thoughts. The only reason I brought up these points is to try and emphasize some problems in building complex systems. It's hard. I think we are all aware of that. I think we're starting to see some second systems-type effects: we're trying to layer handwaved, complex solutions over handwaved, complex systems. It's always been an endemic problem with system design. =) Hopefully, we can find some good answers to some of these hard problems. Thanks, --mike ----- "Not all those who wander are lost." mfreed at mit.edu From md98-osa at nada.kth.se Fri Mar 9 02:03:49 2001 From: md98-osa at nada.kth.se (Oskar Sandberg) Date: Fri, 9 Mar 2001 08:03:49 +0100 Subject: Think cash In-Reply-To: ; from ian@freenetproject.org on Thu, Mar 08, 2001 at 09:18:04PM -0800 References: Message-ID: <20010309080348.A644@hobbex.localdomain> On Thu, Mar 08, 2001 at 09:18:04PM -0800, Ian Clarke wrote: <> > > When you aren't formalizing the problem -- like hash cash, client puzzles, > > Naor/Dwork's paying for processing -- you aren't establishing complexity > > classes, in any sense, for the issues at hand. > > I am not sure what you mean here, but it sounds like you are saying that > there is no point in speculation. If that is the case, how do you ever > think of anything original or interesting? Ian, if people can't criticize or doubt ideas, how will we ever discuss anything original or interesting? -- 'DeCSS would be fine. Where is it?' 'Here,' Montag touched his head. 'Ah,' Granger smiled and nodded. Oskar Sandberg md98-osa at nada.kth.se From alk at pobox.com Fri Mar 9 03:17:47 2001 From: alk at pobox.com (Tony Kimball) Date: Fri, 9 Mar 2001 02:17:47 -0600 (CST) Subject: Think cash References: Message-ID: <15016.37291.224738.364983@spanky.love.edu> It seems not so hard to me. For example, abstractly, the computer can make a picture, and ask a question about it which requires significant understanding, and parse the reply trivially. For example, concretely, the computer might compose many differently colored pictures of fish so that exactly one small fish is within the concavity of the mouth of exactly one, differently colored, larger fish, and ask "which color of fish is about to be eaten by which other color of fish?" The answer can be either a pair of colors or a sentence which is scanned for case and voice, to normalize color order, and color equivalence class word lists are checked to verify the answer. I think the general method is a 2-day hack, tops, with perhaps 30 minutes each to add trivial variations to the dictionary of image relations. Perhaps the real problem here is like the eye tests at the DMV: It costs more think cash to devise the think cash test than it does to build a dictionary of queries and replies! What I find truly difficult is devising think cash tests which do not rely, as this example would have to do in order to be effective, upon "security through obscurity". From lists at octayne.com Fri Mar 9 03:34:23 2001 From: lists at octayne.com (Ian Clarke) Date: Fri, 9 Mar 2001 00:34:23 -0800 Subject: Think cash In-Reply-To: ; from md98-osa@nada.kth.se on Fri, Mar 09, 2001 at 08:03:49AM +0100 References: Message-ID: <20010309003423.G1313@technic.uprizer.com> Content-Transfer-Encoding: quoted-printable On Fri, Mar 09, 2001 at 08:03:49AM +0100, Oskar Sandberg wrote: > On Thu, Mar 08, 2001 at 09:18:04PM -0800, Ian Clarke wrote: > <>=20 > > > When you aren't formalizing the problem -- like hash cash, client puz= zles, > > > Naor/Dwork's paying for processing -- you aren't establishing complex= ity > > > classes, in any sense, for the issues at hand. =20 > >=20 > > I am not sure what you mean here, but it sounds like you are saying that > > there is no point in speculation. If that is the case, how do you ever > > think of anything original or interesting? >=20 > Ian, if people can't criticize or doubt ideas, how will we ever discuss > anything original or interesting? Of course people can criticize ideas, but what I was complaining about (which may or may not be what was intended) was criticising an idea, not on the basis of the idea itself, but on the basis that it is ambitious, or that it is attempting to achieve something where a solution is not immediately obvious. It is the difference between saying "that won't work" and "you will never find a solution". Ian. -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 232 bytes Desc: not available Url : http://lists.ibiblio.org/pipermail/bluesky/attachments/20010309/f42f7b23/attachment.bin From adam at cypherspace.org Fri Mar 9 03:28:47 2001 From: adam at cypherspace.org (Adam Back) Date: Fri, 9 Mar 2001 04:28:47 -0400 Subject: Think cash In-Reply-To: ; from Tony Kimball on Fri, Mar 09, 2001 at 02:17:47AM -0600 References: Message-ID: <20010309042847.B75666@cypherpunks.ai> A friend of mine had a go at building such a puzzle to deter automated downloads of activation codes. He built a prototype. It was just a pattern matching problem. It would take a set of numbers draw them in a pixel array and munge it around a bit, scatter random pixels over it. Humans can easily read off the number. It would take a bit of effort to build OCR software that can read through that noise. But I'm pretty sure it could be done if somone were motivated. You see a similar thing where people render their email addresses as a GIF to hide it from spiders. Adam On Fri, Mar 09, 2001 at 02:17:47AM -0600, Tony Kimball wrote: > > It seems not so hard to me. > > For example, abstractly, the computer can make a picture, and ask a > question about it which requires significant understanding, > and parse the reply trivially. From graydon at venge.net Fri Mar 9 08:16:33 2001 From: graydon at venge.net (graydon at venge.net) Date: Fri, 9 Mar 2001 08:16:33 -0500 Subject: Think cash In-Reply-To: ; from alk@pobox.com on Fri, Mar 09, 2001 at 02:17:47AM -0600 References: Message-ID: <20010309081632.A2407@venge.net> On Fri, Mar 09, 2001 at 02:17:47AM -0600, Tony Kimball wrote: > It seems not so hard to me. this is precisely the matter which is troubling about these comments. caesar ciphers "seemed" pretty hard too. an awful lot of work has gone into classifying exactly _how_ hard certain problems are, within a framework of more clearly defined mathematics. while it may be true that the human brain has a "leg up" on certain types of problems, we have essentially no theoretical work to tell us _how much_ of a leg up it is, what sort of computational problems the leg up depends on, and why we should think that these computational problems are of the sort where the person with a leg up can consistently "scale" the problem difficulty to adapt to a persistent attacker. moreover, the (brief) bit of cognitive science I got lead me to believe that scaling the computational power of the human brain is not really the sort of thing we know how to do anyways, so even if the leg up is _theoretically_ scalable, I don't see why we should expect a human interface to resist brute forcing, long term. an example of a rediculously crude analysis: even assuming that there is no such thing as pattern matching technology on computers, and they are using memcmp to break your code, and humans have so much of a leg up that they can pick out a _single_ salient bit of data in a full screen truecolor image, the brute force solution is to take 1024 x 768 x (2^24) images and write down what each of them is a picture of. do the math: 1024 768 2 24 ^ 16777216 * 12884901888 * 13194139533312 1500000000 * 1440 * 2160000000000 /> 6.10839793208 so the people's republic of china, looking at 1 image a minute, could completely defeat this system in 6 days. that is a quantitative statement, admittadly bogus, but it illustrates the point: until you ground your problem model in some math, you are _not_ making quantitative statements but rather waving your hands, and the people in the audience with enough experience watching people wave their hands (or enough experience waving our own hands) will be justifiably skeptical. -graydon From dmolnar at hcs.harvard.edu Fri Mar 9 08:50:21 2001 From: dmolnar at hcs.harvard.edu (dmolnar) Date: Fri, 9 Mar 2001 08:50:21 -0500 (EST) Subject: Think cash In-Reply-To: Message-ID: On Fri, 9 Mar 2001 graydon at venge.net wrote: > so the people's republic of china, looking at 1 image a minute, could > completely defeat this system in 6 days. that is a quantitative Depending on what we're trying to do, slowing down an automated attack may be enough. For password systems, it's not enough. For using think cash as an alternative to proofs of work in order to slow down DoS attacks, maybe it is. Although what always bothers me about these sorts of solutions is that even checking a challenge introduces overhead...so they don't solve the problem so much as defray it. > the audience with enough experience watching people wave their hands (or > enough experience waving our own hands) will be justifiably skeptical. Agreed. Which is why we should start looking for related work and start trying to formalize the idea. For instance, if we assume that a human has a x% chance of recognizing pictures, and a computer is known to have a y% chance, and there's a gap, what can we build from that gap? It seems to me the "right" thing to do would be to abstract out what the problem is and start talking only in terms of the human's advantage. (What notion of "advantage" makes sense here, anyway?) Then we can worry about which problems are actually hard independently of our think cash protocols. Maybe we won't find any provable gaps. Maybe the gaps which we do find will be too small for comfort (I doubt we'll find anything which seems exponentially easier for a human, for instance). I heard recently of a project at CMU which tried to leverage human pattern recognition for passphrases; I'll see if I can find more information about that. This idea of a "reflected Turing test" also sounds interesting. I regret I haven't read Ian's message in enough detail to comment on it fully. Still, it sounds like it might be a good idea if you can assume that lots of people are sitting at their computers in some p2p system and willing to participate. So what kind of model can we build to test whether that's true? -David From retep at penguinpowered.com Thu Mar 8 20:46:36 2001 From: retep at penguinpowered.com (Peter Todd) Date: Thu, 8 Mar 2001 20:46:36 -0500 Subject: distributed immutable namespace In-Reply-To: ; from adam@cypherspace.org on Thu, Mar 08, 2001 at 12:48:51AM -0400 References: Message-ID: <20010308204636.A1507@retep.yi.org> On Thu, Mar 08, 2001 at 12:48:51AM -0400, Adam Back wrote: > Even though ecash to pay for names in a namespace is > several steps removed from content some of which RIAA > may dispute, I doubt a court will feel this any reason > not to rule that the mint be shut down. Perhaps there > is even a precedent of sorts in the MPAA decision > ruling that links to DeCSS source code should be > removed. We have to assume that we are living in a dictatorship where the mear possession of such software is illegal. Looking for loopholes in law is a fruitless venture in the long term. > Hashcash may burn resources, but it appears to be all > that we have in the way of distributed DoS resistance. It's a really great way to get past the centralized authorities needed for standard monetary systems that's for sure, probably the only way. The problem is the inflation issue. The inflation we're going to get is very extreme. Not really a problem in itself but designing algorithms to automaticly update pricing, *without* human intervention, isn't going to be easy. Secondly the inflation will be tough for humans to comprehend. What was worth 100 hashbucks a month ago would now be worth 1000 hashbucks. The interface would have to be constantly making comparisons to the cost of other resources. So instead of saying x will cost y hashbucks instead say x will cost the same amount needed to buy 1meg of bandwidth or something. Hmm... Given a perfect market, which is what we will end up with, the value in hashcash of *any* service is always going to be as low as it possibly can before average costs exceed profit. Sorry if I'm not explaining this well but because *anyone* can mint new money they are only going to bother to offer a service if it's more profitable to do that then just mint new hashcash. This will drive up inflation even more... On the good side the high-inflation is self-limiting. At a certain point it becomes easier to make the hashcash "legitimitly", IE by trading it for bandwidth for instance, then to simply create it because not including Moores law the "cost" to make new hashcash stays constant even if it's value goes down. BTW How excactly is this hashcash supposed to work as a generalized currency? I've got some ideas that I just came up with while trying to figure that out but others almost definetely have better ones. I understand how it can be used to limit access to resources, but what about as a virtual gold item that can be moved and distroyed and is hard to create? > Also hashcash would typically burn resources that would > be revving away idle anyway (modulo the difference in > power saving state some hardware may switch to if the > processor is idle). Unless it got really heated and > people started building expensive custom hardware purely > to escalate the race on desirable namespace. Another > risk for hashcash apart from custom hardware races is > virii -- imagine a virus or worm with a payload which > computed hashcash collisions. That'll happen. It's going to be really nasty when it becomes very profitible to steal computing power. -- retep at penguinpowered.com http://retep.tripod.com -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 232 bytes Desc: not available Url : http://lists.ibiblio.org/pipermail/bluesky/attachments/20010308/8f7afa4e/attachment.bin From orasis at acm.cs.umn.edu Fri Mar 9 12:29:35 2001 From: orasis at acm.cs.umn.edu (Justin Chapweske) Date: Fri, 9 Mar 2001 11:29:35 -0600 Subject: Think cash In-Reply-To: ; from dmolnar@hcs.harvard.edu on Fri, Mar 09, 2001 at 08:50:21AM -0500 References: Message-ID: <20010309112934.J23900@sorry.cs.umn.edu> > > Agreed. Which is why we should start looking for related work and start > trying to formalize the idea. > Again, look at the Mindpixel stuff (http://www.mindpixel.com/). Create an account and start talking to the thing and you will see that the system is pretty resistant to automated conversation from a robot. Whether something like this worked or not, it would be focusing much more energy on artificial intelligence and I think the community as a whole would grow their knowledge rather quickly to learn knew ways to apply this technology. -- Justin Chapweske, Lead Swarmcast Developer, OpenCola Inc. http://www.sourceforge.net/projects/swarmcast/ From retep at penguinpowered.com Fri Mar 9 17:15:13 2001 From: retep at penguinpowered.com (Peter Todd) Date: Fri, 9 Mar 2001 17:15:13 -0500 Subject: Think cash In-Reply-To: ; from ian@freenetproject.org on Thu, Mar 08, 2001 at 09:18:04PM -0800 References: Message-ID: <20010309171513.B3041@retep.yi.org> On Thu, Mar 08, 2001 at 09:18:04PM -0800, Ian Clarke wrote: > As someone who has spent several years studying Artificial Intelligence > (and being largely disappointed by it), one of the most interesting > things is that the hardest things for a computer to do, tend to be the > easiest things for a human to do, and the converse is also true. I > don't think these exchanges would need to test anyone's computer > literacy, or educational qualifications. As for cultural differences, > that is hardly a problem on the Internet of today! (How many of you are > *not* white middle-class males?). Again, I think that you are judging > this too harshly, I am not saying that this would be easy, or even > possible, but it is fun to think about it, and who knows, maybe > something useful will emerge. What happens when you want to do automated use of resources? Everything that needs thinkcash can't be done by computer alone, quite a disadvantage for many applicaitions IMO. For instance if there was thinkcash on insertion how would you do something like data-based redirects or automated mirroring? -- retep at penguinpowered.com http://retep.tripod.com -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 232 bytes Desc: not available Url : http://lists.ibiblio.org/pipermail/bluesky/attachments/20010309/5a0b6703/attachment.bin From ian at freenetproject.org Fri Mar 9 20:53:36 2001 From: ian at freenetproject.org (Ian Clarke) Date: Fri, 9 Mar 2001 17:53:36 -0800 Subject: Think cash In-Reply-To: ; from retep@penguinpowered.com on Fri, Mar 09, 2001 at 05:15:13PM -0500 References: Message-ID: <20010309175336.R1510@technic.uprizer.com> On Fri, Mar 09, 2001 at 05:15:13PM -0500, Peter Todd wrote: > What happens when you want to do automated use of resources? > Everything that needs thinkcash can't be done by computer alone, quite > a disadvantage for many applicaitions IMO. For instance if there was > thinkcash on insertion how would you do something like data-based > redirects or automated mirroring? Well, you need to decide, the things that can be automated can be spammed. One issue is how this could be achieved in a system like Freenet, when you are forwarding a message around, you don't want it to cost thinkcash every time it is transmitted from one node to another. The thinkcash would need to be tied to the CHK of the data being inserted. Ian. -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 232 bytes Desc: not available Url : http://lists.ibiblio.org/pipermail/bluesky/attachments/20010309/2be6e41d/attachment.bin From retep at penguinpowered.com Fri Mar 9 22:28:50 2001 From: retep at penguinpowered.com (Peter Todd) Date: Fri, 9 Mar 2001 22:28:50 -0500 Subject: Think cash In-Reply-To: ; from ian@freenetproject.org on Fri, Mar 09, 2001 at 05:53:36PM -0800 References: Message-ID: <20010309222850.C3041@retep.yi.org> On Fri, Mar 09, 2001 at 05:53:36PM -0800, Ian Clarke wrote: > On Fri, Mar 09, 2001 at 05:15:13PM -0500, Peter Todd wrote: > > What happens when you want to do automated use of resources? > > Everything that needs thinkcash can't be done by computer alone, quite > > a disadvantage for many applicaitions IMO. For instance if there was > > thinkcash on insertion how would you do something like data-based > > redirects or automated mirroring? > > Well, you need to decide, the things that can be automated can be > spammed. One issue is how this could be achieved in a system like Unless we use something like hashcash... > Freenet, when you are forwarding a message around, you don't want it to > cost thinkcash every time it is transmitted from one node to another. > The thinkcash would need to be tied to the CHK of the data being > inserted. Sounds like a easy avenue for a compromise... How can you verify that the thinkcash used for the CHK hasn't been tampered with, say by making it really easy? A hashcash system could simply make a x-bit collision with the CHK itself as verification. -- retep at penguinpowered.com http://retep.tripod.com -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 232 bytes Desc: not available Url : http://lists.ibiblio.org/pipermail/bluesky/attachments/20010309/48f3d87a/attachment.bin From md98-osa at nada.kth.se Sat Mar 10 08:30:56 2001 From: md98-osa at nada.kth.se (Oskar Sandberg) Date: Sat, 10 Mar 2001 14:30:56 +0100 Subject: Think cash In-Reply-To: ; from ian@freenetproject.org on Fri, Mar 09, 2001 at 05:53:36PM -0800 References: Message-ID: <20010310143056.A696@hobbex.localdomain> On Fri, Mar 09, 2001 at 05:53:36PM -0800, Ian Clarke wrote: <> > Well, you need to decide, the things that can be automated can be > spammed. One issue is how this could be achieved in a system like > Freenet, when you are forwarding a message around, you don't want it to > cost thinkcash every time it is transmitted from one node to another. > The thinkcash would need to be tied to the CHK of the data being > inserted. Humans can spam too. If answering one of these questions takes one second (and it can't take much more for somebody who knows the kind of questions if it's not going to be annoying to normal (stupid) people), than ten people working 16 hours could generate 576,000 such answers. This may be smaller than what a completely automated computer attack could do - but I still wouldn't want 576,000 emails in my box one morning. These sort of systems may shift the financial scale of spamming systems for profit, but a system has to resist even nutty people. And remember - just like the amount of processor power you can have working for you is proportional to your wallet, so is the amount of brain power (my commercial spam operation will outsource the "thinkcash" part to Indonesia). In general, the reason I don't find any type of POW appealing is I don't see the parrallels to the way things happen in meatspace. One of the things that has drawn me to P2P architectures is that they have so many parallels to how things happen in real social systems - and we know such systems have been in the trial and error phase a lot longer than computers. But POW is not how things work in the real world - you don't make a swingset where you have to wind up a spring (uselessly) every couple of swings, just to make sure that some kid doesn't hog the swings all day. It's stupid, and it would take the fun out of swinging. Instead, the other kids gang up, beat up the guy who won't get off, and make him eat sand. That is a sound system for dealing with someone who is abusing resources. I also don't like the wetware bias of the whole thinkcash thing. I would like to see computer agents as welcome as people and Marsians in any system I design, as long as they are good citizens like everybody else. -- 'DeCSS would be fine. Where is it?' 'Here,' Montag touched his head. 'Ah,' Granger smiled and nodded. Oskar Sandberg md98-osa at nada.kth.se From retep at penguinpowered.com Sat Mar 10 12:35:20 2001 From: retep at penguinpowered.com (Peter Todd) Date: Sat, 10 Mar 2001 12:35:20 -0500 Subject: Think cash In-Reply-To: ; from md98-osa@nada.kth.se on Sat, Mar 10, 2001 at 02:30:56PM +0100 References: Message-ID: <20010310123520.A4665@retep.yi.org> On Sat, Mar 10, 2001 at 02:30:56PM +0100, Oskar Sandberg wrote: > Humans can spam too. If answering one of these questions takes one second > (and it can't take much more for somebody who knows the kind of questions > if it's not going to be annoying to normal (stupid) people), than ten > people working 16 hours could generate 576,000 such answers. This may be > smaller than what a completely automated computer attack could do - but I > still wouldn't want 576,000 emails in my box one morning. 10 people at minimum wage only costs about $64/hour here (Canada) or $1024 to send those 576k messages. This will probably discourage spammers but do little else. And as you say it's easy to outsource this to somewhere like Indonesia, quite possibly making it very profitable. > In general, the reason I don't find any type of POW appealing is I don't > see the parrallels to the way things happen in meatspace. One of the > things that has drawn me to P2P architectures is that they have so many > parallels to how things happen in real social systems - and we know such > systems have been in the trial and error phase a lot longer than > computers. But POW is not how things work in the real world - you don't > make a swingset where you have to wind up a spring (uselessly) every > couple of swings, just to make sure that some kid doesn't hog the swings > all day. It's stupid, and it would take the fun out of swinging. Instead, > the other kids gang up, beat up the guy who won't get off, and make him > eat sand. That is a sound system for dealing with someone who is abusing > resources. Personally I like the idea of hashcash if, and only if, it's structured like a real currency as opposed to simply proof of work. In the real world you pay for resources used. In many cases this should also apply to P2P and other computer systems. Of course getting hashcash workable as a real currency is extremely difficult. I've thought of a scheme that would work (coins are signed by owner and can only be changed (signed to a different owner) by owner) except you need a decentralized "central" database of all the hashcash that's been minted. Unworkable. !@#$ spend-twice problem. :( -- retep at penguinpowered.com http://retep.tripod.com -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 232 bytes Desc: not available Url : http://lists.ibiblio.org/pipermail/bluesky/attachments/20010310/4578c512/attachment.bin From admin at madtimes.com Sat Mar 10 17:14:23 2001 From: admin at madtimes.com (Timm Murray) Date: Sat, 10 Mar 2001 17:14:23 -0500 Subject: Naming via SDSI Message-ID: <000001c0a9c0$b9279d50$0353aad0@classified> hal at finney.org wrote on 3/6/01 9:08 am: >How would that work in a P2P >model? If we did have >competing name lookup >services (using Wei's term >from the three service >model), would there have to >be some global mechanism >to make sure that no two >services tried to handle the >same addresses? Or would >we accept that address to >name mapping was >inherently ambiguous? Or, >perhaps, would TLDs have to >have unfriendly unforgeable >names? In Freenet Name Service (FNS, see eof.sourceforge.net) there are no TLDs. I suspect people will make psedo-TLDs, but there is no technical reason to do so. Interfacing with other P2P DNS systems is something I have not considered. Thoughts? Timm Murray ----------- Great spirits have allways encountered violent opposition from mediocre minds --Albert Einstein From hal at finney.org Sat Mar 10 19:16:49 2001 From: hal at finney.org (hal at finney.org) Date: Sat, 10 Mar 2001 16:16:49 -0800 Subject: Naming via SDSI Message-ID: <200103110016.QAA03021@finney.org> Timm Murray, , writes: > In Freenet Name Service (FNS, see eof.sourceforge.net) there > are no TLDs. I suspect people will make psedo-TLDs, but there > is no technical reason to do so. I see that the specific page describing FNS is http://sourceforge.net/docman/display_doc.php?docid=2162&group_id=15579. FNS is a mechanism for using Freenet to map between names and IP addresses. It is intended as a parallel mechanism to DNS. Unlike DNS, FNS is not hierarchical; names can be any string. FNS mappings are stored in Freenet under Freenet search keys of the form "fns/name/$DATE". Presumably these names are looked up using today's date; for example, "fns/www.microsoft.com/20010310" would be used to look up www.microsoft.com on March 10, 2001. Not only are such mappings first-come, first-served, they are also apparently individually FCFS for every single day. If someone does not create documents for their domain name using a given date string, someone else could step in and in effect take over the domain for that date; is that the intention? Hal From ota at transarc.com Sun Mar 18 18:43:45 2001 From: ota at transarc.com (Ted Anderson) Date: Sun, 18 Mar 2001 18:43:45 -0500 Subject: Root and Branch Naming Message-ID: <3AB54831.69C8FEA1@transarc.com> -----BEGIN PGP SIGNED MESSAGE----- Subject: Root and Branch Naming It seems that the previous discussion on namespaces, specifically root names, disintegrated without reaching a conclusion. I would like to gently approach the topic from a slightly different angle in hopes of making some progress. There are three aspects of the namimg problem which face different constraints and so probably require diverse solutions. The first level is the root names, this level faces tough non-technical problems. Second is the quasi-static namespaces, below the root, but still high in the naming hierarchy. This level has aggressive performance and reliability requirements. Third, the lower level directories, are not as widely shared, but maybe actively updated and is the control point needing flexible access control and synchronization. For reasons of stability and replication I think the upper parts (but not the top) of the naming hierarchy are best implemented by static directories and described / named by a content-based hash (CHK). Each directory maps names to CHKs, and each CHK unambiguously designates a lower level directory. Because these high levels of the namespace are slowly changing and need to be very widely replicated and cached for performance reasons, it makes sense to use hashes to authenticate and identify them. However, using hashes does work very far down. A change in any leaf node leads to a change in its hash, which changes, its CHK and so requires a change in its parent. This recurrence continues all the way up to the root. Thus a single CHK in the root defines a snapshot of an entire subtree. Changes in the tree are published by releasing new snapshots periodically. Because these trees are static they can be authenticated and cached with high reliability and confidence. At some point, the relaxing performance demands on one hand and the increasing update rate on the other force a change to another mechanism. For lower levels of the namespace that are (relatively) little shared, it makes more sense to have a server / client architecture. In this environment the owner of the directory is a public key which is authorized to update the directory's contents. The transition between the second level hash tree and these online, lower level directories takes the form of a certificate. In the parent, the directory's name is mapped to the CHK of a certificate naming the public key of the directory owner, a list of server locations, and a CHK of a recent snapshot of the directory. This authorizes a server acting on behalf of the owning principal to offer directory services, such as lookup, update, and delegation. Delegation allows nodes with read access to cache a copy of the directory and arrange to be notified of updates. Delegation to a node authenticated as the owner allows the server named in the certificate to offload all request to the delegatee by simply forwarding all requests. The use of delegation would be an optional performance enhancement, which could be implemented by a whole spectrum of mechanism, depending on the load and environment. Delegation could be built upon a high performance algorithm such as used by distributed lock managers found in cluster operating systems, or can be based on a simple scheme that assumes that directories rarely move and the lookup and update load can be handled by a single server. Less optional than delegation is some form of synchronization. Because of the immutability of CHKs, namespace updates are the mechanism for implementing file modifications, namely mapping an existing name to a new contents. Therefore consistency of writes to shared data that may also be cached by readers depends upon some type of locking or synchronization in the namespace. ---***--- I still think that an SPKI (Mark Miller's point that SDSI and SPKI have merged in RFC 2692/3 is well taken), approach is best for handling root names. I would imagine there would be two groups of competing root name authorities, the first group would consist of a handful of conservative organizations. These would only add names that were well defined and widely agreed upon, specifically, within the group of conservative naming authorities. The second group would consist of more liberal naming authorities which would add names relatively quickly and easily. Consequently they might sometime be in conflict with other naming authorities and would sometimes remove names that caused clashes. They would thus provide less stable naming than the first group. Most users would use one authority from the first group to populate their top-level names and possibly use one or more from the second group to fill in behind the primary server. My assumption is that most names users care about would be relatively stable and reliable and that they would tolerate a certain messiness in the management of names around the edges. Since this whole mechanism depends on political and social factors that are undergoing rapid evolution it may be impossible to reliably predict the most successful approach. Flexibility and adaptability will be the most important characteristics. It is worth noting that the top-level of a namespace for a global decentralized file system, is not going to rely heavily on the current host-centric, DNS naming system. Because it is location independent, naming servers is not as relevant as it is in the WWW. Many pathnames will surely be defined by companies and so will have dot-com names near the root. However, other data will be best named by semantic classifications and other taxonomies whose naming authorities are relatively easily established, such as UPC and ISBN. In the long run it isn't clear what kind of global pathnames will be most common or useful. Perhaps understanding this aspect of the naming system will produce more light than heat. In summary, I would suggest that there are three levels of the namespace which require different implementation mechanisms: 1 - root names, depending on political and social issues 2 - hash tree namespaces, providing high performance and stability 3 - online directories, supporting updates and synchronization Ted Anderson -----BEGIN PGP SIGNATURE----- Version: PGPfreeware 7.0.3 for non-commercial use iQCVAwUBOrVHLwGojC9e/wyBAQFbNQQAkZE8zPRi0N2QTJyo8rnjfXSsKx3+hp9Z OEdgA/HZn0AGQGuF3GcDHJfn91mZmIDA7SS37G6dWLJItSgaXoFAmmz4F1jJBfNM wZ0Au9wtMGxMlh98z4DZW9Rb9fk+KRfh1DlPLMKSkS+K/1o2lcT4GwxQDqEbS8Eq PjKzNFnM+MY= =NzhT -----END PGP SIGNATURE----- From ross.anderson at cl.cam.ac.uk Mon Mar 19 04:09:57 2001 From: ross.anderson at cl.cam.ac.uk (Ross) Date: Mon, 19 Mar 2001 04:09:57 -0500 Subject: Root and Branch Naming Message-ID: Ted discusses using hash trees for the higher, more stable levels in the directory structure and more flexible mechanisms lower down. This works; we used something like it for a drug database system. The goal was to provide an electronic equivalent of the drug reference book that doctors carry around with them. We started off with a simple hash tree and authenticated everything by a root hash which changed only when the book was republished every six months. This was far, far more efficient than signing the book - no-one wants to compute a digital signature on 8Mb every time they need to check up on the side effects of aspirin! Then we found a need for flexibility. For example, hospitals annotate particular drugs for cost control reasons: `only Dr Edwards can prescribe this' or `use XXX instead unless authorised by Dr Jones'. Also, additional drugs are added to local databases which don't appear in the national, published one: the classic example is an experimental substance undergoing clinical trials. The trick was to introduce a `flexible link' - basically, instead of hashing the content of the stuff lower down, you hash a public key and sign the stuff lower down with the corresponding private key. This way you can have a trustworthy static book, but with some active pages. There's a bit more you need to do to manage meta-content, as you'd expect. See for the paper we wrote on this; related papers are on the P2P part of my web page, , Ross From hal at finney.org Mon Mar 19 14:23:36 2001 From: hal at finney.org (hal at finney.org) Date: Mon, 19 Mar 2001 11:23:36 -0800 Subject: Root and Branch Naming Message-ID: <200103191923.LAA01500@finney.org> Ted Anderson, , writes: > There are three aspects of the namimg problem which face different > constraints and so probably require diverse solutions. The first level > is the root names, this level faces tough non-technical problems. > Second is the quasi-static namespaces, below the root, but still high in > the naming hierarchy. This level has aggressive performance and > reliability requirements. Third, the lower level directories, are not > as widely shared, but maybe actively updated and is the control point > needing flexible access control and synchronization. I think you are assuming a relatively deep hierarchical model. Let me first toss out the challenge that we may not need a naming hierarchy at all. Is it really necessary that when I insert a document into the network it has a name like /technical/papers/computerscience/peertopeer/bluesky/problemswithnames.txt? Is someone going to type this in? If not, why not something like Mark Miller's pet-name system [1], 7fa89sdf0a7sf098asf0978asfproblemswithnames.txt, which shows up in your client as "Hal's problemwithnames.txt"? I'd like to see more justification of the need for a hierarchical naming system that fits every single piece of information in the world into a single hierarchy rooted at /. > For reasons of stability and replication I think the upper parts (but > not the top) of the naming hierarchy are best implemented by static > directories and described / named by a content-based hash (CHK). Each > directory maps names to CHKs, and each CHK unambiguously designates a > lower level directory. Because these high levels of the namespace are > slowly changing and need to be very widely replicated and cached for > performance reasons, it makes sense to use hashes to authenticate and > identify them. I see two problems with this. One is the assumption that they are slowly changing. Certainly in the DNS that is not the case. However the DNS is a very shallow hierarchy and you are probably assuming a deep one. Still I suspect that directories near the top are going to be relatively dynamic, because everyone is going to want a short name just like today. Second, it's not clear how a directory informs its parents that an update is needed, in an authenticated way. If /technical/papers/computerscience adds a new subheading, it needs to tell /technical/papers, which then needs to tell /technical, which then needs to tell the root name servers. This notification methodology is outside the scope of your proposal, but it very likely will involve public-key cryptography. This is exactly the technology you propose to deal with the more dynamic directory levels below. Why not just use PKC at all levels? See below for how Freenet proposes to do it. > For lower levels of the namespace that are (relatively) little shared, > it makes more sense to have a server / client architecture. In this > environment the owner of the directory is a public key which is > authorized to update the directory's contents. The transition between > the second level hash tree and these online, lower level directories > takes the form of a certificate. In the parent, the directory's name is > mapped to the CHK of a certificate naming the public key of the > directory owner, a list of server locations, and a CHK of a recent > snapshot of the directory. This authorizes a server acting on behalf of > the owning principal to offer directory services, such as lookup, > update, and delegation. Delegation allows nodes with read access to > cache a copy of the directory and arrange to be notified of updates. > Delegation to a node authenticated as the owner allows the server named > in the certificate to offload all request to the delegatee by simply > forwarding all requests. A few comments on this. First, this is similar to the idea behind the Freenet Signature Verification (or Validation?) Key, SVK. It is essentially a hash of a public key which owns a document. I believe OceanStore also uses this mechanism. Second, this mechanism would be useful for more than just updating directories. What you have described would seem to handle file updates as well. It makes sense to treat directories similarly to ordinary files. Whatever mechanisms we have to deal with changes and updates for directories can be done with files, too. Third, it's not clear that the auxiliary information of server and snapshot are necessary. Freenet and OceanStore use the SVKs as direct indexes into the network. In Freenet they are "first-class" alternatives to CHKs; in OceanStore they are the primary addresses of documents. Given that you have a network that can find data, you don't need to store server addresses. For performance it may be desirable to cache data, but that might be true of leaf-node data as well as directory data. One of the advantages of your explicit-server model is that it allows the key holder more control over updates. Otherwise you do have problems with cache staleness and distribution of updates. Freenet does not have a solution to this yet; OceanStore has a very elaborate mechanism that is supposed to chase down all copies of a document and update it. Last, again it seems that this mechanism would work OK at the top levels as well. The update interval would be larger, perhaps. Then you don't have to redo all the hashes every time something changes three levels down. > I still think that an SPKI (Mark Miller's point that SDSI and SPKI have > merged in RFC 2692/3 is well taken), approach is best for handling root > names. I would imagine there would be two groups of competing root name > authorities, the first group would consist of a handful of conservative > organizations. These would only add names that were well defined and > widely agreed upon, specifically, within the group of conservative > naming authorities. The second group would consist of more liberal > naming authorities which would add names relatively quickly and easily. > Consequently they might sometime be in conflict with other naming > authorities and would sometimes remove names that caused clashes. They > would thus provide less stable naming than the first group. Most users > would use one authority from the first group to populate their top-level > names and possibly use one or more from the second group to fill in > behind the primary server. As I understand this, the root name authorities (RNAs) would not manage the name spaces per se, but would be responsible solely for mapping top level names into top level directories. In the example above, they would map /technical into a CHK which would point at the directory for everything under /technical. Typically the RNAs would support multiple such mappings, and each such mapping would be supported by multiple RNAs. Hopefully there would be substantial agreement among the RNAs about which directory each top level name gets mapped to. This agreement would be essentially 100% among the conservative RNAs, while the liberal RNAs would handle a wider set of names, including those for which there was competition and no consensus yet on which directory was the "real" one for that domain. I think the problem with this model is that it still takes too static a view of the world. While it tries to accommodate change via the liberal RNAs, I think there will be considerable contention even for the names mapped by the conservative ones. Assuming there is some financial advantage in owning a top level name, there will be a constant desire to acquire the most popular names. So I think that we will see continual flux in the providers of these names. What is to prevent the owner of /com or /sex from overcharging for their name registrations, if they have a de facto monopoloy conferred by the conservative RNAs? The only thing that can limit them is fear that others will challenge them by either stealing /com or by starting competing domains. But for these challenges to be credible it must be relatively easy to get new names into widespread use. This implies that even conservative RNAs must be relatively flexible, or they can handle only a small percentage of widely used names. The experience we are getting from the DNS world is that top level names are extremely valuable. The main registry for .com, .org and .net was valued at 21 billion dollars! Given the huge amounts of money to be made here, I don't think it is realistic to assume that the market will be at all stable or orderly. DNS has been limited until now by institutional monopolies. Under competition, with no trademark law to provide property rights in names, it's going to be a wild ride. One thing that's unclear here is how the RNAs themselves are named and found. The impression I have is that they are not part of the globally shared file system (which would produce an awkward recursion problem), but rather they are servers identified as today with DNS names. > In summary, I would suggest that there are three levels of the namespace > which require different implementation mechanisms: > 1 - root names, depending on political and social issues > 2 - hash tree namespaces, providing high performance and stability > 3 - online directories, supporting updates and synchronization I think there are a lot of good ideas here. However I still don't see the root name problem as being solved by letting the market screw in the lightbulb. Institutions like trademarks and courts have evolved worldwide because of exactly the problems that exist when names can be used by anyone. Our admiration for markets should not blind us to the fact that they can't solve all problems. As far as the hashes versus certificates, this may depend on how deep the hierarchy ends up being and how much true stability exists at the highest levels. I would suggest that the system be agnostic about this and allows CHKs and SVKs to be used interchangeably at any directory level. Then technical issues of efficiency and convenience could govern the choice. Hal [1] http://www.erights.org/elib/capability/pnml.html From md98-osa at nada.kth.se Mon Mar 19 16:59:01 2001 From: md98-osa at nada.kth.se (Oskar Sandberg) Date: Mon, 19 Mar 2001 22:59:01 +0100 Subject: Root and Branch Naming In-Reply-To: ; from hal@finney.org on Mon, Mar 19, 2001 at 11:23:36AM -0800 References: Message-ID: <20010319225901.E644@hobbex.localdomain> On Mon, Mar 19, 2001 at 11:23:36AM -0800, hal at finney.org wrote: <> > A few comments on this. First, this is similar to the idea behind > the Freenet Signature Verification (or Validation?) Key, SVK. It is > essentially a hash of a public key which owns a document. I believe > OceanStore also uses this mechanism. Actually, I meant it as Signature Verifying Key (the key verifies that the signature is valid) when I made up that acronym, but it seems next to impossible to get people to stick to that (I think somebody passed a law against present participle in TLDs without telling me). Of course, the SVKs have been superseded by the keys that hash in a document name with the key in the final step. It was actually quite silly of me not to realize that that was a good idea from the beginning. Scott called these "SSK" after SVK Subspace Keys (I believe), but I don't like that name so I decided they are called Signed Subspace Keys. -- 'DeCSS would be fine. Where is it?' 'Here,' Montag touched his head. 'Ah,' Granger smiled and nodded. Oskar Sandberg md98-osa at nada.kth.se From blanu at uts.cc.utexas.edu Mon Mar 19 20:26:54 2001 From: blanu at uts.cc.utexas.edu (Brandon) Date: Mon, 19 Mar 2001 19:26:54 -0600 (CST) Subject: Root and Branch Naming In-Reply-To: Message-ID: > One of the advantages of your explicit-server model is that it allows > the key holder more control over updates. Otherwise you do have problems > with cache staleness and distribution of updates. Freenet does not have > a solution to this yet; OceanStore has a very elaborate mechanism that is > supposed to chase down all copies of a document and update it. Freenet does have a solution to this, it just sucks. :-) It's date-based redirects, which allow updating that avoids cache staleness at the expense of having a fixed update interval to which the publisher must adhere. (You must update at every update interval. You cannot update sooner. You cannot miss an update or else the information is hard to find until the next update.) This system works well for periodicals and not very well for arbitrarily updated information such as personal pages. There are some improvements we can do, but this is the basic idea. We'd certainly like something better, more spontaneous. From ota at transarc.com Tue Mar 27 20:41:14 2001 From: ota at transarc.com (Ted Anderson) Date: Tue, 27 Mar 2001 20:41:14 -0500 Subject: Root and Branch Naming References: <100074@bluesky> Message-ID: <3AC1413A.F4628EB5@transarc.com> -----BEGIN PGP SIGNED MESSAGE----- On 19 Mar 2001 11:23:36 -0800 hal at finney.org wrote: > I think you are assuming a relatively deep hierarchical model. I am indeed assuming a deep hierarchical file system model. My reference point on this is something like AFS, which basically assumes a Unix command line reference model. On the other hand even a stand-alone Windows box has many deep pathnames. If you have 10^20 objects to keep track of, you're going to need a lot of hierarchy. > Let me first toss out the challenge that we may not need a naming > hierarchy at all. Is it really necessary that when I insert a > document into the network it has a name like > /technical/papers/computerscience/peertopeer/bluesky/problemswithnames.txt? > Is someone going to type this in? If not, why not something like Mark > Miller's pet-name system [1], > 7fa89sdf0a7sf098asf0978asfproblemswithnames.txt, which > shows up in your client as "Hal's problemwithnames.txt"? I'd like to > see more justification of the need for a hierarchical naming system > that fits every single piece of information in the world into a single > hierarchy rooted at /. Well my experience is that one very rarely actually types in a long absolute pathname. And when I do, I rely on file name completion to make it easier and catch typos as they arise and not after I've got a 50 character path typed in. Generally, one starts from a working directory or a collection of path abbreviations usually implemented as symlinks from a easy-to-reach starting point. For example, I keep my development sandboxes and many source trees I reference frequently in ~/de, so I can say ~/de/sb1, ~/de/afs3.6 or ~/de/linux-2.4-test7 and quickly get to these far flung parts of the hierarchy. Clearly, this is a little personal namespace and my browser bookmarks work pretty much the same way. So these are pet names of an ad hoc sort. Even the links in a web page are really page-local names for remote pages. However, absolute paths are invaluable for storing in configuration files and scripts and the like so that these things can be shared and the names are the same for everyone. The more collaboration and sharing there is the more important uniform global names are. So I think we need both more and better ways to give objects short easy to remember names as well as long descriptive, uniform, permanent, global names for objects. > > For reasons of stability and replication I think the upper parts > > .. of the naming hierarchy are best implemented by ... [CHKs]. > > I see two problems with this. One is the assumption that they are > slowly changing. Certainly in the DNS that is not the case. However > the DNS is a very shallow hierarchy and you are probably assuming a > deep one. Still I suspect that directories near the top are going to > be relatively dynamic, because everyone is going to want a short name > just like today. This is an issue. First, I think a little more depth would be a good idea. As long as the top level names are kept short, this wouldn't impact conciseness too badly. Second, I assume that while new directory hashes would be produced more or less daily, I don't think that means that everyone needs to get the latest copy every day. If the process is automated I don't see that it would be a big problem to do this once a week or so. Currently, individual nodes don't typically cache these upper-level directories anyway, but contact a nearby name server to request lookups and just cache individual results with a small time-to-live. So the slowly changing assumption mostly applies not to the directories as a whole but to the individual entries. Thus, name mappings are cachable with a simple coherence mechanism. > Second, it's not clear how a directory informs its parents that an > update is needed, in an authenticated way. If > /technical/papers/computerscience adds a new subheading, it needs to > tell /technical/papers, which then needs to tell /technical, which > then needs to tell the root name servers. This notification > methodology is outside the scope of your proposal, but it very likely > will involve public-key cryptography. This is exactly the technology > you propose to deal with the more dynamic directory levels below. Why > not just use PKC at all levels? See below for how Freenet proposes to > do it. This is a good point. I haven't thought very hard about the protocol these guys would use to communicate among themselves. And when I do, I assume some kind of signed update records that are collected by the parent until it is time to generate the next update. This stream of signed updates would work pretty much like a log, but without the usual serialization guarantees that a transaction system provides. One could expose some of this mechanism in the directory format itself which might be more general. In particular, the names in a directory are nearly independent mappings and could be distributed individually or in various groups if that was convenient. For example a very large directory such as the DNS ".com" might actually be divided physically into a 26 sub-directories based on the first letter of the name. Logically, the directory is wide and flat, but physically, it is stored as a two level hierarchy. As Ross pointed out, smaller components allow easier manipulation and verification than huge monolithic objects do. > > ... lower levels [use] a server / client architecture. > Second, this mechanism would be useful for more than just updating > directories. What you have described would seem to handle file > updates as well. It makes sense to treat directories similarly to > ordinary files. Whatever mechanisms we have to deal with changes and > updates for directories can be done with files, too. Yes, sort of. What the owner can do, the no one else is trusted to do is decide which updates to accept. In other words, to exercise access control. In the upper levels this is done by the root name authorities (RNAs) who periodically issue CHKs as detached signatures. While there is public key cryptography (PKC) involved in distributing these CHKs, the signature in the directory, and the protocol for collecting updates from the children, it is only part of the story. The other part is that the RNA uses access control and the application of reputation to the creation of these directories. The same is also true at the lower directory levels and even for files. Someone must exercise access control and that someone has to be the key holder. Another aspect of lower-level directories and some files is they they are accessed like databases. This is to say they are queried and updated (read and written) by multiple parties. Each expects updates to be atomic, consistent, and durable (basically ACID-like) and lookups to be globally serialized with respect to all updates. Some types of files need these properties as well but call the accesses "reads" and "writes". Use a locking protocol to provide isolation in addition to atomicity, and you have ACID semantics. In these cases, a single agent manages object access to provide a coherent view. A single agent is needed to provide both access control and coherence to mutable objects. Most files and some directories, however, are rarely shared or rarely modified and so have little need of database-like semantics. In these cases using CHKs two major benefits. They allow nodes the independence of being able to create globally unique names for objects without contacting a central authority (such as a file server). CHKs also permit easy caching without concern for the source of the object. Ideally, the mechanisms needed for directories and database-like files extend gracefully and efficiently to handle unshared or static files. Nearer the top of the directory hierarchy, very high levels of sharing and relatively static content (in the sense mentioned above) makes database-like mechanisms inappropriate. Instead, periodic snapshots provide approximate, time-bounded consistency, that works well enough most of the time. > Third, it's not clear that the auxiliary information of server and > snapshot are necessary. Freenet and OceanStore use the SVKs as direct > indexes into the network. In Freenet they are "first-class" > alternatives to CHKs; in OceanStore they are the primary addresses of > documents. Given that you have a network that can find data, you > don't need to store server addresses. For performance it may be > desirable to cache data, but that might be true of leaf-node data as > well as directory data. The problem with using the data location network for key hashes is that there is no one-to-one mapping between the key and the data. With CHKs the data is self-certifying. With SVKs one can verify the signature to tell when a datum matches the key, but there is no limit to the amount of data that goes with a single key. This makes the lookup process ambiguous and ill-defined. It makes more sense to put someone in charge of organizing the set of all data signed by a key and provide a way to find that someone. I suggested a list of list of server IP addresses and a snapshot to use if all the servers are down, but there may be better approaches. > One of the advantages of your explicit-server model is that it allows > the key holder more control over updates. Otherwise you do have > problems with cache staleness and distribution of updates. Freenet > does not have a solution to this yet; OceanStore has a very elaborate > mechanism that is supposed to chase down all copies of a document and > update it. As I mentioned above, access control is a crucial aspect of mutable data. Using PK signatures is a decentralized way to implement access control. If the key holder, or his delegate, is online, he can also provide synchronization services (coherence). I am very concerned about the complexity of the OceanStore system. I wish someone who understands it well could comment on the trade-offs made in its design. > > I still think that [SPKI] is best for handling root names. ... > As I understand this, the root name authorities (RNAs) would not > manage the name spaces per se, but would be responsible solely for > mapping top level names into top level directories. In the example > above, they would map /technical into a CHK which would point at the > directory for everything under /technical. Typically the RNAs would > support multiple such mappings, and each such mapping would be > supported by multiple RNAs. Hopefully there would be substantial > agreement among the RNAs about which directory each top level name > gets mapped to. This agreement would be essentially 100% among the > conservative RNAs, while the liberal RNAs would handle a wider set of > names, including those for which there was competition and no > consensus yet on which directory was the "real" one for that domain. This isn't exactly what I was thinking. I was assuming that each user would select a supplier for each top-level name in his private namespace. For example, Verisign might provide me with DNS names, which I would call /dns/com/microsoft and /dns/edu/mit and /dns/org/eff. I might have some other RNA provide other parts of my root namespace, for example, IEEE might provide a compendium of technical research papers available as /research, Project Gutenberg might provide online books categorized by Library of Congress subject headings under /books, RIAA might provide a similar service for /music, SourceForge could provide access to a global source tree under /src, and so forth. In addition, I have my own names for things under /private/mail, /temp, /local/projects, or whatever. Without much trouble, I could allow multiple providers of some names by redirecting misses in the primary to a secondary or tertiary provider. Indeed I could offload this merging behavior to a meta-namespace provider, like today's web meta search engines. I assume that root naming conventions (i.e. /dns, /books, /src) would spring up to ensure that most of the widely shared names would look the same from every node. If someone wanted to organize things differently, however, the only consequence is that global names wouldn't work for him without a translation step. > What is to prevent the owner of /com or /sex from overcharging for > their name registrations, if they have a de facto monopoly conferred > by the conservative RNAs? The only thing that can limit them is fear > that others will challenge them by either stealing /com or by starting > competing domains. But for these challenges to be credible it must be > relatively easy to get new names into widespread use. This implies > that even conservative RNAs must be relatively flexible, or they can > handle only a small percentage of widely used names. The providers of popular names don't get a monopoly quite this easily. If Verisign charges too much for "com/microsoft", then Microsoft can pay GnuDNS instead. As a user, I can choose either Verisign or GnuDNS to provide me /dns, if GnuDNS has more names in it, then I'm more likely to use them than Verisign. As a consequence, Verisign may choose to include "com/microsoft" just to attract users. It might be a bit like competing yellow pages companies. > The experience we are getting from the DNS world is that top level > names are extremely valuable. The main registry for .com, .org and > .net was valued at 21 billion dollars! Given the huge amounts of > money to be made here, I don't think it is realistic to assume that > the market will be at all stable or orderly. DNS has been limited > until now by institutional monopolies. Under competition, with no > trademark law to provide property rights in names, it's going to be a > wild ride. I'm certainly not sure how it would all work out. The dynamics of a global namespace are sure to be complex and unpredicable. But assuming RNAs would need to attract users (subscribers) then they have to compete on the basis of completeness, stability, reliability, etc. They will have to work out some means of agreeing among themselves to provide consistent mappings for most names. > > In summary, I would suggest that there are three levels of the > > namespace which require different implementation mechanisms: > > 1 - root names, depending on political and social issues > > 2 - hash tree namespaces, providing high performance and stability > > 3 - online directories, supporting updates and synchronization I'd expand on this list a bit: 1 - root names, defined by convention; social, political, and economic issues. 2 - hash tree namespaces, providing high performance and stability with weak, time-based consistency. 3 - online directories and database-like files, access control and strong consistency. 4 - private and static data, CHKs provide independence and sharing. > I think there are a lot of good ideas here. However I still don't see > the root name problem as being solved by letting the market screw in > the lightbulb. Institutions like trademarks and courts have evolved > worldwide because of exactly the problems that exist when names can be > used by anyone. Our admiration for markets should not blind us to the > fact that they can't solve all problems. I agree. It may be that for competing RNAs to provide the level of service their customers demand will require a level of cooperation that won't look much like competition in usual commercial sense. The key is giving users the ability to vote with their feet. Ted -----BEGIN PGP SIGNATURE----- Version: PGPfreeware 7.0.3 for non-commercial use iQCVAwUBOsDF+QGojC9e/wyBAQEGzAQA1DxcFjZ1U5CZqFpVH3nUUrq6U1P2WAkZ NIoh4sxCyWYWzwtGXNPMBnejQvEA/amWal2xZGPReEtoWcFUAPiArKexJmX+alWo Gm9tzV/uE5AGhP3k1WKEC4tFgtruhIoNUjt60dgveF103iAiGH6JfSRYRs0yIwqi yFPHTgvYa3s= =ezHN -----END PGP SIGNATURE-----