先快速學習區塊鏈的概念、區塊鏈的本質、區塊鏈的作用,以及區塊鏈最常見的問題。這部分區塊鏈的課程都是純理論的內容,不涉及到編程。學習完區塊鏈相關理論知識,對區塊鏈有了大概了解之后,就逐漸進入跟編程相關的課程,我們將帶領大家從代碼層面上深入認識比特幣。
重點講解區塊鏈的骨骼——密碼學算法,包括比特幣地址生成算法、ECDSA交易簽名算法。
講解區塊鏈的靈魂——共識算法,并用代碼給大家講解比特幣是如何挖礦的。
講解區塊鏈的精髓——比特幣交易。
學習區塊鏈開發必須從學習比特幣開始,本套視頻可以帶領大家徹底掌握比特幣的核心技術,從而為學習以太坊和超級賬本打下根基,并為區塊鏈開發奠定基礎。
章節介紹:
第1章想真正了解區塊鏈,需要從了解區塊鏈家族開始。本章重點講解了區塊鏈的起源思想去中心化以及在去中心化思想下發展起來的一些列技術。了解了去中心化及其相關技術,才能對區塊鏈的演變、發展及其特性有更深刻的理解。區塊鏈源自于金融,本章講解了跟金融相關的知識——借貸、眾籌、ICO,這為深入了解比特奠定了基礎。
第2章本章給大家講解了區塊鏈的第一個產品——比特幣的發展經歷、起源思想。對區塊鏈的本質、核心技術、應用場景、對未來的影響進行了簡要的介紹。目的是希望大家能對區塊鏈技術有一個整體上的認識。本章能幫助大家快速了解區塊鏈,起到區塊鏈掃盲的作用。
第3章學習區塊鏈的過程中,閱讀區塊鏈相關文章時,常常會看到很多新的概念或者名詞。常見的概念或名詞,我們都會在后續課程中詳細地講解。但是倘若沒有一個整體上的認知,那么學習的過程總是磕磕絆絆,所以本章將區塊鏈,尤其是比特幣中最常見的問題進行了整理。目的是讓大家快速地了解區塊鏈核心的理論,為后續課程抽絲剝繭對這些概念和問題進行詳細講解打下基礎。
第4章比特幣系統中,中本聰利用已有的密碼學算法,設計了一套非常巧妙地密碼算法。本章將帶領大家初探讓人嘆為觀止的密碼學領域,主要講解了加密中的哈希算法、RSA非對稱加密、數字簽名及Base64編碼及解碼。本章案例均采用Java語法來實現。之所以選擇Java語法,因為Java程序員受眾多,學習本章內容接受程度高。更關鍵是Java這種學院派語言,語法嚴謹,代碼書寫復雜。若掌握了復雜的寫法,那么再看使用Javascript、Python、Go等代碼自然就相對容易多了。后續我們會推出Go編程語言教學視頻,在其中的《Go安全編程》一章中,我們會講解Go語言實現哈希算法、數字簽名及驗證技術。
第5章比特幣地址是比特幣系統中非常關鍵的地方,而比特幣地址是通過一套復雜的加密算法和流程生成的。本章給大家講解利用加密算法,實現比特幣地址的生成。
第6章為了保證區塊鏈交易數據的安全性,區塊鏈中必須對交易進行完善的加密。比特幣系統交易的安全性全靠ECDSA(橢圓曲線數字簽名算法)來實現交易簽名和交易驗證。本章給大家講解ECDSA如何實現交易簽名和驗證。
第7章區塊鏈這種基于互聯網的去中心化系統,需要解決的首要問題就是如何實現不同節點上數據的一致性和正確性,這就需要借鑒已有的分布式系統中實現狀態共識的算法。在80年代出現的分布式系統共識算法是區塊鏈共識算法的基礎。而共識算法是區塊鏈的靈魂,本章給大家講解共識算法。
第8章講解完共識算法的理論,那么本章就帶領大家通過編程來進一步理解PoW共識算法。比特幣中使用的PoW共識算法就是俗稱的“挖礦”。中本聰發明的挖礦算法是比特幣系統中濃墨重彩的一筆,讓比特幣系統充滿神秘氣息。本章帶領大家學習挖礦的原理、挖礦目標難度值的計算,并通過代碼來模擬挖礦過程。
第9章比特幣是世界上最知名的區塊鏈產品,學習區塊鏈必須從比特幣開始。想透徹了解區塊鏈就必須了解比特幣系統的架構。本章帶領大家先對比特幣系統的整體架構進行了梳理,然后再教大家安裝和使用BitcoinCore核心客戶端和bitcoind命令行客戶端。安裝比特幣客戶端后,帶領大家申請比特幣,然后在比特幣測試鏈上真正體會比特幣交易的魅力。通過bitcoin-cli命令行的學習,引領大家進入到比特幣系統的核心技術領域。而掌握bitcoin-cli命令行的用法,也為后續基于比特幣系統的開發奠定了基石。
第10章交易是比特幣系統的核心,比特幣交易的原理及交易腳本是區塊鏈的精髓。區塊上的數據主要就是區塊頭和交易信息,交易記錄的保存則是區塊鏈真正的價值體現。如何才能看懂看似雜亂的區塊原始十六進制文件?關鍵就是要能做到正確解析區塊的數據結構以及交易的數據結構。本章將帶領大家深入了解比特幣交易,學習交易腳本,而這也正是區塊鏈2.0的智能合約的雛形。然后再帶著大家學習各種交易腳本類型下數據結構的解析。這樣我們就再也不用看到區塊原始數據而一頭霧水了。學會正確解析區塊數據,也為后續的開發打下堅實的基礎。
第11章學習比特幣交易,不僅要掌握交易原理、交易腳本,還需要掌握使用RPC接口進行調用。本章我們先講解如何在regtest環境下搭建比特幣私鏈,然后講解比特幣交易的構造流程以及如何在程序中通過JSONRPC接口調用來實現比特幣交易。而RPC接口調用又涉及到node.js安裝配置、npm安裝bitcoin包以及在程序中調用RPC接口。