Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

OK, why would I believe that IPFS is able to handle this issue better than the numerous other projects trying to implement incentivization? IPFS focus has been quite clearly elsewhere.


You're right, this isn't the only possible incentive system, and ideally IPFS will be compatible with multiple ones. Could you link to the other projects you're talking about?


Storj, maidsafe at least. There has been some talk about incentivizing tahoe-lafs AFAIK. I think from the altcoin camp there are also more projects.


There's been some talk of collaborating with those projects, so it's definitely a possibility. IPFS is more about tying together all the existing components in a nice way, rather than trying to reinvent everything itself. Please get involved if you have ideas about the direction that should be taken :)


There are a few things that I see as less than ideal with IPFS, so I recently set myself the challenge of designing a better system. I really like the way IPFS breaks down the problem, so the components remain the same.

Regarding incentivization, looking at the literature, you can split existing incentive schemes into two camps, local and global. Tit-for-tat would be an example of a local scheme, currency based systems would be global.

Neither of these types of scheme really work, with local schemes, you have no way to use accrued reputation with new nodes. Global schemes require too much coordination and overhead to be suitable for small 'transactions'.

As I understand it, IPFS deals with the problem by having a local scheme, but with a get out clause. If you want something you may have to do work on behalf of the node you want something from, but that work should be easier if you have a good reputation with other nodes in the network.

Under my proposed system, nodes keep track of how much they are in debt or in credit with the nodes that they are in contact with. The amount that you can go into debt with another node is limited to 1% of the amount of useful data that you have transferred to that node. (This way, if a node terminates a connection whilst it is in debt to another node, that loss, amortized over the useful data that you have received is very small). Nodes are incentivized keep connections open, since short lived connections have very tight reins on how much debt/credit can be accrued.

As this stands, this doesn't solve the problem. It's entirely local and there's no way to initiate connections since nodes, by default, don't trust each other.

The solution is two-fold: credit transfer and proof of work. I have designed a protocol that allows nodes to transfer credit to cancel out 'cycles of debt'. Nodes can also gain credit with other nodes by solving pointless problems. The innovation here is that when confronted with a puzzle, a node is able to delegate the work to its debtors. Proof of work is useful since, given the choice, a node would probably prefer to use its upstream bandwidth than burn up CPU time.

There are more details to this, like: the specifics of how to discover and execute a credit transfer along a long chain using only local interactions, how to incentive routing as well as data transfer and many other things.

If I had the time, I'd implement it.


Note that bitswap isn't purely a tit-for-tat system, but will also include a credit system like you suggest.

> I have designed a protocol that allows nodes to transfer credit to cancel out 'cycles of debt'.

Awesome, sounds like if Filecoin were based on Ripple instead of Bitcoin. Ideas are always welcome, so please share yours either via Github issues or IRC (freenode#ipfs) :)


It's fundamentally different than Ripple. From wikipedia:

Ripple relies on a common shared ledger, which is a distributed database storing information about all Ripple accounts. The network is "managed by a network of independent validating servers that constantly compare their transaction records."

I don't think any system that relies on a global ledger is workable for micropayments like this.

Edit: I spoke too soon, Ripple is more complicated than I thought. It is somewhat like Ripple.


Huh, ripple has changed since I last looked at it, could have sworn it used to be based purely around debt cycles.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: