區塊鏈核心算法解析( 簡體 字) | |
作者:陳晉川等 | 類別:1. -> 程式設計 -> 區塊鏈 |
出版社:電子工業出版社 | 3dWoo書號: 47142 詢問書籍請說出此書號! 有庫存 NT售價: 295 元 |
出版日:8/1/2017 | |
頁數:164 | |
光碟數:0 | |
站長推薦: | |
印刷:黑白印刷 | 語系: ( 簡體 字 ) |
ISBN:9787121313288 | 加入購物車 │加到我的最愛 (請先登入會員) |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證, 繁體書的下載亦請直接連絡出版社) | |
第1章
1.1 分布式系統是什么. . . 1 1.2 本書概覽. . 2 第2章 容錯問題和Paxos 算法 2.1 客戶端/服務器. . . 6 2.2 Paxos . . 11 延伸閱讀:Paxos漫談 第3章 共識機制 3.1 兩個朋友約飯局. . . 27 3.2 共識. . . 28 3.3 共識的不可能性. . . 29 3.4 隨機共識. . 36 3.5 共享硬幣. . 41 第4章 拜占庭協定 4.1 有效性. . 47 4.2 有多少個拜占庭節點. . 49 4.3 國王算法. . 52 4.4 “輪”數的下界. . . 55 4.5 異步模式下的拜占庭協定算法. . 56 第5章 認證的協定 5.1 利用認證的協定. . . 62 5.2 Zyzzyva . 65 第6章 仲裁系統 6.1 負載和工作量. . 82 6.2 網格仲裁系統. . 85 6.3 容錯. . . 88 6.4 拜占庭仲裁系統(Byzantine Quorum Systems) . . 92 第7章 最終一致性以及比特幣 7.1 一致性、可用性,以及分區. . 102 7.2 比特幣. . . 104 7.3 智能合約(Smart Contracts) . . 113 7.4 弱一致性. . 117 延伸閱讀:PoW vs. BFT 第8章 分布式系統 8.1 一致性哈希(Consistent Hashing) . 128 8.2 超立方體網絡(Hypercubic Networks) . 131 8.3 DHT & Churn . 140 本書主要介紹區塊鏈中超級重要的概念:共識在各種應用場景中的實現機制。本書是目前已面世書籍中對共識概念解析中至權威、至全面的一本。目標讀者為區塊鏈學習及研究人員,以及實際開發區塊鏈系統的工程人員。在原著基礎上,翻譯版將增加解讀及部分代碼實現。
推薦序I
毫無疑問,互聯網是20 世紀最偉大的發明之一。隨著信息、通信技術的蓬勃發展,互聯網已滲透到生產、貿易、通信、學習、娛樂等人們生活的幾乎所有方面,更使很多方面產生了革命性的變化。近十年 來,在互聯網的基礎上,移動互聯網、物聯網,乃至智能互聯網得到了新的發展。人工智能、深度學習、機器學習等一系列技術和理論的新發展,又促使互聯網應用面臨更加蓬勃發展的新局面。在眾多的互聯網新應用中,不得不提及區塊鏈。 仿佛一夜之間,互聯網創業圈和金融圈都在談論區塊鏈。堅信者認為,去中心化的、不可篡改的分布式賬本,能夠重構金融體系,甚至重塑整個社會。不知區塊鏈之父當初是否曾預見到如今區塊鏈的熱度? 如今,比特幣及其他虛擬貨幣已廣泛流行,并且引起了監管當局的關注;政府、巨頭和創業公司,也都積極參與到區塊鏈的各種應用的探索中。然而,在互聯網土壤上生長出的各種技術和應用中,區塊鏈及其應用還很年輕。自2009 年比特幣誕生至今,也才僅7 年,更不要說區塊鏈在互聯網金融領域和其他領域的應用。 作為一個一直關注新技術發展的互聯網“老兵”,我曾數次應邀參加中關村區塊鏈產業聯盟的活動,和互聯網領域的年輕創業者、專家、學者一起,探討、推動區塊鏈的發展和應用。我們的年輕人,尤其是年 輕的創業者,他們的大膽探索和勇于創新,令我感到歡欣鼓舞。 目前,介紹區塊鏈應用的書籍非常多,而從理論、技術層面介紹區塊鏈的書比較少。很高興看到有這樣一本從理論、技術層面介紹區塊鏈的書籍出版。希望大家能耐心讀讀這本書,更深入地理解區塊鏈技術,從而有助于推動區塊鏈技術的發展和應用。 高盧麟博士 中國互聯網協會副理事長 美國芝加哥馬歇爾法學院客座教授 推薦序II 區塊鏈(Block Chain)原本只是比特幣網絡的一種記賬技術,近幾年來卻在金融、知識產權、數據交易、電子證照、慈善、新能源等領域引起了廣泛的關注。為什么就突然“火”起來了?究其原因,我的理 解是:第一,區塊鏈具有去中心化的特征,不以參與交易的任何一方為中心。去中心化可以帶來效率的提升和成本的降低,直接增加了企業的利潤。第二,區塊鏈具有去信任的特征,也就是假定參與交易的任何一方都不是可信任的。我們通過記錄交易的信息,而且是不可抵賴的,來迫使交易各方遵守誠信。因此也可以說,區塊鏈技術很好地回應了目前互聯網的痛點——誠信問題。第三,區塊鏈作為互聯網的一種基礎設施,也可以看作是一種分布式數據庫,其核心就是參與交易的多方如何達成共識。在分布式數據庫中,為了處理并發事務,需要在不同的節點上維護一個全局一致的狀態,傳統的做法是通過兩階段鎖協議來實現。 另一方面,通常大型應用會維護多個數據庫副本,以實現數據庫的恢復。在多個數據庫副本之間維護一致的狀態也是一個經典的難題,而解決這個難題的最佳算法實踐正是本書中的重點內容——Paxos 算法。這個算法在大數據管理時代更是大放異彩,在BigTable,Hadoop 等多個大數據計算平臺上得到應用。 目前市場上關于區塊鏈的書籍很多,但大多偏于介紹區塊鏈的基礎知識及應用前景,純技術的書籍相對較少。本書著眼于區塊鏈的核心問題——拜占庭共識,針對不同的應用場景,介紹了適用的分布式共識算法。書中包含了很多算法及證明,深入剖析了共識算法的核心思想。本書詳細介紹了在不同應用場景下的分布式共識算法,包括單純宕機錯誤(節點只可能發生宕機,但不會惡意犯錯),拜占庭式錯誤節點(可以認為是惡意的節點,呈現任何行為),允許消息簽名,仲裁系統,弱一致條件下的共識等,并介紹了分布式存儲的一些基礎知識(如一致性哈希)。書中提到的很多算法,特別是PBFT,目前是區塊鏈的重要分支——聯盟鏈的核心算法。 對于從事區塊鏈的研究者或工程技術人員來說,共識算法是需要認真弄清楚的內容。雖然存在不少開源的共識算法或區塊鏈框架,但不同的應用對共識算法的要求是不一樣的,應該根據應用的特點選擇合 適的共識算法,甚至對已有的共識算法做必要的剪裁。要做到這一點,就必須理解基礎的分布式共識算法。而這就是本書的最大價值。 本書譯者之一,陳晉川博士,自2009 年從香港理工大學畢業后加入中國人民大學,一直在我的研究團隊里工作。在大數據、分布式數據管理等領域做出了不少優秀成果。晉川從去年開始關注區塊鏈,他在查閱很多文獻之后,發現關于區塊鏈核心技術部分的資料很少,很難把握其精髓。在看到本書原著之后,他感覺這正是目前市場所缺少的干貨,就決定將其翻譯出來。本書內容艱深,為了準確、清晰地將內容譯為中文,晉川投入了大量心血。作為一線科研工作者,能在背負巨大科研考核壓力的情況下,投入如此多精力從事翻譯工作,殊為不易。 其實,這本書不能算是嚴格意義上的翻譯,譯者除了原稿翻譯之外,還增加了很多譯者自己的注釋,對書中的算法、公式進行注解(作者很多地方寫得較為簡略)。另外,書中還增加了兩章新的內容。一章 是介紹Paxos 算法的發展史和在工業界的應用情況,另一章是對比分析當前主流的兩個共識機制,比特幣的PoW 和私有鏈的PBFT。現在都講究“混搭”,這本譯著也是一種形式的混搭。 杜小勇 中國計算機學會數據庫專委會主任 教育部數據工程與知識工程重點實驗室主任 推薦序 III “身為一個智能時代的潮人,誰的口袋里還不裝著幾塊比特幣?” 近年來,比特幣作為第一種數字加密貨幣,受到了褒貶不一的評價;其價格一路飛漲,但走向主流貨幣之路卻是“路漫漫其修遠兮”。但是,作為比特幣的核心底層技術,區塊鏈技術的受關注程度卻一路飆升。自2014 年以來,國內外多家著名機構在這一研究方向上已經累計投入了數百億美元。其研發范圍已經遠遠超越單純的數字加密貨幣,遍及銀行、保險、物流、物聯網、資產交易、公證與鑒別、社交通信等領域。甚至有人宣稱,未來的社會及政府都可以架構于區塊鏈之上。 區塊鏈為何會受到如此廣泛的關注?究其原因,其核心特征,去中心化、去信任化、智能合約等,正好滿足未來互聯網持續發展所要求的信息的高度自動化和高度程序化的安全流轉需求。我們知道,互聯網作為一個連接媒介,連接了世界上一部分的信息、數據、交互和交易;移動互聯網更是將連接范圍進一步擴大至幾乎所有人類活動的范圍,基本完成了人類活動的數字化。 在技術驅動下,人類生活方方面面的數據量開始激增,大規模計算出現了分布化和并行化的特點。在此基礎上,人工智能第三次浪潮洶涌而來,進一步衍生了對高度自動化和高度程序化的信息流轉的需求:非自動化環節必然被不斷削減;信息的審核和控制將不再受限于任何一個權威性的中心節點,也不應該被任何一個參與節點偽造、篡改和否認。 對于上述需求,區塊鏈技術可以相對完美地提供解決方案。因此,可以預見,區塊鏈技術將會是智能時代數據存儲、傳輸、分發最有競爭力的解決方案之一。 區塊鏈作為一個分布式的數據存儲、傳輸和分發解決方案,其核心在于如何在一個分布式、無受信節點的環境下,自動形成共識(consensus)的機制。所謂共識機制,是指分布式系統中全部節點(或者大部分節點)就某條數據的真實性或者某條交易的價值達成一致,并據此更新各節點記錄的一種機制。不難看出,面對不同的場景、不同的應用需求,需要設計并實施不同的共識機制。這就需要對共識機制在理論層面、技術層面有深入的理解。在智能時代,區塊鏈參與節點將可能是一個智能體,區塊鏈系統也將可能是一個多智能體系統。系統中節點的數量和行為可能是基于人工智能技術自動產生和調整,而不是基于程序員所編寫的固定規則。這種情況下,要想利用共識機制充分保證區塊鏈的安全運行,需要對共識機制更為深刻的理解。 國內關于區塊鏈的書籍已經有很多了,但大多都是在談應用、談理念或者在談相關的投融資,真正涉及技術細節的書籍相對較少。《區塊鏈核心算法解析》以共識機制為主體,系統介紹了區塊鏈所涉及的各種關鍵定理和證明,也給出了相應算法。難能可貴的是,作者還結合實例講述了不同場景下的共識機制的設計方法。這是一本關于區塊鏈核心技術的系統論著,對于區塊鏈科研和應用人員都具有很高的參考價值。 戴斌 國防科技大學機電工程與自動化學院副總工程師 前言 當你和從事金融科技(FinTech)的朋友在一起交談時,不可避免地會注意到一個非常流行的詞——區塊鏈。聽上去,它就像Internet 那樣重要。某些金融科技領域的朋友認為區塊鏈是一段神奇的代碼,它可以使一個分布式系統的參與者們就系統的狀態達成共識,從而追蹤系統的變化。區塊鏈這個詞語是從比特幣借用的,然而,早在區塊鏈或者比特幣出現之前,共識技術(或協定技術)(Agreement Techniques)就已經在分布式系統領域中存在了。曾經出現過各種各樣的概念和協議,各有其優點和缺點。 本書的目的是深入剖析這項當前最引人注目的技術——區塊鏈。如果你是一名開發者(不管是否在金融科技領域),本書將幫助你更好地理解:在你研發的分布式系統中,什么是對的,什么是錯的,什么是可能的,而什么是不可能的。 本書介紹了構建容錯的分布式系統所需的基礎技術,以及一系列允許容錯的協議和算法,并且討論一些實現了這些技術的實際系統。本書中的主要概念將獨立成章。每一章都以一個小故事開始,從而引出該章節的內容。算法、協議和定義都將以形式化的方式描述,以便于讀者理解如何實現。部分結論會在定理中予以證明,這樣讀者就可以明白為什么這些概念或算法是正確的,并且理解它們可以確保實現什 么。其他的大部分內容將以評論的方式出現。這些評論將討論各種各樣非正式的思考,并且為后續內容做好鋪墊。就算不閱讀這些評論,讀者們也可以掌握章節的精髓。此外,為了便于讀者尋根溯源,每一章也會討論相關技術的發展歷史。 本書將介紹不同的模型(以及模型的組合),以適用于不同的場景。本書關注的是實用的協議和系統。換句話說,我們在選擇概念時,不會根據這些概念是否看起來有意思,而是根據它們是否有實際的價值。 不管怎樣,希望你在本書中找到樂趣! |