Foundations of Blockchain
Koshik Raj更新时间:2021-07-02 14:18:16
最新章节:Leave a review - let other readers know what you thinkcoverpage
Title Page
Copyright and Credits
Foundations of Blockchain
About Packt
Why subscribe?
Packt.com
Contributors
About the author
About the reviewer
Packt is searching for authors like you
Preface
Who this book is for
What this book covers
To get the most out of this book
Download the example code files
Download the color images
Conventions used
Get in touch
Reviews
Introduction
What blockchain is
What blockchain isn't
Blockchain definitions
How are blockchains different from databases?
History of blockchain
Blockchain 2.0
The motivations behind blockchain
Characteristics of blockchain
Background of DLT
The different types of blockchain
Public blockchain (permissionless)
Private blockchain (permissioned)
Consortium blockchain
Overview of blocks
Block attributes
Structure of the block
Block header
Linking blocks
Influence of Moore's law on blockchain technology
Summary
A Bit of Cryptography
Cryptography in blockchain
Classical cryptography
Cryptographic primitives
Symmetric key cryptography
Stream cipher
Block cipher
Data Encryption Standard
Advanced Encryption Standard
An example implementation of AES
Asymmetric key cryptography
Prime factorization
Discrete logarithm
Elliptic-curve
RSA cryptosystem
RSA parameter generation
Encryption and decryption using RSA
An example implementation of RSA
Elliptic-curve cryptography
Operations on elliptic curves
Point addition
Point doubling
Computing the public key
Technical details of secp256k1
Digital signatures
How does it work?
Signing process
Verification process
Elliptical Curve Digital Signature Algorithm (ECDSA)
ECDSA example to create and verify a digital signature
Cryptographic hashing
Hashing algorithms
Message Digest
Secure Hash Algorithms (SHA)
Hashing example using an SHA-256 algorithm
Merkle hash trees
Encoding schemes
Summary
Cryptography in Blockchain
Hashing in blockchain
Linking blocks in a blockchain
Linking blocks using an SHA256 hashing algorithm
Block structure
Blockchain functionality
Creating a blockchain
Byzantine failure problem in blockchain
How does Proof of Work ensure Byzantine fault tolerance?
How does Proof of Work use cryptography?
An example implementation of Proof of Work
Example of finding a nonce to solve Proof of Work
Digital signatures in blockchain
Creating an identity
Signatures in transaction
Asset ownership in blockchain
Transferring an asset
Transmitting the transaction
Claiming the asset
Blockchain wallets
Summary
Networking in Blockchain
Peer-to-peer (P2P) networking
History of P2P network
P2P networking architecture
Network discovery
Block synchronization
Building a simple blockchain in a P2P network
Validating a new block
Selecting the longest chain
Conflict resolution
Block exchange between peers
Initial block synchronization
Broadcasting scenarios
Application interfaces
Diving into the code
The server interface
Block and blockchain interface
Running the blockchain nodes
Summary
Cryptocurrency
Bitcoin basics
Getting started with Bitcoin Core
Setting up a Bitcoin full node
Installing a Bitcoin full node
Compiling from source code
Running the Bitcoin node
Communicating with the Bitcoin node
Communicating using scripting language through the JSON-RPC implementation
Keys and addresses
Public and private keys
Bitcoin public addresses
Transactions
Transactions at a high level
Transaction input and output
Transaction output
Transaction input
Transaction verification
Script
Script example
Locking and unlocking scripts
Types of transaction script
Mining and consensus
Mining a block
Verification of transactions
Aggregating transactions into a block
Coinbase transactions
Mining a block using the Proof of Work algorithm
Mining pool
Blockchain
Block structure
Block header
The genesis block
Merkle trees
Blockchain networks
Testnet
Regtest
Bitcoin hard forks and altcoins
A simple cryptocurrency application
Transactions
Transaction output
Transaction input
Transaction structure
UTXO
Transaction validation
Transaction signing
Wallet
Key management
Wallet balance
Creating transactions
Consuming UTXOs
Constructing a transaction
Transaction management
Transaction pool
Broadcasting
Blockchain
Application endpoints
Summary
Diving into Blockchain - Proof of Existence
MultiChain blockchain platform
Why choose MultiChain?
The basics of MultiChain
MultiChain functionalities
Permission management
Asset management
Stream management
Setting up a blockchain environment
Running MultiChain nodes
Getting started with MultiChain
Creating a chain
Connecting to an existing chain
Checking the blockchain
Working with streams
Proof of Existence architecture
Publishing the document
Verifying the document
Building the Proof of Existence application
MultiChain JSON-RPC driver
Proof of Existence library
Proof of Existence web server
Publishing the document
Verifying the document
Executing and deploying the application
Summary
Diving into Blockchain - Proof of Ownership
Digital assets and identity
Proof of ownership
Smart contracts
Choosing the smart contract platform
NEO blockchain
Building blocks of a NEO blockchain
NEO technology
Consensus algorithm
NEO smart contract
Additional NEO projects
NEO nodes
Getting started
Setting up a full node
Setting up a neo-python environment
Setting up a JSON-RPC interface for the node
NEO network
Test network
Private network
NEO transactions
Transferring an asset
Creating a decentralized application
Basic smart contract
Proof of ownership application
Creating the smart contract
Executing the smart contract
Interface for the application
Ethereum blockchain
Ethereum nodes
Getting started
Setting up a node
Setting up a development environment
Creating a decentralized application
Basic smart contract
Proof of ownership application
Creating the smart contract
Executing the smart contract
Interface for the application
Summary
Blockchain Projects
Categorizing the blockchain projects
Financial projects
Non-financial projects
Financial blockchain projects
Cryptocurrencies
Traceable cryptocurrencies
Untraceable cryptocurrencies
Zcash
Crypto tokens
Coin offerings
Ripple payment network
Ripple use cases
Cross-border payments
Ripple tokens as a currency bridge
Ripple network
Ripple consensus algorithm
Ripple token (XRP)
Cryptocurrency exchanges
Decentralized exchanges
Kyber Network
Non-financial blockchain projects
Asset management
Factom
Design
Factom products
Social media platforms
Steem
Voting model in Steem
Steem tokens
Consensus in Steem
Digital identity
ShoCard Identity Management
ShoCard architecture
Blockchain in the Internet of Things (IoT)
IOTA
Design
IOTA in IoT
Data storage
Filecoin
IPFS
Filecoin consensus
Filecoin's decentralized storage network (DSN)
Filecoin markets
BigchainDB
Features of BigchainDB
The life cycle of BigchainDB transactions
Use cases
Distributed computing
Golem
Golem ecosystem
Blockchain platforms
Ethereum
Ethereum token
EVM
Blockchain consensus
DApp development
Ethereum network
Links for the projects
Summary
Blockchain Optimizations and Enhancements
Blockchain optimizations
Transaction exchange
Blockchain relay networks
Invertible bloom lookup tables
Off-chain transactions
Off-chain state channels
The Lightning Network
Routed payment network
Sidechains
Block size improvements
Motivations to increase the block size
Concerns on increasing the block size
Proposed solutions
Blockchain enhancements
Sharding
The motivation for database sharding
Sharding in blockchain
Components in a shard
Design of a sharded blockchain
Cross-shard communication
Evolution of the consensus algorithm
Proof of Stake (PoS)
Proof of Activity (PoA)
Byzantine Fault Tolerance (BFT) consensus models
Practical Byzantine Fault Tolerance (PBFT)
Federated Byzantine Fault Tolerance (FBFT)
Proof of Elapsed Time (PoET)
Cross-chain protocol
Interledger protocol (ILP)
Interledger components
Design of Interledger
Privacy enhancement
Zero-knowledge proof
General examples
zk-SNARKs
Zcash transactions
Private transactions
Summary
Blockchain Security
Transaction security model
Risks of the security model
Decentralized security model
Centralization due to cryptocurrency exchanges
Mt. Gox
Bitfinex
Coinrail
Centralization in mining pools
Attacks on the blockchain
Double-spend attacks
Double-spending in Bitcoin transactions
Creating the first transaction
Creating the transaction to double-spend
51% attack
Implications of the attack
Avoiding the attack
Eclipse attacks
Eclipsing the node
Implications and analysis of the attack
Vulnerabilities and countermeasures
Threats of quantum computing
Summary
When Shouldn't We Use Blockchain?
Distributed databases versus distributed ledger technology (DLT)
Decentralized control of information
Confidentiality of information
Robustness
Performance
What can we store on a blockchain?
Storing data as transactions
Storing minimal data
Storing data that requires minimal changes
Centralized versus decentralized application architecture
Properties of blockchain
Immutability
Non-repudiation
Security
Redundancy
Reduced cost
Transparency
Decision models for blockchain
Karl Wüst and Arthur Gervais
Birch-Brown-Parulava model
Framework to evaluate the suitability of blockchain
Generalized decision model
Summary
Blockchain Use Cases
Tracking provenance in the supply chain
Pain points in a supply chain
Blockchain as a solution
Blockchain implementation of the supply chain
Financial system
Pain points in the payment system
Blockchain as a solution
Blockchain implementations of a payment system
Ripple
Stellar
Crowdfunding
Pain points in crowdfunding
Blockchain as a solution
Blockchain implementation of crowdfunding using an ICO
Non-profit autonomous organizations
Pain points in non-profit autonomous organizations
Blockchain as a solution
Blockchain implementation of a non-profit DAO
Summary
Other Books You May Enjoy
Leave a review - let other readers know what you think
更新时间:2021-07-02 14:18:16