Saturday, June 24, 2017

Book Review: Blockchain Basics: A Non-Technical Introduction in 25 Steps

Blockchain is all the rage these days, and I'm hoping to get more involved with projects involving this technology.  Not to mention, Azure has a service that can be used to create corporate ready blockchains.  I've read a lot about blockchain over the years, and I wanted to ensure that I had all the core concepts in check before continuing down this journey.  My search for a good intro book lead me to Blockchain Basics: A Non-Technical Introduction in 25 Steps. I feel like I knew most of the concepts coming in, but this book was wonderful at grounding my knowledge and will make an excellent reference going forward.

What is the book about?

As the book title suggests, the author aims, through 25 steps, to build up the fundamental knowledge required to understand what the blockchain is, applications that can run on the blockchain, and some challenges/limitations with current implementations.  Each step generally provides:
  • A metaphor to root the concept in "real-life"
  • A description of the overall goal of that step
  • A non-technical description of the step
  • An "outlook" and "summary" section which relates the steps to each other
 What did I like?

  • The book is extremely well laid out, the "steps" approach seems novel and really helps the author build up fundamental knowledge before getting into the more advanced steps
  • The outlook and summary section make for great review areas
  • The book is logically laid out, the use of metaphors accomplishes the intended goal
  • The book does cover advanced concepts and limitations of current implementations, which is great for advanced readers
What did I dislike?

I think the only constructive criticism I could provide is that many of the words used in the non-technical descriptions, are themselves, quite technical.  Take for example the idea of "trust".  While the author does attempt to describe those terms, it still is a very technical term with very technical nuances that are hard to describe non-technically.  The general feeling I got while reading the book was that I still needed to have a pretty deep technical understanding of these words to fully grasp the concepts.  Maybe this was just me....

What did I learn?

Honestly, I learned a lot.  But if I had to pick one specific thing, I'd say it was focused around the blockchain selects a "transaction history" (Step 19).  There are two ways that are described, one is the "longest-chain" and the second is the "heaviest-chain".  I guess, in hindsight, it makes complete sense that transactions could be created in the blockchain and then subsequently abandoned as consensus is formed.  The act of being abandoned also reclaims the reward granted for creating the block, which can be devastating depending on the complexity of the hash puzzle that was solved.

What is even more elegant, is the idea that these orphaned transactions could come back, as they are placed back in the inbox for reprocessing.  The way that the blockchain achieves and maintains consistency is quite fascinating.

I found this book quite a delightful read, something that you could probably action in a few minutes before bed every night.  The authors attempt to make it as "non-technical" as possible gives it an easy read feel, and the layout of the steps allows you to "pick up where you left off" if you need to, and/or re-read sections as needed.