Tải bản đầy đủ (.docx) (521 trang)

Mastering blockchain

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (19.04 MB, 521 trang )

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.


Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×