Mastering Bitcoin (2nd edition)
by Andreas Antonopoulos (2017)