回首頁  
帳號
 
關於博碩 博碩好讀 校園圖書 MOCC認證 下載教學 元學堂

博碩好讀
  新書推薦
  出版預告
  名家名著
  iT達人祕笈
 

分類索引

 

出版總覽

 

讀者服務

  徵求作者
 
首頁 >> 書籍介紹
 
 
點我可放大圖片
 
書名:區塊鏈生存指南:帶你用Python寫出區塊鏈!(iT邦幫忙鐵人賽系列書)
書號:MP22118 作者:李耕銘 ISBN: 978-986-434-577-9
定價:NT$520元 印刷:單色 頁數:304頁
書籍規格:17*23 上市日:2021/3/6 譯者:(無)
學習定位:初階 本書附件:線上下載  
前往購買 >> 蝦皮購物 類別:電腦技術  
       
快速前往 快速前往 快速前往        

 

 
    一本手把手教你用Python刻出區塊鏈的技術書,想了解區塊鏈背後的原理?就從挽起袖子寫程式開始!

    手把手教學:你也可以寫出跑得動的區塊鏈!
    實用密碼學:Merkle Tree、非對稱加密、零知識證明是怎麼做的?
    共識與分岔:暫時性分岔、軟分岔、硬分岔有甚麼區分?
    礦工的世界:扣塊攻擊怎麼做?機槍池的原理是甚麼?

    本書內容改編自第 11 屆 iT 邦幫忙鐵人賽的 Blockchain 組冠軍系列文章,也是第一本從技術角度出發,透過實地撰寫區塊鏈開始談背後所應用到的相關知識。在完整復刻出區塊鏈後,更能了解到區塊鏈世界裡常聽到的幾個專有名詞:女巫攻擊、共識演算法、軟分岔與硬分岔、工作量證明、非對稱加密的由來。
    “What I cannot create, I do not understand” - Richard Feynman

    五大重點:
    1.用 Python 從頭打造區塊鏈
    本書重點在於從復刻出區塊鏈開始,帶你逐步了解開設錢包、發起並簽署交易、節點廣播的功能是如何被實作出來的,並透過實作過程中的細節來了解到區塊鏈背後需要哪些知識。

    2.密碼學初探
    虛擬貨幣之所以常被稱為加密貨幣就是因為應用了大量的密碼學,也是因為密碼學我們才能夠在茫茫的網路世界中確認彼此的身分!

    3.聊聊挖礦的兩三事
    帶你實地加入礦工們的世界,來看看礦工與礦池間又有哪些鉤心鬥角的方式!

    4.P2P網路入門
    在去中心化的世界中,我們如何知道彼此的身分?又如何形塑出一樣的共識?在求取共識的過程中,分岔又是怎麼形成的?

    5.淺談現實中的區塊鏈:BTC與Ethereum
    現在最知名的兩大公鏈莫過於比特幣(BTC)與乙太坊(ETH)了!除了講述區塊鏈的原理之外,本書最後也會帶你解析與走過比特幣與乙太坊的發展歷程與架構。

    【下載範例程式檔案】
        本書的程式碼是由GitHub託管,可點選下面圖案前往下載:
        
 
    Chapter 01 前言:區塊鏈的誕生
    1-1 用共識來信任
    1-2 你的錢不是你的錢
    1-3 Be your own bank
    1-4 本書的架構

    Chapter 02 打造一個簡易的區塊鏈
    2-1 定義格式與架構
    ➔交易的組成
    ➔區塊鏈架構
    2-2 產生創世塊與挖掘新區塊
    ➔產生雜湊值(Hash)
    ➔產生創世塊(genesis block)
    ➔放置交易紀錄至新區塊中
    ➔挖掘新區塊
    ➔現在遇到的問題
    2-3 難度調整與確認雜湊鏈
    ➔調整挖掘難度
    ➔計算帳戶餘額
    ➔確認雜湊值是否正確
    ➔測試一下
    ➔目前的問題
    2-4 公、私鑰與簽章
    ➔非對稱式加密
    ➔一個交易經過了哪些步驟?
    ➔利用 RSA 加密產生公、私鑰與地址
    ➔利用產生的公私鑰簽章後發送交易
    ➔試著跑起整個鏈並發起交易
    ➔目前的問題
    2-5 節點與使用者的溝通
    ➔前置作業
    ➔Socket
    ➔Thread
    ➔Bitcoin 中的 Socket 與 Thread
    ➔節點與客戶端的功能
    ➔產生錢包地址與公私鑰
    ➔初始化交易
    ➔簽章交易
    ➔控制流程
    ➔實際操作
    ➔查詢餘額
    ➔發起交易
    ➔確認是否有收到
    2-6 節點間的同步與廣播
    ➔節點的建置
    ➔接受並判別訊息
    ➔接收並驗證廣播的區塊
    ➔如果廣播的區塊驗證通過,改挖掘下一塊
    ➔挖掘到新區塊,廣播給其他節點
    ➔執行我們的區塊鏈與雙節點
    ➔現實中的網路
    ➔網路的延遲
    ➔節點不全然可信(reliable)
    ➔完成簡易的區塊鏈了!

    Chapter 03 密碼學初探
    3-1 名詞簡介
    ➔編碼
    ➔亂碼
    ➔Big5與UTF-8
    ➔編碼的其他應用
    ➔壓縮
    ➔無失真壓縮
    ➔失真壓縮
    ➔霍夫曼(Hoffman) 編碼
    ➔雜湊
    ➔雜湊在區塊鏈上的功能
    ➔雜湊的其他功能
    ➔雜湊表(Hash Table)
    ➔自製一個簡單的雜湊函數
    ➔加密
    ➔Kerckhoffs's principle(柯克霍夫原則)
    3-2 古典加密
    ➔Caesar 加密
    ➔Monoalphabetic 加密
    ➔Vigenère Cipher aka 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
    ➔犯罪者的溫床
    ➔幾種匿蹤性貨幣

    Chapter 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 礦工間的戰爭
    ➔壓低成本(電費)
    ➔硬體調校
    ➔契約用電與時間電價
    ➔增加挖礦期望值
    ➔挖空塊
    ➔跳跳池
    ➔跳跳池
    ➔扣塊攻擊

    Chapter 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 的分岔

    Chapter 06 現實中的區塊鏈
    6-1 區塊鏈與代幣的發展
    ➔區塊鏈10、20、30
    ➔區塊鏈10 ― Bitcoin
    ➔區塊鏈20 ― Ethereum
    ➔區塊鏈30 ― 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
    ➔初始化一筆交易
    ➔簽署這筆交易
    ➔多重簽名
    6-5 Ethereum 的 EVM 與智能合約
    ➔圖靈完備性
    ➔Ethereum Virtual Machine(EVM)
    ➔Ethereum 的 Gas 機制
    ➔智能合約(Smart Contract)
    ➔Decentralized Application(DAPP)
    6-6 基礎智能合約語法
    ➔開發環境與使用
    ➔合約架構
    ➔變數型別
    ➔運算子
    ➔函式撰寫
    ➔常用 contract/library
    ➔智能合約範例
    6-7 智能合約的使用與操作
    ➔智能合約
    ➔網頁與 Ethereum 的互動
    ➔Metamask
    ➔Web3js
    ➔初始化並連接節點
    ➔取得錢包餘額
    ➔匯款
    ➔使用智能合約

    Chapter 07 踏入虛擬貨幣
    7-1 相關媒體
    ➔區塊客
    ➔區塊勢
    7-2 購置虛擬貨幣
    ➔代購商
    ➔國內交易所
    ➔國外交易所
    ➔冷錢包
    7-3 常見交易方式
    7-4 區塊鏈不可能三角
    7-5 USDT 是泡沫嗎?
 
    李耕銘
    電機所畢業後目前不務正業地在台大資工訓練班擔任講師,平時喜歡教學、寫文章、研究基礎科學,幾年前誤打誤撞地踏入區塊鏈的世界,從個人挖礦、開設礦場、寫智能合約都參與過。

    現在養了五隻貓,努力過每一天掙罐頭錢。

    本書也是作者在資工訓練班開設區塊鏈課程的參考教材。
    https://bit.ly/2MINgA7

    Email:[email protected]
 
    【下載範例程式檔案】
        本書的程式碼是由GitHub託管,可點選下面圖案前往下載:
        
 
 
 
     

博碩文化客服信箱
 

[email protected]

 
文教業務團隊
台北、新北、桃園、基隆、宜蘭、花蓮、金門
汪 玉 鳳
LINE ID:0925177716
0925-177716
[email protected]
郭 南 彤
LINE ID:rgtech101
0917-727778
[email protected]
助理分機 519
新竹、苗栗、台中、彰化、南投、雲林
林 世 昌
LINE ID:0925275775
0925-275775
[email protected]
助理分機 519
嘉義、台南、高雄、屏東、台東、澎湖
林 月 玲
LINE ID:0926858627
0926-858627
[email protected]
助理分機 238
 
MOCC 認證小組
 
  林 雯 玲 電話:02-2696-2869 分機:623 [email protected]

 

 
 

 

博碩文化股份有限公司 DrMaster Press Co., Ltd.
台灣新北市汐止區新台五路一段112號10樓A棟
Building A, 10F, No.112, Xintai 5th Rd., Sec.1,Xizhi Dist., New Taipei City 221, Taiwan
Tel:02-2696-2869 Fax:02-2696-2867 劃撥帳號:17484299

Copyright© DrMaster Press Co., Ltd. All Rights Reserved.