  This paper considers the problem of stabilizing cooperative data exchange
with selfish users. In this setting, each user has a subset of packets in the
ground set $X$, and wants all other packets in $X$. The users can exchange
their packets by broadcasting coded or uncoded packets over a lossless
broadcast channel, and monetary transactions are allowed between any pair of
users. We define the utility of each user as the sum of two sub-utility
functions: (i) the difference between the total payment received by the user
and the total transmission rate of the user, and (ii) the difference between
the total number of required packets by the user and the total payment made by
the user. A rate-vector and payment-matrix pair $(r,p)$ is said to stabilize
the grand coalition (i.e., the set of all users) if $(r,p)$ is Pareto optimal
over all minor coalitions (i.e., all proper subsets of users who collectively
know all packets in $X$). Our goal is to design a stabilizing rate-payment pair
with minimum total sum-rate and minimum total sum-payment for any given
instance of the problem. In this work, we propose two algorithms that find such
a solution. Moreover, we show that both algorithms maximize the sum of utility
of all users (over all solutions), and one of the algorithms also maximizes the
minimum utility among all users (over all solutions).
