Introduction

The value of any P2P systems is directly proportional to the resources contributed by the peers in that system.  Current peer-to-peer systems like 'Gnutella' assume that peers will contribute resources to a global pool, but do not enforce it in any way.  Hence they suffer from freeloaders who simply use up the resource and don't contribute anything to the pool.  Studies show that 70% of Gnutella peers are freeloaders.  This pattern is also understandable as peers have little to gain by contributing resources to the global pool.  We propose ‘Karma’ a new secure framework for fair and efficient sharing of resources.

 

 

Goals of Karma
Limit the extent of freeriding.
General purpose - Must support different types of resources (like file share, results of computation etc)
Efficient - Transactions that implement the framework must be time and resource efficient.
Decentralized and Scalable
Must scale to millions of nodes.
Must be decentralized and there should be no concept of supernodes.
Achieve value parity between resources consumed and resources contributed.

 

Approach
A single virtual currency called 'Karma'
The Karma framework keeps track of resources contributed by a peer using  a scalar value called karma. This value goes up if the peer contributes resources to the system and goes down if the peer consumes resources from the system.  A group of nodes called 'bank-set' keep track of the karma belonging to a system.  The bank