|
-- 會員 / 註冊 --
|
|
|
|
區塊鏈生存指南:帶你用Python寫出區塊鏈! ( 繁體 字) |
作者:李耕銘 | 類別:1. -> 程式設計 -> 區塊鏈 |
譯者: |
出版社:博碩文化 | 3dWoo書號: 54163 詢問書籍請說出此書號!【缺書】 NT定價: 520 元 折扣價: 390 元
|
出版日:3/6/2021 |
頁數:304 |
光碟數:0 |
|
站長推薦: |
印刷:黑白印刷 | 語系: ( 繁體 版 ) |
|
加入購物車 │加到我的最愛 (請先登入會員) |
ISBN:9789864345779 |
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 序 |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證) |
作者序: |
譯者序: |
前言: |
內容簡介:一本手把手教你用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) ?自製一個簡單的雜湊函數 ?加密 ?Kerckhoffss principle(柯克霍夫原則) 3-2 古典加密 ?Caesar 加密 ?Monoalphabetic 加密 ?Vigenere 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 是泡沫嗎?
|
序: |
|