Author: hobx
Date: 2006-03-10 16:26:13 +0000 (Fri, 10 Mar 2006)
New Revision: 8212

Modified:
   trunk/docs/fnet.tex
Log:
some proofreading

Modified: trunk/docs/fnet.tex
===================================================================
--- trunk/docs/fnet.tex 2006-03-10 16:00:33 UTC (rev 8211)
+++ trunk/docs/fnet.tex 2006-03-10 16:26:13 UTC (rev 8212)
@@ -41,7 +41,7 @@

 \section{Introduction}

-With the proliferation of internet connectivity, the potential exists to 
+With the proliferation of Internet connectivity, the potential exists to 
 increase the availability of information for
 everybody, while strengthening free speech and discourse. However, a
 blind belief that the Internet, in and of itself, cannot be controlled
@@ -53,51 +53,51 @@

 The Freenet Project is an ongoing effort to develop a distributed
 peer-to-peer network for publication and distribution of data. The
-system, Freenet \cite{clarke:protecting}\cite{clarke:freenet}, is
-intended to strengthen the freedom of speech by allowing anyone to
-publish anything in the network at any time.  To this end, the system
+system, Freenet \cite{clarke:protecting}\cite{clarke:freenet}, is an
+Internet wide distributed hashtable where users can insert intended to
+strengthen the freedom of speech by allowing anyone to publish
+anything in the network at any time.  To this end, the system
 integrates many levels of redundancy while dispersing data throughout
 the Internet's topology, which makes it difficult for an adversary to
-remove data from the network. The Freenet software strives to be opaque, so
-that it is difficult without global knowledge to see which nodes
-are responsible for storing which data at which time, and flexible, so
+remove data from the network. The network strives to be opaque, so
+that it is difficult without global knowledge to see which nodes are
+responsible for storing which data at which time, and flexible, so
 that it can survive both the everyday churn of an uncontrolled
-peer-to-peer environment and malicious attacks against the network
-itself.
+peer-to-peer environment and malicious attacks.

 An important element of allowing free communication is that the
 privacy of both those who publish and those who access information
-should be protected, both from outsiders and from other people in the
-network. Earlier generations of Freenet anomymized only via a Crowds
-[] type system, which, while offering some disassociation between
-queries and those who initiate them, is vulnerable to many forms of 
-attack. One of the outstanding questions of Freenet development has been
-how the network can better anonymize queries in the future, with the
-option of utilizing stronger mixing techniques [].
+should be protected, both from outsiders and from other participants.
+Earlier generations of Freenet anomymized only via a Crowds [] type
+system, which, while offering some disassociation between queries and
+those who initiate them, is vulnerable to many forms of attack. One of
+the outstanding questions of Freenet development has been how the
+network can better anonymize queries in the future, with the option of
+utilizing stronger mixing techniques [].

 A second concern, that has come to the forefront with the actual
 deployment of Freenet, is the vulnerability of people operating nodes
 in the network. While the network strived to dissociate users with the
-data they access and nodes with the data they serve, it does not hide the
-fact that a particular node is part of the network. In order to find Freenet
-nodes in earlier incarnations of the system, it is sufficient to
-join the network and start operating as a node oneself: through the
-continuous process of routing and optimizing the network, one would
-eventually learn the identities and Internet addresses of more nodes
-in the network. This means that somebody wishing to attack the Freenet
-network in its entirety would have no problem finding and identifying
-participants given sufficient time.
+data they access and nodes with the data they served, it did not hide
+the fact that a particular node was part of the network. In order to
+find Freenet nodes in earlier incarnations of the system, it was
+sufficient to join the network and start operating as a node oneself:
+through the continuous process of routing and optimizing the network,
+one would eventually learn the identities and Internet addresses of
+more and more nodes in the network. This means that somebody wishing
+to attack the Freenet network in its entirety would have had no
+problem finding and identifying participants given sufficient time.

 In order to resolve these problems, we have radically shifted the
 direction of Freenet development. Instead of direct connections
 between nodes forming dynamically in the course of the networks
