Hola!
> this brings to my mind WebID (aka foaf+ssl) > I think WebID attacks a different problem. It assumes you have somewhere trusted to host your public key. As i understand it, if someone hacks the server where you publish your WebID, then he can put another public key there, and go online pretending to be you, right? Or did I misunderstand that? I want to trust no servers in my setting. That's why I think I can't use WebID. regarding privacy exposure in FOAFs, you can apply ACLs based on inference > rules > about trust. So you don't have to show same doc to everybody ;) > ok cool i hadn't thought of that. still, i prefer fabric-based rather than social-graph-based, if at all possible. > distributed search, yeah, that's the big issue. > > with all the hype about resurrecting finger by means of http, some people > thought that, given a grid of personal rdf stores (or even rdf-over-dht), > and even protecting results via foafssl if you want, the goal could be > accomplished by routing this "simple" SPARQL query: > > @prefix : <http://xmlns.com/foaf/0.1/> . > SELECT ?profile WHERE { ?person :mbox "mailto:foo...@example.com" . > ?profile a :PersonalProfileDocument ; > :primaryTopic ?person . } > > ... > > this scenario sounds to me quite close conceptually to what you propose. > take webid fingerprint and start communicating (using your cert to > sign/cypher/authenticate). > yes; although I don't exactly know how such a SPARQL query would be routed by a DHT (presumably you route through effectively a DHT of email->profile pairs?), at least the part about finding a chain of signatures looks conceptually very close. > > So what I came up with was to define a "fabric"-approach. We define a > > multi-dimensional space in which all guids represent a fixed position. > Your > > coordinates in the fabric are determined not by you, nor by who you > interact > > with, but simply by the ASCII bits in your guid string. And then it's > simple: > > everybody sign the keys of their neighbours and vice versa to form the > fabric. > > not sure I understood this properly. every node should sign their > "neighbors" > in this metric space? > > > Now to know your public key, I just walk from my position in the fabric > to > > yours, following the chain of neighbours that are all 'holding hands', > and so > > everyone's connected with everyone. > > don't get how do you traverse a path. chosing the geodesic in this > coordinate system? > OK sorry, my description there was too simplistic. Let me try to explain it better: - each user keeps a list of neighbours. - You start with one user with an empty neighbour list. - When the second user joins, the two users become neighbours in the following way: - calculate the sha1 of each guid. Think of these sha1 hashes as strings of bits. - see the position of the first bit position in which the two strings are different. Say the first 3 bits are the same, and the 4th one is different. Then each of the users accepts the other one in position 4 of his neighbour list. The "quality as neighbour 4" is the position of the second bit that is different. So if position 5 is the same, but 6 isn't, then both now have a neighbour for position 4, of quality 6. - Naive implementation of neighbour-finding (only for explanation purposes): - Whenever a user is added, compare it one-by-one with all existing nodes. A neighbour is accepted for a position if the node did not have a neighbour yet in that position, or if the new candidate has a higher quality. - traversal from a string $A to a string $B: - $current = $A; - for($i = 0; $i < length($A); $i++) - if $current[$i] != $B[$i] - $current = $neighbour[$current][$i] the traversal will always arrive at B (you could add a break statement in case you get there early, even). if current doesn't have a neighbour i, then that means no guid exist whose sha1 is a candidate neighbour 1 for current. i don't really compare a newcomer to all existing nodes, obviously, that wouldn't scale. only to roughly one node for each bit in the hash. but i hope it's simpler if i leave that part out. Re. the problem, I think webID community tries to solve same problem you see > (although semweb community has a je-ne-sais-quois that makes their > proposals to > be dismissed many times withouth a second thought). > correct me if i'm wrong, but as i understand it, WebID assumes you have a hosting server somewhere that you trust not to be hacked. I don't have that in my application. I don't want to trust the server. > > About the fabric approach, surely I didn't grasp it fully, but if the > answer to > last two questions is yes, I think I see a flaw :P > ok, please let me know! :) many thanks for your help with this! Michiel.
_______________________________________________ p2p-hackers mailing list p2p-hackers@lists.zooko.com http://lists.zooko.com/mailman/listinfo/p2p-hackers