MASTERING BLOCKCHAIN
MỤC LỤC
Lời chào đầu
Cuốn sách này dành cho đối tượng nào
Cuốn sách sẽ trình bày những vấn đề gì
Để nắm được nội dung trong sách tốt nhất: Tải về những file code mẫu; tải hình ảnh màu; những
thỏa thuận được sử dụng
Giữ liên lạc
Reviews
1. Blockchain 101
Sự lớn mạnh của công nghệ blockchain
Các hệ thống phân tán
Lịch sử của blockchain và Bitcoin
Tiền điện tử
Blockchain
Định nghĩa blockchain
Đồng cấp
Sổ cái phân tán
Bảo mật mã hóa
Chỉ có thể thêm vào mà không bớt đi được
Có thể cập nhật thông qua sự đồng thuận
Các yếu tố cấu thành lên blockchain
Blockchain hoạt động thế nào?
Các block trong blockchain được thêm vào và móc nối với nhau ra sao?
Những lợi ích và hạn chế của blockchain
Các lớp (tiers) của công nghệ blockchain
Đặc điểm của blockchain
Các dạng blockchain
Sổ cái phân tán
Công nghệ sổ cái phân tán
Public blockchain
Private blockchain
Semiprivate blockchain
Sidechain
Sổ cái permissioned
Số cái chung
Blockchain riêng tư hoàn toàn và blockchain thuộc quyền sở hữu
Blockchain token hóa
Blockchain không có token
đồng thuận
Cơ chế đồng thuận
Các dạng cơ chế đồng thuận
đồng thuận trong blockchain
Định lý CAP và blockchain
Tóm tắt
2. Phi tập trung
Đặc tính phi tập trung sử dụng blockchain
Các phương pháp phi tập trung
Phi trung gian
Phi tập trung tùy biến theo đối thủ cạnh tranh
Cách để đạt được tính phi tập trung
Làm thế nào để phi tập trung hóa
Ví dụ nền tảng phi tập trung
Blockchain và tính phi tập trung trong hệ sinh thái đầy đủ
Lưu trữ
Truyền thông
Năng lượng điện toán và phi tập trung
Hợp đồng thông minh
Các tổ chức phi tập trung
Các tổ chức ẩn danh phi tập trung
Các tập đoàn ẩn danh phi tập trung
Các nhóm xã hội ẩn danh phi tập trung
Ứng dụng phi tập trung (Dapps)
Các yêu cầu của Dapps
Quá trình hoạt động của Dapp
Ví dụ về Dapp
Chuỗi KYC
OpenBazaar
Lazooz
Các nền tảng của tính phi tập trung
Ethereum
Maidsafe
Lisk
Tóm tắt
3. Mã hóa đối xứng
Làm việc với dòng lệnh OpenSSL
Giới thiệu
Toán học
Tập hợp
Nhóm
Trường
Trường hữu hạn
Order
Nhóm abelian
Prime field
Ring
Các nhóm tuần hoàn
Thuật toán theo mô đun
Mã hóa
Bảo mật
Tính nguyên
Authentication
Xác thực thực thể
Xác thực nguồn gốc dữ liệu
Không bác bỏ
Trách nhiệm giải trình
Các nguyên thủy mật mã
Mật mã hệ thống
Mật mã luồng (stream ciphers)
Mật mã khối (block ciphers)
Chế độ mã hóa khối
Sách code điện tử
Chuỗi khối mã hóa
Chế độ Counter
Chế độ tạo keystream
Chế độ xác thực thông điệp
Chế độ mã băm (hash)
Tiêu chuẩn mã hóa dữ liệu
Tiêu chuẩn mã hóa nâng cao
AES hoạt động thế nào
Tóm tắt
4. Mật mã public key
Mật mã không đối xứng (Asymmetric cryptography)
Phân tích số nguyên
Logarit rời rạc
Đường cong elliptic
Public và Private keys
RSA
Mã hóa và giải mã sử dụng RSA
Mật mã đường cong Elliptic
Toán học đằng sau ECC
Phép cộng 2 điểm
Phép nhân 2 điểm
Các vấn đề về logarit rời rạc trong ECC
RSA sử dụng OpenSSL
Cặp public và private keys RSA
Private key
Public Key
Khám phá public key
Mã hóa và giải mã
Mã hóa
Giải mã
ECC sử dụng OpenSSL
Cặp Private và public key ECC
Private key
Khởi tạo private key
Các hàm băm (hash)
Nén các thông điệp tùy ý vào bản tóm tắt có độ dài nhất định
Dễ dàng tính toán
Kháng tiền ảnh (Pre-image resistance)
Kháng tiền ảnh thứ hai (Second pre-image resistance)
Kháng va chạm (Collision resistance)
Tóm tắt thông điệp
Thuật toán băm an toàn
Thiết kế của thuật toán băm an toàn
Thiết kế của SHA-256
Thiết kế của SHA-3 (Keccak)
Ví dụ OpenSSL của hàm băm (hash function)
Mã Xác thực thông điệp (MAC)
MAC sử dụng thuật toán khối
MAC sử dụng hàm băm
Cây Merkle
Cây Patricia
Bảng Băm phân tán
Chữ ký số
Thuật toán chữ ký số RSA
Ký rồi mã hóa
Mã hóa rồi ký
Thuật toán chữ ký số bằng đường cong elliptic (ECDFA)
Làm thế nào để tạo chữ ký số bằng OpenSSL
ECDSA sử dụng OpenSSL
Mã hóa đồng cấu
Lược đồ ký-mã (signcryption)
Thuật toán chứng minh không tiết lộ thông tin (Zero-knowledge proof)
Chữ ký mù (Blind signature)
Sơ đồ mã hóa (Encoding schemes)
Thị trường tài chính và kinh doanh
Kinh doanh
Các sàn
Order
Hệ thống vận hành và quản lý order
Các yếu tố cấu thành một giao dịch
Những yếu tố đằng sau đó
Những thuộc tính chung
Kinh tế học
Sales
Các bên đồng cấp
Vòng tròn giao dịch
Người dự đoán order
Lôi kéo thị trường
Tóm tắt
5. Giới thiệu về Bitcoin
Bitcoin
Khái niệm Bitcoin
Cái nhìn toàn cảnh về Bitcoin
Gửi thanh toán cho người khác
Key và địa chỉ số
Private key trong Bitcoin
Public key trong Bitcoin
Địa chỉ trong Bitcoin
Mã hóa base58Check
Địa chỉ ảo: Địa chỉ đa chữ số
Giao dịch
Chu trình giao dịch
Phí giao dịch
Transaction pool
Cấu trúc dữ liệu của giao dịch
Siêu dữ liệu Metadata
Inputs
Outputs
Xác thực
Ngôn ngữ lập trình kịch bản (script language)
Các mã vận hành thường dùng
Các loại giao dịch
Giao dịch trên coinbase
Hợp đồng
Xác minh giao dịch
Tính dễ uốn nắn của giao dịch (Transaction Malleability)
Blockchain
Cấu trúc của một khối
Cấu trúc của phần đầu thông tin của 1 khối (block header)
Khói đầu tiên trong chuỗi (genesis block)
Mining
Nhiệm vụ của các thợ mỏ miner
Thưởng mining
Proof of work (POW)
Thuật toán mining
Hash rate
Hệ thống mining
CPU
GPU
FPGA
ASICs
Mỏ đào coin (Mining pool)
Tóm tắt
6. Mạng lưới và thanh toán Bitcoin
Mạng lưới Bitcoin
ví
Ví vô định tính
Ví định tính
Ví định tính phân cấp
Brain wallet (Ví mà người dùng tự ghi nhớ trong tâm trí)
Ví giấy (Paper wallet)
Ví cứng
Ví online
Ví mobile
Thanh toán Bitcoin
Cải tiến trong Bitcoin
Những dự án cải thiện Bitcoin (BIPs)
Giao thức tiên tiến
SegWit
Tiền mặt Bitcoin (Bitcoin Cash)
Bitcoin Unlimited
Vàng Bitcoin (Bitcoin Gold)
Đầu tư Bitcoin, mua và bán Bitcoin
Tóm tắt
7. API và các máy tính liên kết của Bitcoin
Cài đặt Bitcoin
Các loại hình máy tính liên kết chủ yếu của Bitcoin
Bitcoind
Bitcoin-cli
Bitcoin-qt
Set up một máy tính Bitcoin (Bitcoin node)
Set up source code
Set up bitcoin.conf
Bắt đầu chạy một node trong testnet
Chạy một node trong regtest
Thử nghiệm với Bitcoin-cli
Lập trình bitcoin và giao diện dòng lệnh
Tóm tắt
8. Altcoin
Nền tảng lý thuyết
Những lựa chọn khác ngoài POW
Proof of storage
Proof of stake (POS)
Các loại cổ phần (stake)
Proof of coinage
Proof of deposit (PoD)
Proof of Burn
Proof of activity (PoA)
Nonoutsourceable puzzle
Thuật toán retargeting và thích ứng với khó khăn
Thuật toán Kimoyo Gravity Well
Dark Gravity Wave
DigiShield
MIDAS
Hạn chế của Bitcoin
Sự riêng tư và ẩn danh
Giao thức hỗn hợp
Giao thức hỗn hợp của bên thứ ba
Sự ẩn danh vốn có
Giao thức mở rộng
Colored coin
Đồng cấp
Sự phát triển của alcoin
Thuật toán đồng thuận
Thuật toán băm
Thuật toán thích ứng với những khó khăn
Thời gian liên khối (Inter-block time)
Thưởng khối (Block reward)
Kích thước khối và kích thước giao dịch
Lãi suất
Tạo ra coin
Tổng lượng coin
Namecoin
Mua bán namecoin
Có được namecoin
Tạo namecoin record
Litecoin
Primecoin
Mua bán Primecoin
Hướng dẫn mining
Zcash
Mua bán Zcash
Hướng dẫn mining
Tạo địa chỉ
Mining bằng GPU
Download và soạn nheqminer
ICO
Token ERC20
Tóm tắt
9. Hợp đồng thông minh
Lịch sử
Định nghĩa
Hợp đồng Ricardian
Mẫu hợp đồng thông minh
Oracles
Oracle thông minh
Triển khai hợp đồng thông minh trên blockchain
DAO
Tóm tắt
10. Ethereum 101
Giới thiệu
Sách vàng (yellow paper)
Những ký hiệu toán học hữu dụng
Blockchain của Ethereum
Cái nhìn tổng quan về Ethereum
Mạng lưới Ethereum
Mainnet
Testnet
Private net
Các thành phần trong hệ sinh thái ethereum
Keys và địa chỉ
Tài khoản
Các loại tái khoản
Giao dịch và thông điệp
Giao dịch tạo hợp đồng (contract creation transaction)
Giao dịch gọi thông điệp (Message call transaction)
Thông điệp/ tin nhắn (mesage)
Cuộc gọi (Calls)
Hợp lệ hóa và triển khai giao dịch
Trạng thái giao dịch
Lưu trữ trạng thái trên blockchain của Ethereum
Trạng thái thế giới
Trạng thái tài khoản
Hóa đơn giao dịch
Tiền ảo/ token Ether (ETC và ETH)
Hệ thống máy ảo Ethereum Virtual machine (EVM)
Môi trường vận hành
Trạng thái máy
Hàm iterator
Hợp đồng thông minh
Hợp đồng tự nhiên
Tóm tắt
11. Tìm hiểu xa hơn về Ethereum
Ngôn ngữ lập trình
Runtime bytecode
Mã vận hàng và ý nghĩa của chúng
Hoạt động số học
Hoạt động logic
Hoạt động của mật mã
Thông tin môi trường
Thông tin khối
Stack, bộ nhớ, lưu trữ và vận hành
Hoạt động đẩy
Hoạt động nhân đôi
Hoạt động hoand đổi
Hoạt động Logging
Hoạt động của hệ thống
Khối và chuỗi khối
Khối khởi tạo
Cơ chế hợp lệ hóa khối
Kết thúc khối
Những khó khăn của khối
Gas
Lộ trình phí
Fork trong blockcahin
Các máy tính (nodes) và thợ đào coin (miners)
Cơ chế đồng thuận
Ethash
Đào bằng CPU
Đào bằng GPU
Tiêu chuẩn
Máy đào
Mỏ khai thác coin
Ví và phần mềm khách
Geth
Eth
Pyethapp
Parity (Ngang hàng)
Những máy tính liên kết thứ yếu
Cài đătj
Cài đặt eth
Mist browser
Geth
Bàn điều khiển geth (geth console)
Nạp bitcoin vào tài khoản
Cài đặt parity
Tạo tài khoản bằng câu lệnh parity (ngang cấp)
APIS, tool và Dapp
Ứng dụng (DApp và DAO) được phát triển trên nền tảng Ethereum
Tools
Giao thức hỗ trợ
Whisper
Swarm
Mức độ phổ biến, bảo mật và các thách thức khác
Mua bán và đầu tư
Tóm tắt
12. Môi trường phát triển Ethereum
Mạng lưới Test
Set up private net
ID mạng
File khởi tạo
Dữ liệu
Cờ và ý nghĩa của chúng
Các máy tính tĩnh (static node)
Khởi chạy mạng private
Mist trên mạng private net
Deploy hợp đồng với Mist
Block explorer cho private net/ block explorer Ethereum địa phương
Tóm tắt
13. Tool và khung phát triển
Ngôn ngữ
Người biên soạn
Solidity compiler (solc)
Cài đặt trên Linux
Cài đặt trên macOS
Môi trường phát triển tích hợp (Integrated development environment IDEs)
Remix
Tools và thư viện
Node phiên bản 7
ethereumJS
Ganache
MetaMask
Truffle
Cài đặt
Phát triển và triển khai hợp đồng
Loyment
Viết
Test
Ngôn ngữ lập trình solidity
Các dạng
Boolean (luận lý)
Integers (số nguyên)
Address (địa chỉ)
Trực kiện (Literal)
Trực kiện bằng số nguyên (Integer literal)
Trực kiện bằng chuỗi (string literal)
Trực kiện bằng hệ thống số có cơ sở bằng 16 (Hexadecimal)
Enum
Các loại hàm
Hàm nội bộ
Hàm bên ngoài
Các loại tham chiếu
Bảng, dãy sắp xếp (array)
Structs
Vị trí dữ liệu
Mapping
Biến toàn cầu
Cấu trúc điều khiển
Sự kiện
Kế thừa
Thư viện
Các hàm
Bố cục của source code Solidity
Phiên bản pragma
Xuất dữ liệu
Bình luận
Tóm tắt
14. Giới thiệu Web3
Web3
Triển khai hợp đồng
Yêu cầu POST
HTML và JavaScript
Cài đặt web3.js
Ví dụ
Tạo một vật thể web3
Kiểm tra bằng cách gọi bất kỳ phương pháp web3 nào
Hàm hợp đồng
Khung triển khai
Truffle
Khởi tạo truffle
Tương tác với hợp đồng
Một ví dụ khác
Một dự án mẫu, Proof of Idea
Oracle
Triển khai trên vùng lưu trữ phi tập trung sử dụng IPFS
Cài đặt IPFS
Sổ cái phân tán
15. Hyperledger (Siêu sổ cái)
Những dự án dựa trên Hyperledger
Fabric
Sawtooth Lake
Iroha
Burrow
Explorer
Cello
Composer
Quilt
Hyperledger đóng vai trò như một giao thức
Kiến trúc tham chiếu
Yêu cầu và mục tiêu thiết kế của siêu sổ cái Fabric
Cách tiếp cận theo mô đun
Quyền riêng tư và bảo mật
Mức độ phổ biến
Các giao dịch định tính
Identity
Khả năng kiểm tra
Tính tương tác
Khả năng di động
Truy vấn dữ liệu phong phú
Fabric
Siêu sổ cái Fabric
Dịch vụ thành viên
Dịch vụ blockchain
Dịch vụ đồng thuận
Sổ cái phân tán
Giao thức đồng cấp peer-to-peer
Lưu trữ của sổ cái
Dịch vụ mã chuỗi
Các thành phần tạo nên fabric
Peers
Orderer node
máy tính liên kết
Kênh
Dữ liệu thế giới
Giao dịch
Nhà cung cấp dịch vụ thành viên (MSP)
Hợp đồng thông minh
Nhà cung cấp dịch vụ crypto
Ứng dụng trên blockchain
Triển khai chaincode (mã chuỗi)
Mô hình ứng dụng
đồng thuận trong siêu sổ cái Fabric
Chu kỳ giao dịch trong siêu sổ cái Fabric
Sawtooth Lake
PoET
Các chuỗi giao dịch
Sự đồng thuận trong Sawtooth
Môi trường phát triển của Sawtooth Lake
Corde
Kiến trúc
Các đối tượng
Giao dịch
Tính đồng thuận
Các dòng chảy
Thành phần
Nodes (các máy tính)
Dịch vụ cho phép
Dịch vụ sơ đồ mạng lưới
Dịch vụ tư pháp
Dịch vụ oracle
Giao dịch
Vaults
CorDapp
Môi trường phát triển của Corda
Tóm tắt
16. Các mạng lưới blockchain khác
Blockchain
Kadena
Ripple
Giao dịch
Các vấn đề liên quan đến thanh toán
Các vấn đề liên quan đến order
Các vấn đề liên quan đến tài khoản và bảo mật
Liên sổ cái (Interledger)
Lớp ứng dụng (Application layer)
Lớp giao chuyển
Lớp liên sổ cái
Lớp sổ cái
Stellar
Rootstock
Sidechain
Drivechain
Quorum
Quản lý giao dcihj
Vùng crypto
Quorumchain
Quản lý mạng lưới
Tezors
Storj
Maidsafe
bigchainDB
Multichain
Tendermint
Những nét căn bản của Tendermint
Giao thức Socket tendermint
Nền tảng
Eris
Tóm tắt
17. Blockchain và những khía cạnh ngoài tiền tệ
Internet of things (mạng vạn vật) (IoT)
Vật thể tồn tại về mặt vật lý
Lớp thiết bị (Device layer)
Mạng lưới
Quản lý
Ứng dụng
Thử nghiệm blockchain với IoT
Setup node đầu tiên
Set up node Raspberry Pi
Cài đặt Node.js
Dòng điện
Chính phủ
Quản lý đường biên giới
Bầu cử
Nhận dạng công dân (CMTND)
Những việc khác
Y tế
Tài chính
Bảo hiểm
Thanh toán sau giao dịch
Ngăn chặn tội phạm tài chính
Media
Tóm tắt
18. Khả năng mở rộng và những thách thức khác
Khả năng mở rộng
Cơ chế mạng lưới
Cơ chế đồng thuận
Cơ chế lưu trữ
Cơ chế xem
Tăng kích thước khối
Giảm khoảng cách các khối
Bảng tra cứu có khả năng đảo ngược
Blockchain riêng tư
Proof of stake
Sidechain
Subchain
Chuỗi cây (cây)
Lan truyền khối
Bitcoin-NG
Plasma
Quyền riêng tư
Những điều khó giải thích
Mã hóa đồng bộ
Thuật toán chứng minh không tiết lộ thông tin
Các kênh
Tính toán đa diện bảo mật
Sử dụng phần cứng để tăng cường bảo mật thông tin
CoinJoin
Giao dịch được bảo mật
MimbleWimble
Bảo mật
Bảo mật hợp đồng thông minh
Xác minh và phân tích
Tool Oyente
Tóm tắt
19. Thực tại và những gì ta có thể tiến xa hơn
Những xu hướng đang nổi
Blockchain trong một ứng dụng cụ thể (ASBS)
Blockchain cấp doanh nghiệp
Blockchain riêng tư
Khởi nghiệp
Đam mê nghiên cứu
Chuẩn hóa
Đẩy mạng
Thực thi tại thế giới thật
Consortia
Câu trả lời cho những thách thức về mặt kỹ thuật
Giáo dục về công nghệ blockchain
Việc làm
Kinh tế crypto
Nghiên cứu về mật mã cryptograpgy
Ngôn ngữ lập trình mới
Nghiên cứu và phát triển phần cứng
Nghiên cứu về các phương pháp và vấn đề bảo mật
Những công nghệ khác thay thế blockchain
Nỗ lực tăng khả năng tương tác
Sử dụng blockchain như 1 dạng dịch vụ
Nỗ lực giảm tiêu thụ điện
Những thách thức khác
Luật pháp
Mảng tối của công nghệ
Nghiên cứu blockchain
Hợp đồng thông minh
Các vấn đề của tập trung hóa
Hạn chế về các hàm mật mã
Thuật toán đồng thuận
Khả năng phát triển mở rộng
Những mơ hồ về code
Những dự án nổi bật
Zcash trên nền tảng Ethereum
CollCo
Cello
Qtum
Bitcoin-NG
Solidus
Hawk
town-Crier
SETLCoin
TEEChan
Falcon
Bletchley
Casper
Các tool khác
Thêm Solidity cho Microsoft
Visual studio
MetaMask
Stratis
Embark
DAPPLE
Meteor
uPort
INFURA
Hội tụ cùng các quốc gia khác
Tương lai
Tóm tắt
Những cuốn sách khác mà bạn có thể sẽ quan tâm:
Hãy để lại review và cho những đọc giả khác biết bạn nghĩ gì về cuốn sách này.
LỜI MỞ ĐẦU
Cuốn sách này có một mục đích là nhằm giới thiệu những khía cạnh lý thuyết và thực tiễn của
công nghệ blockchain. Cuốn sách chứa tất cả nhưng thứ cần thiết để trở thành chuyên gia kỹ
thuật về blockchain. So với lần xuất bản đầu tiên thì ở tái bản này, có khá nhiều thay đổi trong
cuốn sách nhằm cập nhật những thông tin blockchain mới nhất.
Cuốn sách nhận được nhiều sự yêu thích của các nhà nghiên cứu, những người đang ngày đêm
tìm hiểu về công nghệ này. Có rất nhiều tổ chức, dự án và đoàn thể chuyên nghiệp đã xuất hiện
và tham gia vào sự phát triển và cải tiến công nghệ này.
Tái bản thứ 2 của cuốn sách sẽ đưa ra những cái nhìn mang chiều sâu về tính phi tập trung, hợp
đồng thông minh và nhiều nền tảng blockchain như Ethereum, bitcoin và hyperledger fabric.
Sau khi đọc xong cuốn sách này, độc giả có thể hiểu sâu về những công trình liên quan đến công
nghệ blockchain và có thể phát triển những ứng dụng blockchain.
Cuốn sách đề cập đến tất cả các lĩnh vực liên quan đến blockchain, bao gồm mật mã
(cryptography), tiền ảo, bitcoin, ethereum, và các nền tảng , tools khác cần thiết cho sự phát triển
blockchain. Độc giả cần phải có khiến thức nền tảng về khoa học máy tính và kiến thức lập
trình cơ bản để có thể đọc cuốn sách này. Tuy nhiên, nếu không có thì cuốn sách này vẫn sẽ
được trình bày dễ hiểu và sẽ có những kiến thức nền cơ bản cần thiết.
ĐỐI TƯỢNG ĐỘC GIẢ CỦA CUỐN SÁCH
Cuốn sách dành cho bất cứ ai muốn hiểu sâu về blockchain. Nó có để sử dụng như một tài liệu
tham khảm cho các nhà lập trình, những người muốn phát triển ứng dụng về blockchain. Ngoài
ra, cuốn sách có thể sử dụng như giáo trình cho các khóa học liên quan đến blockchain và tiền
ảo. Nó cũng có thể được dùng như tài liệu học tập cho việc thi cử, thi lấy chứng chỉ liên quan
đến tiền ảo và blockchain.
NỘI DUNG CỦA SÁCH
Chương 1, Blockchain 101, giới thiệu những khái niệm cơ bản về thuật toán phân tán mà
blockchain được xây dựng trên đó. Nó đề cập đến lịch sử, khái niệm, những đặc tính, các dạng
thức và lợi ích khác nhau của blockchain cùng với cơ chế đồng thuận-cốt lõi của công nghệ
blockchain.
Chương 2, Sự phi tập trung, nói về những khái niệm liên quan đến phi tập trung và mối quan hệ
của nó với công nghệ blockchain. Có rất nhiều phương pháp và nền tảng có thể sử dụng để phi
tập trung một quá trình hoặc 1 hệ thống.
Chương 3, mật mã đối xứng, nói về các nền tảng lý thuyết của mật mã đối xứng, độc giả cần hiểu
rằng những dịch vụ bảo mật đa dạng như thế nào ví dụ như bảo mật và nguyên vẹn thông tin.
Chương 4, mật mã public key, đưa ra những khái niệm như public và private key, chữ ký số và
hàm băm với ví dụ thực tế. Cuối cùng là lời giới thiệu về thị trường tài chính với nhiều trường
hợp sử dụng công nghệ blockchain.
Chương 5, giới thiệu về Bitcoin, đề cập những vấn đề về Bitcoin, blockchain đầu tiên và lớn
nhất. Chương này cũng đưa ra những khái niệm kỹ thuật chi tiết về bitcoin.
Chương 6, mạng lưới và thanh toán bitcoin, đề cập đến mạng lưới bitcoin, các giao thức tương
ứng và nhiều loại ví bitcoin. Hơn thế nữa, những giao thức tiên tiến, việc mua bán, thanh toán
bằng bitcoin cũng được giới thiệu.
Chương 7, máy tính liên kết và API bitcoin, giới thiệu về các máy tính client của Bitcoin và lập
trình API có thể sử dụng để xây dựng các ứng dụng Bitcoin.
Chương 8, Altcoin, giới thiệu các đồng tiền ảo khác ra đời sau sự xuất hiện của Bitcoin. Chương
này cũng đưa ra những ví dụ về các đồng altcoin, cách chúng được phát triển và triển khai.
Chương 9, Hợp đồng thông minh, thảo luận chuyên sâu về HĐTM. Những chủ đề như lịch sử,
định nghĩa của HĐTM, hợp đồng Ricardian, Oracles và các khía cạnh lý thuyết về HĐTM cũng
được đề cập trong chương này.
Chương 10, Ethereum 101, giới thiệu về thiết kế và kiến trúc của blockchain Ethereum một cách
chi tiết. Cuốn sách đề cập đến nhiều khái niệm kỹ thuật liên quan đến blockchain Ethereum và
giải thích những quy tắc đằng sau nó, những đặc điểm và nhân tố cấu tạo nên nền tảng này một
cách sâu rộng.
Chương 11, Những bước tiến xa hơn của Ethereum, tiếp tục giới thiệu về Ethereum từ chương
trước và đề cập đến các vấn đề về máy ảo Ethereum, mining và giao thức support cho Ethereum.
Chương 12, môi trường phát triển Ethereum, bàn về các chủ đề liên quan đến setup mạng lưới
private cho sự phát triển của HĐTM Ethereum và lập trinh Ethereum.
Chương 13, Các tool và nền tảng phát triển, đưa ra giới thiệu thực tiễn một cách chi tiết về ngôn
ngữ lập trình Solidity và những tool, nền tảng liên quan khác được sử dụng cho sự phát triển của
Ethereum.
Chương 14, Giới thiệu về Web3, bàn về sự phát triển của các ứng dụng phi tập trung và hợp đồng
thông minh sử dụng blockchain Ethereum. Một lời giới thiệu chi tiết về Web3 API được đề cập
cùng các ví dụ thực tiễn và dự án sau cùng.
Chương 15, Hyperledger, bàn luận về dự án Hyperledger từ nền tảng Linux, vốn là nền tảng chứa
nhiều dự án blockchain.
Chương 16, Các chuỗi khối khác, đưa ra những giải pháp và nền tảng blockchain khác. Chương
này cung cấp cho độc giả những chi tiết và đặc tính kỹ thuật của các blockchain khác và các nền
tảng liên quan.
Chương 17, blockchain - ứng dựng vượt ra khỏi lĩnh vực tiền tệ, giới thiệu chi tiết về các ứng
dụng của blockchain trong các lĩnh vực khác ngoài tiền ảo, bao gồm Internet of things, chính
phủ, media và tài chính.
Chương 18, Khả năng mở rộng và các thách thức khác, bàn luận về những thách thức mà công
nghệ blockchain phải đối mặt và làm thế nào để giải quyết chúng.
Chương 19, hiện tại và những gì có thể làm được trong tương lai, tập trung cung cấp thông tin về
thực tại, các dự and và nỗ lực nghiên cứu liên quan đén blockchain. Ngoài ra chương này cũng
đưa ra những dự đoán dựa vào thực tại của công nghệ blockchain.
ĐỂ NẮM SÂU NHẤT VỀ CUỐN SÁCH NÀY THÌ:
Tất cả ví dụ trong sách đều được phát triển trên Ubuntu 16.04.1 LTS (Xenial) và macOS
phiên bản 10.13.2 do đó độc giả nên sử dụng Ubuntu hoặc các hệ thống tương tự Unix.
Tuy nhiên bất cứ hệ điều hành tương thích nào như Windows hay Linux vẫn có thể được
sử dụng, nhưng những ví dụ, đặc biệt là những ví dụ liên quan đến việc cài đặt, sẽ cần
phải thay đổi tương ứng tùy theo.
Những ví dụ liên quan đến mật mã được phát triển bằng công cụ dòng lệnh OpenSSL
1.0.2g 1 Mar 2016
Những ví dụ về Solidity Ethereum được phát triển nhờ Remix IDE có sẵn tại
Ethereum Byzantine được sử dụng để đưa ra những ví dụ liên quan đến Ethereum. Vào
thời điểm viết cuốn sách này, phiên bản mới nhất có thể download tại
/> Những ví dụ liên quan đến IoT được phát triển nhờ Rasberry Pi kit của Vilros. Cụ thể,
Raspberry Pi 3 Model B V 1.2 được dùng để tạo những ví dụ phần cứng của IoT. Node.js
V8.9.3 và npm V5.5.1 được dùng để tải những package liên quan và chạy server Node js
cho các ví dụ về IoT.
Nền tảng Truffle được dùng trong các ví dụ về triển khai hợp đồng thông minh (HĐTM)
và có sẵn tại Các bạn nên cập nhật phiên bản mới nhất qua
npm
TẢI CÁC FILE CODE VÍ DỤ VỀ
Bạn có thể tải các file code ví dụ trong quyển sách này về tại www.packtpub.com Nếu bạn mua
quyển sách này ở một nơi khác, bạn có thể ghé thăm www.packtpub.com/support và đăng ký để
nhận files qua email.
Để tải các file code ví dụ, bạn làm theo các bước sau:
1. Đăng nhập hoặc đăng ký tại www.packtpub.com
2. Chọn mục SUPPORT
3. Ấn vào “code Download & Errata”
4. Nhập tên sách vào trường “Search”” và làm theo hướng dẫn trên màn hình.
Sau khi tải file về, vui lòng giải nén bằng cách sử dụng phiên bản mới nhất của:
winRAR/7-Zip cho Windows
Zipeg/iZip/UnRarX cho Mac
7-Zip/PeaZip cho Linux
Bạn có thể tìm code tại Github: Trường hợp có cập nhật về code, chúng tôi sẽ cập nhật trên GitHub.
Ngoài ra bạn cũng có thể tìm hiểu thêm tại: Hãy ghé thăm!
TẢI VỀ CÁC HÌNH ẢNH MÀU
Chúng tôi cũng cung cấp file PDF với các hình ảnh màu về ảnh chụp màn hình/ sơ đồ dùng trong
cuốn sách này. Bạn có thể download tại:
/>lorImages.pdf
MỘT SỐ QUY ƯỚC ĐƯỢC SỬ DỤNG
Cuốn sách sử dụng một số quy ước về câu chữ văn bản.
: để ám chỉ những từ code trong văn bản, tên bảng database, tên folder, tên file,
mở rộng file, pathname, URL, input người dùng. Ví dụ như: “Sau khi triển khai câu lệnh, một
file có tên
sẽ được giới thiệu, file này chứa những private key như sau”.
Một đoạn code sẽ được đặt như sau:
Khi chúng tôi muốn bạn chú ý đến một phần/đoạn code cụ thể, thì những dòng tương ứng đó sẽ
được bôi đậm.
Bất cứ input hay output nào của một dòng lệnh sẽ đều được viết như sau:
Chữ in đậm: ám chỉ những thuật ngữ mới, một từ quan trọng hoặc những từ bạn nhìn thấy trên
màn hình. Ví dụ, các từ trong một menu hoặc hộp hội thoại xuất hiện như sau:
“Vui lòng nhập mật khẩu và ấn GỬI GIAO DỊCH để khởi chạy hợp đồng”.
Những cảnh báo hoặc ghi chú quan trọng sẽ xuất hiện như thế này
Các thủ thuật sẽ xuất hiện như thế này
GIỮ LIÊN LẠC
Chúng tôi luôn chào đón những feedback của độc giả.
Feedback chung: Hãy gửi mail tới và đề cập tựa đề cuốn sách vào
mục Subject của tin nhắn. Nếu bạn có câu hỏi gì về bất cứ khía cạnh nào của cuốn saachs, hãy
gửi mail đến
Lỗi chữ in sai: Dù chúng tôi đã rất cẩn thận để đảm bạo sự chính xác của nội dung, nhưng vẫn
có lỗi xảy ra. Nếu bạn tìm thấy lỗi nào trong cuốn sách, vui lòng cho chúng tôi biết. Hãy ghé
thăm chọn cuốn sách của bạn, ấn vào “Errata
Submission Form” và nhập chi tiết thông tin.
Đạo nhái: Nếu tình cờ bạn thấy bất cứ bản sao chép trái phép sách của chúng tôi dưới bất cứ
hình thức nào trên Internet, chúng tôi sẽ rất biết ơn nếu bạn cung cấp cho chúng tôi địa chỉ hoặc
tên website. Vui lòng liên hệ với chúng tôi tại kèm theo đường link
bạn tìm được.
Nếu bạn mong muốn trở thành một tác giả viết sách: Nếu bạn có kiến thức về một chủ đề
nào đó và hứng thú với việc viết lách hoặc đóng góp cho một cuốn sách, vui lòng ghé thăm
authors.packtpub.com
REVIEWS
Vui lòng để lại review. Khi bạn đã đọc và sử dụng cuốn sách, tại sao không để lại một review
trên trang mà bạn đã mua nó? Những độc giả khác có thể xem chúng và dựa vào quan điểm
khách quan của bạn để quyết định mua sách.
Để biết thêm thông tin chi tiết về Packt, vui lòng ghé thăm packtpub.com
CHƯƠNG 1: BLOCKCHAIN 101
Nếu bạn đang đọc cuống sách này, chắc hẳn bạn đã nghe qua về blockchain cùng những giá trị
và triển vọng của nó. Nếu không, hãy để tôi nói qua về blockchain. Đây là một công nghệ hứa
hẹn sẽ thay thế những luận thuyết hiện hành của hầu hết tất cả các ngành công nghiệp bao gồm
nhưng không giới hạn với IT, tài chính, quản lý của chính phủ, truyền thông, y tế và luật.
Chương này sẽ giới thiệu công nghệ blockchain, những nền tảng kỹ thuật của nó và lý thuyết
đằng sau đó, cùng nhiều kỹ thuật được tạo dựng cùng nhau để xây dựng lên thứ chúng ta biết
ngày nay là blockchain.
Trong chương này, đầu tiên chúng tôi mô tả những nền tảng lý thuyết của các hệ thống phân tán.
Tiếp đến, chúng tôi chỉ ra những điềm báo trước của Bitcoin mà dựa vào đó công nghệ
blockchain được giới thiệu ra ngoài thế giới. Sau cùng, chúng tôi sẽ giới thiệu cho bạn về công
nghệ blockchain. Đây là cách tiếp cận logic giúp bạn hiểu về công nghệ blockchain, nền tảng của
công nghệ blockchain chính là các hệ thống phân tán. Chúng tôi sẽ đề cập nhiều nền tảng một
cách ngắn gọn nhưng đừng lo - chúng tôi sẽ đề cập chi tiết về chúng ở những phần sau của cuốn
sách.
SỰ PHÁT TRIỂN CỦA CÔNG NGHỆ BLOCKCHAIN
Với sự phát minh ra Bitcoin vào năm 2008, thế giới được tiếp xúc với một khái niệm mới, mà
ngày nay, nó có thể sẽ đem lại cuộc cách mạng cho toàn xã hội. Khái niệm này hứa hẹn sẽ ảnh
hưởng đến mọi nền công nghiệp bao gồm nhưng không giới hạn với lĩnh vực tài chính, quản lý
hành chính, truyền thông, luật và nghệ thuật. Có người miêu tả blockchain như một cuộc cải
cách, trong khi đó một trường tư tưởng khác lại tin rằng nó còn vĩ đại hơn một cuộc cách mạng
và sẽ phải mất nhiều năm nữa để những lợi ích thực tiễn của blockchain có thể thấy rõ ràng hơn.
Suy nghĩ này phần nào đúng, nhưng theo quan điểm của tôi, cuộc cách mạng này đã bắt đầu rồi.
Nhiều tổ chức nổi tiếng trên toàn thế giới là minh chứng cho việc sử dụng công nghệ blockchain,
bởi lẽ họ đã nhận ra những triển vọng của công nghệ này. Tuy nhiên, nhiều tổ chức vẫn đang ở
giai đoạn khám phá sơ khai, dù rằng họ được kỳ vọng sẽ tiến hành quá trình này nhanh hơn do
công nghệ này cũng đang dần trưởng thành. Một công nghệ có thể có tầm ảnh hưởng lên những
công nghệ khác hiện hành và làm thay đổi chúng ở một mức độ nào đó.
Nếu chúng ta nhìn lại thời điểm vài năm trước đây, chúng ta có thể nhận thấy vào năm 2013,
nhiều ý tưởng đã bắt đầu đề xuất sử dụng công nghệ blockchain vào các lĩnh vực khác ngoài tiền
điện tử. Vào khoảng thời gian đó, blockchain được ưu tiên sử dụng trong lĩnh vực crypto và
nhiều đồng coin ra mắt trong suốt quãng thời gian đó. Biểu đồ sau đay chỉ ra những điểm nổi bật
của quá trình phát triển và áp dụng công nghệ blockchain theo năm. Các năm hiển thị ở trục x
chỉ từng pha cụ thể mà công nghệ blockchain từng chìm xuống. Mỗi pha sẽ có một tên biểu thị
hành động và được hiển thị trên trục x bắt đầu từ giai đoạn Ý TƯỞNG tới giai đoạn cuối là
TRƯỞNG THÀNH VÀ TIÊU CHUẨN XA HƠN. Trục y chỉ mức độ của hành động, việc sử
dụng và thay đổi của công nghệ blockchain. Biểu đồ chỉ ra rằng, sau tất cả, vào khoảng 2025 thì
công nghệ blockchain được dự đoán sẽ trưởng thành với số lượng người dùng lớn.
Biểu đồ chỉ ra rằng vào năm 2013 Ý TƯỞNG về những ứng dụng khác của blockchain ngoài
lĩnh vực crypto đã bắt đầu chớm nở. Sau đó vào năm 2014, một số NGHIÊN CỨU VÀ THỬ
NGHIỆM đã bắt đầu và đưa đến những MINH CHỨNG VỀ KHÁI NIỆM, NGHIÊN CỨU
CHUYÊN SÂU và sau đó là NHỮNG DỰ ÁN THỬ NGHIỆM hoàn chỉnh vào giai đoạn 20152017. Vào năm 2018, chúng ta sẽ chứng kiến sự TRIỂN KHAI Ở THẾ GIỚI THẬT. Thực tế
đã có nhiều dự án được triển khai và thay thế các dự án đang có, ví dụ như Australian
Securities Exchange (ASX) sẽ sớm trở thành tổ chức đầu tiên thay thế hệ thống thanh toán và
giải phóng mặt bằng bằng công nghệ blockchain.
Bạn có thể tìm thêm thông tin chi
/>
tiết
về
lĩnh
vực
này
tại
Dự đoán đến năm 2019 sẽ có nhiều nghiên cứu liên quan đến luật lệ và tiêu chuẩn hóa của công
nghệ blockchain. Sau đó, những dự án đã có sẵn quá trình sản xuất và những sản phẩm đã lên kệ
sẽ có sẵn từ năm 2020. Đến năm 2021, blockchain dự đoán sẽ được sử dụng rộng rãi và phổ biến.
Quá trình phát triển của blockchain gần giống như dot-com boom cuối thế kỷ 20. Cùng với sự
biến đổi và trưởng thành hơn của blockchain thì dự đoán sẽ có nhiều nghiên cứu hơn, và cuối
cùng vào năm 2015 thì công nghệ này được cho là sẽ trưởng thành đủ để sử dụng trong cuộc
sống hàng ngày. Vui lòng lưu ý rằng mốc thời gian nêu trong bản đồ không phải mốc cố định và
có thể thay đổi do chúng ta rất khó có thể dự đoán chính xác khi nào blockchain sẽ thực sự
trưởng thành. Biểu đồ này dựa trên quá trình phát triển vài năm gần đây và kết quả của nhứng
nghiên cứu gần đây, sự quan tâm, đam mê dành cho lĩnh vực này. Tất cả những thứ đó đều giúp
chúng tôi đưa ra dự đoán rằng 2025 sẽ là năm blockchain trưởng thành.
Trong những năm qua, blockchain ngày càng nhận được nhiều sự quan tâm đáng kể. Đã từng bị
coi là một đồng tiền không theo kịp xu hướng từ quan điểm của một đồng tiền ảo, hoặc bị coi là
không đáng đồng tiền bát gạo, thì nay blockchain là đối tượng nghiên cứu của nhiều công ty và
tổ chức lớn trên thế giới. Hàng triệu đô đã được dùng vào việc biến đổi và thử nghiệm với công
nghệ này. Đây là minh chứng từ việc Liên minh Châu Âu gần đây đã tiến hành hành động sau
khi tuyên bó kế hoạch tăng thêm quỹ cho việc nghiên cứu blockchain lên tới 340 triệu Euros vào
năm 2020.
những độc giả quan tâm có thể đọc thêm tại
/>Một báo cáo khác đưa ra đề xuất rằng đến năm 2021 toàn thế giới nên dành khoảng 9,2 tỷ đô cho
việc nghiên cứu blockchain.
Tìm hiểu thêm thông tin tại:
/>Có rất nhiều tổ chức ví dụ như Liên minh các tập đoàn sử dụng Ethereum (EEA) và R3 đã
tiến hành nghiên cứu và phát triển công nghệ blockchain. Hơn thế, có nhiều dự án khởi nghiệp
cũng đưa ra những giải pháp dựa trên nền tảng blockchain. Một xu hướng tìm kiếm trên Google
chỉ ra rằng trong những năm qua, sự quan tâm dành cho công nghệ blockchain ngày càng lớn.
Đặc biệt, từ đầu năm 2017, số lượt tìm kiếm từ khóa blockchain khá ấn tượng, như được chỉ ra
trong biểu đồ sau.