The understanding of cryptocurrencies and Blockchain implies at least a cursory familiarity with cryptography. In this short note we will consider some of the tools that you could use to learn cryptography rapidly.
Prof. Ross Anderson‘s book Security Engineering: A Guide to Building Dependable Distributed Systems is now in its third edition. The scope of this book extends far beyond cryptography and covers both technical and nontechnical aspects of cybersecurity and security engineering. Still, Chapter 4 (Protocols) and Chapter 5 (Cryptography) are very useful if you would like to understand cryptocurrencies and Blockchain. This book is a good place to start if you would like to develop a thorough understanding of these subjects.
Your next stop is likely to be Bruce Schneier’s book Applied Cryptography, now it its 20th anniversary edition. It’s a thorough overview of cryptographic protocols, techniques, and algorithms supplemented with implementations in C. According to the Wired Magazine, this is “…the best introduction to cryptography I’ve ever seen… The book the National Security Agency wanted never to be published…” Thoroughly recommended!
Once you have read Schneier’s book, be sure to frequent his blog: Schneier on Security.
Next, we would like to up the mathematical rigour. Our next stop is going to be Neal Koblitz‘s Springer book A Course in Number Theory and Cryptography, second edition. This book presumes almost no background in algebra or number theory. Its purpose is to introduce the reader to arithmetic topics, both ancient and very modern, which have been at the center of interest in applications, especially in cryptography. For this reason Koblitz takes an algorithmic approach, emphasizing estimates of the efficiency of the techniques that arise from the theory. If, after reading Koblitz’s book, you would like to become more familiar with elliptic curves, then we recommend Elliptic Curves: Diophantine Analysis by Serge Lang.
We would then recommend reading Chapter 14 (Cryptography in Blockchain) by Anupam Tiwari of the monograph Distributed Computing to Blockchain. Whether it is the proof of work mechanics or the digital signatures or encryption part, the complete ecosystem of blockchain is entirely dependent critically on cryptography. The chapter discusses the cryptography mechanics peculiar to bitcoin blockchain and includes how digital keys and addresses work together, how the “proof of work” consensus churn the mathematical cryptographic puzzles to execute the blockchain functions. The chapter also focuses on ECDSA secp256k1 standard and its advantages accrued over RSA and other algorithms. The DOI of this chapter is https://doi.org/10.1016/B978-0-323-96146-2.00011-5
You may also want to read the conference paper Comparative Analysis of Cryptographic Hash Functions in Blockchain Systems by Oleksandr Kuznetsov, Oleksandr Peliukh, Nikolay Poluyanenko, Serhii Bohucharskyi, and Ievgeniia Kolovanova. This study provides a comprehensive evaluation of various hash functions, delineating their processing efficacies across a spectrum of input block sizes.
You may then choose to look at cryptographic libraries, such as Libgcrypt (written in ISO C-90), Crypto++ (written in C++), Botan (Crypto and TLS for Modern C++), pyca/cryptography (in Python). Be careful: if the algorithm or its implementation is flawed, security is compromised. You should thoroughly verify both.
As quantum computers are developing, you may want to learn about Quantum Cryptography (perhaps from Federico Grasselli’s book or Introduction to Quantum Cryptography by Thomas Vidick and Stephanie Wehner) and consider Post-Quantum Cryptography: the systems that resist quantum-computer attacks: in particular, post-quantum public-key encryption systems and post-quantum public-key signature systems (see Bernstein-Buchmann-Dahmen).
Incidentally, Quantum Computing (a prerequisite for understanding post-quantum cryptography) is taught by Prof. Antoine (Jack) Jacquier as part of the Machine Learning Institute Certificate in Finance.