  Performing some task among a set of agents requires the use of some protocol
that regulates the interactions between them. If those agents are rational,
they may try to subvert the protocol for their own benefit, in an attempt to
reach an outcome that provides greater utility. We revisit the traditional
notion of self-enforcing protocols implemented using existing game-theoretic
solution concepts, we describe its shortcomings in real-world applications, and
we propose a new notion of self-enforcing protocols, namely co-utile protocols.
The latter represent a solution concept that can be implemented without a
coordination mechanism in situations when traditional self-enforcing protocols
need a coordination mechanism. Co-utile protocols are preferable in
decentralized systems of rational agents because of their efficiency and
fairness. We illustrate the application of co-utile protocols to information
technology, specifically to preserving the privacy of query profiles of
database/search engine users.
