Best 5 Blockchain Books – You Need To read in 2020
- #1 Mastering Bitcoin: Programming the Open Blockchain 2nd Edition by Andreas M. Antonopoulos (Author)
What You’ll Learn & Who This Book Is For Mastering Bitcoin is your guide through the seemingly complex world of bitcoin, providing the knowledge you need to participate in the internet of money. Whether you're building the next killer app, investing in a startup, or simply curious about the technology, this revised and expanded second edition provides essential detail to get you started. Bitcoin, the first successful decentralized digital currency, is still in its early stages and yet it's already spawned a multi billion dollar global economy. This economy is open to anyone with the knowledge and passion to participate. Mastering Bitcoin provides the knowledge. You simply supply the passion. The second edition includes: A broad introduction to bitcoin ideal for non technical users, investors, and business executives An explanation of the technical foundations of bitcoin and cryptographic currencies for developers, engineers, and software and systems architects Details of the bitcoin decentralized network, peer to peer architecture, transaction lifecycle, and security principles New developments such as Segregated Witness, Payment Channels, and Lightning Network Improved explanations of keys, addresses and wallets User stories, analogies, examples, and code snippets illustrating key technical concepts
- #2 The Blockchain Developer: A Practical Guide for Designing, Implementing, Publishing, Testing, and Securing Distributed Blockchain-based Projects Paperback – July 24, 2019 by Elad Elrom (Author)
What You’ll Learn Explore the Blockchain ecosystem is and the different consensus mechanisms Create miners, wallets, transactions, distributed networks and DApps Review the main features of Bitcoin: Ethereum, NEO and EOS, and Hyperledger are Interact with popular node clients as well as implementing your own Blockchain Publish and test your projects for security and scalability Who This Book Is For Developers, architects and engineers who are interested in learning about Blockchain or implementing Blockchain into a new greenfield project or integrating Blockchain into a brownfield project. Technical entrepreneurs, technical investors or even executives who want to better understand Blockchain technology and its potential.
- #3 Mastering Blockchain: Distributed ledger technology, decentralization, and smart contracts explained, 2nd Edition Paperback – March 30, 2018 by Imran Bashir (Author)
What you will learn Master the theoretical and technical foundations of the blockchain technology Understand the concept of decentralization, its impact, and its relationship with blockchain technology Master how cryptography is used to secure data - with practical examples Grasp the inner workings of blockchain and the mechanisms behind bitcoin and alternative cryptocurrencies Understand the theoretical foundations of smart contracts Learn how Ethereum blockchain works and how to develop decentralized applications using Solidity and relevant development frameworks Identify and examine applications of the blockchain technology - beyond currencies Investigate alternative blockchain solutions including Hyperledger, Corda, and many more Explore research topics and the future scope of blockchain technology Who This Book Is For This book will appeal to those who wish to build fast, highly secure, transactional applications. It targets people who are familiar with the concept of blockchain and are comfortable with a programming language.
- #4 Basics of Blockchain: A guide for building literacy in the economics, technology, and business of blockchain by Bettina Warburg (Author), Tom Serres (Author), Dr. Bill Wagner (Author)
This book covers the following concepts: Blockchain Fundamentals: From origins to the modern computing stack The Technology Behind Blockchain: Web 3 and the economy Bitcoin and Crypto-assets: CryptoKitties and ERC20 Tokens Ethereum and Smart Contracts: Tutorials, Virtual machines, and autonomous organizations Project Management and Use Cases: Lean prototyping methods and corporate Dapps The Future of Blockchain: Quantum-resistant blockchains, AI/ML, and society
- #5 Blockchain Basics: A Non-Technical Introduction in 25 Steps 1st ed. Edition by Daniel Drescher (Author)
What You'll Learn What the blockchain is Why it is needed and what problem it solves Why there is so much excitement about the blockchain and its potential Major components and their purpose How various components of the blockchain work and interact Limitations, why they exist, and what has been done to overcome them Major application scenarios Who This Book Is For Everyone who wants to get a general idea of what blockchain technology is, how it works, and how it will potentially change the financial system as we know it
What is Hashing in Blockchains
1. What is Hashing?
Hashing is the process of taking the input string of any length and turning it into cryptographic fixed output. Hashing is not an “encryption” we cant retrieve the original data by decrypting the hash, it’s a one-way cryptographic function. Do you know we can keep the whole data which is present on the internet in the fixed string length with the help of Hashing Algorithm. We use a mathematical algorithm called SHA-256 (Secure Hashing Algorithm -256 bits). SHA 256 is the successor of the SHA-1 which is of 160 bits.
2. How Hashing is used in Blockchain?
In Blockchain, every block has a hash of the previous block, the previous block is called as parent block for the present block and now consider a parent block has a present block and it will have a hash of previous block i.e parent block. In the blockchain, every block has a hash of the previous block. When we change any data in the present block the hash of the block will be changed, this will affect the previous block because it has the address of the previous block. For example, If we have only two blocks, one will be present block and one will be the parent block. The present block will be having the address of the parent block. If we need to change the data in the present block, we also need to change the parent block. It will be easy to change the data when there are only two blocks, but now when we come into reality in blockchain, there are 614272 blocks have been mined by 2020-01-24 12:32, and hash of 614272(th) block is 00000000000000000007a6be31011560f1e3abe8f125e356a31db6051753334e. If we want to change data in present block i.e 614272(th) block, the hash address of 614271 blocks have to be changed, but it is not possible to change the hashes of 614271 blocks, so this is how blockchain is called immutable and trustworthy of the data. The first block of a blockchain, known as a Genesis block. You can see how many blocks are mined until now at Blockchain. I have created a Visualization of this process.
If we do a small change to any part of the input there will be a huge change to the output, see the examples below for more understanding. Hashing is of the core fundamentals and foremost aspects of the immutable and defining potential of blockchain technology. It preserves the authenticity of the data that is recorded and viewed, and as such, the integrity of a blockchain as a whole. It is one of the more technical aspects of the technology, however, understanding it is a solid step in understanding how blockchain functions and the immeasurable potential and value that it has.
3. How do Merkle trees work?
When there is a large body of data it will be hard to verify it and takes a lot of memory to store and secure it but with the help of Merkle tree, we can easily overcome all these problems. Merkle tree is a fundamental part of the Blockchain Technology, it is in a structure where we can easily find out any change happens to a large amount of data and verifications of the data can be done efficiently. These are used by both Bitcoin and Ethereum.
As we can see in the above image, all the transactions are at the bottom and the top single hash is called Root hash or Merkle root. Let us consider one example, there are 4 transactions with A, B, C, D. Now A and B hash will combine to form one hash and C and D another hash, AB hash and CD hash now combine to form one single hash called Root hash or Merkle Root ABCD. The Root hash will have all the information of all the transactions. Merkle tree will repeatedly hash, pair of nodes till there is only one hash left called Root Hash. Merkle tree is a binary tree, so need to have even number of leaf nodes, if the number of transactions is odd, the last hash will be duplicated once to create an even number of leaf nodes…
In the above image we can see the duplicate transaction hashing when their is an odd number of transactions, this is how merkle tree will duplicate for odd number of leafs. All the data of the Transactions are summarized into single Root hash and that is stored in the block header, As we now any change in the data the whole hash function we will changes, if hash changes, so do Merkle root changes. Merkle tree helps us to maintain the integrity of the data. Another advantage of Merkle tree is if you want to know the status of one particular transaction, we don’t need to download the entire blockchain, we just need to ask for vertical proof and ask for a certain branch of a tree and verify one particular transaction branch.
4. How can we Secure Data with Hashing?
Hashing drastically increases the security of the data. There is no way to decrypting the data because we are not encrypting it. As I mentioned already it’s a one-way cryptographic function. A cryptographic hash function needs to have several crucial qualities to be considered useful, these include:
- Every hash is different from another.
- Same Hash value will be always produced for the same message.
- Impossible to decide input based on the hash value.
- Even a small change to the input whole hash will be changed. Hashing helps us to see if the data has tampered or not. For example, you have downloaded a piece of important information, to see if the data is changed or not, you can run the data through the hashing algorithm and compare the hash of the data and hash of the received data. If both the hashes are same the data is not changed and if the hash doesn’t match, the data is altered before you received it.