# <p style="text-align:center"> Bitcoin and Cryptocurrency Technologies </p> <!--br/>A Comprehensive Introduction</p--> <p style="text-align:center;"><a href="https://www.amazon.com/Bitcoin-Cryptocurrency-Technologies-Comprehensive-Introduction/dp/0691171696/"><img style="height:320;width:280px;" align="middle" src="bitcoin_book_cover.jpg" alt="Bitcoin and Cryptocurrency Technologies"></a> </p> <p style="text-align:center;"> <a href="https://www.amazon.com/Bitcoin-Cryptocurrency-Technologies-Comprehensive-Introduction/dp/0691171696">See on Amazon</a> </p> ## 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 block chain actually work? How secure are your bitcoins? How anonymous are their users? 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. <h2><a id="authors"></a>About the authors </h2> <h4> [Arvind Narayanan](http://randomwalker.info/) <span style="float:right;">[@random_walker](http://twitter.com/random_walker)</span></h4> <div id="an_short">Arvind Narayanan is an Assistant Professor of Computer Science at Princeton. </div><div id="an_btn" onclick="$('#an_more').fadeIn('fast');$('#an_btn').css('display', 'none');$('#an_short').css('display', 'none');"><button style="background:none;border:none;">More...</button></div> <div style="display:none;" id="an_more">Arvind Narayanan is an Assistant Professor of Computer Science at Princeton. Narayanan leads the Princeton Web Transparency and Accountability project that aims to uncover how companies are collecting and using our personal information. He also leads a research group studying the security, anonymity, and stability of Bitcoin and cryptocurrencies. His doctoral research showed that data anonymization is broken in fundamental ways, for which he jointly received the 2008 Privacy Enhancing Technologies Award. </div> #### [Joseph Bonneau](http://jbonneau.com) <span style="float:right;">[@josephbonneau](http://twitter.com/josephbonneau)</span> <div id="jb_short">Joseph Bonneau is a Technology Fellow at the Electronic Frontier Foundation and Postdoctoral Researcher at Stanford. </div><div id="jb_btn" onclick="$('#jb_more').fadeIn('fast');$('#jb_btn').css('display', 'none');$('#jb_short').css('display', 'none');"><button style="background:none;border:none;">More...</button></div> <div style="display:none;" id="jb_more">Joseph Bonneau is a Technology Fellow at the Electronic Frontier Foundation and Postdoctoral Researcher at Stanford. In addition to researching Bitcoin and cryptocurrencies he has worked on passwords and web authentication, secure messaging tools, and HTTPS for secure web browsing. Earlier he was as a Postdoctoral Fellow at CITP, Princeton and he has previously worked at Google, Yahoo, and Cryptography Research Inc. He received a PhD from the University of Cambridge and an MS from Stanford.</div> #### [Edward W. Felten](https://www.cs.princeton.edu/~felten/) <span style="float:right;">[@EdFelten](http://twitter.com/EdFelten)</span> <div id="ef_short">Edward Felten is a Professor of Computer Science and Public Affairs at Princeton, and the founding Director of the Center for Information Technology Policy. </div><div id="ef_btn" onclick="$('#ef_more').fadeIn('fast');$('#ef_btn').css('display', 'none');$('#ef_short').css('display', 'none');"><button style="background:none;border:none;">More...</button></div> <div style="display:none;" id="ef_more">Edward Felten is a Professor of Computer Science and Public Affairs at Princeton, and the founding Director of the Center for Information Technology Policy. In 2011-12 he served as the first Chief Technologist at the U.S. Federal Trade Commission. His research interests include computer security and privacy, and technology law and policy. He has published more than 100 papers in the research literature, and two books. His research on topics such as Internet security, privacy, copyright and copy protection, and electronic voting has been covered extensively in the popular press.</div> #### [Andrew Miller](https://cs.umd.edu/~amiller/) <span style="float:right;">[@socrates1024](http://twitter.com/socrates1024)</span> <div id="am_short">Andrew Miller is an Assistant Professor of Computer Science at the University of Illinois at Urbana-Champaign. </div><div id="am_btn" onclick="$('#am_more').fadeIn('fast');$('#am_btn').css('display', 'none');$('#am_short').css('display', 'none');"><button style="background:none;border:none;">More...</button></div> <div style="display:none;" id="am_more">Andrew Miller is an Assistant Professor of Computer Science at the University of Illinois at Urbana-Champaign, and previously received his Ph.D. from the University of Maryland. He has studied cryptocurrencies since 2011, and has authored scholarly papers on a wide range of original research, including new proof-of-work puzzle constructions, programming languages for block chain data structures, and peer-to-peer network measurement and simulation techniques. He is an Associate Director of the Initiative for Cryptocurrencies and Contracts (IC3) at Cornell and an advisor to the Zcash project. </div> #### [Steven Goldfeder](https://www.cs.princeton.edu/~stevenag/) <span style="float:right;">[@sgoldfed](http://twitter.com/sgoldfed)</span> <div id="sg_short">Steven Goldfeder is a PhD student in the Department of Computer Science at Princeton University, advised by Arvind Narayanan. </div><div id="sg_btn" onclick="$('#sg_more').fadeIn('fast');$('#sg_btn').css('display', 'none');$('#sg_short').css('display', 'none');"><button style="background:none;border:none;">More...</button></div> <div style="display:none;" id="sg_more">Steven Goldfeder is a PhD student in the Department of Computer Science at Princeton University, advised by Arvind Narayanan. He is a member of the Security & Privacy Research Group, a CITP Graduate Student Fellow, and a National Science Foundation Graduate Research Fellow. His research interests include cryptography, security, and privacy, especially decentralized digital currencies. His current work involves increasing the security of Bitcoin wallets. </div> #### [Jeremy Clark](http://users.encs.concordia.ca/~clark/) <span style="float:right;">[@pulpspy](http://twitter.com/pulpspy)</span> <div id="jc_short">Jeremy Clark contributed the foreword. He is an Assistant Professor at the Concordia Institute for Information Systems Engineering in Montreal. </div><div id="jc_btn" onclick="$('#jc_more').fadeIn('fast');$('#jc_btn').css('display', 'none');$('#jc_short').css('display', 'none');"><button style="background:none;border:none;">More...</button></div> <div style="display:none;" id="jc_more">Jeremy Clark is is an Assistant Professor at the Concordia Institute for Information Systems Engineering in Montreal. He received his PhD from the University of Waterloo in 2011, where he applied cryptography to designing and deploying verifiable voting systems, including Scantegrity — the first use of an end-to-end verifiable system in a public sector election. He became interested in Bitcoin in 2010 and published one of the first academic papers in the area. Beyond research, he has worked with several municipalities on voting technology and testified to the Canadian Senate on Bitcoin.</div> ## Free pre-publication draft A pre-publication draft of the book is available for download <a href="https://d28rh4a8wq0iu5.cloudfront.net/bitcointech/readings/princeton_bitcoin_book.pdf">here</a/>. The published version is better in a several ways: it is peer-reviewed, professionally edited and typeset. ## Coursera course The Coursera course <A href="https://www.coursera.org/learn/cryptocurrency">Bitcoin and Cryptocurrency Technologies</a> 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. The second edition starts September 2016. ## Programming assignments There are four assignments which will take you through the steps of designing and building a basic cryptocurrency. We are giving you grading scripts which you can use to check your solutions yourself. <div style="text-align:center;"> <a href="https://docs.google.com/uc?id=0B4-bDFu_72BeblhsajRQZkRJNUk&export=download" style="text-align:center;" class="btn btn-success btn-lg" role="button">Download the assignments</a> </div> <br></br> The zip file contains four folders. In each folder, the assignment specification is provided as a PDF file. You're also provided starter code in the form of .java and .jar files. There's also a grading sub-folder in each assignment folder. The README file in the grading sub-folder has directions for how to run the grading script. We've used these assignments in teaching this course at Princeton, but we haven't offered them on a large scale, so there are no doubt some bugs lurking in the starter code or the grading code. We appreciate your understanding and would be grateful for any bug reports. Email us at [bitcoinbook@lists.cs.princeton.edu](mailto:bitcoinbook@lists.cs.princeton.edu). <br> ## Exercises Coming soon. ## For instructors Email us at [bitcoinbook@lists.cs.princeton.edu](mailto:bitcoinbook@lists.cs.princeton.edu) for additional instructional materials. ## Video lectures <iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/fOMVZXLjKYo" frameborder="0" allowfullscreen></iframe> <iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/q5GWwTgRIT4" frameborder="0" allowfullscreen></iframe> <iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/t3hJsFpPmXs" frameborder="0" allowfullscreen></iframe> <iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/NKqHXoYZvMg" frameborder="0" allowfullscreen></iframe> <iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/jXerV3f5jN8" frameborder="0" allowfullscreen></iframe> <iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/glyQy_e5LmM" frameborder="0" allowfullscreen></iframe> <iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/IRbgZUGHn9g" frameborder="0" allowfullscreen></iframe> <iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/TipGy2bOVL4" frameborder="0" allowfullscreen></iframe> <iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/aM3OP4gazWw" frameborder="0" allowfullscreen></iframe> <iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/l-3kOuF0dts" frameborder="0" allowfullscreen></iframe> <iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/YG7l0XPtzD4" frameborder="0" allowfullscreen></iframe> <iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/1VYs_zZsorU" frameborder="0" allowfullscreen></iframe> ## Feedback Comments? Questions? Typos? Email us at [bitcoinbook@lists.cs.princeton.edu](mailto:bitcoinbook@lists.cs.princeton.edu).