this is something I've thought about for awhile (though with something like Chord or Kademlia instead of FTP).
My interest was a bit different though in that I wanted to construct a new coin for the network rather than use bitcoins. The idea would be to create a currency backed by space in a worldwide, highly available, fault-tolerant data-store.
Also, you need to price bandwidth/transfer, not just storage.
The difficulty is it seems there are two options:
1) A system consisting entirely of local contracts between parties
This is easy to setup, and somewhat easier to "secure" via trusting the person you're doing business with. But this means you'll have an unstructured network, meaning for search you're stuck with crappy broadcast like in first-generation p2p networks. I don't like this option.
2) A global system where all storage is pooled, and nodes are assigned data e.g. by hash.
Here a node is aware they are participating in a very large network as opposed to just some local thing with their pre-arranged neighbors. This means search can be done efficiently as in Chord/Kademlia, but now you need to deal with trust/security. You need some kind of system for deciding whether people who are claiming to store files are actually storing them, and then rewarding them accordingly. This is easy if there were some central authority, but the point is to do it without one. You need some way to prevent people from flooding the system and claiming to store stuff. The only way I can think of to do this is with some kind of long term pseudonymous reputation system, but I feel there should be something better.
Once you have some notion of identities/group members, validity can be done by randomly matching up members to test one another. The matching would be done by a byzantine-tolerant coin tossing protocol.
Also it's unclear what kind of legal liability one might have if someone stores illegal stuff on your machine.
But if you could do this right it would be big. IMO Bittorrent really took off because they got the economics half-right: data trading, not sharing. The next step to getting it fully right is stored value: seeding torrent A should let me leech for torrent B.