Forget Napster & Gnutella: Enter Mojo Nation
burris writes "Salon's Damien Cave writes "Forget Napster and Gnutella. Jim McCoy's Mojo Nation is the coolest file trading service on the net." This OpenSource distributed filesystem uses digital cash technology to create a barter economy for idle disk space, bandwidth, and CPU. Now you can get paid for sharing your computer."
You are correct that there are problems with the fast and shallow analysis that you seem to present, so here are the fast answers to why these problems will not be the major problem that you claim:
1) You get credit for content you publish so there is an incentive to publish lots of random crap.
This is untrue. You do not get Mojo to posting content, you get Mojo for reselling blocks of data to others. In fact, in Mojo Nation there is a minor cost imposed for publication to prevent people from doing the sorts of stupid attacks which you mention. Mojo Nation is built assuming a society of dishonest, distrustful agents. Your agent doesn't get paid (by my agent) until you deliver the goods.
We are also working on a simple collaberative filtering system to allow users to filter out the bad metadata in the system. If someone publishes 3 gb of random noise it will get a few hits and the users will be able to pass back to the content tracker a complaint that the description did not match the content, as a few of these pile up the content description gets fewer hits on search requests and eventually the blocks fade away because no one will buy them.
2) What is the "price" of Mojo.
The reason I tried to avoid that question is that the answer is a little too complex to distill into a sound bite. A unit of Mojo represents a slice of the current capabilities of the system as a whole. If you perform work for me now I give you credits, in the future when the network is larger those credits will represent a slice of a much larger pie and so have increased in value when you spend them. If the network collapses (as you predict) then the only value of those credits are that the company running Mojo Nation will redeem them for storage/message passing service on our own systems.
The problem with quoting a "price" is that everyone will dig it up later and call you a liar for not being able to successfully predict the future product of several different unknown variables in this equation (how large is the network vs. total tokens in circulation, what is the raw replacement cost of the resources, what sort of discount are users willing to make on these resources to attract customers, what is the current demand for each resource in our basket [is bandwidth scare this hour, perhaps disk space?])
Mojo is a mechanism for keeping score in peer to peer systems. The real-dollar value depends on the demand for the services and the supply in the pool. Please don't claim that I am an idiot just because I have a basic understanding of which claims one can and cannot make regarding a future market condition.
jim
(a bit of history)
..." Time
Way back in the day, Tim May (cypherpunks)
created a distributed communications prototype
called 'BlackNet', communicating through anonymous
remailers and doing file service, etc. It was
lacking in a viable anonymous payment mechanism,
but was a totally adequate proof of concept for
a totally secure filestore and info-market.
http://www.cl.cam.ac. uk/ users/rja14/eternity/eternity.html
Ross Anderson, a professor at Cambridge University
(and member of the SERPENT AES-candidate team),
worked on specifications for a system which
provided a "global filestore" capable of storing
popular or unpopular content in a distributed,
censorship-resistant fashion, based on electronic
payment, network communication, etc.
Adam Back then implemented "Eternity USENET",
using USENET as a backing store, with a special
web proxy to enter/retreive files.
Napster, Gnutella, Freenet seem to have come from
a completely different direction (particularly
Napster), rather than from the Eternity/BlackNet/etc. tree. Napster is
certainly the least general, but has had the
most commercial/userbase success, which may
be linked. It's certainly a lot easier to understand "Napster is sharing mp3s" than
"mojonation provides distributed file sharing
backed by electronic cash and a system of reputations and agents and brokers and
will tell.
Publius is probably most directly inspired by
Anderson's Eternity Service, but I didn't check
citations.
Mojo Nation is from the same intellectual heritage
as BlackNet/Eternity/etc., but I believe the
foundations were laid at about the same time as
the others, with implementation waiting quite
a while for resources to be available. It looks
like the first viable opportunity to get
electronic cash widely deployed on the Internet...
I think that aspect of Mojo Nation (the mojo part)
is by far more important than the file-sharing
aspect, but it's a bootstrapping problem.
When content is published in Mojo Nation it goes through three steps before it becomes a small block of data which might be published on your host.
1) The file will be encrypted with the hash of the file. (feature in release 0.920 which will be out this week)
2) The encrypted file is broken into fixed-length segments.
3) These segments are pushed through an error-correction code, expanding the N bits into 8 N/4 length segments. (any 4 of the 8 shares are sufficient to reconstruct the orginal block)
These resulting block fragments are then published and are passed through the system. Each block fragment is only identified by its SHA1 hash, to reconstruct a piece of data you need a sharemap which tells you that if you collect a certain set of blocks and reverse the publication process using the instructions contained in the map you get the original file.
If you are holding blocks you have no idea what they are, it is effectively random noise on your system. If you have a map which contains a reference to block that you are holding locally you can figure out that small part of the puzzle, but looking at what is stored locally and knowing what you have is more than just searching for a needle in a haystack...
jim
Mojo Nation does not try to open security holes. The service is actually as content-blind as we can make it. That means that it does not know if it is downloading a image, a text file, or a trojan; we expect users to take appropriate steps in watching the content. We do intend on adding additional features which will make "bad data" less of a problem, the first of which is reputation filtering for content descriptions -- does this search result point to data that other people have given a thumbs-up to. The current reputation system is internal and used for performing activities like selecting who to buy from and whether it is worth it to pay additional credits to download that block from someone who has low-latency delivery, but we are working on scaling it up to let users make the basic reputation/filtering decisions. We provide the infrastructure, it is up to the users to provide and manage the content.
For preventing problems like eating up all of your CPU time or a rogue agent running rampant through your filesystem, we are trying very hard to do the right thing (for starters by not even trying to execute distirbuted code, CPU cycle costs are included in the costs of reselling or delivering a message.) We have used strong crypto where appropriate and we are aware that all control and trust boundaries are local so we are trying to create the basic infrastructure which takes advantage of this fact.
The market was chosen as our model for resource allocation and trust management because it seems to work. No one trusts other agents in the game, everyone is (usually) trying to selfishly maximize the utility of the system for their own needs, and successful cheating can carry great reward so risk management is built into the basic assumptions about how things work. Still this distributed system ticks right along without Alan Greenspan needing to keep track of where each dollar is spent or the local shoe factory needing to know exactly who is going to be buying the shoes it is creating.
In Mojo Nation you don't trust anyone, your agents are very paranoid about what is outside of their direct control, and choices about trust, performance, and privacy/anonymity can become economic choices on the part of the user.
jim
microsoftword.mp3 - it doesn't care that they're not words...
I think that this could work fairly well if it reached critical mass, but I'm worried about the security of this. Renting out your bandwith or computing power is cool, but doing so leaves huge openings for script kiddies to get in your system and root it. Hopefully some sort of extremely good security will be implemented, otherwise most of the techies who would like to use this program won't due to its security issues.
Colin Winters
Your proposal sounds rather interesting, but I have a few questions that haven't been raised/answered elsewhere...
1) If someone does a complete reinstall on their computer, won't that result in the loss of the content? (I assume that you have some redundancy of data, but the more duplication, the greater the cost in mojo... - Perhaps offer redundancy for a greater cost, but the default be non redundant...)
2) You offer 1 Million mojo for beta testers, what is to stop someone from creating numerous false beta testing accounts (say a skript kiddie installing the mojonation on rooted boxen...), and then transferring all of the mojo to his account.
3) It would appear that your company would be in a similar position to the Federal Reserve - capable of 'printing' additional mojo, causing price inflation. What types of safety mechanisms are in place to keep you (or a clever hacker) from openning up their own 'mojo printing press'?
4) Givin that Mojo transfers have 'float' - that is, payment is not made until a certain level of Mojo is 'owed'. Could not an individual make transfers that were only to just below the threshold, and then no longer use the services of that individual? Thus one could 'owe' 9999 to ten thousand entities, and yet only have a total of 10,000 mojo.. Or create multiple anonymous accounts that each only use 9,999 credits.
5) Can large content easily be broken down into smaller pieces? I realize that a user could break the content apart before uploading it, but it would be nice if I could download partial content of a movie in smaller parts so that my payments are over a longer period of time.
6) If I download content, can I then advertise that I have it available so that I can recoup some of the cost of me downloading the content?
7) Is a method in place to 'stream' the content, if multiple users are willing to wait to download the content at the same time to reduce the cost per user and reduce the resources used by the sender?
Thanks,
LetterRip
Tom M.
TomM@pentstar.com
Ryan knows this stuff, but for those in the audience who have not been hanging out in crypto and cypherpunk circles for the last ten years:
> Mojo Nation is from the same intellectual heritage
> as BlackNet/Eternity/etc., but I believe the
> foundations were laid at about the same time as
> the others, with implementation waiting quite
> a while for resources to be available.
The original genesis was the "Internet is a Brown Paper Bag" system created by myself, Doug Barnes, and Jerry Porter back in Austin and presented at the HoHoCon '94 conference. Things sat around for a while because we were waiting for two things: digital cash and a raison d'etre. At the time we did this early work connectivity and storage costs were expensive and there was no digital content to speak of. The growth of broadband and flood of digital content(music, video, images, etc.) made this arena more interesting several years ago so that is why we starting talking to lawyers to see if it would be possible to actually implement some of the wacky ideas we used to have.
A digital cash system was the sticking point. All great cypherpunk projects seem to begin with the line "when we have digital cash, we will be able to do X..." Our insight was in realizing that for a distributed system like what we really needed was a method for fairly allocating resources. We combined a cool idea to base a form of currency on payment in kind with a reputation-backed microcredit system to cut down on token clearing overhead and thus was born Mojo Nation.
One insight that Ryan has made which I hope others pick up on is that Mojo Nation is about more than just swapping music or pushing data. We are trying to create a basic infrastructure for any kind of peer to peer transaction, we just happen to think that trust management and resource allocation are the two important problems that need to be dealt with in this space and have targetted our micropayment system in this direction.
jim
Short answer: people who try to make money selling bandwidth will have to pay full price for it in the first place.
As System Administrator and part owner of Got.net, I can say we will not wig out. It's true that part of our niche is over-selling or aggregating our resources: bandwidth, phone lines, modems, disk space. We operate in a similiar way to how banks do. Banks loan out about five times as much money as they have on hand. This ratio is maintained by the government. I think it's called the "prime lending rate" or something.
ISPs sell about 10 times as many dialups as they have modems, and likewise with bandwidth. It's true that if all our nailed-up customers used all their bandwidth we'd be in trouble. However, that doesn't mean we're going to charge EVERYONE more.
We buy bandwidth from our provider under a contract which provides us a minimum committed data rate, and if the lowest 95% of our traffic is over that, we are charged for our overage. We can burst our connection in San Jose at 100Mbps, but as long as 95% of our traffic is under 6Mbps, we won't have any surprises on our bill.
If one of our co-location customers uses a consistantly high amount of bandwidth, we will pass our increased costs on to that customer. If they are doing it to gain Mojo, they will probably want to sell that mojo (maybe to us?). In other words, it's the micro-payments within MojoNation that make it viable. Whereas Napster just drags down a network, prompting private and public institutions to try to block it, an increase in MojoNation traffic is accompanied with an increase in Mojo, and therefore a means for compensating all parties effected.
Most likely, as an ISP, we will be one of the early adoptors and pushers of MojoNation. It will allow us to sell bandwidth and disk space we haven't committed to our official customers yet, which will decrease waste within our company. If our MojoNation agents use too much CPU or disk space, we'll just increase our agent pricing.