區塊鏈技術一網打盡
區塊鏈和比特幣概要、各種密碼學原理、零知識證明、以太坊和智慧合約、Solidity語言入門及進階、實戰各種智慧合約以及DAPP、以太坊錢包開發
大礦潮時代來臨,你是否有買不到硬體,或是硬體貴森森的困擾?不如趁現在一次把區塊鏈技術弄懂,讓你在挖礦時,能更清楚自己的下一步,在以太坊規則不斷修改的今天,除了利用虛擬貨幣投資致富,更可以利用區塊鏈的原理,跨出礦工或投資的舒適區,開發出自己的應用,甚至建立自己的貨幣。
不當礦工當老闆,從了解區塊鏈、比特幣、加密方法、智慧合約、進一步熟悉Solidity語言,利用Web界面和Vue.js,開發出自己的應用、錢包、智慧合約等。
區塊鏈大潮來襲,加上量子電腦的崛起,整個人類經濟金融體系將面臨天翻地覆的改變,掌握更多核心技術,才能渡過風暴,甚至找到更多的財務自由的機會。
本書特色
●故事引人入勝
複雜深奧的區塊鏈技術概念,透過生動有趣的故事講解,立刻融會貫通。
●Solidity由淺入深、完整講解
智慧合約語言Solidity兩大篇章,涵蓋入門及進階,迅速脫離新手村。
●ERC標準一次搞懂
ERC165、ERC1820、ERC777、ERC20……,ERC大家族集結,一次解決。
●豐富的程式碼、圖表範例解說
本書內含豐富的程式碼以及圖表,吸收快、有成效,學習事半功倍!
本書技術內容
●區塊鏈和比特幣概要
●各種密碼學原理
●零知識證明
●以太坊和智慧合約
●Solidity語言入門及進階
●實戰各種智慧合約
●實戰DAPP
●以太坊錢包開發
作者簡介:
熊麗兵(網路ID:Tiny熊)
北京航空航天大學碩士,登鏈科技創始人、登鏈社區(https://learnblockchain.cn/)發起人,圖書《精通以太坊智慧合約開發》作者。
董一凡
上海笛藝符科技聯合創始人、首席技術官,無退社區特邀專欄作者。
周小雪
復旦大學碩士。無退社區聯合創始人,金融領域十多年量化經驗。
推薦序
2017 年之前我就開始關注區塊鏈技術,並啟動了該領域的投資調研,幾乎看遍了華東地區的所有區塊鏈專案,那時的區塊鏈產業很不成熟:從事技術研發的人敬畏它,在「深宮大院」裡亂玩演算法,在電腦的烏托邦裡遨遊;擅長市場行銷的人利用它,尤其是投機分子,用各種奇葩但卻非常通俗易懂的方式解讀它,反倒成了第一批「區塊鏈技術科普人員」;專業的投資機構者都很困惑,因為專業所以規矩多,比如符合規範性、邏輯嚴密性等,即使在今天看來很划算的買賣在當年也實在是無法推演出可靠的盈利模式和自圓其說的估值模型。而我恰恰遊走在這三類人的邊緣—技術出身但不算研發專家、市場老兵但不算行銷大咖、一直做投資但也遠非知名投資人,我的身份標籤不突出,也就沒什麼心理負擔,於是就看研報、談專案、交朋友,在這個過程中我投資了本書的作者,決策只用了30 分鐘,我把這個看作緣分。
區塊鏈本質上是一種穩固和安全的分散式狀態機,典型的技術組成包括點對點通訊、密碼學、共識演算法、資料庫技術和虛擬機器。這也組成了區塊鏈必不可少的5 項核心能力。一般來說,隱私保護就是「只有群裡的人才能看到群內資訊」,共同維護就是「每個人都同時參與維護這個群」,分散式儲存就是「群聊天記錄,每個群成員的手機裡都有一個備份」,密碼學就是「群裡面只說一種方言,其他地方的人看不懂」,局部去中心就是「群主可以有權把群成員踢掉」,共識演算法可以類比為「群成員簽到後自動回覆問候語的機制」,點對點通訊就是「雖然我們在一個群裡,但我們仍然可以私聊」。打這些比方,我是想說明:區塊鏈很像是一個社區(群),只不過有些社區是應用層面的,而有些社區是基礎設施層面的,但都是關係和網路。最小的關係網絡是人與人,大一點就是公司與公司,再大一點是產業與產業,甚至還有國家與國家,這些「前
台」的背後是資料與資料、資訊與資訊、機器與機器之間的關係、結構和協作機制。
我之所以願意在30 分鐘內砸下數百萬支援「無退技術社區」:一方面是因為社區創始人馬駿先生很多年前就是知名技術社區的大咖,他的理念、心胸與區塊鏈的哲學思想不謀而合;另一方面是因為「無退技術社區」這個名字也很打動我,對!就是這個名字。任何一個人,一旦進入網路(從出生那一刻開始)就失去了可退之路,因為在呱呱墜地的那一秒鐘後,很多人的身份就變了,情感連接、關係連接、利益連接瞬間產生,離散的點成為互相干擾的點,所有的「單點」決策都變成了「網路投票決策」,除非從底層把資料庫「歸零」,但有這樣的機制嗎?所以「無退」既是無法退,也是退不出來,人生不可取消、不可逆,我們只有不斷前行才能「最佳化網路」。
本書把區塊鏈技術深入淺出地進行了解讀,對那些希望進入產業、了解關鍵技術以及這些技術應用方法的讀者來說有很大幫助。如果遇到不清楚的細節還可以關注作者發起設立的「無退技術社區」,裡面有大量成熟的應用以及更多視覺化的解讀,相信讀者讀後會頗有收穫。
另外我也要感謝馬駿先生在產業發展、技術研發上不斷地給我建議和幫助,區塊鏈是伸向未來的一隻手,我相信世界會更平、天空會更高、路會更遠,到了要真正退出的那一刻,我們的靈魂會更純粹、更潔淨。
方天葉
上海技術交易所副總裁
2017 年之前我就開始關注區塊鏈技術,並啟動了該領域的投資調研,幾乎看遍了華東地區的所有區塊鏈專案,那時的區塊鏈產業很不成熟:從事技術研發的人敬畏它,在「深宮大院」裡亂玩演算法,在電腦的烏托邦裡遨遊;擅長市場行銷的人利用它,尤其是投機分子,用各種奇葩但卻非常通俗易懂的方式解讀它,反倒成了第一批「區塊鏈技術科普人員」;專業的投資機構者都很困惑,因為專業所以規矩多,比如符合規範性、邏輯嚴密性等,即使在今天看來很划算的買賣在當年也實在是無法推演出可靠的盈利模式和自圓其說的估值模型。而我恰恰遊走在這三類人的...
目錄
01 區塊鏈概要
1.1 區塊鏈誕生之前
1.2 區塊鏈的誕生標示—比特幣
1.3 比特幣之後的區塊鏈
1.4 分散式系統
1.5 什麼是區塊鏈
1.6 代幣是什麼
1.7 什麼是區塊
1.8 區塊鏈的硬分叉
1.9 區塊鏈的去中心化
1.10 區塊鏈的主要種類
1.11 加密貨幣
1.12 智慧合約(smart contract)
1.13 區塊鏈應用
1.14 比特幣的歷史
1.15 比特幣的設計取捨
02 密碼學基礎
2.1 密碼學發展歷史
2.2 密碼系統
2.3 區塊鏈常用密碼學知識
2.4 加密貨幣
2.5 加密經濟學
2.6 比特幣中的密碼學
03 零知識證明
3.1 拋磚引玉:初識零知識證明
3.2 零知識證明使用場景案例
3.3 零知識證明的應用發展
3.4 libsnark 開放原始碼實踐簡介
3.5 術語介紹
04 進入以太坊世界
4.1 以太坊概述
4.2 智慧合約
4.3 帳戶
4.4 以太幣的單位
4.5 以太坊虛擬機器(EVM)
4.6 以太坊用戶端
4.7 以太坊錢包
4.8 以太坊交易
4.9 以太坊網路
4.10 以太坊歷史回顧
05 探索智慧合約
5.1 Remix IDE
5.2 MetaMask .
5.3 合約編寫
5.4 合約編譯
5.5 合約部署及運行
5.6 合約內容
06 Solidity 語言基礎
6.1 Solidity 資料類型
6.2 合約
6.3 錯誤處理及異常
07 Solidity 進階
7.1 合約繼承
7.2 介面
7.3 函數庫
7.4 應用程式二進位介面(ABI)
7.5 Solidity 全域API
7.6 使用內聯組合語言
08 智慧合約實戰
8.1 OpenZeppelin
8.2 SafeMath 安全算數運算
8.3 地址工具
8.4 ERC165 介面發現
8.5 ERC20 代幣
8.6 ERC777 功能型代幣
8.7 ERC721
8.8 簡單的支付通道
09 去中心化DAPP 實戰
9.1 什麼是DAPP
9.2 Web3.js
9.3 DAPP 開發工具
9.4 DAPP 投票應用
9.5 使用Vue.js 開發眾籌DAPP
9.6 後台監聽合約事件
9.7 DAPP 去中心化儲存
9.8 Embark 框架
9.9 Embark 重新定義投票DAPP
10 以太坊錢包開發
10.1 數位錢包基礎
10.2 錢包相關提案
10.3 錢包功能
10.4 創建錢包帳號
10.5 匯入帳號
10.6 獲取錢包餘額
10.7 發送交易
10.8 交易ERC20 代幣
01 區塊鏈概要
1.1 區塊鏈誕生之前
1.2 區塊鏈的誕生標示—比特幣
1.3 比特幣之後的區塊鏈
1.4 分散式系統
1.5 什麼是區塊鏈
1.6 代幣是什麼
1.7 什麼是區塊
1.8 區塊鏈的硬分叉
1.9 區塊鏈的去中心化
1.10 區塊鏈的主要種類
1.11 加密貨幣
1.12 智慧合約(smart contract)
1.13 區塊鏈應用
1.14 比特幣的歷史
1.15 比特幣的設計取捨
02 密碼學基礎
2.1 密碼學發展歷史
2.2 密碼系統
2.3 區塊鏈常用密碼學知識
2.4 加密貨幣
2.5 加密經濟學
2.6 比特幣中的密碼學
03 零知識證明
3.1 拋磚引玉:...