C
o
p
y
r
i
g
h
t
2
0
1
7
.
P
a
c
k
t
P
u
b
l
i
s
h
i
n
g
.
A
l
l
r
i
g
h
t
s
r
e
s
e
r
v
e
d
.
M
a
y
n
o
t
b
e
r
e
p
r
o
d
u
c
e
d
i
n
a
n
y
f
o
r
m
w
i
t
h
o
u
t
p
e
r
m
i
s
s
i
o
n
f
r
o
m
t
h
e
p
u
b
l
i
s
h
e
r
,
e
x
c
e
p
t
f
a
i
r
u
s
e
s
p
e
r
m
i
t
t
e
d
u
n
d
e
r
U
.
S
.
o
r
a
p
p
l
i
c
a
b
l
e
c
o
p
y
r
i
g
h
t
l
a
w
.
EBSCO Publishing : eBook Academic Collection (EBSCOhost) – printed on 3/7/2021 11:12 PM via UNIVERSITY OF THE CUMBERLANDS
AN: 1488410 ; Bashir, Imran.; Mastering Blockchain
Account: s8501869
Mastering Blockchain
Imran Bashir
BIRMINGHAM – MUMBAI
EBSCOhost – printed on 3/7/2021 11:12 PM via UNIVERSITY OF THE CUMBERLANDS. All use subject to https://www.ebsco.com/terms-of-use
Mastering Blockchain
Copyright © 2017 Packt Publishing
All rights reserved. No part of this book may be reproduced, stored in a retrieval system, or
transmitted in any form or by any means, without the prior written permission of the
publisher, except in the case of brief quotations embedded in critical articles or reviews.
Every effort has been made in the preparation of this book to ensure the accuracy of the
information presented. However, the information contained in this book is sold without
warranty, either express or implied. Neither the author, nor Packt Publishing, and its
dealers and distributors will be held liable for any damages caused or alleged to be caused
directly or indirectly by this book.
Packt Publishing has endeavored to provide trademark information about all of the
companies and products mentioned in this book by the appropriate use of capitals.
However, Packt Publishing cannot guarantee the accuracy of this information.
First published: March 2017
Production reference: 10 0317
ISBN 978-1-78712-544-5
EBSCOhost – printed on 3/7/2021 11:12 PM via UNIVERSITY OF THE CUMBERLANDS. All use subject to https://www.ebsco.com/terms-of-use
Credits
Author
Imran Bashir
Copy Editor
Reviewer
Daniel Kraft
Project Coordinator
Shweta H Birwatkar
Commissioning Editor
Veena Pagare
Proofreader
Safis Editing
Acquisition Editor
Ajith Menon
Indexer
Pratik Shirodkar
Content Development Editors
Sumeet Sawant
Amrita Noronha
Graphics
Tania Dutta
Technical Editor
Nilesh Sawakhande
Production Coordinator
Shraddha Falebhai
EBSCOhost – printed on 3/7/2021 11:12 PM via UNIVERSITY OF THE CUMBERLANDS. All use subject to https://www.ebsco.com/terms-of-use
About the Author
Imran Bashir has a M.Sc. in Information Security from Royal Holloway, University of
London, and has a background in software development, solution architecture,
infrastructure management, and IT service management. He is also a member of Institute
of Electrical and Electronics Engineers (IEEE) and British Computer Society (BCS). Imran
has sixteen years of experience in the public and financial sectors. He worked on large scale
IT projects for public sector before moving to financial services industry. Since then he has
worked in various technical roles for different financial companies in Europe’s financial
capital, London. He is currently working for an investment bank in London as Vice
President in the technology department.
I would like to thank the talented team at Packt including Ajith Menon, Nilesh Sawakhande, Sumeet
Sawant, and Tushar Gupta, who provided prompt guidance and very valuable feedback throughout
this project. I am also extremely thankful to the reviewer, Daniel Kraft, who provided constructive
and very useful feedback that helped tremendously to improve the material in this book.
I thank my wife and children for putting up with my all-night and weekend-long writing sessions.
Finally, I would like to thank my parents, whose blessings on me have made everything possible for
me.
EBSCOhost – printed on 3/7/2021 11:12 PM via UNIVERSITY OF THE CUMBERLANDS. All use subject to https://www.ebsco.com/terms-of-use
About the Reviewer
Daniel Kraft studied mathematics and physics, and holds a PhD in applied mathematics
from the University of Graz in Austria. He has been involved in development with
cryptocurrencies since 2013, has been the lead developer and chief scientist for both
Namecoin and Huntercoin since 2014, and has published two research papers about
cryptocurrency in peer-reviewed journals. He works as a software engineer and is a co-
founder of Crypto Realities Ltd, a start-up that works on building decentralised multi-
player game worlds with blockchain technology.
EBSCOhost – printed on 3/7/2021 11:12 PM via UNIVERSITY OF THE CUMBERLANDS. All use subject to https://www.ebsco.com/terms-of-use
www.PacktPub.com
For support files and downloads related to your book, please visit .
Did you know that Packt offers eBook versions of every book published, with PDF and
ePub files available? You can upgrade to the eBook version at and as a
print book customer, you are entitled to a discount on the eBook copy. Get in touch with us
at for more details.
At , you can also read a collection of free technical articles, sign up for a
range of free newsletters and receive exclusive discounts and offers on Packt books and
eBooks.
Get the most in-demand software skills with Mapt. Mapt gives you full access to all Packt
books and video courses, as well as industry-leading tools to help you plan your personal
development and advance your career.
Why subscribe?
Fully searchable across every book published by Packt
Copy and paste, print, and bookmark content
On demand and accessible via a web browser
EBSCOhost – printed on 3/7/2021 11:12 PM via UNIVERSITY OF THE CUMBERLANDS. All use subject to https://www.ebsco.com/terms-of-use
Customer Feedback
Thanks for purchasing this Packt book. At Packt, quality is at the heart of our editorial
process. To help us improve, please leave us an honest review on this book’s Amazon page
at .
If you’d like to join our team of regular reviewers, you can e-mail us at
. We award our regular reviewers with free eBooks and
videos in exchange for their valuable feedback. Help us be relentless in improving our
products!
EBSCOhost – printed on 3/7/2021 11:12 PM via UNIVERSITY OF THE CUMBERLANDS. All use subject to https://www.ebsco.com/terms-of-use
Table of Contents
Preface 1
Chapter 1: Blockchain 101 7
Distributed systems 10
CAP theorem 11
Byzantine Generals problem 12
Consensus 12
Consensus mechanisms 12
Types of consensus mechanism 13
The history of blockchain 14
Electronic cash 14
The concept of electronic cash 14
Introduction to blockchain 16
Various technical definitions of blockchains 18
Generic elements of a blockchain 19
Addresses 19
Transaction 19
Block 19
Peer-to-peer network 20
Scripting or programming language 20
Virtual machine 20
State machine 20
Nodes 21
Smart contracts 21
Features of a blockchain 21
Distributed consensus 21
Transaction verification 21
Platforms for smart contracts 21
Transferring value between peers 21
Generating cryptocurrency 22
Smart property 22
Provider of security 22
Immutability 22
Uniqueness 23
Smart contracts 23
Applications of blockchain technology 23
How blockchains accumulate blocks 24
Tiers of blockchain technology 24
Blockchain 1.0 25
Blockchain 2.0 25
EBSCOhost – printed on 3/7/2021 11:12 PM via UNIVERSITY OF THE CUMBERLANDS. All use subject to https://www.ebsco.com/terms-of-use
[ ii ]
Blockchain 3.0 25
Generation X (Blockchain X) 25
Types of blockchain 25
Public blockchains 25
Private blockchains 26
Semi-private blockchains 26
Sidechains 26
Permissioned ledger 27
Distributed ledger 27
Shared ledger 27
Fully private and proprietary blockchains 27
Tokenized blockchains 27
Tokenless blockchains 27
Consensus in blockchain 28
Proof of Work 28
Proof of Stake 28
Delegated Proof of Stake 29
Proof of Elapsed Time 29
Deposit-based consensus 29
Proof of importance 29
Federated consensus or federated Byzantine consensus 30
Reputation-based mechanisms 30
Practical Byzantine Fault Tolerance 30
CAP theorem and blockchain 30
Benefits and limitations of blockchain 30
Decentralization 31
Transparency and trust 31
Immutability 31
High availability 31
Highly secure 31
Simplification of current paradigms 32
Faster dealings 32
Cost saving 32
Challenges and limitations of blockchain technology 32
Summary 33
Chapter 2: Decentralization 34
Decentralization using blockchain 34
Methods of decentralization 36
Disintermediation 37
Through competition 37
Routes to decentralization 38
EBSCOhost – printed on 3/7/2021 11:12 PM via UNIVERSITY OF THE CUMBERLANDS. All use subject to https://www.ebsco.com/terms-of-use
[ iii ]
How to decentralize 38
Examples 39
Blockchain and full ecosystem decentralization 40
Storage 40
Communication 41
Computation 42
Smart contract 43
Decentralized organizations 44
Decentralized autonomous organizations 44
Decentralized autonomous corporations 45
Decentralized autonomous societies 45
Decentralized applications 46
Requirements of a decentralized application 46
Operations of a DAPP 46
Examples 46
KYC-Chain 47
OpenBazaar 47
Lazooz 47
Platforms for decentralization 47
Ethereum 48
Maidsafe 48
Lisk 48
Summary 49
Chapter 3: Cryptography and Technical Foundations 50
Introduction 51
Mathematics 51
Set 51
Group 51
Field 52
A finite field 52
Order 52
Prime fields 52
Ring 52
A cyclic group 52
An abelian group 52
Modular arithmetic 53
Cryptography 53
Confidentiality 53
Integrity 53
Authentication 53
Entity authentication 53
Data origin authentication 54
EBSCOhost – printed on 3/7/2021 11:12 PM via UNIVERSITY OF THE CUMBERLANDS. All use subject to https://www.ebsco.com/terms-of-use
[ iv ]
Non-repudiation 54
Accountability 55
Cryptographic primitives 56
Symmetric cryptography 57
Stream ciphers 57
Block ciphers 58
Block encryption mode 59
Keystream generation modes 59
Message authentication modes 60
Cryptographic hashes 60
Electronic code book 60
Cipher block chaining 61
Counter mode 61
Data Encryption Standard (DES) 62
Advanced Encryption Standard (AES) 62
AES steps 62
An OpenSSL example of how to encrypt and decrypt using AES 63
Asymmetric cryptography 65
Integer factorization 68
Discrete logarithm 68
Elliptic curves 68
Public and private keys 69
RSA 69
Encryption and decryption using RSA 70
Elliptic curve cryptography (ECC) 70
Mathematics behind ECC 71
Point addition 73
Point doubling 75
Discrete logarithm problem 78
How to generate public and private key pairs 80
Private key 80
Generate public key 81
How to encrypt and decrypt using RSA with OpenSSL 82
Encryption 83
Decrypt 83
ECC using OpenSSL 84
ECC private and public key pair 84
Private key 84
Private key generation 85
Cryptographic primitives 87
Hash functions 87
Compression of arbitrary messages into fixed length digest 88
Easy to compute 88
Pre-image resistance 88
Second pre-image resistance 88
EBSCOhost – printed on 3/7/2021 11:12 PM via UNIVERSITY OF THE CUMBERLANDS. All use subject to https://www.ebsco.com/terms-of-use
[ v ]
Collision resistance 88
Message Digest (MD) 89
Secure Hash Algorithms (SHAs) 89
Design of Secure Hash Algorithms (SHA) 91
SHA-256 91
Design of SHA3 (Keccak) 92
OpenSSL example of hash functions 93
Message Authentication codes (MACs) 93
MACs using block ciphers 94
HMACs (hash-based MACs) 94
Merkle trees 95
Patricia trees 96
Distributed hash tables (DHTs) 96
Digital signatures 96
Sign then encrypt 98
Encrypt then sign 98
Elliptic Curve Digital signature algorithm (ECDSA) 98
How to generate a digital signature 100
ECDSA using OpenSSL 101
Homomorphic encryption 103
Signcryption 104
Zero knowledge proofs 104
Blind signatures 105
Encoding schemes 105
Financial markets and trading 105
Trading 106
Exchanges 106
Orders and order properties 106
Order management and routing systems 107
Components of a trade 107
General attributes 107
Economic 108
Sales 108
Counterparty 108
Trade life cycle 108
Order anticipators 109
Market manipulation 109
Summary 110
Chapter 4: Bitcoin 111
Bitcoin 112
Bitcoin definition 113
Keys and addresses 114
Public keys in bitcoin 115
Private keys in bitcoin 116
Bitcoin currency units 116
EBSCOhost – printed on 3/7/2021 11:12 PM via UNIVERSITY OF THE CUMBERLANDS. All use subject to https://www.ebsco.com/terms-of-use
[ vi ]
Base58Check encoding 116
Vanity addresses 117
Transactions 118
The transaction life cycle 118
The transaction structure 119
The script language 120
Commonly used Opcodes 121
Types of transaction 122
Coinbase transactions 124
What is UTXO? 125
Transaction fee 125
Contracts 125
Transaction malleability 125
Transaction pools 126
Transaction verification 126
Blockchain 127
The structure of a block 127
The structure of a block header 127
The genesis block 129
Mining 131
Task of miners 132
Synching up with the network 132
Proof of Work 133
The mining algorithm 133
The hashing rate 134
Mining systems 135
CPU 135
GPU 135
FPGA 136
ASICs 136
Mining pools 137
The bitcoin network 138
Wallets 145
Wallet types 146
Non-deterministic wallets 146
Deterministic wallets 146
Hierarchical deterministic wallets 146
Brain wallets 146
Paper wallets 147
Hardware wallets 147
Online wallets 147
Mobile wallets 148
Bitcoin payments 148
Bitcoin investment and buying and selling bitcoins 150
Bitcoin installation 152
EBSCOhost – printed on 3/7/2021 11:12 PM via UNIVERSITY OF THE CUMBERLANDS. All use subject to https://www.ebsco.com/terms-of-use
[ vii ]
Setting up a bitcoin node 152
Setting up the source code 153
Setting up bitcoin.conf 154
Starting up a node in testnet 154
Starting up a node in regtest 155
Starting up a node in live mainnet 155
Experimenting with bitcoin-cli 157
Bitcoin programming and the command-line interface 158
Bitcoin improvement proposals (BIPs) 159
Summary 159
Chapter 5: Alternative Coins 160
Theoretical foundations 163
Alternatives to Proof of Work 164
Proof of Storage 165
Proof of Stake 166
Proof of coinage 166
Proof of deposit 166
Proof of burn 166
Proof of activity 167
Non-outsourceable puzzles 167
Difficulty adjustment and retargeting algorithms 167
Kimoto Gravity Well 168
Dark Gravity Wave 169
DigiShield 169
MIDAS 169
Bitcoin limitations 170
Privacy and anonymity 170
Mixing protocols 171
Third-party mixing protocols 171
Inherent anonymity 172
Extended protocols on top of bitcoin 172
Colored coins 172
Counterparty 173
Development of altcoins 174
Consensus algorithms 174
Hashing algorithms 175
Difficulty adjustment algorithms 175
Inter-block time 175
Block rewards 175
Reward halving rate 175
Block size and transaction size 175
Interest rate 175
Coin age 176
Total supply of coins 176
Namecoin 176
EBSCOhost – printed on 3/7/2021 11:12 PM via UNIVERSITY OF THE CUMBERLANDS. All use subject to https://www.ebsco.com/terms-of-use
[ viii ]
Trading Namecoins 178
Obtaining Namecoins 178
Generating Namecoin records 180
Litecoin 182
Primecoin 185
Trading Primecoin 186
Mining guide 186
Zcash 189
Trading Zcash 191
Mining guide 191
Address generation 194
GPU mining 195
Downloading and compiling nheqminer 196
Summary 197
Chapter 6: Smart Contracts 198
History 198
Definition 199
Ricardian contracts 202
Smart contract templates 205
Oracles 206
Smart Oracles 207
Deploying smart contracts on a blockchain 207
The DAO 208
Summary 209
Chapter 7: Ethereum 101 210
Introduction 210
Ethereum clients and releases 210
The Ethereum stack 211
Ethereum blockchain 212
Currency (ETH and ETC) 213
Forks 213
Gas 214
The consensus mechanism 214
The world state 215
The account state 215
Nonce 215
Balance 216
Storageroot 216
Codehash 216
Transactions 217
EBSCOhost – printed on 3/7/2021 11:12 PM via UNIVERSITY OF THE CUMBERLANDS. All use subject to https://www.ebsco.com/terms-of-use
[ ix ]
Nonce 217
gasPrice 217
gasLimit 217
To 217
Value 218
Signature 218
Init 219
Data 219
Contract creation transaction 220
Message call transaction 221
Elements of the Ethereum blockchain 222
Ethereum virtual machine (EVM) 222
Execution environment 224
Machine state 225
The iterator function 226
Runtime byte code 227
Opcodes and their meaning 228
Arithmetic operations 228
Logical operations 229
Cryptographic operations 229
Environmental information 230
Block Information 231
Stack, memory, storage and flow operations 231
Push operations 232
Duplication operations 232
Exchange operations 232
Logging operations 233
System operations 233
Precompiled contracts 233
The elliptic curve public key recovery function 234
The SHA-256 bit hash function 234
The RIPEMD-160 bit hash function 234
The identity function 235
Accounts 235
Types of accounts 236
Block 236
Block header 236
Parent hash 236
Ommers hash 237
Beneficiary 237
State root 237
Transactions root 237
Receipts root 237
Logs bloom 237
Difficulty 237
EBSCOhost – printed on 3/7/2021 11:12 PM via UNIVERSITY OF THE CUMBERLANDS. All use subject to https://www.ebsco.com/terms-of-use
[ x ]
Number 238
Gas limit 238
Gas used 238
Timestamp 238
Extra data 238
Mixhash 238
Nonce 238
The genesis block 239
Transaction receipts 240
The post-transaction state 240
Gas used 240
Set of logs 240
The bloom filter 241
Transaction validation and execution 241
The transaction sub state 241
Suicide set 242
Log series 242
Refund balance 242
The block validation mechanism 242
Block finalization 243
Ommers validation 243
Transaction validation 243
Reward application 243
State and nonce validation 244
Block difficulty 244
Ether 244
Gas 245
Fee schedule 247
Messages 247
Calls 248
Mining 248
Ethash 249
CPU mining 250
GPU mining 250
CPU benchmarking 251
GPU benchmarking 251
Mining rigs 252
Motherboard 252
SSD hard drive 252
GPU 253
Mining pools 254
Clients and wallets 254
Geth 254
Eth 254
EBSCOhost – printed on 3/7/2021 11:12 PM via UNIVERSITY OF THE CUMBERLANDS. All use subject to https://www.ebsco.com/terms-of-use
[ xi ]
Pyethapp 254
Parity 254
Light clients 255
Installation 255
Eth installation 256
Mist browser 256
Geth 259
The geth console 259
Funding the account with bitcoin 260
Parity installation 261
Creating accounts using the parity command line 264
Trading and investment 265
The yellow paper 265
Useful symbols 266
The Ethereum network 267
MainNet 267
TestNet 267
Private net(s) 267
Supporting protocols 267
Whisper 268
Swarm 268
Applications developed on Ethereum 269
Scalability and security issues 269
Summary 270
Chapter 8: Ethereum Development 271
Setting up a development environment 271
Test Net (Ropsten) 272
Setting up a Private Net 272
Network ID 273
The genesis file 273
Data directory 274
Flags and their meaning 274
Static nodes 275
Starting up the private network 275
Running Mist on Private Net 281
Deploying contracts using Mist 282
Development tools and clients 286
Languages 287
Compilers 287
Solc 287
Integrated Development Environments (IDEs) 289
Browser solidity 289
EBSCOhost – printed on 3/7/2021 11:12 PM via UNIVERSITY OF THE CUMBERLANDS. All use subject to https://www.ebsco.com/terms-of-use
[ xii ]
Remix 290
Installation 290
Tools and libraries 293
Node.js version 7 293
Local Ethereum block explorer 294
EthereumJS 296
Contract development and deployment 296
Introducing solidity 297
Types 297
Value types 297
Boolean 297
Integers 298
Address 298
Array value types (fixed size and dynamically sized byte arrays) 299
Literals 299
Integer literals 299
String literals 300
Hexadecimal literals 300
Enums 300
Function types 300
Internal functions 300
External functions 300
Reference types 301
Arrays 301
Structs 301
Data location 301
Mappings 302
Global variables 302
Control structures 302
Events 303
Inheritance 303
Libraries 304
Functions 304
Layout of a solidity source code file 308
Introducing Web3 309
POST requests 315
The HTML and JavaScript frontend 316
Installing web3.js 317
Example 318
Development frameworks 324
Truffle 324
Installation 324
Testing using truffle 333
Build 335
Another example 337
Example project: Proof of Idea 341
Permissioned distributed ledgers 353
EBSCOhost – printed on 3/7/2021 11:12 PM via UNIVERSITY OF THE CUMBERLANDS. All use subject to https://www.ebsco.com/terms-of-use
[ xiii ]
Summary 354
Chapter 9: Hyperledger 355
Projects 355
Fabric 355
Sawtooth lake 356
Iroha 356
Blockchain explorer 356
Fabric chaintool 357
Fabric SDK Py 357
Corda 357
Hyperledger as a protocol 358
Reference architecture 358
Requirements 359
Modular approach 359
Privacy and confidentiality 360
Identity 360
Auditability 360
Interoperability 360
Portability 361
Fabric 361
Hyperledger Fabric 362
Fabric architecture 362
Membership services 363
Blockchain services 363
Consensus manager 363
Distributed ledger 363
Peer to Peer protocol 365
Ledger storage 365
Chaincode services 365
Events 365
APIs and CLIs 366
Components of the Fabric 366
Peers or nodes 366
Applications on blockchain 367
Chaincode implementation 367
Application model 369
Sawtooth lake 369
PoET 370
Transaction families 370
Consensus in Sawtooth 372
Development environment 372
Corda 375
EBSCOhost – printed on 3/7/2021 11:12 PM via UNIVERSITY OF THE CUMBERLANDS. All use subject to https://www.ebsco.com/terms-of-use
[ xiv ]
Architecture 376
State objects 376
Transactions 376
Consensus 377
Flows 377
Components 377
Nodes 377
Permissioning service 378
Network map service 379
Notary service 379
Oracle service 379
Transactions 379
Vaults 380
CorDapp 381
Development environment 381
Summary 382
Chapter 10: Alternative Blockchains 383
Blockchains 384
Kadena 384
Ripple 388
Transactions 390
Payments related 390
Order related 391
Account and security related 391
Application layer 392
Transport layer 392
Interledger layer 393
Ledger layer 393
Stellar 393
Rootstock 394
Drivechain 395
Quorum 395
Transaction manager 395
Crypto Enclave 396
QuorumChain 396
Network manager 396
Tezos 397
Storj 398
Maidsafe 399
BigChainDB 399
Multichain 399
Tendermint 400
Tendermint Core 400
Tendermint Socket Protocol (TMSP) 400
Platforms 401
EBSCOhost – printed on 3/7/2021 11:12 PM via UNIVERSITY OF THE CUMBERLANDS. All use subject to https://www.ebsco.com/terms-of-use
[ xv ]
BlockApps 401
Installation 401
Application development and deployment using BlockApps 402
Eris 409
Summary 411
Chapter 11: Blockchain-Outside of Currencies 412
Internet of Things 412
Physical object layer 413
Device layer 413
Network layer 414
Management layer 414
Application layer 414
IoT blockchain experiment 419
First node setup 423
Raspberry Pi node setup 423
Circuit 428
Government 433
Border control 434
Voting 436
Citizen identification (ID cards) 436
Miscellaneous 438
Health 438
439
Insurance 439
Post trade settlement 439
Financial crime prevention 440
Media 441
Summary 442
Chapter 12: Scalability and Other Challenges 443
Scalability 444
Block size increase 445
Block interval reduction 445
Invertible Bloom lookup tables 446
Sharding 446
State channels 446
Private blockchain 447
Proof of Stake 447
Sidechains 447
Subchains 448
Tree chains 448
EBSCOhost – printed on 3/7/2021 11:12 PM via UNIVERSITY OF THE CUMBERLANDS. All use subject to https://www.ebsco.com/terms-of-use
[ xvi ]
Privacy 450
Indistinguishability obfuscation 450
Homomorphic encryption 451
Zero knowledge proofs 451
State channels 451
Secure multiparty computation 451
Usage of hardware to provide confidentiality 451
Coinjoin 452
Confidential transactions 453
MimbleWimble 453
Security 454
Smart contract security 454
Why3 formal verification 456
Oyente tool 457
Summary 459
Chapter 13: Current Landscape and What s Next 460
Emerging trends 460
Application-specific blockchains (ASBCs) 461
Enterprise-grade blockchains 461
Private blockchains 461
Start-ups 462
Strong research interest 462
Standardization 462
Enhancements 464
Real-world implementations 464
Consortia 464
Answers to challenges 465
Convergence 465
Education of blockchain technology 465
Employment 465
Crypto-economics 466
Research in cryptography 466
New programming languages 466
Hardware research and development 467
Research in formal methods and security 467
Alternatives to blockchains 468
Interoperability efforts 468
Blockchain as a service 469
Efforts to reduce electricity consumption 469
EBSCOhost – printed on 3/7/2021 11:12 PM via UNIVERSITY OF THE CUMBERLANDS. All use subject to https://www.ebsco.com/terms-of-use
[ xvii ]
Improvement proposals 469
BIPs 469
BIP 152 470
BIP 151 470
BIP 150 470
BIP 147 470
BIP 146 471
EIPs 471
EIP 170 471
EIP 150 471
EIP 161 471
EIP 160 472
EIP 155 472
Other challenges 472
Dark side 474
Blockchain research 475
Smart contracts 475
Centralization issues 475
Limitations in cryptographic functions 475
Consensus Algorithms 476
Scalability 476
Code Obfuscation 477
List of notable projects 477
Zcash on Ethereum 477
CollCo 477
Cello 477
Qtum 478
Bitcoin-NG 478
Solidus 478
Hawk 478
Town-Crier 478
SETLCoin 478
TEEChan 479
Falcon 479
Bletchley 479
Casper 480
Metropolis 480
Miscellaneous Tools 480
Solidity extension for Microsoft Visual studio 480
MetaMask 481
Stratis 481
EBSCOhost – printed on 3/7/2021 11:12 PM via UNIVERSITY OF THE CUMBERLANDS. All use subject to https://www.ebsco.com/terms-of-use
[ xviii ]
Embark 481
DAPPLE 481
Meteor 481
uPort 482
INFURA 482
Convergence with other industries 482
Future 483
Summary 485
Index 486
EBSCOhost – printed on 3/7/2021 11:12 PM via UNIVERSITY OF THE CUMBERLANDS. All use subject to https://www.ebsco.com/terms-of-use
Preface
This book has one goal: to provide a comprehensive introduction to the theoretical and
practical aspects of blockchain technology. This book contains all the material that is
required to fully understand blockchain technology. After reading this book, readers will be
able to develop a deep understanding of inner workings of blockchain technology and will
be able to develop blockchain applications. This book covers all topics relevant to
blockchain technology, including cryptography, cryptocurrenices, Bitcoin, Ethereum, and
various other platforms and tools used for blockchain development.
It is recommended that readers have a basic understanding of computer science and basic
programming experience in order to benefit fully from this book. However, if that is not the
case then still this book can be read easily, as relevant background material is provided
where necessary.
What this book covers
, Blockchain 101, introduces the basic concepts of distributed computing on which
blockchain technology is based. It also covers history, definitions, features, types, and
benefits of blockchains along with consensus mechanisms that are at the core of blockchain
technology.
, Decentralization, covers the concepts of decentralization and its relationship with
blockchain technology. Various methods and platforms that can be used to decentralize a
process or system have also been introduced.
, Cryptography and Technical Foundations, introduces the theoretical foundations
cryptography, which is necessary to fully understand blockchain technology. Concepts such
as public and private key cryptography, with practical examples, are included. Finally, an
introduction to financial markets is also included as there are many interesting use cases for
blockchain technology in the financial sector.
, Bitcoin, covers Bitcoin, the first and largest blockchain. It introduces technical
concepts related to bitcoin cryptocurrency in detail.
, Alternative Coins, introduces alternative cryptocurrencies that were introduced
after the invention of Bitcoin. It also presents examples of different altcoins, their properties,
and how they have been developed and implemented.
EBSCOhost – printed on 3/7/2021 11:12 PM via UNIVERSITY OF THE CUMBERLANDS. All use subject to https://www.ebsco.com/terms-of-use
Preface
[ 2 ]
, Smart Contracts, provides an in-depth discussion on smart contracts. Topics such
as history, the definition of smart contracts, Ricardian contracts, Oracles, and the theoretical
aspects of smart contracts are presented in this chapter.
, Ethereum 101, introduces the design and architecture of the Ethereum blockchain
in detail. It covers various technical concepts related to the Ethereum blockchain that
explains the underlying principles, features, and components of this platform in depth.
, Ethereum Development, provides a detailed practical introduction to development
of decentralized applications and smart contracts using the Ethereum blockchain. An
introduction to solidity and different relevant tools have also been included in this chapter.
, Hyperledger, presents a discussion about the hyperledger project from the Linux
foundation, which includes different blockchain projects introduced by its members.
, Alternative Blockchains, introduces alternative blockchain solutions and
platforms. It provides technical details and features of alternative blockchains.
, Blockchain – Outside of Currencies, provides a practical and detailed introduction
to applications of blockchain technology in fields others than cryptocurrencies, including
Internet of Things, government, media, and finance.
, Scalability and Other Challenges, is dedicated to a discussion of the challenges
faced by blockchain technology and how to address them.
, Current Landscape and What’s Next, is aimed at providing information about the
current landscape, projects, and research efforts related to blockchain technology. Also,
some predictions based on the current state of blockchain technology have also been made.
What you need for this book
All examples in this book have been developed on Ubuntu 16.04.1 LTS (Xenial). As such, it
is recommended to use Ubuntu. However, any appropriate operating system, either
Windows or Linux, can be used, but examples, especially those related to installation, may
need to be changed accordingly.
Examples related to cryptography have been developed using the OpenSSL 1.0.2g 1 Mar
2016 command-line tool.
…
Delivering a high-quality product at a reasonable price is not enough anymore.
That’s why we have developed 5 beneficial guarantees that will make your experience with our service enjoyable, easy, and safe.
You have to be 100% sure of the quality of your product to give a money-back guarantee. This describes us perfectly. Make sure that this guarantee is totally transparent.
Read moreEach paper is composed from scratch, according to your instructions. It is then checked by our plagiarism-detection software. There is no gap where plagiarism could squeeze in.
Read moreThanks to our free revisions, there is no way for you to be unsatisfied. We will work on your paper until you are completely happy with the result.
Read moreYour email is safe, as we store it according to international data protection rules. Your bank details are secure, as we use only reliable payment systems.
Read moreBy sending us your money, you buy the service we provide. Check out our terms and conditions if you prefer business talks to be laid out in official language.
Read more