最近一直沒更新博客了,一方面是在技術(shù)轉(zhuǎn)型,游戲行業(yè)的不景氣,不再將重心放在游戲開發(fā)了,一方面也是在積累與學習中(懶惰),缺乏動力。希望通過這次能堅持下去:)。言歸正傳,來記錄和總結(jié)下自己在區(qū)塊鏈開發(fā)方面的經(jīng)驗。
區(qū)塊鏈的發(fā)展由第一代比特幣區(qū)塊鏈,到第二代以太坊智能合約的區(qū)塊鏈技術(shù),再到現(xiàn)在第三代基于石墨烯的EOS區(qū)塊鏈。其中,涉及到的知識面之廣,概念繁多,本篇作為開篇,主要來梳理下其中常見概念的含義,結(jié)合個人的理解,不涉及相關(guān)技術(shù)與操作演示(期待后續(xù)),也會不定期更新。如有任何你覺得不對的地方或給你造成了誤導(dǎo),歡迎討論與指正。
1. 區(qū)塊鏈技術(shù)
- 鏈式數(shù)據(jù)結(jié)構(gòu),每個區(qū)塊的頭部都保存著指向上一個節(jié)點的哈希值,依次相連。
- 基于P2P網(wǎng)絡(luò),分布式節(jié)點共識算法來維護和更新數(shù)據(jù),來保證數(shù)據(jù)的"不可篡改"。
- 利用密碼學原理,來保證數(shù)據(jù)傳輸、訪問的安全。
- 自動化腳本(智能合約)來可編程和操作數(shù)據(jù)。
- 本質(zhì)是去中心化的數(shù)據(jù)庫,最終要解決的是互聯(lián)網(wǎng)傳輸中的信任問題。
2. 去中心化
- 整個網(wǎng)絡(luò)由每個節(jié)點共同參與,共同維護,不依賴中央處理節(jié)點,每個節(jié)點都是中心。
- 數(shù)據(jù)的存儲與更新是分布式的,不需要中介與信任結(jié)構(gòu)背書。
3. 私有鏈、公有鏈與聯(lián)盟鏈
私有鏈:
- 參與節(jié)點的資格有限且可控、讀取與寫入受限。
- 弱中心化,解決"隊友"(機構(gòu)內(nèi))間的信任問題。
公有鏈:
- 開放的,任何人都可以讀取鏈上的數(shù)據(jù)、參與交易。
- 完全去中心化的,鏈上數(shù)據(jù)不受任何人或機構(gòu)篡改。
- 通過獎勵代幣機制來鼓勵參與者競爭記賬權(quán)。
- 解決"人類"(所有人)不可信問題。
聯(lián)盟鏈:
- 由多個機構(gòu)間共同參與、維護、管理,鏈上數(shù)據(jù)只允許系統(tǒng)內(nèi)的機構(gòu)讀寫、交易。
- 部分去中心化,每個機構(gòu)運行一個或多個節(jié)點。
- 解決"組織"(機構(gòu)間)不可信問題。
4. 挖礦
- 競爭記賬權(quán),對一段時間內(nèi)的網(wǎng)絡(luò)中的交易進行確認,并記錄在區(qū)塊鏈上的過程。
- 原理是重復(fù)計算區(qū)塊頭的哈希值,不斷修改隨機數(shù)nonce值,直到算出與難度目標值匹配。從而,會產(chǎn)生一個區(qū)塊(每個區(qū)塊都對應(yīng)一個賬單)。
- 通常算力越高,計算哈希值的速度越快,挖礦成功的概率越大。
5. 智能合約
- 一個可以自動執(zhí)行的計算機程序(代碼)。 將現(xiàn)實世界中的合同進行數(shù)字化而定義的"承諾",以及合約方執(zhí)行這些"承諾"的協(xié)議。
- 合約由一組代碼(合約的函數(shù))和數(shù)據(jù)(合約的狀態(tài))組成,運行在虛擬機上。
- 用于處理交易雙方之間的交易行為(接收、存儲、發(fā)送等)。
- 一旦合約被部署,就不能被更改。
6. 錢包
- 控制用戶的訪問權(quán)限。
- 管理數(shù)字貨幣地址、密鑰。
- 跟蹤余額、創(chuàng)建交易和簽名交易。
7. 公私鑰
- 非對稱加密算法。兩個密鑰,一個是公開密鑰,一個是私有密鑰,公鑰和私鑰成對出現(xiàn)。
- 一個用作加密,一個用作解密。
- 私鑰可以推倒出公鑰。
8. 共識算法
共識:
- 分布式系統(tǒng)中,大部分節(jié)點對某個"提案"達成一致性的機制。
拜占庭容錯:
- 概念:網(wǎng)絡(luò)通信可靠,允許存在少數(shù)節(jié)點作惡場景(消息可能被偽造)下的一致性達成問題。
- POW:工作量證明機制。根據(jù)每個節(jié)點的計算力來決定,誰得算力強,誰就可獲得記賬權(quán)。
- POS:股權(quán)證明機制。根據(jù)每個節(jié)點具有的資源來決定,誰投入的資源多,誰就可以獲得記賬權(quán)。
- DPOS:代理股權(quán)證明機制。選舉出n個記賬節(jié)點,在節(jié)點中提案者提交的提案被這些記賬節(jié)點投票決定。
非拜占庭容錯:
- 概念: 分布式的系統(tǒng)中存在故障,但不存在惡意節(jié)點的場景(即可能消息丟失或重復(fù),但無錯誤消息)下的共識達成問題。
9. 哈希算法與數(shù)字簽名
哈希算法:
- 概念:將任意長度的二進制值(明文)映射為較短的固定長度的二進制值(hash值)。不同的明文很難映射為相同的哈希值(哈希值也稱為指紋或摘要)。
- MD5:映射為32位16進制數(shù)字。
- SHA-1:映射為40位16進制數(shù)字。
- SHA-256: 映射為64位16進制數(shù)字。
- SHA-512:映射為128位16進制數(shù)字。
數(shù)字簽名:
- 由數(shù)字摘要和非對稱加密技術(shù)組成。
- 原理:
- 將明文用接收方公鑰進行加密,得到密文。
- 用發(fā)送方私鑰對明文進行哈希后得到的信息摘要進行加密,得到發(fā)送方簽名。
- 將密文和簽名一起發(fā)送給接收方。
- 接收方用私鑰對接接收到的密文進行解密,得到原來的明文。
- 用發(fā)送方公鑰對接收到的簽名進行解密,得到明文的哈希值,即信息摘要。
- 對明文進行哈希與簽名解密算出的哈希值對比,一致則原文沒有被篡改。
10. P2P網(wǎng)絡(luò)
- 無中心服務(wù)器,網(wǎng)絡(luò)健壯,高容錯。
- 共享用戶的帶寬、存儲空間和計算能力。
- 用戶節(jié)點越多,速度越快。
11. 數(shù)字貨幣與Token
數(shù)字貨幣:
- 一般指基于區(qū)塊鏈技術(shù)和加密算法產(chǎn)生的一種數(shù)字化資產(chǎn),也常稱為"加密貨幣"。
- 可用于真實的商品和服務(wù)交易。
Token:
- 基于區(qū)塊鏈(例如:以太坊ERC20,EOS等)發(fā)行的一種自定義貨幣,也稱為代幣。
12. ERC20與ERC721
ERC20:
- 以太坊定義的一套自定義貨幣的API接口標準。
ERC721:
- 同樣是基于以太坊,與ERC20不同的是,ERC721定義的代幣具有不可替代的、唯一性。
13. Gas Price與Gas Limit
以太坊在執(zhí)行交易、轉(zhuǎn)賬,部署智能合約等操作時,需要花費Gas費用。Gas費用的計算為:
Gas = Gas Price * Gas Limit + Value
- Gas Price:指用戶愿意花費每個Gas單位的價錢,單位是Gwei。即:價格單位。
- Gas Limit:指用戶愿意為執(zhí)行某個操作花費的最大Gas量(最少21000),即:數(shù)量單位。
暫時先總結(jié)到這里,后面會不定期更新其它區(qū)塊鏈開發(fā)中的相關(guān)概念,下一篇暫定為以太坊私鏈的搭建。如果覺得本篇對你有幫助,歡迎點贊支持。如果覺得本篇中有任何異議的地方,也歡迎留言與我討論。
作者:AlphaGL。版權(quán)所有,歡迎保留原文鏈接進行轉(zhuǎn)載 :)