-operations, we now allow nodes to limit their connections to other
+operation, we now allow nodes to limit their connections to other
 nodes whom they trust. This model of trusted connections radically
 improves the security of the network, under the assumption that
 trusted neighbors really are trustworthy, but complicates other
 issues. Notably, since the we cannot design the overlay graph of
 connected nodes ourselves, routing from one point to another becomes
-more difficult.  Also, there is a cost to usability, especially with
+more difficult.  There is also a cost to usability, especially with
 regard to barrier of entry into the network (with trusted connections,
 a new node cannot enter the network until it knows other other nodes
 that are present).
@@ -119,31 +119,29 @@

 Freenet's goal is to provide a distributed system for the publication
 and access of information. Documents are stored, or inserted, into the
-network with an associated address, or key. The key (typically 
-represented as a base 64 number) is used both to decide where in the 
-network to store the
-document, and to authenticate the document when it is accessed. A
+network with an associated address, or key, which consists of a binary
+string. The key is used both to decide where in the network to store
+the document, and to authenticate the document when it is transfered. A
 person wishing to access the document sends out a retrieve query, or
-request, which performs a best first search with backtracking. 
-When the request finds a node containing a copy of the document, the 
-entire document is returned through the search path.
+request, which performs a best first search with backtracking.  When
+the request finds a node containing a copy of the document, the entire
+document is returned through the search path.

 Freenet nodes do not make guarantees about the persistence of
-document, but keep them using a best-effort algorithm that removes the
-least-recently accessed document when a node's storage overflows. In
-fact, nodes aggressively cache many if not all the documents that they
-transfer, so a system of removing documents from the cache is
-necessary. The system can be viewed as a large grid of
-caching proxy hosts, each proxying and caching for one another, but
-with no ``authoritative source'' to return to should the document not be
-in the cache. In practice, we have found that the system is relatively
-good at maintaining data when a sufficient amount of storage, typically
-each piece of data is replicated 5 to 10 times throughout the network
-(see for instance [theos chapter], [that other fn
-paper]).  Furthermore, Freenet does not guarantee that data
-in the network can be found by any particular search in a bounded
-number of steps (or indeed at all) - it only attempts to make it
-likely that it will.
+documents, but keep them using a best-effort algorithm that removes
+the least-recently accessed document when a node's storage overflows.
+In fact, nodes aggressively cache many if not all the documents that
+they transfer, so a system of removing documents from the cache is
+necessary. The system can be viewed as a large grid of caching proxy
+hosts, each proxying and caching for one another, but with no source
+to return to should the document not be in the cache. In practice, we
+have found that the system is relatively good at maintaining data when
+a sufficient amount of storage is available (see for instance [theos
+chapter], and [that other fn paper] for a modification to improve
+this).  Furthermore, Freenet does not guarantee that data in the
+network can be found by any particular search in a bounded number of
+steps (or indeed at all) - it only attempts to make it likely that it
+will.

 \subsection{Inserting and Requesting data}

@@ -151,7 +149,7 @@
 $K$. Each node has a routing table, which with respect to the key $K$,
 gives an ordering of nodes neighbors after their desirability as the
 destination of the query. The route is then constructed by going from
-node to node, and selecting the most desirable neighbor that is
+node to node and selecting the most desirable neighbor that is
 available and not already in the route as the next step. When this is
 not possible, the query backtracks and the route is restarted from the
 previous node.  Routes continue until they terminate due to achieving
@@ -160,9 +158,9 @@
 steps reaching a limit).

 It should be noted that, unlike in other DHT systems, a key has no
-canonical ``home'' or destination in the network. While there may be a
-node that is the most ``desirable'' destination for a particular $K$,
-it will most likely not know that. Because of this, the manner in
+canonical home or destination in the network. While there may be a
+node that is the most desirable destination for a particular $K$, that
+node will most likely not know it. Because of this, the manner in
 which the routing tables are constructed need only be consistent, in
 that two routes for the same key should be likely to intersect, and
 well distributed, meaning that routes should not all tend toward some
