區塊鏈生存指南: 帶你用Python寫出區塊鏈! | 誠品線上

區塊鏈生存指南: 帶你用Python寫出區塊鏈!

作者 李耕銘
出版社 聯合發行股份有限公司
商品描述 區塊鏈生存指南: 帶你用Python寫出區塊鏈!:,一本手把手教你用Python刻出區塊鏈的技術書,想了解區塊鏈背後的原理?就從挽起袖子寫程式開始!手把手教學:你也可以寫出跑

內容簡介

內容簡介 一本手把手教你用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)了!除了講述區塊鏈的原理之外,本書最後也會帶你解析與走過比特幣與乙太坊的發展歷程與架構。 本書範例檔下載網址: https: github.com lkm543 Blockchain_Survival_Guide

作者介紹

作者介紹 李耕銘 李耕銘 電機所畢業後目前不務正業地在台大資工訓練班擔任講師,平時喜歡教學、寫文章、研究基礎科學,幾年前誤打誤撞地踏入區塊鏈的世界,從個人挖礦、開設礦場、寫智能合約都參與過。 現在養了五隻貓,努力過每一天掙罐頭錢。 本書也是作者在資工訓練班開設區塊鏈課程的參考教材。 https: bit.ly 2MINgA7 Email:lkm543@gmail.com

產品目錄

產品目錄 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 是泡沫嗎?

商品規格

書名 / 區塊鏈生存指南: 帶你用Python寫出區塊鏈!
作者 / 李耕銘
簡介 / 區塊鏈生存指南: 帶你用Python寫出區塊鏈!:,一本手把手教你用Python刻出區塊鏈的技術書,想了解區塊鏈背後的原理?就從挽起袖子寫程式開始!手把手教學:你也可以寫出跑
出版社 / 聯合發行股份有限公司
ISBN13 / 9789864345779
ISBN10 / 986434577X
EAN / 9789864345779
誠品26碼 / 2681988501000
尺寸 / 23X17X1.5CM
裝訂 / 平裝
頁數 / 304
語言 / 中文 繁體
級別 /

最佳賣點

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

手把手教學:你也可以寫出跑得動的區塊鏈!
實用密碼學:Merkle Tree、非對稱加密、零知...

活動