Home Page Icon
Home Page
Table of Contents for
cover
Close
cover
by Imran Bashir
Mastering Blockchain - Third Edition
Preface
Who this book is for
What this book covers
To get the most out of this book
Get in touch
Blockchain 101
The growth of blockchain technology
Progress toward maturity
Increasing interest
Distributed systems
The history of blockchain and Bitcoin
The events that led to blockchain
Electronic cash
Blockchain
Blockchain defined
Peer-to-peer
Distributed ledger
Cryptographically secure
Append-only
Updatable via consensus
Blockchain architecture
Blockchain by layers
Blockchain in business
Generic elements of a blockchain
How blockchain works
Benefits, features, and limitations of blockchain
Types of blockchain
Distributed ledgers
Distributed Ledger Technology
Public blockchains
Private blockchains
Semi-private blockchains
Sidechains
Permissioned ledger
Shared ledger
Fully private and proprietary blockchains
Tokenized blockchains
Tokenless blockchains
Consensus
Consensus mechanism
Types of consensus mechanisms
Consensus in blockchain
CAP theorem and blockchain
Summary
Decentralization
Decentralization using blockchain
Methods of decentralization
Disintermediation
Contest-driven decentralization
Routes to decentralization
How to decentralize
Decentralization framework example
Blockchain and full ecosystem decentralization
Storage
Communication
Computing power and decentralization
Pertinent terminology
Smart contracts
Autonomous agents
Decentralized organizations
Decentralized autonomous organizations
Decentralized autonomous corporations
Decentralized autonomous societies
Decentralized applications
Requirements of a DApp
Operations of a DApp
Design of a DApp
DApp examples
Platforms for decentralization
Ethereum
MaidSafe
Lisk
EOS
Innovative trends
Decentralized web
Web 1
Web 2
Web 3
Decentralized identity
Decentralized finance (DeFi)
Summary
Symmetric Cryptography
Working with the OpenSSL command line
Introduction
Cryptography
Confidentiality
Integrity
Authentication
Non-repudiation
Accountability
Cryptographic primitives
Keyless primitives
Random numbers
Hash functions
Secure Hash Algorithms
Symmetric cryptography
Message authentication codes (MACs)
Hash-based MACs (HMACs)
Stream ciphers
Block ciphers
Data Encryption Standard (DES)
Advanced Encryption Standard (AES)
How AES works
An OpenSSL example of how to encrypt and decrypt using AES
Summary
Public Key Cryptography
Mathematics
Modular arithmetic
Sets
Fields
Finite fields
Prime fields
Groups
Abelian groups
Rings
Cyclic groups
Order
Asymmetric cryptography
Integer factorization
Discrete logarithm
Elliptic curves
Public and private keys
RSA
Elliptic curve cryptography
Mathematics behind ECC
The discrete logarithm problem in ECC
RSA using OpenSSL
Encryption and decryption using RSA
ECC using OpenSSL
Digital signatures
RSA digital signature algorithms
The elliptic curve digital signature algorithm
How to generate a digital signature using OpenSSL
Cryptographic constructs and blockchain technology
Homomorphic encryption
Signcryption
Secret sharing
Commitment schemes
Zero-knowledge proofs
zk-SNARKs
zk-STARKs
Zero-knowledge range proofs—ZKRPs
Different types of digital signatures
Blind signatures
Multisignatures
Threshold signatures
Aggregate signatures
Ring signatures
Encoding schemes
Base64
Base58
Applications of cryptographic hash functions
Merkle trees
Patricia trees
Distributed hash tables
Summary
Consensus Algorithms
Introducing the consensus problem
The Byzantine generals problem
Fault tolerance
Types of fault-tolerant consensus
State machine replication
FLP impossibility
Lower bounds on the number of processors to solve consensus
Analysis and design
Model
Processes
Timing assumptions
Synchrony
Asynchrony
Partial synchrony
Classification
Algorithms
CFT algorithms
Paxos
Raft
BFT algorithms
Practical Byzantine Fault Tolerance
Istanbul Byzantine Fault Tolerance
Tendermint
Nakamoto consensus
Proof of stake (PoS)
HotStuff
Choosing an algorithm
Finality
Speed, performance, and scalability
Summary
Introducing Bitcoin
Bitcoin—an overview
The beginnings of Bitcoin
Egalitarianism versus authoritarianism
Bitcoin definition
Bitcoin—A user's perspective
Sending a payment
Cryptographic keys
Private keys in Bitcoin
Public keys in Bitcoin
Addresses in Bitcoin
Base58Check encoding
Vanity addresses
Transactions
The transaction lifecycle
Transaction pool
Transaction fees
The transaction data structure
Metadata
Inputs
Outputs
Verification
The Script language
Types of scripts
Contracts
Coinbase transactions
Transaction validation
Transaction bugs
Transaction malleability
Value overflow
Blockchain
The genesis block
Stale and orphan blocks
Size of the blockchain
Network difficulty
Mining
Tasks of the miners
Mining rewards
Proof of Work
The mining algorithm
The hash rate
Mining systems
CPU
GPU
FPGA
ASICs
Mining pools
Summary
The Bitcoin Network and Payments
The Bitcoin network
Full client and SPV client
Bloom filters
Wallets
Non-deterministic wallets
Deterministic wallets
Hierarchical deterministic wallets
Brain wallets
Paper wallets
Hardware wallets
Online wallets
Mobile wallets
Bitcoin payments
Innovation in Bitcoin
Bitcoin Improvement Proposals
Advanced protocols
Segregated Witness
Bitcoin Cash
Bitcoin Unlimited
Bitcoin Gold
Bitcoin investment and buying and selling Bitcoin
Summary
Bitcoin Clients and APIs
Bitcoin client installation
Types of clients and tools
bitcoind
bitcoin-cli
bitcoin-qt
Setting up a Bitcoin node
Setting up the source code
Setting up bitcoin.conf
Starting up a node in the testnet
Starting up a node in regtest
Experimenting further with bitcoin-cli
Using the Bitcoin command-line tool – bitcoin-cli
Using the JSON RPC interface
Using the HTTP REST interface
Bitcoin programming
Summary
Alternative Coins
Introducing altcoins
Theoretical foundations
Alternatives to Proof of Work
Proof of Storage
Proof of Stake (PoS)
Various types of stake
Proof of Activity (PoA)
Non-outsourceable puzzles
Difficulty adjustment and retargeting algorithms
Kimoto Gravity Well
Dark Gravity Wave
DigiShield
MIDAS
Bitcoin limitations
Privacy and anonymity
Mixing protocols
Third-party mixing protocols
Inherent anonymity
Extended protocols on top of Bitcoin
Colored coins
Counterparty
Development of altcoins
Consensus algorithms
Hashing algorithms
Difficulty adjustment algorithms
Inter-block time
Block rewards
Reward halving rate
Block size and transaction size
Interest rate
Coinage
Total supply of coins
Token versus cryptocurrency
Initial Coin Offerings (ICOs)
ERC20 standard
Summary
Smart Contracts
History
Definition
Ricardian contracts
Smart contract templates
Oracles
Software and network-assisted proofs
TLSNotary
TLS-N based mechanism
Hardware device-assisted proofs
Android proof
Ledger proof
Trusted hardware-assisted proofs
Types of blockchain oracles
Inbound oracles
Outbound oracles
Blockchain oracle services
Deploying smart contracts
The DAO
Summary
Ethereum 101
Ethereum – an overview
The yellow paper
Useful mathematical symbols
The Ethereum blockchain
Ethereum – a user's perspective
The Ethereum network
The mainnet
Testnets
Private nets
Components of the Ethereum ecosystem
Keys and addresses
Accounts
Types of accounts
Transactions and messages
RLP
Contract creation transactions
Message call transactions
Messages
Transaction validation and execution
The transaction substate
State storage in the Ethereum blockchain
Transaction receipts
Ether cryptocurrency/tokens (ETC and ETH)
The Ethereum Virtual Machine (EVM)
Execution environment
The machine state
The iterator function
Smart contracts
Native contracts
The elliptic curve public key recovery function
The SHA-256-bit hash function
The RIPEMD-160-bit hash function
The identity/datacopy function
Big mod exponentiation function
Elliptic curve point addition function
Elliptic curve scalar multiplication
Elliptic curve pairing
Blake2 compression function 'F'
Summary
Further Ethereum
Blocks and blockchain
The genesis block
The block validation mechanism
Block finalization
Block difficulty mechanism
Gas
Fee schedule
Wallets and client software
Wallets
Geth
Eth
Parity
Trinity
Light clients
Installation and usage
Geth
Ethereum account management using Geth
How to query the blockchain using Geth
Ethereum keystore
Eth installation
OpenEthereum installation
MetaMask
Installation
Creating and funding an account using MetaMask
Nodes and miners
The consensus mechanism
Forks in the blockchain
Ethash
CPU mining
GPU mining
Benchmarking
Mining rigs
Mining pools
ASICs
APIs, tools, and DApps
Applications (DApps and DAOs) developed on Ethereum
Tools
Geth JSON RPC API
Examples
Supporting protocols
Whisper
Swarm
Programming languages
Runtime bytecode
Opcodes
Summary
Ethereum Development Environment
Overview
Test networks
Components of a private network
Network ID
The genesis file
Data directory
Flags and their meaning
Static nodes
Starting up the private network
Mining on the private network
Remix IDE
MetaMask
Using MetaMask and Remix IDE to deploy a smart contract
Adding a custom network to MetaMask and connecting Remix IDE with MetaMask
Importing accounts into MetaMask using keystore files
Deploying a contract with MetaMask
Interacting with a contract through MetaMask using Remix IDE
Summary
Development Tools and Frameworks
Languages
Compilers
The Solidity compiler
Installation
Functions
Tools and libraries
Node.js
Ganache CLI
Ganache
Frameworks
Truffle
Drizzle
Embark
Brownie
Waffle
Etherlime
OpenZeppelin
Contract development and deployment
Writing smart contracts
Testing smart contracts
Deploying smart contracts
The layout of a Solidity source code file
Version pragma
Import
Comments
The Solidity language
Variables
Local variables
Global variables
State variables
Data types
Value types
Reference types
Control structures
Events
Inheritance
Libraries
Functions
Error handling
Summary
Introducing Web3
Exploring Web3 with Geth
Contract deployment
POST requests
Retrieving the list of accounts
Interacting with contracts via frontends
The HTML and JavaScript frontend
Installing Web3.js JavaScript library
Interacting with contracts via a web frontend
Creating an app.js JavaScript file
Creating a Web3 object
Calling contract functions
Development frameworks
Using Truffle to develop a decentralized application
Installing and initializing Truffle
Compiling, testing, and migrating using Truffle
Interacting with the contract
Using Truffle to test and deploy smart contracts
Deployment on decentralized storage using IPFS
Summary
Serenity
Ethereum 2.0—an overview
Goals
Main features
Roadmap of Ethereum
Development phases
Phase 0
The beacon chain
Beacon nodes
Validator nodes
Beacon and validator node comparison
Deposit contracts
Fork choice
P2P interface (networking)
ETH 2
Simple Serialize
BLS cryptography
Phase 1
Shard chains
Transitioning from Ethereum 1 to Ethereum 2
Phase 2
Phase 3
Architecture
Summary
Hyperledger
Projects under Hyperledger
Distributed ledgers
Fabric
Sawtooth
Iroha
Indy
Besu
Burrow
Libraries
Aries
Transact
Quilt
Ursa
Tools
Avalon
Cello
Caliper
Explorer
Domain-specific
Grid
Labs
Hyperledger reference architecture
Hyperledger design principles
Modular structure
Privacy and confidentiality
Identity
Scalability
Deterministic transactions
Auditability
Interoperability
Portability
Rich data queries
Hyperledger Fabric
Membership services
Blockchain services
Consensus services
Distributed ledger
The peer-to-peer protocol
Ledger storage
Smart contract services
APIs and CLIs
Components
Peers
Clients
Channels
World state database
Transactions
Membership Service Provider
Smart contracts
Crypto service provider
Applications on blockchain
Chaincode implementation
The application model
Consensus in Hyperledger Fabric
The transaction lifecycle in Hyperledger Fabric
Fabric 2.0
New chaincode lifecycle management
New chaincode application patterns
Enhanced data privacy
External chaincode launcher
Raft consensus
Better performance
Hyperledger Sawtooth
Core features
Modular design
Parallel transaction execution
Global state agreement
Dynamic and pluggable consensus algorithms
Multi-language support
Enhanced event mechanism
On-chain governance
Interoperability
Consensus in Sawtooth
PoET
PBFT
Raft
Transaction lifecycle
Components
Validator
REST API
Client
State
Transaction processors
Transaction families
REST API
Setting up a Sawtooth development environment
Prerequisites
Using PoET
Using PBFT
Setting up a Sawtooth network
Summary
Tokenization
Tokenization on a blockchain
Advantages of tokenization
Disadvantages of tokenization
Types of tokens
Fungible tokens
Non-fungible tokens
Stable tokens
Fiat collateralized
Commodity collateralized
Crypto collateralized
Algorithmically stable
Security tokens
Process of tokenization
Token offerings
Initial coin offerings
Security token offerings
Initial exchange offerings
Equity token offerings
Decentralized autonomous initial coin offering
Other token offerings
Token standards
ERC-20
ERC-223
ERC-777
ERC-721
ERC-884
ERC-1400
ERC-1404
Trading and finance
Financial markets
Trading
Exchanges
Orders and order properties
Order management and routing systems
Components of a trade
The underlying instrument
Trade lifecycle
Order anticipators
Market manipulation
DeFi
Trading tokens
Regulation
Building an ERC-20 token
Pre requisites
Building the Solidity contract
Solidity contract source code
Deploying the contract on the Remix JavaScript virtual machine
Adding tokens in MetaMask
Emerging concepts
Tokenomics/token economics
Token engineering
Token taxonomy
Summary
Blockchain – Outside of Currencies
The Internet of Things
Internet of Things architecture
Physical object layer
Device layer
Network layer
Management layer
Application layer
Benefits of IoT and blockchain convergence
Implementing blockchain-based IoT in practice
Setting up Raspberry Pi
Setting up the first node
Setting up the Raspberry Pi node
Building the electronic circuit
Government
Border control
Voting
Citizen identification (ID cards)
Health
Finance
Insurance
Post-trade settlement
Financial crime prevention
Payments
Decentralization
Faster settlement
Better resilience
Cross-border payments
Peer-to-peer loans
Media
Summary
Enterprise Blockchain
Enterprise solutions and blockchain
Success factors
Limiting factors
Slow performance
Lack of access governance
Lack of privacy
Probabilistic consensus
Transaction fees
Requirements
Privacy
Confidentiality
Anonymity
Performance
Scalability/speed
Access governance
Further requirements
Compliance
Interoperable
Integration
Ease of use
Monitoring
Secure off-chain computation
Better tools
Enterprise blockchain versus public blockchain
Use cases of enterprise blockchains
Enterprise blockchain architecture
Network layer
Protocol layer
Privacy layer
Governance layer
Integration layer
What is Apache Camel?
Application layer
Security, performance, scalability, monitoring
Designing enterprise blockchain solutions
TOGAF
Business architecture domain
Data architecture domain
Application architecture domain
Technology architecture domain
Architecture development method
Preliminary phase
Architecture vision
Business architecture
Information systems architecture
Technology architecture
Opportunities and solutions
Migration planning
Implementation governance
Architecture change management
Blockchain in the cloud
Currently available enterprise blockchains
Corda
Quorum
Fabric
Autonity
Comparison of main platforms
Enterprise blockchain challenges
Interoperability
Lack of standardization
Compliance
Business challenges
Corda
Architecture
Corda network
State objects
Transactions
Consensus
Flows
CorDapps
Components
Nodes
The permissioning service
Network map service
Notary service
Oracle service
Transactions
Vaults
Other tools
Transaction flow
Corda development environment
Quorum
Architecture
Enhanced P2P
Enhanced state (private and public)
Pluggable consensus
No transaction fees
Private transactions
Modified block generation mechanism
Modified block validation mechanism
Enhanced RPC API
Privacy manager
Transaction manager
Enclave
Cryptography used in Quorum
Privacy
Enclave encryption
Transaction propagation to transaction managers
Enclave decryption
Access control with permissioning
Performance
Pluggable consensus
Setting up Quorum with IBFT
Quorum Wizard
Installing Quorum Wizard
Running Quorum Wizard to create a new network
Cakeshop
Running a private transaction
Node 1
Node 2
Node 3
Node 4
Viewing the transaction in Cakeshop
Further investigation
Node 1
Node 2, which is privy to the transaction
Node 3, which is not privy to the transaction
Other Quorum projects
Remix plugin
Pluggable architecture
Summary
Scalability and Other Challenges
Scalability
Blockchain planes
Network plane
Consensus plane
Storage plane
View plane
Side plane
Methods for improving scalability
Layer 0 – network solutions
Layer 1 – on-chain solutions
Layer 2 – off-chain and multichain solutions
Privacy
Anonymity
Confidentiality
Techniques to achieve privacy
Layer 0
Layers 1 and 2
Security
Formal verification
Model checking
Verifying consensus mechanisms
Smart contract security
Static analysis in Remix IDE
Why3
Oyente
Other tools
Formal verification of smart contracts
Other challenges
Interoperability
Polkadot
Lack of standardization
Post-quantum resistance
Compliance and regulation
Summary
Current Landscape and What's Next
Emerging trends
New implementations of blockchain technology
Application-specific blockchains
Start-ups
Technology improvements
Standardization
Consortia
Enhancements
Ongoing research and study
Cryptography
Cryptoeconomics
Hardware development
Formal methods and security
New programming languages
Education and employment within blockchain
Innovative blockchain applications
Blockchain as a Service
Convergence with other technologies
Alternatives to blockchains
Some debatable ideas
Public versus private on the blockchain
Central bank digital currency
Areas to address
Regulation
Illegal activity
Privacy or transparency
Blockchain research topics
Smart contracts
Cryptographic function limitations
Consensus algorithms
Scalability
Code obfuscation
Blockchain and AI
The future of blockchain
Summary
Index
Search in book...
Toggle Font Controls
Playlists
Add To
Create new playlist
Name your new playlist
Playlist description (optional)
Cancel
Create playlist
Sign In
Email address
Password
Forgot Password?
Create account
Login
or
Continue with Facebook
Continue with Google
Sign Up
Full Name
Email address
Confirm Email Address
Password
Login
Create account
or
Continue with Facebook
Continue with Google
Next
Next Chapter
Title_Page
Add Highlight
No Comment
..................Content has been hidden....................
You can't read the all page of ebook, please click
here
login for view all page.
Day Mode
Cloud Mode
Night Mode
Reset