Many peer-to-peer systems assume that peers are cooperative to share and relay data. But in the open environment of the Internet, there may be uncooperative malicious peers. To detect malicious peers or reward well behaved ones, a reputation system is often used. In this article we give an overview of P2P reputation systems and investigate two fundamental issues in the design: reputation estimation and query. We classify the state-of-the-art approaches into several categories and study representative examples in each category. We also qualitatively compare them and outline open issues for future research.