區(qū)塊鏈開發(fā)(1)基本概念

最近一直沒更新博客了,一方面是在技術(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ù)組成。
  • 原理:
    1. 將明文用接收方公鑰進行加密,得到密文。
    2. 用發(fā)送方私鑰對明文進行哈希后得到的信息摘要進行加密,得到發(fā)送方簽名。
    3. 將密文和簽名一起發(fā)送給接收方。
    4. 接收方用私鑰對接接收到的密文進行解密,得到原來的明文。
    5. 用發(fā)送方公鑰對接收到的簽名進行解密,得到明文的哈希值,即信息摘要。
    6. 對明文進行哈希與簽名解密算出的哈希值對比,一致則原文沒有被篡改。

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)載 :)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容