
0人評分過此書
一本手把手教你用Python刻出區塊鏈的技術書,想了解區塊鏈背後的原理?就從挽起袖子寫程式開始!
手把手教學:你也可以寫出跑得動的區塊鏈!
實用密碼學:Merkle Tree、非對稱加密、零知識證明是怎麼做的?
共識與分岔:暫時性分岔、軟分岔、硬分岔有甚麼區分?
礦工的世界:扣塊攻擊怎麼做?機槍池的原理是甚麼?
去中心金融 - 乙太坊上也有當舖!預言機暗藏危險?AMM機制是怎麼做的?
本書內容改編自第 11 屆 iT 邦幫忙鐵人賽的 Blockchain 組冠軍系列文章,也是第一本從技術角度出發,透過實地撰寫區塊鏈開始談背後所應用到的相關知識。在完整復刻出區塊鏈後,更能了解到區塊鏈世界裡常聽到的幾個專有名詞:女巫攻擊、共識演算法、軟分岔與硬分岔、工作量證明、非對稱加密的由來。
“What I cannot create, I do not understand” - Richard Feynman
五大重點:
1.用 Python 從頭打造區塊鏈
本書重點在於從復刻出區塊鏈開始,帶你逐步了解開設錢包、發起並簽署交易、節點廣播的功能是如何被實作出來的,並透過實作過程中的細節來了解到區塊鏈背後需要哪些知識。
2.密碼學初探
虛擬貨幣之所以常被稱為加密貨幣就是因為應用了大量的密碼學,也是因為密碼學我們才能夠在茫茫的網路世界中確認彼此的身分!
3.聊聊挖礦的兩三事
帶你實地加入礦工們的世界,來看看礦工與礦池間又有哪些鉤心鬥角的方式!
4.P2P網路入門
在去中心化的世界中,我們如何知道彼此的身分?又如何形塑出一樣的共識?在求取共識的過程中,分岔又是怎麼形成的?
5.淺談現實中的區塊鏈:BTC與Ethereum
現在最知名的兩大公鏈莫過於比特幣(BTC)與乙太坊(ETH)了!除了講述區塊鏈的原理之外,本書最後也會帶你解析與走過比特幣與乙太坊的發展歷程與架構。
6.去中心化金融
為何 ERC20 如此重要?借貸系統是如何實作的?有哪些獲取正確價格的方式?為什麼閃電貸可以拿來攻擊?為何算法穩定幣註定會失敗?
手把手教學:你也可以寫出跑得動的區塊鏈!
實用密碼學:Merkle Tree、非對稱加密、零知識證明是怎麼做的?
共識與分岔:暫時性分岔、軟分岔、硬分岔有甚麼區分?
礦工的世界:扣塊攻擊怎麼做?機槍池的原理是甚麼?
去中心金融 - 乙太坊上也有當舖!預言機暗藏危險?AMM機制是怎麼做的?
本書內容改編自第 11 屆 iT 邦幫忙鐵人賽的 Blockchain 組冠軍系列文章,也是第一本從技術角度出發,透過實地撰寫區塊鏈開始談背後所應用到的相關知識。在完整復刻出區塊鏈後,更能了解到區塊鏈世界裡常聽到的幾個專有名詞:女巫攻擊、共識演算法、軟分岔與硬分岔、工作量證明、非對稱加密的由來。
“What I cannot create, I do not understand” - Richard Feynman
五大重點:
1.用 Python 從頭打造區塊鏈
本書重點在於從復刻出區塊鏈開始,帶你逐步了解開設錢包、發起並簽署交易、節點廣播的功能是如何被實作出來的,並透過實作過程中的細節來了解到區塊鏈背後需要哪些知識。
2.密碼學初探
虛擬貨幣之所以常被稱為加密貨幣就是因為應用了大量的密碼學,也是因為密碼學我們才能夠在茫茫的網路世界中確認彼此的身分!
3.聊聊挖礦的兩三事
帶你實地加入礦工們的世界,來看看礦工與礦池間又有哪些鉤心鬥角的方式!
4.P2P網路入門
在去中心化的世界中,我們如何知道彼此的身分?又如何形塑出一樣的共識?在求取共識的過程中,分岔又是怎麼形成的?
5.淺談現實中的區塊鏈:BTC與Ethereum
現在最知名的兩大公鏈莫過於比特幣(BTC)與乙太坊(ETH)了!除了講述區塊鏈的原理之外,本書最後也會帶你解析與走過比特幣與乙太坊的發展歷程與架構。
6.去中心化金融
為何 ERC20 如此重要?借貸系統是如何實作的?有哪些獲取正確價格的方式?為什麼閃電貸可以拿來攻擊?為何算法穩定幣註定會失敗?
-
01 前言:區塊鏈的誕生
-
1-1 用共識來信任
-
1-2 不信任中誕生的信任
-
1-3 你的錢不是你的錢
-
1-4 Be your own bank
-
1-5 比特幣能成為實質上的「貨幣」嗎?
-
1-6 本書的架構
-
-
02 打造一個簡易的區塊鏈
-
2-1 定義格式與架構
-
交易的組成
-
區塊鏈架構
-
-
2-2 產生創世塊與挖掘新區塊
-
產生雜湊值(Hash)
-
產生創世塊(genesis block)
-
放置交易紀錄至新區塊中
-
挖掘新區塊
-
現在遇到的問題
-
-
2-3 難度調整與確認雜湊鏈
-
調整挖掘難度
-
計算帳戶餘額
-
確認雜湊值是否正確
-
測試一下
-
目前的問題
-
-
2-4 公、私鑰與簽章
-
非對稱式加密
-
一個交易經過了哪些步驟?
-
利用RSA加密產生公、私鑰與地址
-
利用產生的公私鑰簽章後發送交易
-
試著跑起整個鏈並發起交易
-
目前的問題
-
-
2-5 節點與使用者的溝通
-
前置作業
-
Socket
-
Thread
-
Bitcoin中的Socket與Thread
-
節點與客戶端的功能
-
產生錢包地址與公私鑰
-
初始化交易
-
簽章交易
-
控制流程
-
實際操作
-
查詢餘額
-
發起交易
-
確認是否有收到
-
-
2-6 節點間的同步與廣播
-
節點的建置
-
接受並判別訊息
-
接收並驗證廣播的區塊
-
如果廣播的區塊驗證通過,改挖掘下一塊
-
挖掘到新區塊,廣播給其他節點
-
執行我們的區塊鏈與雙節點
-
現實中的網路
-
網路的延遲
-
節點不全然可信(reliable)
-
完成簡易的區塊鏈了!
-
-
-
03 密碼學初探
-
3-1 名詞簡介
-
編碼
-
亂碼
-
Big5與UTF-8
-
編碼的其他應用
-
壓縮
-
無失真壓縮
-
失真壓縮
-
霍夫曼(Hoffman) 編碼
-
雜湊
-
雜湊在區塊鏈上的功能
-
雜湊的其他功能
-
雜湊表(Hash Table)
-
自製一個簡單的雜湊函數
-
加密
-
Kerckhoffs's principle(柯克霍夫原則)
-
-
3-2 古典加密
-
Caesar加密
-
Monoalphabetic加密
-
Vigenère Cipher a.k.a. Polyalphabetic加密
-
One-Time Pad(一次性密碼本)
-
Rail-Fence Ciphers(柵欄加密法)
-
-
3-3 現代加密― XOR與SPN加密
-
稍微現代一點的加密
-
XOR Cipher
-
Substitution-Permutation Network(SPN)
-
SPN演算法實作
-
XOR Cipher
-
S-boxes(替換盒)
-
P-boxes(排列盒)
-
加密:重複XOR Cipher → S-boxes → P-boxes的步驟
-
解密:把加密的過程倒置過來
-
測試一下加解密
-
SPN有滿足Diffusion跟Confusion嗎?
-
SPN與區塊鏈
-
Feistel Cipher
-
串流加密 vs 區塊加密
-
串流加密
-
區塊加密
-
Electronic codebook(ECB)
-
重放攻擊
-
Cipher-block chaining(CBC)
-
區塊鏈上的重放攻擊
-
現代加密標準
-
Data Encryption Standard(DES)
-
Triple DES(3DES)
-
Advanced Encryption Standard加密(AES)
-
Rijndael 演算法
-
編碼、壓縮、雜湊、加密的比較
-
-
3-4 Merkle Tree
-
為什麼不直接連接(concatenation) 所有交易再Hash ?
-
Merkle Tree 如何驗證交易
-
Second preimage attack
-
Bitcoin 中的Merkle Tree
-
Full Node
-
SPV(Simplified Payment Verification) Node
-
-
3-5 非對稱加密與數位簽章
-
對稱與非對稱加密
-
對稱式加密
-
非對稱式加密
-
RSA加密
-
RSA公私鑰的產生
-
RSA加密
-
RSA解密
-
要如何攻擊RSA ?
-
橢圓公式(Elliptic Curve Cryptography,ECC)
-
橢圓公式概論
-
橢圓公式的加法定理
-
橢圓公式的離散
-
橢圓公式的不可逆
-
-
3-6 零知識證明
-
沒有隱私的交易
-
零知識證明(Zero-Knowledge Proofs)
-
同態隱藏(Homomorphic Hidings)
-
zk-SNARKs
-
犯罪者的溫床
-
幾種匿蹤性貨幣
-
-
-
04 關於挖礦的兩三事
-
4-1 原理應用與礦池
-
挖礦
-
原生的挖礦
-
挖礦方式演變
-
挖礦硬體
-
-
4-2 抗ASIC演算法
-
Bitcoin被ASIC攻陷
-
用CPU挖能挖多少?
-
ASIC帶來極度中心化的疑慮
-
Ethereum如何對抗ASIC
-
Dagger-Hashimoto演算法
-
有向無環圖(Directed Acyclic Graph,DAG)
-
Hashimoto演算法
-
Dagger-Hashimoto
-
其他種抗ASIC演算法
-
究竟有沒有必要對抗ASIC ?
-
-
4-3 挖礦實戰
-
如何開始挖礦
-
選擇幣種/演算法
-
ASIC 挖礦
-
GPU 挖礦
-
Nicehash挖礦
-
Ethereum的算力預估
-
選擇硬體
-
CPU、RAM、SSD、網路
-
主機板
-
電源供應器(PSU)
-
GPU
-
選擇作業系統
-
選擇挖礦軟體
-
實際畫面
-
-
4-4 礦工間的戰爭
-
壓低成本(電費)
-
硬體調校
-
契約用電與時間電價
-
增加挖礦期望值
-
挖空塊
-
跳跳池
-
跳跳池
-
扣塊攻擊
-
-
-
05 P2P網路
-
5-1 網路架構種類
-
傳統的網路架構
-
Peer to Peer(P2P)網路
-
P2P網路的難題
-
工作的分配
-
P2P網路的分類
-
P2P與區塊鏈
-
-
5-2 共識―拜占庭將軍問題
-
拜占庭將軍問題
-
拜占庭將軍問題與區塊鏈
-
拜占庭容錯(BFT)演算法
-
證明拜占庭容錯機制
-
實用拜占庭容錯(PBFT)
-
共識的形成與岔開
-
-
5-3 共識未能形成的插曲:暫時性分岔
-
暫時性分岔(Temporary Fork)
-
Bitcoin中的最長鏈機制
-
Ethereum中的叔塊(Uncle block) 機制
-
叔塊如何被定義
-
如何計算叔塊獎勵
-
叔塊對整體礦工的利益是好的嗎?
-
51% 攻擊
-
-
5-4 共識未能形成的插曲:軟分岔與硬分岔
-
升級之路上的岔路口
-
從社群提案到接受
-
BIP(Bitcoin Improvement Proposals)
-
EIP(Ethereum Improvement Proposals)
-
軟分岔(Soft Fork)
-
硬分岔(Hard Fork)
-
IFO(Initail Fork Offering)
-
歷史上知名的硬分岔
-
ETC的分岔
-
BCH的分岔
-
-
-
06 比特幣Bitcoin
-
6-1 區塊鏈與代幣的發展
-
區塊鏈1.0、2.0、3.0
-
區塊鏈1.0 ― Bitcoin
-
區塊鏈2.0 ― Ethereum
-
區塊鏈3.0 ― IOTA?
-
區塊鏈上代幣的實務發展
-
-
6-2 Bitcoin與Ethereum的交易架構
-
Bitcoin的UTXO架構
-
UTXO如何預防雙花攻擊
-
UTXO的優點
-
Ethereum的Account架構
-
Account架構如何預防雙花攻擊
-
Input Data
-
Account 架構的優點
-
-
6-3 Bitcoin 的發展與路線之爭
-
多重簽名
-
隔離驗證(Segregated Witness,Segwit)
-
閃電網路(Lightning Network)
-
-
6-4 用Command Line 操作Bitcoin
-
操作Bitcoin
-
圖形化介面
-
Bitcoin-core
-
環境設定
-
啟動與停止
-
挖掘新區塊
-
發起交易
-
手動簽發一筆交易
-
查詢UTXO
-
初始化一筆交易
-
簽署這筆交易
-
多重簽名
-
-
-
07 乙太坊Ethereum
-
7-1 Ethereum Virtual Machine(EVM)與智能合約
-
圖靈完備性
-
Ethereum Virtual Machine(EVM)
-
Ethereum傳統的Gas機制
-
第一價格拍賣
-
第二價格拍賣
-
EIP-1559 的交易手續費
-
智能合約(Smart Contract)
-
Decentralized Application(DAPP)
-
-
7-2 基礎智能合約語法
-
開發環境與使用
-
合約架構
-
變數型別
-
運算子
-
函式撰寫
-
常用contract/library
-
智能合約範例
-
-
7-3 智能合約的使用與操作
-
智能合約
-
網頁與Ethereum的互動
-
Metamask
-
Web3.js
-
初始化並連接節點
-
取得錢包餘額
-
匯款
-
使用智能合約
-
-
7-4 ETH 2.0
-
權益證明(Proof of Stake,PoS)
-
分層分片鏈(Sharding)
-
-
-
08 去中心化金融(Decentralized Finance,DeFi)
-
8-1 智能合約上的金融系統
-
ERC20標準代幣
-
-
8-2 混幣器Tornado.cash
-
混幣器的原理
-
存款憑證
-
-
8-3 乙太坊上的「當鋪」
-
MakerDAO
-
Compound
-
Aave 與閃電貸
-
-
8-4 兌幣協議
-
自動做市商(Automated Market-Makers,AMM)
-
無常損失(Impermanent Loss)
-
Uniswap
-
Lido Finance
-
Curve Finance
-
Convex Finance
-
-
8-5 算法穩定幣Luna的四百億美金帝國
-
Terra與UST的建立
-
瘋狂的資金潮
-
死亡螺旋
-
-
-
09 踏入虛擬貨幣
-
9-1 相關媒體
-
區塊客
-
區塊勢
-
-
9-2 購置虛擬貨幣
-
代購商
-
國內交易所
-
國外交易所
-
冷錢包
-
-
9-3 常見交易方式
-
9-4 區塊鏈不可能三角
-
9-5 USDT是泡沫嗎?
-
- 出版地 : 臺灣
- 語言 : 繁體中文
評分與評論
請登入後再留言與評分