万本电子书0元读

万本电子书0元读

顶部广告

Foundations of Blockchain电子书

售       价:¥

0人正在读 | 0人评论 9.8

作       者:Koshik Raj

出  版  社:Packt Publishing

出版时间:2019-01-29

字       数:53.4万

所属分类: 进口书 > 外文原版书 > 电脑/网络

温馨提示:数字商品不支持退换货,不提供源文件,不支持导出打印

为你推荐

  • 读书简介
  • 目录
  • 累计评论(0条)
  • 读书简介
  • 目录
  • 累计评论(0条)
Learn the foundations of blockchain technology - its core concepts and algorithmic solutions across cryptography, peer-to-peer technology, and game theory. Key Features * Learn the core concepts and foundations of the blockchain and cryptocurrencies * Understand the protocols and algorithms behind decentralized applications * Master how to architect, build, and optimize blockchain applications Book Description Blockchain technology is a combination of three popular concepts: cryptography, peer-to-peer networking, and game theory. This book is for anyone who wants to dive into blockchain from first principles and learn how decentralized applications and cryptocurrencies really work. This book begins with an overview of blockchain technology, including key definitions, its purposes and characteristics, so you can assess the full potential of blockchain. All essential aspects of cryptography are then presented, as the backbone of blockchain. For readers who want to study the underlying algorithms of blockchain, you’ll see Python implementations throughout. You’ll then learn how blockchain architecture can create decentralized applications. You’ll see how blockchain achieves decentralization through peer-to-peer networking, and how a simple blockchain can be built in a P2P network. You’ll learn how these elements can implement a cryptocurrency such as Bitcoin, and the wider applications of blockchain work through smart contracts. Blockchain optimization techniques, and blockchain security strategies are then presented. To complete this foundation, we consider blockchain applications in the financial and non-financial sectors, and also analyze the future of blockchain. A study of blockchain use cases includes supply chains, payment systems, crowdfunding, and DAOs, which rounds out your foundation in blockchain technology. What you will learn * The core concepts and technical foundations of blockchain * The algorithmic principles and solutions that make up blockchain and cryptocurrencies * Blockchain cryptography explained in detail * How to realize blockchain projects with hands-on Python code * How to architect the blockchain and blockchain applications * Decentralized application development with MultiChain, NEO, and Ethereum * Optimizing and enhancing blockchain performance and security * Classical blockchain use cases and how to implement them Who this book is for This book is for anyone who wants to dive into blockchain technology from first principles and build a foundational knowledge of blockchain. Familiarity with Python will be helpful if you want to follow how the blockchain protocols are implemented. For readers who are blockchain application developers, most of the applications used in this book can be executed on any platform.
目录展开

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

累计评论(0条) 0个书友正在讨论这本书 发表评论

发表评论

发表评论,分享你的想法吧!

买过这本书的人还买过

读了这本书的人还在读

回顶部