@@ -179,11 +177,11 @@
 \end{figure}

 To search for a document in the network, matching a key $K$, one
-establishes a route for $K$. At each step of the routing, the node
-checks it's cache to see if a document associated with that key is
-stored. If such a document is found, the route terminates and the
-document is returned to the previous node in the route, which proxies
-it back towards the destination. Each node that proxies the data will
+establishes a route for $K$. At each step, the node checks its cache
+to see if a document associated with that key is present. If such a
+document is found, the route terminates and the document is returned
+to the previous node in the route, which proxies it back towards the
+node which initiated the request. Each node that proxies the data will
 cache it.

 The inverse process, that of originally inserting a document, is
@@ -194,42 +192,48 @@

 \subsection{Keys and Document Authentication}

-In order to maintain data integrity, keys are related to documents
+In order to maintain data integrity, keys are related to the documents
 they denote by cryptographic means. In particular Freenet uses keys
 that either a cryptographic hash of the document itself, or the
-bitwise XOR of a hash of a name and the fingerprint of a public
-asymmetric cryptography key (PK) which the data is signed. 
+bitwise XOR of a hash of a document name and the fingerprint of a
+public asymmetric cryptography key (PK) which the document is signed.

-While proxying and caching a document, each node can thus verify the
-integrity of the document. In first case, the node need only calculate
-the hash of the document, and make sure it matches the key it routed
-for. In the second case, the PK and name string are provided as
-metadata with the document. When the node receives the document, it
-checks that the name and PK hash to the key that it routed for, and
-then checks that PK verifies the signature on the data.
+While proxying and caching a document, each node can thus verify its
+integrity. In the first case, the node need only calculate the hash of the
+document, and make sure it matches the key it routed for. In the
+second case, the PK and name string are provided as metadata with the
+document. When the node receives the document, it checks that the name
+and PK hash to the key that it routed for, and then checks that PK
+verifies the signature on the data.

 The first type of key, called a Content Hash Key (CHK), is used for
 large static pieces of data. Since the key is generated from the data,
 it can neither be generated beforehand nor predicted by somebody who
 does not have the data. However, such keys are still useful, for
-example, when one document wishes to provide a link to a copy of an
-explicit, static, document.
+example, when a document wishes to provide a link to a copy of a
+particular static document.

 The second type of key, known as a Signed Subspace Key (SSK), allows
 several documents to be published by the holder of a single asymmetric
-private key/public key-pair. As the name implies, the holder of the
-key-pair has a private subspace in which he can publish signed
-documents, by varrying the name part. This is used to implement
-updating schemes - either by including a version in the name, or
-having the name include a date of publication.
+key-pair. As the name implies, the holder of the key-pair has a
+private subspace in which he can publish signed documents, by varrying
+the name part. This is used to implement updating schemes - either by
+including a version in the name, or having the name include a date of
+publication.

 In both cases, the entire key cannot be derived from a readable
 address (in the CHK case, the entire key is an unreadable binary
 string, and in the SSK case at least the subspace wide part is). Thus
 finding documents in Freenet requires finding at least the publishers
-PK in some way. No method for direct keyword searching is provided,
+PK in some way.\footnotemark No method for direct keyword searching is 
provided,
 though some methods are possible\footnotemark.

+\footnotetext{A system for expressing keys as URIs have been deviced
+  for Freenet. The non-readble sections are expressed as strings in a
+  modified BASE64 encoding, and the readable bytes (such as the
+  document name in the SSK) in plaintext. Keys may look like: ADD
+  EXAMPLES OF KEYS.}
+
 \footnotetext{One method that has been used is to create the public
   key/private key pair for an SSK using a string as a seed to a known
   PRNG. Then anybody who knows or guesses the string can derive the
@@ -238,6 +242,8 @@
   derive the private key needed to insert other data under the same
   name.}

+% OSKARS LATEST PASS REACHED HERE
+
 \subsection{Data formats and encryption}

 An important aspect of Freenet, that has been carried over from the


Reply via email to