I would love to see something simpler, think Kad DHT meets Bitcoin. I could share a hash with you, and from the command line you could simply type "fetch L9ThxnotKPzthJ7hu3bnORuT6xI" just as you'd use wget.
This would be a hash of an index file that describes the data, broken into small chunks. Now your client goes back onto the network and finds the cheapest way to retrieve all these chunks. You could set a default, "5 cents per GB" that you're willing to pay.
Servers could monitor the network and see what's being requested often, and pay to download (and re-serve) these chunks themselves in the hopes of profiting. When files become rare, servers could charge a premium.
Bitcoin is not a micropayment system, so paying per chunk would be expensive. You could pre-pay, say 1GB at a time at first, and slowly build up a trusted reputation where you only pay afterwards (by reusing a bitcoin address as your "identity" that you always send from). You'd work out a "contract" (signed with your sending address), give it to the server, and if you skip out on paying they could use it as proof of nonpayment which they would share with other servers. (Maybe all servers have a blacklist file they share for free). They could try to send you bogus data, but since you can verify by-the-chunk you wouldn't request more chunks from them once you've received a piece that fails a hash.
Once you've got this network in place, you could build any of the things the author in this link is describing. My hope, a Usenet 2.0 style protocol. The whole thing is very exciting. But first you need a simple, generic, data-for-bitcoin network.
Everything I've seen so far in the bitcoin/storage area (maidsafe, storj) sounds overly complicated and downright scammy. I don't want to back up my data to a p2p network. I don't want to have to purchase a new altcoin to use your network. I just want to, for starters, type "serve [file]" or "fetch [hash]" on the CLI and have it all magically work behind the scenes. First place I'd see this taking off is sharing porn - yay! From there, after time, it could become the backbone of "web 3.0".
Decentralization, and thus p2p, is the very reason services like these are being created, to protect against censorship. That seems the logical next step.
And besides the "altcoin" problem, MaidSafe does this. You pretty much provide a hash to the API, and it fetches your files using chunks from a decentralized system. It's genius. All the hard work they're doing is the "magic work behind the scenes" that implements that.
As for the altcoin, the word "altcoin" connotates a "copy" of bitcoin or something negative. It's not fair to call SafeCoin an "altcoin", since it has nothing whatsoever to do with any other coins. It's completely original (and does not use a blockchain), and it deserves a chance to prove itself. But I understand all the bitcoin evangelists don't even want to consider that another digital currency can make it to the top.
> But I understand all the bitcoin evangelists don't even want to consider that another digital currency can make it to the top.
Can you explain why "Safecoin" is needed and more importantly, how it is superior to Bitcoin? It sounds like a reinvention of something that already exists, done to raise funds (they wouldn't have received millions of USD$ in funding otherwise). I've never seen a good technical explanation, it's all very hand-wavy and vague.
Secondly, Maidsafe seems to be trying to solve a problem that does not exist - backing up personal data to a p2p network. It's a flawed idea because there is no way to know if your data is sitting on a botnet that could disappear any moment. There is a financial incentive to pretend to be multiple clients and use as little hardware as possible. Maidsafe cannot know if your 10 copies of data are on 10 hard drives or 1.
Ah I see you're not really familiar with the project. "backing up personal data to a p2p network" is far from what they're doing. They're creating the backbone for a completely decentralized internet. It's up to everyone to use their API to build the "apps" on the network, whether it's a website, social network, media site (youtube), etc. The possibilities are endless, just like the current internet you now use. The only difference is that it's made with security and privacy in mind. No DNS, centralized servers (like AWS), etc are required to host your apps--it's all taken care of for you.
On to your safecoin questions. They're inventing a new digital currency that aims to get rid of the problems that exist with bitcoin. Namely, scalability. If you're familiar with bitcoin, you'll know that every full node is aware of every transaction. The current limit is 7 transactions per second (though there are talks of lifting it, which has other implications, but that's another matter). Bitcoin also requires specialized hardware to mine and keep the network secure. Miners service no purpose except this end.
Safecoin has no blockchain, therefore not everyone is aware of all other transactions. Transaction are 100% free and unlimited, and the "miners" are nodes that provide storage and bandwidth on the network, thus adding actual value (and this is how the network AND safecoin is to be bootstrapped, answering your first question). Also, app-builders are also rewarded safecoins for people using their apps, adding further incentive to build on the network (yes, you can earn money just by building a useful app people love). Since all nodes don't need to know about every transaction, scalability is not an issue. DDOS protection is already built into the network.
I can go on, but in reality, if it works, it'll blow everything else out of the water and truly change the networking landscape. I'm actually planning to write a blog post explaining how it works since questions like yours come up all the time.
Edit: oh, and feel free to ask questions and browse posts on the forum at maidsafe.org.
Why not just build an automated post pay system instead of relying on the other person to remember?
At that point, why not setup escrow processes where the sender has to provide proof to release the payment?
This could probably go on and on, as I'm not sure there is a complete answer to centralized vs. decentralized. You likely just have to pick based on what attributes are most important at the time.
I could imagine the payment protocol being very flexible. Some servers may want their money up front, some may be willing to trust you to pay afterwards, etc.
> At that point, why not setup escrow processes where the sender has to provide proof to release the payment?
There is no way to prove you've sent a file to someone. In the BBS days, there was a program called Leech Zmodem that lied about getting the last chunk of data, so that you didn't have to pay file points for your download.
I can think of a way around this, sort of: you could break the transfer up and require the receiver to sign a message for each piece they've received, before you send the next piece. But, they can lie and say they never got the last piece, and that's tricky because some data is worthless without the entire thing. Maybe they're not lying, and you've disconnected - should they have to pay for 90% of a file? There's lots of little edge cases I can think of.
If this whole idea ever happened, I think large data warehouses would form (using cheap amazon/google storage) and the whole thing might become centralized anyway.
they can lie and say they never got the last piece
This can be solved with encryption. Just send them an encrypted version of the file. By requesting the key the receiver confirms possession of all chunks.
And what if the sender does not send the key? Or, when you use the key, you find out it is just a blob of zeros? (Or, the other way around: receiver lies and says that the sender did not send the key, or that the decrypted data did not match the hash)
All your concerns are valid but addressable via "reputation".
Consider this: Each completed transaction is rated by each participating party.
How much your rating affects your opponents reputation in determined by your own reputation. A higher reputation enables privileges such as more peers willing to trade with you, faster downloads, etc.
These reputation systems don't work in common P2P networks because everyone can just generate fake identities and boost their own reputation at will.
However, if you tie the reputation system to bitcoin so that the creation of an identity puts actual money on the line then this kind of cheating doesn't work anymore.
Well, I would opt in for something simple/more centralized that works today, instead of having something that works perfectly in thoery after 5 years... All the current projects seem to be the latter type.
Whether or not UML works depends mostly on the people who use it. Not on whether they are smart or not -- it fits with some mindsets and clashes with some others. I have seen very-very good C++ programmers who worked with roundtrip engineering tools (Together) and diagram was always the first. (And the project went well.)
I have created several very successful projects by doing very in depth UML up front. Of course you'll make some changes once some of the finer details start to reveal themselves, but if you thought through the separations well enough, it should be relatively minor.
I too dream of such a thing. Personally, I want the idea where you pay bitcoins to the entire network, the payment gets split by the percentage of storage.
Webmasters would pay the network (and have an API to generate download links, upload authorization for users to upload directly to the network), giving users the ability to use it for free or can pay directly to the network too, or even get a premium account on the website for convinence.
I don't care about the other ideas bit451 has suggested (playlists, hashtags, etc), I think the network should be for resilient file storage and for videos people can build an application on top of that network.
I'd love to switch to a network rather than rely on a single datacenter which can be raided over night. A 'Usenet for HTTP'.
I've heard of Tahoe-LAFS before, I am under the impression it's for when I own the storage server rather than using a network of other peoples server? My dream is of a network of other people operating the servers for both liability reasons and it would be cheaper because given a network of people paying with bitcoin, it would be oversold, reducing the price more than getting a dedicated server (assuming there is competition).
If I'm wrong, and other people provide storage with Tahoe-LAFS, how are you recieving money for it? Storage is expensive when done on enterprise scale, we can't rely on peoples open internet idiology for something as expensive as that.
The original technology Tahoe-LAFS is based upon (MojoNation) also spawned BitTorrent. For BT Bram removed the secure tunnels (a la Tor) and the distributed payment system. Over the past decade we have just slowly added it all back and at each step proclaimed ourselves to be rather clever...
The writeup that is linked to is only a summary of which technologies should be tied together, without any proper explanation on how that should be done. The GitHub repository is from July, contains only a few weird UML diagrams, and doesn't have updates thereafter.
If you like the genre of fantasy, it's a fun writeup though. Especially the 'contribute' part.
Haha. Well, we built a decentralized social network, and bitcoin is a decentralized money, so we'll see, maybe someone can make decentralized media server. I mean, isn't GNU Goblin something like that already? And the web is decentralized ... so with a decentralized social network powering user accounts and social stuff, what's the problem? You can even use bitcoins and contracts to set up hosting agreements between people.
This would be a hash of an index file that describes the data, broken into small chunks. Now your client goes back onto the network and finds the cheapest way to retrieve all these chunks. You could set a default, "5 cents per GB" that you're willing to pay.
Servers could monitor the network and see what's being requested often, and pay to download (and re-serve) these chunks themselves in the hopes of profiting. When files become rare, servers could charge a premium.
Bitcoin is not a micropayment system, so paying per chunk would be expensive. You could pre-pay, say 1GB at a time at first, and slowly build up a trusted reputation where you only pay afterwards (by reusing a bitcoin address as your "identity" that you always send from). You'd work out a "contract" (signed with your sending address), give it to the server, and if you skip out on paying they could use it as proof of nonpayment which they would share with other servers. (Maybe all servers have a blacklist file they share for free). They could try to send you bogus data, but since you can verify by-the-chunk you wouldn't request more chunks from them once you've received a piece that fails a hash.
Once you've got this network in place, you could build any of the things the author in this link is describing. My hope, a Usenet 2.0 style protocol. The whole thing is very exciting. But first you need a simple, generic, data-for-bitcoin network.
Everything I've seen so far in the bitcoin/storage area (maidsafe, storj) sounds overly complicated and downright scammy. I don't want to back up my data to a p2p network. I don't want to have to purchase a new altcoin to use your network. I just want to, for starters, type "serve [file]" or "fetch [hash]" on the CLI and have it all magically work behind the scenes. First place I'd see this taking off is sharing porn - yay! From there, after time, it could become the backbone of "web 3.0".