I've decided I'd just start working on Pfyshnet again despite not having a plan on building a base network of seed nodes. I hope that when we catch on I'll never have to worry about this again.
After stewing over Pfyshnet now for over a year, I've got some great ideas on how to improve network performance, bandwidth, and memory. To prove my theory about these being improvements though, I'm going to beef up the simulator and measure the current performance. Then when I do the improvements I can run the simulator to measure the improvement.
However, I realize I've forgotten a lot of the details about the implementaion. Therefore, my first task will be a code review. I'll also add some better documentation while I do this. I expect now that I have a fresh perspective I may find a few issues while I do this.
I expect the code review to take about 2 weeks or so, and then the simulator improvements probably a month. Then implementing the improvements will take another month or so. So maybe by Christmas time I'll be ready for another release.
Goals
I'd like to offer up these goals for the network. What goals are missing? Please respond with your thoughts on how these goals are already met by an existing network, or how they could be met by a new network.
- Security of transactions. Uploaders, Downloaders, and Data Facilitators must be protected from their transactions.
- This goal must be maintained assuming some fraction of participating nodes are subversively working in collusion, and that all network traffic between participants is visible to the attacker.
- This is the highest priority and no compromise outside of the necessity for practicality will be made at the expense of this goal.
- Note, security from participation is NOT a goal. That is the goal of a darknet.
- Protection of Data Facilitators excludes the use of public exit points from the network. These serve as legal and technological attack points.
- Specific entry points for data should also be avoided. These also serve as legal and technological attack points.
- Anyone at anytime can participate in the network given a computer and Internet connection. It should be a public network, not a private darknet.
- Darknets require existing relationships with others already participating. This would exclude a large portion of the population that would like to participate but know of no other people already participating or willing to participate.
- Trust is dispersed over a user defined number of nodes.
- Trust is based on the probability that some faction of nodes known are NOT evil. This faction is defined by the user on a per access basis.
- The plain text of the transaction must not be revealed until it has passed through enough nodes that the user is comfortable with the probability it has passed through a trustworthy node as compared to the risk of the transaction.
- This is one of the biggest problems with many anonymous peer to peer networks. Requests and transactions are plain text to immediate nodes. The legal recourse is that you could simply be passing the request through from someone else. However, for some networks an immediate node could perform statistical analysis of the transactions to yield a fairly strong certainty of a user's general network activity.
- No centralization.
- Centralization is very tempting, especially given the previous goals. There are many benefits including performance, reliability, and security. However, centralization provides a small number of attack points to cripple or completely disable the entire network.
- Proper centralized servers can also be expensive, requiring solicitation for donations, or other money making schemes such as advertisements.
Tuesday, August 25, 2009
Subscribe to:
Posts (Atom)