Mastering Blockchain - Third Edition

Book description

Develop a deeper understanding of what's under the hood of blockchain with this technical reference guide on one of the most disruptive modern technologies

Key Features

  • Updated with four new chapters on consensus algorithms, Ethereum 2.0, tokenization, and enterprise blockchains
  • Learn about key elements of blockchain theory such as decentralization, cryptography, and consensus protocols
  • Get to grips with Solidity, Web3, cryptocurrencies, smart contract development and solve scalability, security and privacy issues
  • Discover the architecture of different distributed ledger platforms including Ethereum, Bitcoin, Hyperledger Fabric, Hyperledger Sawtooth, Corda and Quorum

Book Description

Blockchain is the backbone of cryptocurrencies, with applications in finance, government, media, and other industries. With a legacy of providing technologists with executable insights, this new edition of Mastering Blockchain is thoroughly revised and updated to the latest blockchain research with four new chapters on consensus algorithms, Serenity (the update that will introduce Ethereum 2.0), tokenization, and enterprise blockchains.

This book covers the basics, including blockchain's technical underpinnings, cryptography and consensus protocols. It also provides you with expert knowledge on decentralization, decentralized application development on Ethereum, Bitcoin, alternative coins, smart contracts, alternative blockchains, and Hyperledger.

Further, you will explore blockchain solutions beyond cryptocurrencies such as the Internet of Things with blockchain, enterprise blockchains, tokenization using blockchain, and consider the future scope of this fascinating and disruptive technology.

By the end of this book, you will have gained a thorough comprehension of the various facets of blockchain and understand their potential in diverse real-world scenarios.

What you will learn

  • Grasp the mechanisms behind Bitcoin, Ethereum, and alternative cryptocurrencies
  • Understand cryptography and its usage in blockchain
  • Understand the theoretical foundations of smart contracts
  • Develop decentralized applications using Solidity, Remix, Truffle, Ganache and Drizzle
  • Identify and examine applications of blockchain beyond cryptocurrencies
  • Understand the architecture and development of Ethereum 2.0
  • Explore research topics and the future scope of blockchain

Who this book is for

If you are a technologist, business executive, a student or an enthusiast who wishes to explore the fascinating world of blockchain technology, smart contracts, decentralized applications and distributed systems then this book is for you. Basic familiarity with a beginner-level command of a programming language would be a plus.

Publisher resources

Download Example Code

Table of contents

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

Product information

  • Title: Mastering Blockchain - Third Edition
  • Author(s): Imran Bashir
  • Release date: August 2020
  • Publisher(s): Packt Publishing
  • ISBN: 9781839213199