Zero-knowledge proofs are fascinating and extremely useful constructs. Their fascinating nature is due to their seemingly contradictory definition; zero-knowledge proofs are convincing and yet yield nothing beyond the validity of the assertion being proved. Their applicability in the domain of cryptography is vast. A fundamental question regarding zero-knowledge protocols is whether their security is preserved when many instances of the protocol are executed concurrently. The practical importance of this question, in the days of extensive Internet communication, seems clear. This question is also interesting from a theoretical viewpoint - in addition to being challenging from an algorithmic perspective, the study of zero-knowledge in the concurrent setting has contributed greatly to our understanding of the concurrent security of cryptographic protocols. Protocols that remain zero-knowledge when many instances are executed concurrently are called concurrent zero-knowledge, and this book is devoted to their study. The book presents constructions of concurrent zero-knowledge protocols, along with proofs of security. It also shows why 'traditional' proof techniques (i.e., black-box simulation) are not suitable for establishing the concurrent zero-knowledge property of 'message-efficient' protocols. The book features introductory and concluding chapters on zero-knowledge by Oded Goldreich.