Today I found myself inspired, perhaps accidentally in my political science lecture. Proffessor Ron Diebert was giving a lecture on internet censorship wherein he explained how and why it worked and, probably more interestingly how his Citizen’s Lab has developed methods to circumvent these censorship fire walls. The software he was demonstrating was Psiphon software which allows a user to selectively enable themselves as proxy hosts for users of computers in countries with censorship laws. Psiphon’s mandate is very simple, enable access to content and services by using a known surrogate who trusts the users accessing the system.
The first question I conjured in my mind was, “How does one establish an external connection from Tunisia to, say, Canada without having real-life connections?” Deibert’s answer was, one can’t, really. His team is coming up with a brute force solution by simply starting up a number of anonymous hosts who can be accessed by anybody - at which point those hosts will be a choke point easily blocked by the censorship walls they’re circumventing.
The other thing Deibert was careful to point out was that Psiphon is a connection mechanism - it doesn’t attempt to guide the content of transmission, it simply opens the line for anything.
This is well and good and Psiphon is an excellent start but I think there are more valuable, and considerably FAR more subversive applications to the proxy premise that might benefit activists and dissidents in places such as China or Burma. The idea leaps upon several phenomena such as viral marketing, trust networks, proxy hosts and open content formats.
A key vulnerability is psiphon is the synchronous nature of the host and the psiphonite - the host computer must be connected to the internet at all times, which, unless it is a server is unlikely. To eliminate that you must have a redundant network of nodes that can route amongst themselves intelligently, further, it will remove the existence of a supernode structure by connecting psiphonites to trusted nodes with low-latency connections.
I name my idea Leakynet - in reference to the news leak, leaking through the dam of information presented by censoring governments, and perhaps the Law of Leaky Abstractions . The idea is simple, take a newsfeed interface like Google Reader or Feedburner and build it on a P2P network. All news items are sorted based on the reliability of the source and relevance to your interests. You read something you like, you tell your LeakyNet so - next time something similar is available from the same source it’ll be rated higher - the reverse is true. A user’s tolerance levels of specificity and reliability of a source are customizable.
How do you decide, without setting up some random arbitrary connection, what trust connections a given node has? Firstly, you build on existing social networks - friend of a friend systems.
Think of four people, one of them is you, one of them is a Brumese journalist. You’re both on LeakyNet and you don’t know each other. Burmese journalist uploads cell phone footage and commentary to the LeakyNet and sends them to his friend Steve (another of the four).
Steve trusts this Burmese Journalist quite a bit (say 80%) and he’s interested in what’s going on in Burma (9 on a scale of 10, say). So Steve gets the info from his Burmese friend on the top of his list.
Steve has mutual friend with you, Cheryl, she thinks Steve is a bit of a nut so she doesn’t always buy everything he sends but usually finds him trust worthy, so he gets a rating of 60% but she’s not at all interested in Burma (2 out of 10).
Cheryl is quite skeptical and almost always trust worthy, so you trust her at least 80%. You’re pretty fascinated by what’s going on in Burma say, 6 out of 10.
Say, also, that you rate video footage as considerably more reliable than written accounting (say an addition 10% trust) putting your effective trust of this story at 90%.
After watching the video and deciding that you think it’s credible and useful you say you like this source - you’ve now created a DIRECT trust connection with the Burmese journalist. Next time he posts something, it’ll be ranked higher on your list. There’s also a confidence adjustment 1 time of 1 is significantly less confident than 99 times of 100.
Further, the more friends that have high trust ratings for a given source, the greater their score on your index. Say Steve also knew another friend of yours - that story would score even higher on the index.
The key is to separate reliability with relevance - the relevance is inherent in the content, the reliability is a quality of the producer.
When something is transmitted, it is “pushed” to your computer. If you remove something out of resource concerns, the system will push the content out to nodes who have a “warehouse” share on their drives to store content for the network.
The system would function very much like a neural net as action potentials create feedback which builds connections which change the behaviour of the next action potential. Content from low trust sources would disseminate slowly whereas high-trust sources would flash through the network.
Instead of being pull based web sites, or search-centric P2P, it would be a pushed based content channel that eliminates the inherent weakness of centralized providers by utilizing P2P transfers.