Bitcoin and Cryptocurrency Technologies
Runner up for the 2017 PROSE Award in Computing and Information Sciences, Association of American Publishers.
About the book
Bitcoin and Cryptocurrency Technologies provides a comprehensive introduction to the revolutionary yet often misunderstood new technologies of digital currency. Whether you are a student, software developer, tech entrepreneur, or researcher in computer science, this authoritative and self-contained book tells you everything you need to know about the new global money for the Internet age.
How do Bitcoin and its blockchain actually work? How secure are your bitcoins? How anonymous are users of cryptocurrencies? Can cryptocurrencies be regulated? These are some of the many questions this book answers. It begins by tracing the history and development of Bitcoin and cryptocurrencies, and then gives the conceptual and practical foundations you need to engineer secure software that interacts with the Bitcoin network as well as to integrate ideas from Bitcoin into your own projects. Topics include decentralization, mining, the politics of Bitcoin, altcoins and the cryptocurrency ecosystem, the future of Bitcoin, and more.
Courses that use the book
The book has been used in over 120 courses worldwide, including courses at Berkeley, Cornell, George Mason University, New York University, Stanford, TU Delft, University of California, Davis, University of Illinois at Urbana Champaign, University of Virginia, and Hong Kong University of Science & Technology.
Free pre-publication draft
A pre-publication draft of the book is available for download here. The published version is better in a several ways: it is peer-reviewed, professionally edited and typeset.
The Coursera course Bitcoin and Cryptocurrency Technologies is a useful complement to this textbook. It has a series of video lectures that closely follow the textbook content, plus programming assignments and quizzes.
There are three programming assignments which will take you through the steps of designing and building a basic cryptocurrency. The programming language we use for the assignments is Java. This is not because we’re fans of Java, but because the infrastructure we used for creating grading scripts is Java-based.
We’ve used these assignment in courses that we’ve taught, but there may still be bugs in them. We appreciate your understanding and would be grateful for any bug reports. Email us at firstname.lastname@example.org.
We also have grading scripts for each of these assignments. If you’re an instructor and would like access to the grading scripts, please send us a brief email in which you introduce yourself and tell us about your course.
Email us at email@example.com for additional instructional materials.
If you find an error in our book, please email us at firstname.lastname@example.org.
The errata page lists all known substantive errors (typo corrections are also welcome, but not listed there).
Comments? Questions? Typos? Email us at email@example.com.